diff --git a/.caddy/Caddyfile.local b/.caddy/Caddyfile.local deleted file mode 100644 index 5c79b21..0000000 --- a/.caddy/Caddyfile.local +++ /dev/null @@ -1,5 +0,0 @@ -timmypidashev.local { - tls internal - - reverse_proxy timmypidashev.dev:4321 -} diff --git a/.caddy/Caddyfile.release b/.caddy/Caddyfile.release deleted file mode 100644 index f22c774..0000000 --- a/.caddy/Caddyfile.release +++ /dev/null @@ -1,5 +0,0 @@ -timmypidashev.dev { - tls pidashev.tim@gmail.com - - reverse_proxy timmypidashev.dev:3000 -} diff --git a/.docker/Dockerfile.local b/.docker/Dockerfile.local deleted file mode 100644 index 90b4e85..0000000 --- a/.docker/Dockerfile.local +++ /dev/null @@ -1,27 +0,0 @@ -FROM node:22-alpine - -ARG CONTAINER_WEB_VERSION -ARG ENVIRONMENT -ARG BUILD_DATE -ARG GIT_COMMIT - -RUN set -eux \ - & apk add \ - --no-cache \ - nodejs \ - curl - -RUN curl -L https://unpkg.com/@pnpm/self-installer | node - -WORKDIR /app - -COPY . . - -RUN echo "PUBLIC_VERSION=${CONTAINER_WEB_VERSION}" > /app/.env && \ - echo "PUBLIC_ENVIRONMENT=${ENVIRONMENT}" >> /app/.env && \ - echo "PUBLIC_BUILD_DATE=${BUILD_DATE}" >> /app/.env && \ - echo "PUBLIC_GIT_COMMIT=${GIT_COMMIT}" >> /app/.env - -EXPOSE 3000 - -CMD ["pnpm", "run", "dev"] diff --git a/.docker/Dockerfile.release b/.docker/Dockerfile.release deleted file mode 100644 index d68c745..0000000 --- a/.docker/Dockerfile.release +++ /dev/null @@ -1,47 +0,0 @@ -# Stage 1: Build and install dependencies -FROM node:22-alpine AS builder -WORKDIR /app - -# Install necessary dependencies, including pnpm -RUN set -eux \ - && apk add --no-cache nodejs curl \ - && npm install -g pnpm - -# Copy package files first (for better caching) -COPY package.json pnpm-lock.yaml ./ - -# Install dependencies -RUN pnpm install --frozen-lockfile - -# Now copy the rest of your source code -COPY . . - -# Set build arguments -ARG CONTAINER_WEB_VERSION -ARG ENVIRONMENT -ARG BUILD_DATE -ARG GIT_COMMIT - -# Create .env file with build-time environment variables -RUN echo "PUBLIC_VERSION=${CONTAINER_WEB_VERSION}" > /app/.env && \ - echo "PUBLIC_ENVIRONMENT=${ENVIRONMENT}" >> /app/.env && \ - echo "PUBLIC_BUILD_DATE=${BUILD_DATE}" >> /app/.env && \ - echo "PUBLIC_GIT_COMMIT=${GIT_COMMIT}" >> /app/.env - -# Build the project -RUN pnpm run build - -# Stage 2: Serve static files -FROM node:22-alpine -WORKDIR /app - -# Copy built files -COPY --from=builder /app/dist ./dist -COPY --from=builder /app/node_modules ./node_modules -COPY --from=builder /app/package.json ./package.json - -# Expose port 3000 -EXPOSE 3000 - -# Deployment command -CMD ["node", "./dist/server/entry.mjs"] diff --git a/.github/scripts/deploy_release.sh b/.github/scripts/deploy_release.sh deleted file mode 100755 index 746b7e0..0000000 --- a/.github/scripts/deploy_release.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh - -# Set variables -BRANCH_NAME="$1" -COMMIT_HASH="$2" -GHCR_USERNAME="$3" -GHCR_TOKEN="$4" -DEPLOY_TYPE="$5" -REPO_OWNER="$6" -COMPOSE_FILE="$7" -CADDYFILE="$8" -MAKEFILE="$9" - -# Echo out variable names and their content on single lines -echo "BRANCH_NAME: $BRANCH_NAME" -echo "COMMIT_HASH: $COMMIT_HASH" -echo "GHCR_USERNAME: $GHCR_USERNAME" -echo "DEPLOY_TYPE: $DEPLOY_TYPE" -echo "REPO_OWNER: $REPO_OWNER" -echo "COMPOSE_FILE: $COMPOSE_FILE" -echo "CADDYFILE: $CADDYFILE" -echo "MAKEFILE: $MAKEFILE" - -# Set the staging directory -STAGING_DIR="/root/deployments/.staging-${COMMIT_HASH}" - -# Set the tmux session name for release -TMUX_SESSION="deployment-release" - -# Function to cleanup existing release deployment -cleanup_release_deployment() { - echo "Cleaning up existing release deployment..." - # Stop and remove all release containers - docker-compose -f "/root/deployments/release/docker-compose.yml" down -v 2>/dev/null - # Remove release images - docker rmi $(docker images "ghcr.io/$REPO_OWNER/*:release" -q) 2>/dev/null - # Kill release tmux session if it exists - tmux kill-session -t "$TMUX_SESSION" 2>/dev/null - # Remove release deployment directory - rm -rf /root/deployments/release -} - -# Function to create deployment directory -create_deployment_directory() { - echo "Creating deployment directory..." - mkdir -p /root/deployments/release -} - -# Function to pull Docker images -pull_docker_images() { - echo "Pulling Docker images..." - docker pull ghcr.io/$REPO_OWNER/web:release -} - -# Function to copy and prepare files -copy_and_prepare_files() { - echo "Copying and preparing files..." - # Copy files preserving names and locations - install -D "$STAGING_DIR/$COMPOSE_FILE" "/root/deployments/release/$COMPOSE_FILE" - install -D "$STAGING_DIR/$CADDYFILE" "/root/deployments/release/$CADDYFILE" - install -D "$STAGING_DIR/$MAKEFILE" "/root/deployments/release/$MAKEFILE" - # Replace {$COMMIT_HASH} with $COMMIT_HASH in $CADDYFILE - sed -i "s/{\$COMMIT_HASH}/$COMMIT_HASH/g" "/root/deployments/release/$CADDYFILE" - # Replace {commit_hash} with $COMMIT_HASH in $COMPOSE_FILE - sed -i "s/{commit_hash}/$COMMIT_HASH/g" "/root/deployments/release/$COMPOSE_FILE" -} - -# Function to start the deployment -start_deployment() { - echo "Starting deployment..." - # Create new tmux session with specific name - tmux new-session -d -s "$TMUX_SESSION" - tmux send-keys -t "$TMUX_SESSION" "cd /root/deployments/release && make run release" Enter -} - -# Main execution -cleanup_release_deployment -create_deployment_directory -copy_and_prepare_files -cd "/root/deployments/release" -pull_docker_images -start_deployment -echo "Release build $COMMIT_HASH deployed successfully!" diff --git a/.gitmodules b/.gitmodules index c335a92..9d37074 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "src/public/scripts"] - path = src/public/scripts +[submodule "public/scripts"] + path = public/scripts url = https://github.com/timmypidashev/scripts diff --git a/src/.stackblitzrc b/.stackblitzrc similarity index 100% rename from src/.stackblitzrc rename to .stackblitzrc diff --git a/Makefile b/Makefile deleted file mode 100644 index aec5e4b..0000000 --- a/Makefile +++ /dev/null @@ -1,186 +0,0 @@ -PROJECT_NAME := "timmypidashev.dev" -PROJECT_AUTHORS := "Timothy Pidashev (timmypidashev) " -PROJECT_VERSION := "v2.1.1" -PROJECT_LICENSE := "MIT" -PROJECT_SOURCES := "https://github.com/timmypidashev/web" -PROJECT_REGISTRY := "ghcr.io/timmypidashev" -PROJECT_ORGANIZATION := "org.opencontainers" - -CONTAINER_WEB_NAME := "timmypidashev.dev" -CONTAINER_WEB_VERSION := "v2.1.1" -CONTAINER_WEB_LOCATION := "src/" -CONTAINER_WEB_DESCRIPTION := "My portfolio website!" - -.DEFAULT_GOAL := help -.PHONY: watch run build push prune bump exec -.SILENT: watch run build push prune bump exec - -help: - @echo "Available targets:" - @echo " run - Runs the docker compose file with the specified environment (local or release)" - @echo " build - Builds the specified docker image with the appropriate environment" - @echo " push - Pushes the built docker image to the registry" - @echo " prune - Removes all built and cached docker images and containers" - @echo " bump - Bumps the project and container versions" - -run: - # Arguments: - # [environment]: 'local' or 'release' - # - # Explanation: - # * Runs the docker compose file with the specified environment(compose.local.yml, or compose.release.yml) - # * Passes all generated arguments to the compose file. - - # Make sure we have been given proper arguments. - @if [ "$(word 2,$(MAKECMDGOALS))" = "local" ]; then \ - echo "Running in local environment"; \ - elif [ "$(word 2,$(MAKECMDGOALS))" = "release" ]; then \ - echo "Running in release environment"; \ - else \ - echo "Invalid usage. Please use 'make run local' or 'make run release'"; \ - exit 1; \ - fi - - docker compose -f compose.$(word 2,$(MAKECMDGOALS)).yml up --remove-orphans - - -build: - # Arguments - # [container]: Build context(which container to build ['all' to build every container defined]) - # [environment]: 'local' or 'release' - # - # Explanation: - # * Builds the specified docker image with the appropriate environment. - # * Passes all generated arguments to docker build-kit. - - # Extract container and environment inputted. - $(eval INPUT_TARGET := $(word 2,$(MAKECMDGOALS))) - $(eval INPUT_CONTAINER := $(firstword $(subst :, ,$(INPUT_TARGET)))) - $(eval INPUT_ENVIRONMENT := $(lastword $(subst :, ,$(INPUT_TARGET)))) - - # Call function container_build either through a for loop for each container - # if all is called, or singularly to build the container. - $(if $(filter $(strip $(INPUT_CONTAINER)),all), \ - $(foreach container,$(containers),$(call container_build,$(container) $(INPUT_ENVIRONMENT))), \ - $(call container_build,$(INPUT_CONTAINER) $(INPUT_ENVIRONMENT))) - -push: - # Arguments - # [container]: Push context(which container to push to the registry) - # [version]: Container version to push. - # - # Explanation: - # * Pushes the specified container version to the registry defined in the user configuration. - - # Extract container and version inputted. - $(eval INPUT_TARGET := $(word 2,$(MAKECMDGOALS))) - $(eval INPUT_CONTAINER := $(firstword $(subst :, ,$(INPUT_TARGET)))) - $(eval INPUT_VERSION := $(lastword $(subst :, ,$(INPUT_TARGET)))) - - # Push the specified container version to the registry. - # NOTE: docker will complain if the container tag is invalid, no need to validate here. - @docker push $(PROJECT_REGISTRY)/$(INPUT_CONTAINER):$(INPUT_VERSION) - -prune: - # Removes all built and cached docker images and containers. - -bump: - # Arguments - # [container]: Bump context(which container version to bump) - # [semantic_type]: Semantic type context(major, minor, patch) - # - # Explanation: - # * Bumps the specified container version within the makefile config and the container's package.json. - # * Bumps the global project version in the makefile, and creates a new git tag with said version. - - # Extract container and semantic_type inputted. - $(eval INPUT_TARGET := $(word 2,$(MAKECMDGOALS))) - $(eval INPUT_CONTAINER := $(firstword $(subst :, ,$(INPUT_TARGET)))) - $(eval INPUT_SEMANTIC_TYPE := $(lastword $(subst :, ,$(INPUT_TARGET)))) - - # Extract old container and project versions. - $(eval OLD_CONTAINER_VERSION := $(subst v,,$(CONTAINER_$(shell echo $(INPUT_CONTAINER) | tr a-z A-Z)_VERSION))) - $(eval OLD_PROJECT_VERSION := $(subst v,,$(PROJECT_VERSION))) - - # Pull docker semver becsause the normal command doesn't seem to work; also we don't need to worry about dependencies. - docker pull usvc/semver:latest - - # Bump npm package.json file for selected container - cd $(call container_location,$(INPUT_CONTAINER)) && npm version $(shell docker run usvc/semver:latest bump $(INPUT_SEMANTIC_TYPE) $(OLD_CONTAINER_VERSION)) - - # Bump the git tag to match the new global version - git tag v$(shell docker run usvc/semver:latest bump $(INPUT_SEMANTIC_TYPE) $(OLD_PROJECT_VERSION)) - - # Bump the container version and global version in the Makefile - perl -pi -e 's/^PROJECT_VERSION\s*:=\s*\K.*/"v$(shell docker run usvc/semver:latest bump $(INPUT_SEMANTIC_TYPE) $(OLD_PROJECT_VERSION))"/ if /^PROJECT_VERSION\s*:=/' Makefile; - perl -pi -e 's/^CONTAINER_$(shell echo $(INPUT_CONTAINER) | tr a-z A-Z)_VERSION\s*:=\s*\K.*/"v$(shell docker run usvc/semver:latest bump $(INPUT_SEMANTIC_TYPE) $(OLD_CONTAINER_VERSION))"/ if /^CONTAINER_$(shell echo $(INPUT_CONTAINER) | tr a-z A-Z)_VERSION\s*:=/' Makefile; - -# This function generates Docker build arguments based on variables defined in the Makefile. -# It extracts variable assignments, removes whitespace, and formats them as build arguments. -# Additionally, it appends any custom shell generated arguments defined below. -define args - $(shell \ - grep -E '^[[:alnum:]_]+[[:space:]]*[:?]?[[:space:]]*=' $(MAKEFILE_LIST) | \ - awk 'BEGIN {FS = ":="} { \ - gsub(/^[[:space:]]+|[[:space:]]+$$/, "", $$2); \ - gsub(/^/, "\x27", $$2); \ - gsub(/$$/, "\x27", $$2); \ - gsub(/[[:space:]]+/, "", $$1); \ - gsub(":", "", $$1); \ - printf "--build-arg %s=%s ", $$1, $$2 \ - }') \ - --build-arg BUILD_DATE='"$(shell date)"' \ - --build-arg GIT_COMMIT='"$(shell git rev-parse HEAD)"' -endef - -# This function generates labels based on variables defined in the Makefile. -# It extracts only the selected container variables and is used to echo this information -# to the docker buildx engine in the command line. -define labels - --label $(PROJECT_ORGANIZATION).image.title=$(CONTAINER_$(1)_NAME) \ - --label $(PROJECT_ORGANIZATION).image.description=$(CONTAINER_$(1)_DESCRIPTION) \ - --label $(PROJECT_ORGANIZATION).image.authors=$(PROJECT_AUTHORS) \ - --label $(PROJECT_ORGANIZATION).image.url=$(PROJECT_SOURCES) \ - --label $(PROJECT_ORGANIZATION).image.source=$(PROJECT_SOURCES)/$(CONTAINER_$(1)_LOCATION) -endef - -# This function returns a list of container names defined in the Makefile. -# In order for this function to return a container, it needs to have this format: CONTAINER_%_NAME! -define containers - $(strip $(filter-out $(_NL),$(foreach var,$(.VARIABLES),$(if $(filter CONTAINER_%_NAME,$(var)),$(strip $($(var))))))) -endef - -define container_build - $(eval CONTAINER := $(word 1,$1)) - $(eval ENVIRONMENT := $(word 2,$1)) - $(eval ARGS := $(shell echo $(args))) - $(eval VERSION := $(strip $(call container_version,$(CONTAINER)))) - $(eval TAG := $(PROJECT_NAME):$(ENVIRONMENT)) - - @echo "Building container: $(CONTAINER)" - @echo "Environment: $(ENVIRONMENT)" - @echo "Version: $(VERSION)" - - @if [ "$(strip $(ENVIRONMENT))" != "local" ] && [ "$(strip $(ENVIRONMENT))" != "release" ]; then \ - echo "Invalid environment. Please specify 'local' or 'release'"; \ - exit 1; \ - fi - - $(if $(filter $(strip $(ENVIRONMENT)),release), \ - $(eval TAG := $(PROJECT_REGISTRY)/$(PROJECT_NAME):$(VERSION)), \ - ) - - docker buildx build --load -t $(TAG) -f .docker/Dockerfile.$(ENVIRONMENT) ./$(strip $(subst $(SPACE),,$(call container_location,$(CONTAINER))))/. $(ARGS) $(call labels,$(shell echo $(CONTAINER_NAME) | tr '[:lower:]' '[:upper:]')) --no-cache -endef - -define container_location - $(strip $(eval CONTAINER_NAME := $(shell echo $(1) | tr '[:lower:]' '[:upper:]'))) \ - $(CONTAINER_$(CONTAINER_NAME)_LOCATION) -endef - -define container_version - $(strip $(eval CONTAINER_NAME := $(shell echo $(1) | tr '[:lower:]' '[:upper:]'))) \ - $(if $(CONTAINER_$(CONTAINER_NAME)_VERSION), \ - $(shell echo $(strip $(strip $(CONTAINER_$(CONTAINER_NAME)_VERSION))) | tr -d '[:space:]'), \ - $(error Version data for container $(1) not found)) -endef diff --git a/src/astro.config.mjs b/astro.config.mjs similarity index 97% rename from src/astro.config.mjs rename to astro.config.mjs index 30ec872..fddc72d 100644 --- a/src/astro.config.mjs +++ b/astro.config.mjs @@ -1,5 +1,5 @@ import { defineConfig } from "astro/config"; -import node from "@astrojs/node"; +import vercel from "@astrojs/vercel"; import tailwind from "@astrojs/tailwind"; import react from "@astrojs/react"; import mdx from "@astrojs/mdx"; @@ -10,13 +10,7 @@ import sitemap from "@astrojs/sitemap"; // https://astro.build/config export default defineConfig({ output: "server", - server: { - host: true, - port: 3000, - }, - adapter: node({ - mode: "standalone", - }), + adapter: vercel(), site: "https://timmypidashev.dev", build: { // Enable build-time optimizations diff --git a/compose.local.yml b/compose.local.yml deleted file mode 100644 index e69de29..0000000 diff --git a/compose.release.yml b/compose.release.yml deleted file mode 100644 index f623019..0000000 --- a/compose.release.yml +++ /dev/null @@ -1,32 +0,0 @@ -services: - caddy: - container_name: caddy - image: caddy:latest - ports: - - 80:80 - - 443:443 - volumes: - - ./.caddy/Caddyfile.release:/etc/caddy/Caddyfile:rw - networks: - - proxy_network - depends_on: - - timmypidashev.dev - - watchtower: - container_name: updates - image: containrrr/watchtower - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - $HOME/.docker/config.json:/config.json - command: --interval 120 --cleanup --label-enable - - timmypidashev.dev: - container_name: timmypidashev.dev - image: ghcr.io/timmypidashev/timmypidashev.dev:latest - networks: - - proxy_network - -networks: - proxy_network: - name: proxy_network - external: true diff --git a/src/package.json b/package.json similarity index 92% rename from src/package.json rename to package.json index e60ca5d..597538f 100644 --- a/src/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "src", - "version": "2.1.1", + "name": "timmypidashev-web", + "version": "3.0.0", "private": true, "scripts": { "dev": "astro dev --host", @@ -18,7 +18,7 @@ }, "dependencies": { "@astrojs/mdx": "^5.0.3", - "@astrojs/node": "^10.0.4", + "@astrojs/vercel": "^10.0.3", "@astrojs/rss": "^4.0.18", "@astrojs/sitemap": "^3.7.2", "@giscus/react": "^3.1.0", diff --git a/src/pnpm-lock.yaml b/pnpm-lock.yaml similarity index 92% rename from src/pnpm-lock.yaml rename to pnpm-lock.yaml index 7339c57..aaabe9e 100644 --- a/src/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: dependencies: '@astrojs/mdx': specifier: ^5.0.3 - version: 5.0.3(astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3)) - '@astrojs/node': - specifier: ^10.0.4 - version: 10.0.4(astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3)) + version: 5.0.3(astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3)) '@astrojs/rss': specifier: ^4.0.18 version: 4.0.18 '@astrojs/sitemap': specifier: ^3.7.2 version: 3.7.2 + '@astrojs/vercel': + specifier: ^10.0.3 + version: 10.0.3(astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))(react@18.3.1)(rollup@4.60.1) '@giscus/react': specifier: ^3.1.0 version: 3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -80,7 +80,7 @@ importers: version: 5.0.2(@types/node@24.12.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(jiti@1.21.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yaml@2.8.3) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3)) + version: 6.0.2(astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3)) '@tailwindcss/typography': specifier: ^0.5.19 version: 0.5.19(tailwindcss@3.4.19(yaml@2.8.3)) @@ -92,7 +92,7 @@ importers: version: 18.3.7(@types/react@18.3.28) astro: specifier: ^6.1.2 - version: 6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) + version: 6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) tailwindcss: specifier: ^3.4.19 version: 3.4.19(yaml@2.8.3) @@ -118,11 +118,6 @@ packages: peerDependencies: astro: ^6.0.0 - '@astrojs/node@10.0.4': - resolution: {integrity: sha512-7pVgiVSscQHRC2WqjlXcnbbcKMYp2GXrYpmuvdGg5zgA8J1lFm2vmwVhHZFuZK3Ik5PzoxiDROaEgoDGLbfhLw==} - peerDependencies: - astro: ^6.0.0 - '@astrojs/prism@4.0.1': resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==} engines: {node: '>=22.12.0'} @@ -152,6 +147,11 @@ packages: resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + '@astrojs/vercel@10.0.3': + resolution: {integrity: sha512-4eJDFhTBnu6X19iKD1GOmhbGEkrws29aWt9eEtJjwMqNbbXoX95c0s115FXBYq5wLcERt19rLfimkU1vjgIdBw==} + peerDependencies: + astro: ^6.0.0 + '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} @@ -563,6 +563,10 @@ packages: cpu: [x64] os: [win32] + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -585,6 +589,11 @@ packages: '@lit/reactive-element@2.1.2': resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} + '@mapbox/node-pre-gyp@2.0.3': + resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} + engines: {node: '>=18'} + hasBin: true + '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} @@ -904,12 +913,68 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@vercel/analytics@1.6.1': + resolution: {integrity: sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==} + peerDependencies: + '@remix-run/react': ^2 + '@sveltejs/kit': ^1 || ^2 + next: '>= 13' + react: ^18 || ^19 || ^19.0.0-rc + svelte: '>= 4' + vue: ^3 + vue-router: ^4 + peerDependenciesMeta: + '@remix-run/react': + optional: true + '@sveltejs/kit': + optional: true + next: + optional: true + react: + optional: true + svelte: + optional: true + vue: + optional: true + vue-router: + optional: true + + '@vercel/functions@3.4.3': + resolution: {integrity: sha512-kA14KIUVgAY6VXbhZ5jjY+s0883cV3cZqIU3WhrSRxuJ9KvxatMjtmzl0K23HK59oOUjYl7HaE/eYMmhmqpZzw==} + engines: {node: '>= 20'} + peerDependencies: + '@aws-sdk/credential-provider-web-identity': '*' + peerDependenciesMeta: + '@aws-sdk/credential-provider-web-identity': + optional: true + + '@vercel/nft@1.5.0': + resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} + engines: {node: '>=20'} + hasBin: true + + '@vercel/oidc@3.2.0': + resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} + engines: {node: '>= 20'} + + '@vercel/routing-utils@5.3.3': + resolution: {integrity: sha512-KYm2sLNUD48gDScv8ob4ejc3Gww2jcJyW80hTdYlenAPz/5BQar1Gyh38xrUuZ532TUwSb5mV1uRbAuiykq0EQ==} + '@vitejs/plugin-react@5.2.0': resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -920,6 +985,13 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -952,6 +1024,9 @@ packages: engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + autoprefixer@10.4.27: resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} engines: {node: ^10 || ^12 || >=14} @@ -966,6 +1041,10 @@ packages: bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + baseline-browser-mapping@2.10.12: resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==} engines: {node: '>=6.0.0'} @@ -975,9 +1054,16 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1017,6 +1103,10 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} @@ -1043,6 +1133,10 @@ packages: resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} engines: {node: '>= 18'} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1101,10 +1195,6 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -1149,16 +1239,9 @@ packages: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.328: resolution: {integrity: sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==} - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -1185,9 +1268,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -1216,20 +1296,22 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-xml-builder@1.1.4: resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==} @@ -1249,6 +1331,9 @@ packages: picomatch: optional: true + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1267,10 +1352,6 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} - engines: {node: '>= 0.8'} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1297,6 +1378,13 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + h3@1.15.10: resolution: {integrity: sha512-YzJeWSkDZxAhvmp8dexjRK5hxziRO7I9m0N53WhvYL5NiWfkUkzssVzY9jvGu0HBoLFW6+duYmNSn6MaZBCCtg==} @@ -1355,16 +1443,13 @@ packages: http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} @@ -1441,6 +1526,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -1672,13 +1760,17 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} @@ -1705,12 +1797,30 @@ packages: node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + node-mock-http@1.0.4: resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -1735,10 +1845,6 @@ packages: ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} @@ -1779,6 +1885,16 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + path-to-regexp@6.1.0: + resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -1877,6 +1993,10 @@ packages: property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -1886,10 +2006,6 @@ packages: raf@3.4.1: resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -1997,6 +2113,10 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} @@ -2045,16 +2165,6 @@ packages: engines: {node: '>=10'} hasBin: true - send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} - engines: {node: '>= 18'} - - server-destroy@1.0.1: - resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shallow-equal@3.1.0: resolution: {integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==} @@ -2092,10 +2202,6 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -2130,6 +2236,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} + engines: {node: '>=18'} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -2156,9 +2266,8 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -2309,6 +2418,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -2372,6 +2484,12 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} @@ -2382,6 +2500,10 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@2.8.3: resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} @@ -2437,12 +2559,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@5.0.3(astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))': + '@astrojs/mdx@5.0.3(astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))': dependencies: '@astrojs/markdown-remark': 7.1.0 '@mdx-js/mdx': 3.1.1 acorn: 8.16.0 - astro: 6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) + astro: 6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) es-module-lexer: 2.0.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -2456,15 +2578,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@10.0.4(astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))': - dependencies: - '@astrojs/internal-helpers': 0.8.0 - astro: 6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) - send: 1.2.1 - server-destroy: 1.0.1 - transitivePeerDependencies: - - supports-color - '@astrojs/prism@4.0.1': dependencies: prismjs: 1.30.0 @@ -2506,9 +2619,9 @@ snapshots: stream-replace-string: 2.0.0 zod: 4.3.6 - '@astrojs/tailwind@6.0.2(astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3))': + '@astrojs/tailwind@6.0.2(astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))(tailwindcss@3.4.19(yaml@2.8.3))': dependencies: - astro: 6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) + astro: 6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) autoprefixer: 10.4.27(postcss@8.5.8) postcss: 8.5.8 postcss-load-config: 4.0.2(postcss@8.5.8) @@ -2528,6 +2641,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@astrojs/vercel@10.0.3(astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3))(react@18.3.1)(rollup@4.60.1)': + dependencies: + '@astrojs/internal-helpers': 0.8.0 + '@vercel/analytics': 1.6.1(react@18.3.1) + '@vercel/functions': 3.4.3 + '@vercel/nft': 1.5.0(rollup@4.60.1) + '@vercel/routing-utils': 5.3.3 + astro: 6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3) + esbuild: 0.27.4 + tinyglobby: 0.2.15 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-web-identity' + - '@remix-run/react' + - '@sveltejs/kit' + - encoding + - next + - react + - rollup + - supports-color + - svelte + - vue + - vue-router + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -2839,6 +2975,10 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -2864,6 +3004,19 @@ snapshots: dependencies: '@lit-labs/ssr-dom-shim': 1.5.1 + '@mapbox/node-pre-gyp@2.0.3': + dependencies: + consola: 3.4.2 + detect-libc: 2.1.2 + https-proxy-agent: 7.0.6 + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.7.4 + tar: 7.5.13 + transitivePeerDependencies: + - encoding + - supports-color + '@mdx-js/mdx@3.1.1': dependencies: '@types/estree': 1.0.8 @@ -3174,6 +3327,42 @@ snapshots: '@ungap/structured-clone@1.3.0': {} + '@vercel/analytics@1.6.1(react@18.3.1)': + optionalDependencies: + react: 18.3.1 + + '@vercel/functions@3.4.3': + dependencies: + '@vercel/oidc': 3.2.0 + + '@vercel/nft@1.5.0(rollup@4.60.1)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.3 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 13.0.6 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.4 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vercel/oidc@3.2.0': {} + + '@vercel/routing-utils@5.3.3': + dependencies: + path-to-regexp: 6.1.0 + path-to-regexp-updated: path-to-regexp@6.3.0 + optionalDependencies: + ajv: 6.14.0 + '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@24.12.0)(jiti@1.21.7)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 @@ -3186,12 +3375,28 @@ snapshots: transitivePeerDependencies: - supports-color + abbrev@3.0.1: {} + + acorn-import-attributes@1.9.5(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: acorn: 8.16.0 acorn@8.16.0: {} + agent-base@7.1.4: {} + + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + optional: true + any-promise@1.3.0: {} anymatch@3.1.3: @@ -3215,7 +3420,7 @@ snapshots: astring@1.9.0: {} - astro@6.1.2(@types/node@24.12.0)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3): + astro@6.1.2(@types/node@24.12.0)(@vercel/functions@3.4.3)(jiti@1.21.7)(rollup@4.60.1)(typescript@5.7.3)(yaml@2.8.3): dependencies: '@astrojs/compiler': 3.0.1 '@astrojs/internal-helpers': 0.8.0 @@ -3265,7 +3470,7 @@ snapshots: ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.5 + unstorage: 1.17.5(@vercel/functions@3.4.3) vfile: 6.0.3 vite: 7.3.1(@types/node@24.12.0)(jiti@1.21.7)(yaml@2.8.3) vitefu: 1.1.2(vite@7.3.1(@types/node@24.12.0)(jiti@1.21.7)(yaml@2.8.3)) @@ -3309,6 +3514,8 @@ snapshots: - uploadthing - yaml + async-sema@3.1.1: {} + autoprefixer@10.4.27(postcss@8.5.8): dependencies: browserslist: 4.28.1 @@ -3322,12 +3529,22 @@ snapshots: bail@2.0.2: {} + balanced-match@4.0.4: {} + baseline-browser-mapping@2.10.12: {} binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + boolbase@1.0.0: {} + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -3370,6 +3587,8 @@ snapshots: dependencies: readdirp: 5.0.0 + chownr@3.0.0: {} + ci-info@4.4.0: {} clsx@2.1.1: {} @@ -3384,6 +3603,8 @@ snapshots: common-ancestor-path@2.0.0: {} + consola@3.4.2: {} + convert-source-map@2.0.0: {} cookie-es@1.2.2: {} @@ -3434,14 +3655,11 @@ snapshots: defu@6.1.4: {} - depd@2.0.0: {} - dequal@2.0.3: {} destr@2.0.5: {} - detect-libc@2.1.2: - optional: true + detect-libc@2.1.2: {} devalue@5.6.4: {} @@ -3475,12 +3693,8 @@ snapshots: dset@3.1.4: {} - ee-first@1.1.1: {} - electron-to-chromium@1.5.328: {} - encodeurl@2.0.0: {} - entities@4.5.0: {} entities@6.0.1: {} @@ -3532,8 +3746,6 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@5.0.0: {} estree-util-attach-comments@3.0.0: @@ -3571,12 +3783,13 @@ snapshots: dependencies: '@types/estree': 1.0.8 - etag@1.8.1: {} - eventemitter3@5.0.4: {} extend@3.0.2: {} + fast-deep-equal@3.1.3: + optional: true + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3585,6 +3798,9 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: + optional: true + fast-xml-builder@1.1.4: dependencies: path-expression-matcher: 1.2.0 @@ -3603,6 +3819,8 @@ snapshots: optionalDependencies: picomatch: 4.0.4 + file-uri-to-path@1.0.0: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -3619,8 +3837,6 @@ snapshots: fraction.js@5.3.4: {} - fresh@2.0.0: {} - fsevents@2.3.3: optional: true @@ -3642,6 +3858,14 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@13.0.6: + dependencies: + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 + + graceful-fs@4.2.11: {} + h3@1.15.10: dependencies: cookie-es: 1.2.2 @@ -3800,18 +4024,15 @@ snapshots: http-cache-semantics@4.2.0: {} - http-errors@2.0.1: + https-proxy-agent@7.0.6: dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color hyphenate-style-name@1.1.0: {} - inherits@2.0.4: {} - inline-style-parser@0.2.7: {} intersection-observer@0.10.0: {} @@ -3867,6 +4088,9 @@ snapshots: jsesc@3.1.0: {} + json-schema-traverse@0.4.1: + optional: true + json5@2.2.3: {} lilconfig@3.1.3: {} @@ -4369,11 +4593,15 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - mime-db@1.54.0: {} - - mime-types@3.0.2: + minimatch@10.2.5: dependencies: - mime-db: 1.54.0 + brace-expansion: 5.0.5 + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 mrmime@2.0.1: {} @@ -4395,10 +4623,20 @@ snapshots: node-fetch-native@1.6.7: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.4: {} + node-mock-http@1.0.4: {} node-releases@2.0.36: {} + nopt@8.1.0: + dependencies: + abbrev: 3.0.1 + normalize-path@3.0.0: {} nth-check@2.1.1: @@ -4419,10 +4657,6 @@ snapshots: ohash@2.0.11: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - oniguruma-parser@0.12.1: {} oniguruma-to-es@4.3.5: @@ -4473,6 +4707,15 @@ snapshots: path-parse@1.0.7: {} + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.7 + minipass: 7.1.3 + + path-to-regexp@6.1.0: {} + + path-to-regexp@6.3.0: {} + performance-now@2.1.0: {} piccolore@0.1.3: {} @@ -4547,6 +4790,9 @@ snapshots: property-information@7.1.0: {} + punycode@2.3.1: + optional: true + queue-microtask@1.2.3: {} radix3@1.1.2: {} @@ -4555,8 +4801,6 @@ snapshots: dependencies: performance-now: 2.1.0 - range-parser@1.2.1: {} - react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -4733,6 +4977,8 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 + resolve-from@5.0.0: {} + resolve@1.22.11: dependencies: is-core-module: 2.16.1 @@ -4813,26 +5059,6 @@ snapshots: semver@7.7.4: {} - send@1.2.1: - dependencies: - debug: 4.4.3 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 2.0.0 - http-errors: 2.0.1 - mime-types: 3.0.2 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - server-destroy@1.0.1: {} - - setprototypeof@1.2.0: {} - shallow-equal@3.1.0: {} sharp@0.34.5: @@ -4906,8 +5132,6 @@ snapshots: space-separated-tokens@2.0.2: {} - statuses@2.0.2: {} - stream-replace-string@2.0.0: {} stringify-entities@4.0.4: @@ -4975,6 +5199,14 @@ snapshots: - tsx - yaml + tar@7.5.13: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -4998,7 +5230,7 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} + tr46@0.0.3: {} trim-lines@3.0.1: {} @@ -5093,7 +5325,7 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unstorage@1.17.5: + unstorage@1.17.5(@vercel/functions@3.4.3): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -5103,6 +5335,8 @@ snapshots: node-fetch-native: 1.6.7 ofetch: 1.5.1 ufo: 1.6.3 + optionalDependencies: + '@vercel/functions': 3.4.3 update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: @@ -5110,6 +5344,11 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + optional: true + util-deprecate@1.0.2: {} vfile-location@5.0.3: @@ -5147,12 +5386,21 @@ snapshots: web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-pm-runs@1.1.0: {} xxhash-wasm@1.1.0: {} yallist@3.1.1: {} + yallist@5.0.0: {} + yaml@2.8.3: {} yargs-parser@22.0.0: {} diff --git a/src/pnpm-workspace.yaml b/pnpm-workspace.yaml similarity index 100% rename from src/pnpm-workspace.yaml rename to pnpm-workspace.yaml diff --git a/src/public/blog/breaking-the-chromebook-cage/thumbnail.png b/public/blog/breaking-the-chromebook-cage/thumbnail.png similarity index 100% rename from src/public/blog/breaking-the-chromebook-cage/thumbnail.png rename to public/blog/breaking-the-chromebook-cage/thumbnail.png diff --git a/src/public/blog/my-first-post/thumbnail.png b/public/blog/my-first-post/thumbnail.png similarity index 100% rename from src/public/blog/my-first-post/thumbnail.png rename to public/blog/my-first-post/thumbnail.png diff --git a/src/public/blog/thinkpad-t440p-coreboot-guide/thumbnail.png b/public/blog/thinkpad-t440p-coreboot-guide/thumbnail.png similarity index 100% rename from src/public/blog/thinkpad-t440p-coreboot-guide/thumbnail.png rename to public/blog/thinkpad-t440p-coreboot-guide/thumbnail.png diff --git a/src/public/favicon.svg b/public/favicon.svg similarity index 100% rename from src/public/favicon.svg rename to public/favicon.svg diff --git a/src/public/me.jpeg b/public/me.jpeg similarity index 100% rename from src/public/me.jpeg rename to public/me.jpeg diff --git a/src/public/og-image.jpg b/public/og-image.jpg similarity index 100% rename from src/public/og-image.jpg rename to public/og-image.jpg diff --git a/src/public/pgp.asc b/public/pgp.asc similarity index 100% rename from src/public/pgp.asc rename to public/pgp.asc diff --git a/src/public/projects/darkbox/thumbnail.jpeg b/public/projects/darkbox/thumbnail.jpeg similarity index 100% rename from src/public/projects/darkbox/thumbnail.jpeg rename to public/projects/darkbox/thumbnail.jpeg diff --git a/src/public/projects/fhccenter/thumbnail.jpeg b/public/projects/fhccenter/thumbnail.jpeg similarity index 100% rename from src/public/projects/fhccenter/thumbnail.jpeg rename to public/projects/fhccenter/thumbnail.jpeg diff --git a/src/public/projects/iridescent/thumbnail.jpeg b/public/projects/iridescent/thumbnail.jpeg similarity index 100% rename from src/public/projects/iridescent/thumbnail.jpeg rename to public/projects/iridescent/thumbnail.jpeg diff --git a/src/public/projects/reviveauto/thumbnail.jpeg b/public/projects/reviveauto/thumbnail.jpeg similarity index 100% rename from src/public/projects/reviveauto/thumbnail.jpeg rename to public/projects/reviveauto/thumbnail.jpeg diff --git a/src/public/projects/web/thumbnail.jpeg b/public/projects/web/thumbnail.jpeg similarity index 100% rename from src/public/projects/web/thumbnail.jpeg rename to public/projects/web/thumbnail.jpeg diff --git a/public/scripts b/public/scripts new file mode 160000 index 0000000..cf15115 --- /dev/null +++ b/public/scripts @@ -0,0 +1 @@ +Subproject commit cf1511573134eab3eb4ebbe79340580bba47097e diff --git a/src/sandbox.config.json b/sandbox.config.json similarity index 100% rename from src/sandbox.config.json rename to sandbox.config.json diff --git a/src/README.md b/src/README.md deleted file mode 100644 index 16270da..0000000 --- a/src/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Astro with Tailwind - -``` -npm init astro -- --template with-tailwindcss -``` - -[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/with-tailwindcss) - -Astro comes with [Tailwind](https://tailwindcss.com) support out of the box. This example showcases how to style your Astro project with Tailwind. - -For complete setup instructions, please see our [Styling Guide](https://docs.astro.build/guides/styling#-tailwind). diff --git a/src/src/components/404/glitched-text.tsx b/src/components/404/glitched-text.tsx similarity index 100% rename from src/src/components/404/glitched-text.tsx rename to src/components/404/glitched-text.tsx diff --git a/src/src/components/about/current-focus.tsx b/src/components/about/current-focus.tsx similarity index 100% rename from src/src/components/about/current-focus.tsx rename to src/components/about/current-focus.tsx diff --git a/src/src/components/about/intro.tsx b/src/components/about/intro.tsx similarity index 100% rename from src/src/components/about/intro.tsx rename to src/components/about/intro.tsx diff --git a/src/src/components/about/outside-coding.tsx b/src/components/about/outside-coding.tsx similarity index 100% rename from src/src/components/about/outside-coding.tsx rename to src/components/about/outside-coding.tsx diff --git a/src/src/components/about/stats-activity.tsx b/src/components/about/stats-activity.tsx similarity index 100% rename from src/src/components/about/stats-activity.tsx rename to src/components/about/stats-activity.tsx diff --git a/src/src/components/about/stats-alltime.tsx b/src/components/about/stats-alltime.tsx similarity index 100% rename from src/src/components/about/stats-alltime.tsx rename to src/components/about/stats-alltime.tsx diff --git a/src/src/components/about/stats-detailed.tsx b/src/components/about/stats-detailed.tsx similarity index 100% rename from src/src/components/about/stats-detailed.tsx rename to src/components/about/stats-detailed.tsx diff --git a/src/src/components/about/timeline.tsx b/src/components/about/timeline.tsx similarity index 100% rename from src/src/components/about/timeline.tsx rename to src/components/about/timeline.tsx diff --git a/src/src/components/animate-in.tsx b/src/components/animate-in.tsx similarity index 100% rename from src/src/components/animate-in.tsx rename to src/components/animate-in.tsx diff --git a/src/src/components/animation-switcher/index.tsx b/src/components/animation-switcher/index.tsx similarity index 100% rename from src/src/components/animation-switcher/index.tsx rename to src/components/animation-switcher/index.tsx diff --git a/src/src/components/background/engines/asciiquarium.ts b/src/components/background/engines/asciiquarium.ts similarity index 100% rename from src/src/components/background/engines/asciiquarium.ts rename to src/components/background/engines/asciiquarium.ts diff --git a/src/src/components/background/engines/confetti.ts b/src/components/background/engines/confetti.ts similarity index 100% rename from src/src/components/background/engines/confetti.ts rename to src/components/background/engines/confetti.ts diff --git a/src/src/components/background/engines/game-of-life.ts b/src/components/background/engines/game-of-life.ts similarity index 100% rename from src/src/components/background/engines/game-of-life.ts rename to src/components/background/engines/game-of-life.ts diff --git a/src/src/components/background/engines/lava-lamp.ts b/src/components/background/engines/lava-lamp.ts similarity index 100% rename from src/src/components/background/engines/lava-lamp.ts rename to src/components/background/engines/lava-lamp.ts diff --git a/src/src/components/background/engines/pipes.ts b/src/components/background/engines/pipes.ts similarity index 100% rename from src/src/components/background/engines/pipes.ts rename to src/components/background/engines/pipes.ts diff --git a/src/src/components/background/engines/shuffle.ts b/src/components/background/engines/shuffle.ts similarity index 100% rename from src/src/components/background/engines/shuffle.ts rename to src/components/background/engines/shuffle.ts diff --git a/src/src/components/background/index.tsx b/src/components/background/index.tsx similarity index 100% rename from src/src/components/background/index.tsx rename to src/components/background/index.tsx diff --git a/src/src/components/blog/comments.tsx b/src/components/blog/comments.tsx similarity index 100% rename from src/src/components/blog/comments.tsx rename to src/components/blog/comments.tsx diff --git a/src/src/components/blog/header.tsx b/src/components/blog/header.tsx similarity index 100% rename from src/src/components/blog/header.tsx rename to src/components/blog/header.tsx diff --git a/src/src/components/blog/post-list.tsx b/src/components/blog/post-list.tsx similarity index 100% rename from src/src/components/blog/post-list.tsx rename to src/components/blog/post-list.tsx diff --git a/src/src/components/blog/tag-list.tsx b/src/components/blog/tag-list.tsx similarity index 100% rename from src/src/components/blog/tag-list.tsx rename to src/components/blog/tag-list.tsx diff --git a/src/src/components/footer/index.tsx b/src/components/footer/index.tsx similarity index 100% rename from src/src/components/footer/index.tsx rename to src/components/footer/index.tsx diff --git a/src/src/components/footer/links.ts b/src/components/footer/links.ts similarity index 86% rename from src/src/components/footer/links.ts rename to src/components/footer/links.ts index 5b79ba9..fdebd08 100644 --- a/src/src/components/footer/links.ts +++ b/src/components/footer/links.ts @@ -8,7 +8,7 @@ interface FooterLink { export const Links: FooterLink[] = [ { id: 0, href: "mailto:contact@timmypidashev.dev", label: "Contact", color: "text-green" }, { id: 1, href: "https://github.com/timmypidashev", label: "Github", color: "text-yellow" }, - { id: 3, href: "https://www.linkedin.com/in/timothy-pidashev-4353812b8", label: "Linkedin", color: "text-blue" }, + { id: 3, href: "https://www.linkedin.com/in/timothy-pidashev-4353812b8", label: "LinkedIn", color: "text-blue" }, { id: 4, href: "https://github.com/timmypidashev/web", label: "Source", color: "text-purple" }, - { id: 5, href: "https://github.com/timmypidashev/web/releases", label: "v2", color: "text-aqua" } + { id: 5, href: "https://github.com/timmypidashev/web/releases", label: "v3", color: "text-aqua" } ]; diff --git a/src/src/components/header/index.tsx b/src/components/header/index.tsx similarity index 100% rename from src/src/components/header/index.tsx rename to src/components/header/index.tsx diff --git a/src/src/components/header/links.ts b/src/components/header/links.ts similarity index 100% rename from src/src/components/header/links.ts rename to src/components/header/links.ts diff --git a/src/src/components/hero/index.tsx b/src/components/hero/index.tsx similarity index 100% rename from src/src/components/hero/index.tsx rename to src/components/hero/index.tsx diff --git a/src/src/components/mdx/command.tsx b/src/components/mdx/command.tsx similarity index 100% rename from src/src/components/mdx/command.tsx rename to src/components/mdx/command.tsx diff --git a/src/src/components/mdx/video.tsx b/src/components/mdx/video.tsx similarity index 100% rename from src/src/components/mdx/video.tsx rename to src/components/mdx/video.tsx diff --git a/src/src/components/projects/project-list.tsx b/src/components/projects/project-list.tsx similarity index 100% rename from src/src/components/projects/project-list.tsx rename to src/components/projects/project-list.tsx diff --git a/src/src/components/resume/index.tsx b/src/components/resume/index.tsx similarity index 100% rename from src/src/components/resume/index.tsx rename to src/components/resume/index.tsx diff --git a/src/src/components/theme-switcher/index.tsx b/src/components/theme-switcher/index.tsx similarity index 100% rename from src/src/components/theme-switcher/index.tsx rename to src/components/theme-switcher/index.tsx diff --git a/src/src/content.config.ts b/src/content.config.ts similarity index 100% rename from src/src/content.config.ts rename to src/content.config.ts diff --git a/src/src/content/blog/breaking-the-chromebook-cage.mdx b/src/content/blog/breaking-the-chromebook-cage.mdx similarity index 100% rename from src/src/content/blog/breaking-the-chromebook-cage.mdx rename to src/content/blog/breaking-the-chromebook-cage.mdx diff --git a/src/src/content/blog/components/my-first-post/cookie.tsx b/src/content/blog/components/my-first-post/cookie.tsx similarity index 100% rename from src/src/content/blog/components/my-first-post/cookie.tsx rename to src/content/blog/components/my-first-post/cookie.tsx diff --git a/src/src/content/blog/components/thinkpad-t440p-coreboot-guide/advertisement.tsx b/src/content/blog/components/thinkpad-t440p-coreboot-guide/advertisement.tsx similarity index 100% rename from src/src/content/blog/components/thinkpad-t440p-coreboot-guide/advertisement.tsx rename to src/content/blog/components/thinkpad-t440p-coreboot-guide/advertisement.tsx diff --git a/src/src/content/blog/json-as-machine-code.keep b/src/content/blog/json-as-machine-code.keep similarity index 100% rename from src/src/content/blog/json-as-machine-code.keep rename to src/content/blog/json-as-machine-code.keep diff --git a/src/src/content/blog/my-first-post.mdx b/src/content/blog/my-first-post.mdx similarity index 100% rename from src/src/content/blog/my-first-post.mdx rename to src/content/blog/my-first-post.mdx diff --git a/src/src/content/blog/the-unforeseen-future-of-ai-driven-development.keep b/src/content/blog/the-unforeseen-future-of-ai-driven-development.keep similarity index 100% rename from src/src/content/blog/the-unforeseen-future-of-ai-driven-development.keep rename to src/content/blog/the-unforeseen-future-of-ai-driven-development.keep diff --git a/src/src/content/blog/thinkpad-t440p-coreboot-guide.mdx b/src/content/blog/thinkpad-t440p-coreboot-guide.mdx similarity index 100% rename from src/src/content/blog/thinkpad-t440p-coreboot-guide.mdx rename to src/content/blog/thinkpad-t440p-coreboot-guide.mdx diff --git a/src/src/content/projects/darkbox.mdx b/src/content/projects/darkbox.mdx similarity index 100% rename from src/src/content/projects/darkbox.mdx rename to src/content/projects/darkbox.mdx diff --git a/src/src/content/projects/fhccenter.mdx b/src/content/projects/fhccenter.mdx similarity index 100% rename from src/src/content/projects/fhccenter.mdx rename to src/content/projects/fhccenter.mdx diff --git a/src/src/content/projects/iridescent.mdx b/src/content/projects/iridescent.mdx similarity index 100% rename from src/src/content/projects/iridescent.mdx rename to src/content/projects/iridescent.mdx diff --git a/src/src/content/projects/reviveauto.mdx b/src/content/projects/reviveauto.mdx similarity index 100% rename from src/src/content/projects/reviveauto.mdx rename to src/content/projects/reviveauto.mdx diff --git a/src/src/content/projects/web.mdx b/src/content/projects/web.mdx similarity index 100% rename from src/src/content/projects/web.mdx rename to src/content/projects/web.mdx diff --git a/src/src/env.d.ts b/src/env.d.ts similarity index 100% rename from src/src/env.d.ts rename to src/env.d.ts diff --git a/src/src/layouts/content.astro b/src/layouts/content.astro similarity index 100% rename from src/src/layouts/content.astro rename to src/layouts/content.astro diff --git a/src/src/layouts/index.astro b/src/layouts/index.astro similarity index 100% rename from src/src/layouts/index.astro rename to src/layouts/index.astro diff --git a/src/src/layouts/resource.astro b/src/layouts/resource.astro similarity index 100% rename from src/src/layouts/resource.astro rename to src/layouts/resource.astro diff --git a/src/src/lib/animations/engine.ts b/src/lib/animations/engine.ts similarity index 100% rename from src/src/lib/animations/engine.ts rename to src/lib/animations/engine.ts diff --git a/src/src/lib/animations/index.ts b/src/lib/animations/index.ts similarity index 100% rename from src/src/lib/animations/index.ts rename to src/lib/animations/index.ts diff --git a/src/src/lib/animations/loader.ts b/src/lib/animations/loader.ts similarity index 100% rename from src/src/lib/animations/loader.ts rename to src/lib/animations/loader.ts diff --git a/src/src/lib/animations/types.ts b/src/lib/animations/types.ts similarity index 100% rename from src/src/lib/animations/types.ts rename to src/lib/animations/types.ts diff --git a/src/src/lib/structuredData.ts b/src/lib/structuredData.ts similarity index 100% rename from src/src/lib/structuredData.ts rename to src/lib/structuredData.ts diff --git a/src/src/lib/themes/engine.ts b/src/lib/themes/engine.ts similarity index 100% rename from src/src/lib/themes/engine.ts rename to src/lib/themes/engine.ts diff --git a/src/src/lib/themes/index.ts b/src/lib/themes/index.ts similarity index 100% rename from src/src/lib/themes/index.ts rename to src/lib/themes/index.ts diff --git a/src/src/lib/themes/loader.ts b/src/lib/themes/loader.ts similarity index 100% rename from src/src/lib/themes/loader.ts rename to src/lib/themes/loader.ts diff --git a/src/src/lib/themes/props.ts b/src/lib/themes/props.ts similarity index 100% rename from src/src/lib/themes/props.ts rename to src/lib/themes/props.ts diff --git a/src/src/lib/themes/types.ts b/src/lib/themes/types.ts similarity index 100% rename from src/src/lib/themes/types.ts rename to src/lib/themes/types.ts diff --git a/src/src/pages/404.astro b/src/pages/404.astro similarity index 100% rename from src/src/pages/404.astro rename to src/pages/404.astro diff --git a/src/src/pages/about.astro b/src/pages/about.astro similarity index 100% rename from src/src/pages/about.astro rename to src/pages/about.astro diff --git a/src/src/pages/api/wakatime/activity.ts b/src/pages/api/wakatime/activity.ts similarity index 100% rename from src/src/pages/api/wakatime/activity.ts rename to src/pages/api/wakatime/activity.ts diff --git a/src/src/pages/api/wakatime/alltime.ts b/src/pages/api/wakatime/alltime.ts similarity index 100% rename from src/src/pages/api/wakatime/alltime.ts rename to src/pages/api/wakatime/alltime.ts diff --git a/src/src/pages/api/wakatime/detailed.ts b/src/pages/api/wakatime/detailed.ts similarity index 100% rename from src/src/pages/api/wakatime/detailed.ts rename to src/pages/api/wakatime/detailed.ts diff --git a/src/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro similarity index 100% rename from src/src/pages/blog/[...slug].astro rename to src/pages/blog/[...slug].astro diff --git a/src/src/pages/blog/index.astro b/src/pages/blog/index.astro similarity index 100% rename from src/src/pages/blog/index.astro rename to src/pages/blog/index.astro diff --git a/src/src/pages/blog/tags/index.astro b/src/pages/blog/tags/index.astro similarity index 100% rename from src/src/pages/blog/tags/index.astro rename to src/pages/blog/tags/index.astro diff --git a/src/src/pages/index.astro b/src/pages/index.astro similarity index 100% rename from src/src/pages/index.astro rename to src/pages/index.astro diff --git a/src/src/pages/projects/[...slug].astro b/src/pages/projects/[...slug].astro similarity index 100% rename from src/src/pages/projects/[...slug].astro rename to src/pages/projects/[...slug].astro diff --git a/src/src/pages/projects/index.astro b/src/pages/projects/index.astro similarity index 100% rename from src/src/pages/projects/index.astro rename to src/pages/projects/index.astro diff --git a/src/src/pages/resume.astro b/src/pages/resume.astro similarity index 100% rename from src/src/pages/resume.astro rename to src/pages/resume.astro diff --git a/src/src/pages/robots.txt.ts b/src/pages/robots.txt.ts similarity index 100% rename from src/src/pages/robots.txt.ts rename to src/pages/robots.txt.ts diff --git a/src/src/pages/rss.ts b/src/pages/rss.ts similarity index 100% rename from src/src/pages/rss.ts rename to src/pages/rss.ts diff --git a/src/public/scripts b/src/public/scripts deleted file mode 160000 index b555dc1..0000000 --- a/src/public/scripts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b555dc1e109f7cebc57b88b798b0e1ac0733dfb4 diff --git a/src/src/style/comments.css b/src/style/comments.css similarity index 100% rename from src/src/style/comments.css rename to src/style/comments.css diff --git a/src/src/style/globals.css b/src/style/globals.css similarity index 100% rename from src/src/style/globals.css rename to src/style/globals.css diff --git a/src/tailwind.config.cjs b/tailwind.config.cjs similarity index 100% rename from src/tailwind.config.cjs rename to tailwind.config.cjs diff --git a/src/tsconfig.json b/tsconfig.json similarity index 100% rename from src/tsconfig.json rename to tsconfig.json