diff --git a/.npmrc b/.npmrc index 5f0431d..8b94f8f 100644 --- a/.npmrc +++ b/.npmrc @@ -12,5 +12,5 @@ package-manager-strict=true ## Don't use `use-node-version`! It causes redundant Node.js downloads which slows down the docker image build. ## @see https://github.com/orgs/pnpm/discussions/7140 ##use-node-version=20.15.1 -node-version=20.15.1 -recursive-install=true \ No newline at end of file +node-version=20.19.3 +recursive-install=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 3c7686e..074eb64 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,7 +1,6 @@ { "recommendations": [ "redhat.vscode-yaml", - "elixir-lsp.elixir-ls", "jetify.devbox", "redhat.ansible", "dotjoshjohnson.xml" diff --git a/.vscode/settings.json b/.vscode/settings.json index b625447..ca8dfaf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,5 @@ "https://json.schemastore.org/kustomization.json": "file:///home/cj/Documents/futureporn-monorepo/clusters/production/infrastructure.yaml" }, "editor.tabSize": 2, - "elixirLS.projectDir": "apps/bright", - "editor.formatOnSave": true, - "elixirLS.useCurrentRootFolderAsProjectDir": true + "editor.formatOnSave": true } \ No newline at end of file diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg index eaa3cc6..1ab5ce6 100644 --- a/ansible/ansible.cfg +++ b/ansible/ansible.cfg @@ -3,4 +3,5 @@ inventory = ./inventory/terraform.yml private_key_file = ~/.ssh/futureporn2025 remote_user = root -interpreter_python=auto_silent \ No newline at end of file +interpreter_python=auto_silent +nocows = 1 \ No newline at end of file diff --git a/ansible/requirements.yml b/ansible/requirements.yml index 6fa5fd5..197e362 100644 --- a/ansible/requirements.yml +++ b/ansible/requirements.yml @@ -6,3 +6,6 @@ collections: - name: gluster.gluster roles: - name: nvjacobo.caddy + - name: geerlingguy.nodejs + - name: artis3n.tailscale + - name: bpbradley.komodo \ No newline at end of file diff --git a/ansible/roles/bootstrap/tasks/main.yml b/ansible/roles/bootstrap/tasks/main.yml index 5e39fff..1fda1c6 100644 --- a/ansible/roles/bootstrap/tasks/main.yml +++ b/ansible/roles/bootstrap/tasks/main.yml @@ -1,5 +1,9 @@ --- +## @warning Do not edit this file! It's probably right, and you're probably doing something wrong! +## If you're seeing interactive host auth checks prompts while running ansible-playbook, +## you're probably skipping over this role! Don't skip it! + ## @see https://gist.github.com/shirou/6928012 ## @todo known_hosts.py has a `add_host_key` function. Could we use that instead of this shell script? - name: Scan for SSH host keys. @@ -12,8 +16,8 @@ until: ssh_scan.rc == 0 -# - debug: -# var: ssh_scan +- debug: + var: ssh_scan - name: Update known_hosts. ansible.builtin.known_hosts: diff --git a/ansible/roles/common/tasks/main.yml b/ansible/roles/common/tasks/main.yml index 9b10313..f145d7e 100644 --- a/ansible/roles/common/tasks/main.yml +++ b/ansible/roles/common/tasks/main.yml @@ -1,6 +1,5 @@ --- - - name: Install apt packages ansible.builtin.apt: name: @@ -12,6 +11,7 @@ - ncdu - pipx - fd-find + update_cache: yes state: present - name: Download Docker installer @@ -25,7 +25,6 @@ args: creates: /usr/bin/docker - - name: Clone dotfiles repository ansible.builtin.git: repo: https://github.com/insanity54/dotfiles diff --git a/ansible/roles/database/tasks/main.yml b/ansible/roles/database/tasks/main.yml index 98b9d8e..3471416 100644 --- a/ansible/roles/database/tasks/main.yml +++ b/ansible/roles/database/tasks/main.yml @@ -1,30 +1,179 @@ --- -- name: Setup volume - community.docker.docker_volume: - name: pg_data -- name: Setup docker container - community.docker.docker_container: - name: bright - image: postgres:16 - pull: missing +- name: Install apt packages + ansible.builtin.apt: + name: + - python3-psycopg2 + update_cache: yes + state: present + + +- name: Ensure required packages are installed + apt: + name: + - curl + - ca-certificates + - postgresql-common + state: present + update_cache: yes + +- name: Create directory for PostgreSQL apt key + file: + path: /usr/share/postgresql-common/pgdg + state: directory + mode: '0755' + +- name: Download PostgreSQL signing key + get_url: + url: https://www.postgresql.org/media/keys/ACCC4CF8.asc + dest: /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc + mode: '0644' + +- name: Add PostgreSQL APT repository + apt_repository: + repo: "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main" + filename: "pgdg" + state: present + update_cache: yes + +- name: Update apt cache + apt: + update_cache: yes + +- name: Install PostgreSQL 16 + apt: + name: postgresql-16 + state: present + +- name: Start postgres + ansible.builtin.systemd_service: + name: postgresql@16-main state: started - ports: - - "5432:5432" - env: - POSTGRES_USER: "postgres" - POSTGRES_DB: "bright" - POSTGRES_PASSWORD: "{{ lookup('dotenv', 'DB_PASS', file='../.env') }}" - mounts: - - type: volume - target: "/var/lib/postgresql/data" - source: "pg_data" + enabled: true -- name: Allow VPC2.0 network access +- name: Create a new database with name "future_porn" + community.postgresql.postgresql_db: + name: future_porn + become: true + become_user: postgres + +- name: Create postgres user and set password + community.postgresql.postgresql_user: + name: postgres + password: "{{ lookup('dotenv', 'DB_PASSWORD', file='../../../.env.production') }}" + expires: infinity + become: true + become_user: postgres + +- name: Grant privs + community.postgresql.postgresql_privs: + login_db: "{{ lookup('dotenv', 'DB_NAME', file='../../../.env.production') }}" + roles: "{{ lookup('dotenv', 'DB_USER', file='../../../.env.production') }}" + type: schema + objs: public + privs: ALL + become: true + become_user: postgres + + +- name: Allow access on Vultr VPC subnet + community.postgresql.postgresql_pg_hba: + dest: /etc/postgresql/16/main/pg_hba.conf + contype: host + users: all + databases: all + method: scram-sha-256 + source: 10.2.112.0/20 + keep_comments_at_rules: true + comment: "Vultr VPC" + +- name: set listen_addresses + community.postgresql.postgresql_alter_system: + param: listen_addresses + value: '*' + become: true + become_user: postgres + +- name: set port + community.postgresql.postgresql_alter_system: + param: port + value: '5432' + become: true + become_user: postgres + + +# - name: Setup volume +# community.docker.docker_volume: +# name: pg_data + +# - name: Setup docker container +# community.docker.docker_container: +# name: postgres +# image: postgres:16 +# pull: missing +# state: started +# ports: +# - "0.0.0.0:5432:5432" +# env: +# POSTGRES_USER: "{{ lookup('dotenv', 'DB_USER', file='../../../../.env.production') }}" +# POSTGRES_DB: "{{ lookup('dotenv', 'DB_PASSWORD', file='../../../../.env.production') }}" +# POSTGRES_PASSWORD: "{{ lookup('dotenv', 'DB_PASSWORD', file='../../../../.env.production') }}" +# mounts: +# - type: volume +# target: "/var/lib/postgresql/data" +# source: "pg_data" + +- name: Set default UFW policy to deny incoming + community.general.ufw: + state: enabled + policy: deny + direction: incoming + +- name: Allow /20 subnet access for VPC community.general.ufw: rule: allow port: '5432' proto: tcp - from: 10.2.128.0/20 + from: 10.2.112.0/20 + + + +# sudo ufw default deny incoming + +# - name: start pgweb +# community.docker.docker_container: +# name: pgweb +# image: sosedoff/pgweb:latest +# pull: missing +# state: started +# ports: +# - "8091:8091" +# env: +# POSTGRES_USER: "postgres" +# POSTGRES_DB: "our" +# POSTGRES_PASSWORD: "{{ lookup('dotenv', 'DB_PASSWORD', file='../../../../.env.production') }}" +# PGWEB_DATABASE_URL: "postgres://{{lookup('dotenv', 'DB_USER', file='../../../../.env.production'):{{lookup('dotenv', 'DB_PASSWORD', file='../../../../.env.production')@postgres:}}}}" +# mounts: +# - type: volume +# target: "/var/lib/postgresql/data" +# source: "pg_data" + + +# pgweb: +# container_name: out-pgweb +# image: sosedoff/pgweb +# depends_on: +# postgres: +# condition: service_healthy +# environment: +# PGWEB_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_NAME}?sslmode=disable +# ports: +# - "8091:8081" +# healthcheck: +# test: ["CMD", "curl", "-f", "http://localhost:8081"] +# interval: 10s +# retries: 5 +# start_period: 10s +# timeout: 10s \ No newline at end of file diff --git a/ansible/roles/load_balancer/templates/Caddyfile.j2 b/ansible/roles/load_balancer/templates/Caddyfile.j2 index ec76bfc..c8a386e 100644 --- a/ansible/roles/load_balancer/templates/Caddyfile.j2 +++ b/ansible/roles/load_balancer/templates/Caddyfile.j2 @@ -1,15 +1,15 @@ -bright.futureporn.net { +future.porn { root * /usr/share/futureporn file_server # Define the upstream servers for load balancing - reverse_proxy {% for host in groups['bright'] %}{{ hostvars[host]['internal_ip'] }}:4000 {% endfor %} { + reverse_proxy {% for host in groups['our'] %}{{ hostvars[host]['internal_ip'] }}:{{our_server_port}} {% endfor %} { # Load balancing policy (optional, defaults to "random") lb_policy round_robin # Health checks (optional) - health_uri /api/health + health_uri /health health_interval 10s health_timeout 5s } @@ -19,4 +19,5 @@ bright.futureporn.net { } -} \ No newline at end of file +} + diff --git a/ansible/site.yml b/ansible/site.yml index 33774c6..4451b06 100644 --- a/ansible/site.yml +++ b/ansible/site.yml @@ -1,7 +1,7 @@ --- - name: Bootstrap - hosts: all + hosts: our gather_facts: false ## required because ansible_host may not have python check_mode: false become: false @@ -9,26 +9,49 @@ - bootstrap - name: Assert common dependencies - hosts: all + hosts: our gather_facts: true check_mode: false become: true roles: - common -- name: Set up IPFS - hosts: ipfs - gather_facts: true - roles: - - ipfs - -- name: Assert Capture dependencies - hosts: capture +- name: Assert our dependencies + hosts: our gather_facts: true check_mode: false - become: false + become: true roles: - - capture + - our + + +- name: Install Komodo Service + hosts: our + vars_files: + - vars/main.yml + vars: + komodo_allowed_ips: "[\"::ffff:{{ lookup('dotenv', 'KOMODO_ALLOWED_IPS', file='../.env.production') }}\"]" + + roles: + - role: bpbradley.komodo + komodo_action: "install" + komodo_version: "latest" + komodo_passkeys: "{{ lookup('dotenv', 'KOMODO_PASSKEYS', file='../.env.production') }}" + komodo_core_url: "{{ lookup('dotenv', 'KOMODO_CORE_URL', file='../.env.production') }}" + komodo_core_api_key: "{{ lookup('dotenv', 'KOMODO_CORE_API_KEY', file='../.env.production') }}" + komodo_core_api_secret: "{{ lookup('dotenv', 'KOMODO_CORE_API_SECRET', file='../.env.production') }}" + enable_server_management: true + tasks: + - name: debug + ansible.builtin.debug: + msg: + komodo_allowed_ips: "{{ komodo_allowed_ips }}" + - name: Allow port 8120 TCP from Komodo core + community.general.ufw: + rule: allow + port: "8120" + proto: tcp + from_ip: "{{ lookup('dotenv', 'KOMODO_ALLOWED_IPS', file='../.env.production') }}" - name: Configure database hosts: database @@ -37,22 +60,30 @@ become: false roles: - database + tags: + - database -- name: Configure tracker - hosts: tracker +- name: Configure Our Server + hosts: our-server gather_facts: true check_mode: false become: false + tags: + - our-server roles: - - tracker + - geerlingguy.nodejs + - our-server -- name: Configure Bright - hosts: bright +- name: Configure Our Worker + hosts: our-worker gather_facts: true check_mode: false become: false + tags: + - our-worker roles: - - bright + - geerlingguy.nodejs + - our-worker - name: Configure load balancer hosts: load_balancer @@ -61,4 +92,36 @@ become: false roles: - load_balancer + vars_files: + - vars/main.yml + tags: + - lb + + +- name: Set up IPFS + hosts: ipfs + gather_facts: true + roles: + - ipfs + tags: + - capture + - ipfs + +- name: Install Capture instance + hosts: capture + gather_facts: true + check_mode: false + become: false + roles: + - capture + tags: + - capture + +# - name: Configure tracker +# hosts: tracker +# gather_facts: true +# check_mode: false +# become: false +# roles: +# - tracker diff --git a/apps/vibeui/best.pt b/apps/vibeui/best.pt deleted file mode 100644 index 9edc264..0000000 Binary files a/apps/vibeui/best.pt and /dev/null differ diff --git a/packages/scripts/kind-with-local-registry.sh b/packages/scripts/kind-with-local-registry.sh index 7bbd715..bda538e 100755 --- a/packages/scripts/kind-with-local-registry.sh +++ b/packages/scripts/kind-with-local-registry.sh @@ -16,7 +16,7 @@ reg_name='kind-registry' reg_port='5001' if [ "$(docker inspect -f '{{.State.Running}}' "${reg_name}" 2>/dev/null || true)" != 'true' ]; then docker run \ - -d --restart=always -p "127.0.0.1:${reg_port}:5000" --network bridge --name "${reg_name}" \ + -d --restart=always -p "127.0.0.1:${reg_port}:3000" --network bridge --name "${reg_name}" \ registry:2 fi diff --git a/packages/scripts/thumbnail-generator.sh b/packages/scripts/thumbnail-generator.sh old mode 100644 new mode 100755 diff --git a/packages/utils/pnpm-lock.yaml b/packages/utils/pnpm-lock.yaml index a351ac2..f7d710c 100644 --- a/packages/utils/pnpm-lock.yaml +++ b/packages/utils/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 2.2.2 '@types/node': specifier: ^22.5.2 - version: 22.5.2 + version: 22.16.3 '@types/slug': specifier: ^5.0.9 version: 5.0.9 p-retry: specifier: ^6.2.0 - version: 6.2.0 + version: 6.2.1 prevvy: specifier: ^8.0.1 version: 8.0.1 @@ -32,22 +32,22 @@ importers: devDependencies: '@types/chai': specifier: ^4.3.19 - version: 4.3.19 + version: 4.3.20 '@types/mocha': specifier: ^10.0.7 - version: 10.0.7 + version: 10.0.10 chai: specifier: ^5.1.1 - version: 5.1.1 + version: 5.2.1 mocha: specifier: ^10.7.3 - version: 10.7.3 + version: 10.8.2 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.5.2)(typescript@5.5.4) + version: 10.9.2(@types/node@22.16.3)(typescript@5.8.3) tsx: specifier: ^4.19.0 - version: 4.19.0 + version: 4.20.3 packages: @@ -55,149 +55,161 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/runtime@1.4.4': + resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + '@esbuild/aix-ppc64@0.25.6': + resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + '@esbuild/android-arm64@0.25.6': + resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + '@esbuild/android-arm@0.25.6': + resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + '@esbuild/android-x64@0.25.6': + resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + '@esbuild/darwin-arm64@0.25.6': + resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + '@esbuild/darwin-x64@0.25.6': + resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + '@esbuild/freebsd-arm64@0.25.6': + resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + '@esbuild/freebsd-x64@0.25.6': + resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + '@esbuild/linux-arm64@0.25.6': + resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + '@esbuild/linux-arm@0.25.6': + resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + '@esbuild/linux-ia32@0.25.6': + resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + '@esbuild/linux-loong64@0.25.6': + resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + '@esbuild/linux-mips64el@0.25.6': + resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + '@esbuild/linux-ppc64@0.25.6': + resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + '@esbuild/linux-riscv64@0.25.6': + resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + '@esbuild/linux-s390x@0.25.6': + resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + '@esbuild/linux-x64@0.25.6': + resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + '@esbuild/netbsd-arm64@0.25.6': + resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.6': + resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + '@esbuild/openbsd-arm64@0.25.6': + resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + '@esbuild/openbsd-x64@0.25.6': + resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + '@esbuild/openharmony-arm64@0.25.6': + resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.6': + resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + '@esbuild/win32-arm64@0.25.6': + resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + '@esbuild/win32-ia32@0.25.6': + resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + '@esbuild/win32-x64@0.25.6': + resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -311,14 +323,14 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@noble/hashes@1.5.0': - resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} '@paralleldrive/cuid2@2.2.2': @@ -336,29 +348,29 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/chai@4.3.19': - resolution: {integrity: sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==} + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/fluent-ffmpeg@2.1.26': - resolution: {integrity: sha512-0JVF3wdQG+pN0ImwWD0bNgJiKF2OHg/7CDBHw5UIbRTvlnkgGHK6V5doE54ltvhud4o31/dEiHm23CAlxFiUQg==} + '@types/fluent-ffmpeg@2.1.27': + resolution: {integrity: sha512-QiDWjihpUhriISNoBi2hJBRUUmoj/BMTYcfz+F+ZM9hHWBYABFAE6hjP/TbCZC0GWwlpa3FzvHH9RzFeRusZ7A==} - '@types/luxon@3.4.2': - resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==} + '@types/luxon@3.6.2': + resolution: {integrity: sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw==} - '@types/mocha@10.0.7': - resolution: {integrity: sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==} + '@types/mocha@10.0.10': + resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@20.16.3': - resolution: {integrity: sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ==} + '@types/node@20.19.7': + resolution: {integrity: sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==} - '@types/node@22.5.2': - resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} + '@types/node@22.16.3': + resolution: {integrity: sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==} '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} @@ -366,12 +378,12 @@ packages: '@types/slug@5.0.9': resolution: {integrity: sha512-6Yp8BSplP35Esa/wOG1wLNKiqXevpQTEF/RcL/NV6BBQaMmZh4YlDwCgrrFSoUE4xAGvnKd5c+lkQJmPrBAzfQ==} - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -411,8 +423,8 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -425,9 +437,9 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} - engines: {node: '>=12'} + chai@5.2.1: + resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} + engines: {node: '>=18'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -461,12 +473,12 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -482,8 +494,8 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} diff@4.0.2: @@ -497,8 +509,8 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + esbuild@0.25.6: + resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} engines: {node: '>=18'} hasBin: true @@ -529,6 +541,7 @@ packages: fluent-ffmpeg@2.1.3: resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==} engines: {node: '>=18'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -542,15 +555,12 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-tsconfig@4.8.0: - resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -634,8 +644,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - loupe@3.1.1: - resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} luxon@1.28.1: resolution: {integrity: sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==} @@ -654,14 +664,11 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - mocha@10.7.3: - resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} + mocha@10.8.2: + resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} engines: {node: '>= 14.0.0'} hasBin: true - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -688,8 +695,8 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + p-retry@6.2.1: + resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} path-exists@4.0.0: @@ -704,8 +711,8 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} picomatch@2.3.1: @@ -736,8 +743,8 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} hasBin: true @@ -809,21 +816,21 @@ packages: '@swc/wasm': optional: true - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.19.0: - resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==} + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} engines: {node: '>=18.0.0'} hasBin: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -877,81 +884,87 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/runtime@1.2.0': + '@emnapi/runtime@1.4.4': dependencies: - tslib: 2.7.0 + tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.23.1': + '@esbuild/aix-ppc64@0.25.6': optional: true - '@esbuild/android-arm64@0.23.1': + '@esbuild/android-arm64@0.25.6': optional: true - '@esbuild/android-arm@0.23.1': + '@esbuild/android-arm@0.25.6': optional: true - '@esbuild/android-x64@0.23.1': + '@esbuild/android-x64@0.25.6': optional: true - '@esbuild/darwin-arm64@0.23.1': + '@esbuild/darwin-arm64@0.25.6': optional: true - '@esbuild/darwin-x64@0.23.1': + '@esbuild/darwin-x64@0.25.6': optional: true - '@esbuild/freebsd-arm64@0.23.1': + '@esbuild/freebsd-arm64@0.25.6': optional: true - '@esbuild/freebsd-x64@0.23.1': + '@esbuild/freebsd-x64@0.25.6': optional: true - '@esbuild/linux-arm64@0.23.1': + '@esbuild/linux-arm64@0.25.6': optional: true - '@esbuild/linux-arm@0.23.1': + '@esbuild/linux-arm@0.25.6': optional: true - '@esbuild/linux-ia32@0.23.1': + '@esbuild/linux-ia32@0.25.6': optional: true - '@esbuild/linux-loong64@0.23.1': + '@esbuild/linux-loong64@0.25.6': optional: true - '@esbuild/linux-mips64el@0.23.1': + '@esbuild/linux-mips64el@0.25.6': optional: true - '@esbuild/linux-ppc64@0.23.1': + '@esbuild/linux-ppc64@0.25.6': optional: true - '@esbuild/linux-riscv64@0.23.1': + '@esbuild/linux-riscv64@0.25.6': optional: true - '@esbuild/linux-s390x@0.23.1': + '@esbuild/linux-s390x@0.25.6': optional: true - '@esbuild/linux-x64@0.23.1': + '@esbuild/linux-x64@0.25.6': optional: true - '@esbuild/netbsd-x64@0.23.1': + '@esbuild/netbsd-arm64@0.25.6': optional: true - '@esbuild/openbsd-arm64@0.23.1': + '@esbuild/netbsd-x64@0.25.6': optional: true - '@esbuild/openbsd-x64@0.23.1': + '@esbuild/openbsd-arm64@0.25.6': optional: true - '@esbuild/sunos-x64@0.23.1': + '@esbuild/openbsd-x64@0.25.6': optional: true - '@esbuild/win32-arm64@0.23.1': + '@esbuild/openharmony-arm64@0.25.6': optional: true - '@esbuild/win32-ia32@0.23.1': + '@esbuild/sunos-x64@0.25.6': optional: true - '@esbuild/win32-x64@0.23.1': + '@esbuild/win32-arm64@0.25.6': + optional: true + + '@esbuild/win32-ia32@0.25.6': + optional: true + + '@esbuild/win32-x64@0.25.6': optional: true '@img/sharp-darwin-arm64@0.33.5': @@ -1020,7 +1033,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.4.4 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -1031,18 +1044,18 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.4': {} '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 - '@noble/hashes@1.5.0': {} + '@noble/hashes@1.8.0': {} '@paralleldrive/cuid2@2.2.2': dependencies: - '@noble/hashes': 1.5.0 + '@noble/hashes': 1.8.0 '@tsconfig/node10@1.0.11': {} @@ -1052,39 +1065,39 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@types/chai@4.3.19': {} + '@types/chai@4.3.20': {} '@types/debug@4.1.12': dependencies: - '@types/ms': 0.7.34 + '@types/ms': 2.1.0 - '@types/fluent-ffmpeg@2.1.26': + '@types/fluent-ffmpeg@2.1.27': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.16.3 - '@types/luxon@3.4.2': {} + '@types/luxon@3.6.2': {} - '@types/mocha@10.0.7': {} + '@types/mocha@10.0.10': {} - '@types/ms@0.7.34': {} + '@types/ms@2.1.0': {} - '@types/node@20.16.3': + '@types/node@20.19.7': dependencies: - undici-types: 6.19.8 + undici-types: 6.21.0 - '@types/node@22.5.2': + '@types/node@22.16.3': dependencies: - undici-types: 6.19.8 + undici-types: 6.21.0 '@types/retry@0.12.2': {} '@types/slug@5.0.9': {} - acorn-walk@8.3.3: + acorn-walk@8.3.4: dependencies: - acorn: 8.12.1 + acorn: 8.15.0 - acorn@8.12.1: {} + acorn@8.15.0: {} ansi-colors@4.1.3: {} @@ -1111,7 +1124,7 @@ snapshots: binary-extensions@2.3.0: {} - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -1123,13 +1136,13 @@ snapshots: camelcase@6.3.0: {} - chai@5.1.1: + chai@5.2.1: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.1 - pathval: 2.0.0 + loupe: 3.1.4 + pathval: 2.0.1 chalk@4.1.2: dependencies: @@ -1174,15 +1187,15 @@ snapshots: create-require@1.1.1: {} - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - debug@4.3.6(supports-color@8.1.1): + debug@4.4.1(supports-color@8.1.1): dependencies: - ms: 2.1.2 + ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 @@ -1190,7 +1203,7 @@ snapshots: deep-eql@5.0.2: {} - detect-libc@2.0.3: {} + detect-libc@2.0.4: {} diff@4.0.2: {} @@ -1198,32 +1211,34 @@ snapshots: emoji-regex@8.0.0: {} - esbuild@0.23.1: + esbuild@0.25.6: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 + '@esbuild/aix-ppc64': 0.25.6 + '@esbuild/android-arm': 0.25.6 + '@esbuild/android-arm64': 0.25.6 + '@esbuild/android-x64': 0.25.6 + '@esbuild/darwin-arm64': 0.25.6 + '@esbuild/darwin-x64': 0.25.6 + '@esbuild/freebsd-arm64': 0.25.6 + '@esbuild/freebsd-x64': 0.25.6 + '@esbuild/linux-arm': 0.25.6 + '@esbuild/linux-arm64': 0.25.6 + '@esbuild/linux-ia32': 0.25.6 + '@esbuild/linux-loong64': 0.25.6 + '@esbuild/linux-mips64el': 0.25.6 + '@esbuild/linux-ppc64': 0.25.6 + '@esbuild/linux-riscv64': 0.25.6 + '@esbuild/linux-s390x': 0.25.6 + '@esbuild/linux-x64': 0.25.6 + '@esbuild/netbsd-arm64': 0.25.6 + '@esbuild/netbsd-x64': 0.25.6 + '@esbuild/openbsd-arm64': 0.25.6 + '@esbuild/openbsd-x64': 0.25.6 + '@esbuild/openharmony-arm64': 0.25.6 + '@esbuild/sunos-x64': 0.25.6 + '@esbuild/win32-arm64': 0.25.6 + '@esbuild/win32-ia32': 0.25.6 + '@esbuild/win32-x64': 0.25.6 escalade@3.2.0: {} @@ -1231,7 +1246,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -1264,11 +1279,9 @@ snapshots: get-caller-file@2.0.5: {} - get-func-name@2.0.2: {} - get-stream@8.0.1: {} - get-tsconfig@4.8.0: + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -1336,9 +1349,7 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - loupe@3.1.1: - dependencies: - get-func-name: 2.0.2 + loupe@3.1.4: {} luxon@1.28.1: {} @@ -1350,14 +1361,14 @@ snapshots: minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 - mocha@10.7.3: + mocha@10.8.2: dependencies: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.6.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.4.1(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -1375,8 +1386,6 @@ snapshots: yargs-parser: 20.2.9 yargs-unparser: 2.0.0 - ms@2.1.2: {} - ms@2.1.3: {} normalize-path@3.0.0: {} @@ -1401,7 +1410,7 @@ snapshots: dependencies: p-limit: 3.1.0 - p-retry@6.2.0: + p-retry@6.2.1: dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 @@ -1413,21 +1422,21 @@ snapshots: path-key@4.0.0: {} - pathval@2.0.0: {} + pathval@2.0.1: {} picomatch@2.3.1: {} prevvy@8.0.1: dependencies: '@types/debug': 4.1.12 - '@types/fluent-ffmpeg': 2.1.26 - '@types/luxon': 3.4.2 - '@types/node': 20.16.3 - debug: 4.3.6(supports-color@8.1.1) + '@types/fluent-ffmpeg': 2.1.27 + '@types/luxon': 3.6.2 + '@types/node': 20.19.7 + debug: 4.4.1(supports-color@8.1.1) execa: 8.0.1 fluent-ffmpeg: 2.1.3 luxon: 1.28.1 - typescript: 5.5.4 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -1447,7 +1456,7 @@ snapshots: safe-buffer@5.2.1: {} - semver@7.6.3: {} + semver@7.7.2: {} serialize-javascript@6.0.2: dependencies: @@ -1456,8 +1465,8 @@ snapshots: sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.3 - semver: 7.6.3 + detect-libc: 2.0.4 + semver: 7.7.2 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -1519,37 +1528,37 @@ snapshots: dependencies: is-number: 7.0.0 - ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.4): + ts-node@10.9.2(@types/node@22.16.3)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.5.2 - acorn: 8.12.1 - acorn-walk: 8.3.3 + '@types/node': 22.16.3 + acorn: 8.15.0 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tslib@2.7.0: + tslib@2.8.1: optional: true - tsx@4.19.0: + tsx@4.20.3: dependencies: - esbuild: 0.23.1 - get-tsconfig: 4.8.0 + esbuild: 0.25.6 + get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 - typescript@5.5.4: {} + typescript@5.8.3: {} - undici-types@6.19.8: {} + undici-types@6.21.0: {} v8-compile-cache-lib@3.0.1: {} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d62f8bb..89161f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: packages: - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} ansi-regex@4.1.1: @@ -203,9 +203,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -213,14 +210,15 @@ packages: require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} @@ -257,8 +255,8 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} types@0.1.1: resolution: {integrity: sha512-JuntZtJj4MKLE9x/XBs7IjsznYhzETwr34pw3XJTKvgYtAMdeMG+o8x8U85E5Lm6eCPa1DdOdGVsHMwq4ZnZAg==} @@ -298,9 +296,7 @@ packages: snapshots: - '@babel/runtime@7.25.6': - dependencies: - regenerator-runtime: 0.14.1 + '@babel/runtime@7.27.6': {} ansi-regex@4.1.1: {} @@ -380,8 +376,8 @@ snapshots: chalk: 4.1.2 date-fns: 2.30.0 lodash: 4.17.21 - rxjs: 7.8.1 - shell-quote: 1.8.1 + rxjs: 7.8.2 + shell-quote: 1.8.3 spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 @@ -389,7 +385,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.27.6 decamelize@1.2.0: {} @@ -465,19 +461,17 @@ snapshots: dependencies: picomatch: 2.3.1 - regenerator-runtime@0.14.1: {} - require-directory@2.1.1: {} require-main-filename@2.0.0: {} - rxjs@7.8.1: + rxjs@7.8.2: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 set-blocking@2.0.0: {} - shell-quote@1.8.1: {} + shell-quote@1.8.3: {} spawn-command@0.0.2: {} @@ -515,7 +509,7 @@ snapshots: tree-kill@1.2.2: {} - tslib@2.7.0: {} + tslib@2.8.1: {} types@0.1.1: {} diff --git a/services/our/requirements.txt b/services/our/requirements.txt index c6856f7..1d67177 100644 --- a/services/our/requirements.txt +++ b/services/our/requirements.txt @@ -1 +1,2 @@ -ultralytics \ No newline at end of file +ultralytics +vcsi \ No newline at end of file diff --git a/services/scout/pnpm-lock.yaml b/services/scout/pnpm-lock.yaml index 91fd743..f7cde9c 100644 --- a/services/scout/pnpm-lock.yaml +++ b/services/scout/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@dotenvx/dotenvx': specifier: ^1.44.1 - version: 1.45.1 + version: 1.47.5 pino: specifier: ^9.7.0 version: 9.7.0 @@ -19,16 +19,16 @@ importers: version: 13.0.0 puppeteer: specifier: ^24.11.0 - version: 24.11.0 + version: 24.12.1 puppeteer-extra: specifier: ^3.3.6 - version: 3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0) + version: 3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1) puppeteer-extra-plugin-stealth: specifier: ^2.11.2 - version: 2.11.2(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)) + version: 2.11.2(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)) zod: specifier: ^3.25.49 - version: 3.25.67 + version: 3.25.76 packages: @@ -40,12 +40,12 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@dotenvx/dotenvx@1.45.1': - resolution: {integrity: sha512-wKHPD+/NMMJVBPg3i98uD9jsURDy+Ck6RQRiWf39TlOAzC+Ge1FkmDk3sgeljYZxA3qF6E7SJmvRqC70XQuuVA==} + '@dotenvx/dotenvx@1.47.5': + resolution: {integrity: sha512-FtDgJyqOXmkj+BTU0qcE4Iq2HKjrEH6ZhRMc7m8fmOwstf1Ms9/9lbLNzyiNqyQrEnVr38W8PTTWMbDB3IX5og==} hasBin: true - '@ecies/ciphers@0.2.3': - resolution: {integrity: sha512-tapn6XhOueMwht3E2UzY0ZZjYokdaw9XtL9kEyjhQ/Fb9vL9xTFbOaI+fV0AWvTpYu4BNloC6getKW6NtSg4mA==} + '@ecies/ciphers@0.2.4': + resolution: {integrity: sha512-t+iX+Wf5nRKyNzk8dviW3Ikb/280+aEJAnw9YXvCp2tYGPSkMki+NRY+8aNLmVFv3eNtMdvViPNOPxS8SZNP+w==} engines: {bun: '>=1', deno: '>=2', node: '>=16'} peerDependencies: '@noble/ciphers': ^1.0.0 @@ -76,14 +76,14 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@24.0.6': - resolution: {integrity: sha512-ZOyn+gOs749xU7ovp+Ibj0g1o3dFRqsfPnT22C2t5JzcRvgsEDpGawPbCISGKLudJk9Y0wiu9sYd6kUh0pc9TA==} + '@types/node@24.0.13': + resolution: {integrity: sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ==} '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} ansi-regex@5.0.1: @@ -115,11 +115,11 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.5.4: - resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + bare-events@2.6.0: + resolution: {integrity: sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==} - bare-fs@4.1.5: - resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==} + bare-fs@4.1.6: + resolution: {integrity: sha512-25RsLF33BqooOEFNdMcEhMpJy8EoR88zSMrnOQOaM3USnOK2VmaJ1uaQEwPA6AQjrv1lXChScosN6CzbwbO9OQ==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -336,8 +336,8 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-uri@6.0.4: - resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} + get-uri@6.0.5: + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} glob@7.2.3: @@ -572,8 +572,8 @@ packages: pump@3.0.3: resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - puppeteer-core@24.11.0: - resolution: {integrity: sha512-ncLty0wRjCX67UxzXemmD1mOxb6y1Xzrx1nym8SAQ6cYrcypOVf77CfcZru6P+EiMA9gNDeQNscowKSE9xvhMw==} + puppeteer-core@24.12.1: + resolution: {integrity: sha512-8odp6d3ERKBa3BAVaYWXn95UxQv3sxvP1reD+xZamaX6ed8nCykhwlOiHSaHR9t/MtmIB+rJmNencI6Zy4Gxvg==} engines: {node: '>=18'} puppeteer-extra-plugin-stealth@2.11.2: @@ -639,8 +639,8 @@ packages: puppeteer-core: optional: true - puppeteer@24.11.0: - resolution: {integrity: sha512-7XFpexeYIMen/pfGiDjUpIV7BB9EuVQBtXeQ0cUOmVJTkAuQD3oPHVU7iYeA/mrIJyk79sfOmT20a6SEDwGTLQ==} + puppeteer@24.12.1: + resolution: {integrity: sha512-+vvwl+Xo4z5uXLLHG+XW8uXnUXQ62oY6KU6bEFZJvHWLutbmv5dw9A/jcMQ0fqpQdLydHmK0Uy7/9Ilj8ufwSQ==} engines: {node: '>=18'} hasBin: true @@ -699,8 +699,8 @@ packages: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks@2.8.5: - resolution: {integrity: sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==} + socks@2.8.6: + resolution: {integrity: sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sonic-boom@4.2.0: @@ -736,8 +736,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - tar-fs@3.0.10: - resolution: {integrity: sha512-C1SwlQGNLe/jPNqapK8epDsXME7CAJR5RL3GcE6KWx1d9OUByzoHVcbu1VPI8tevg9H8Alae0AApHHFGzrD5zA==} + tar-fs@3.1.0: + resolution: {integrity: sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==} tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -778,8 +778,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -805,8 +805,8 @@ packages: yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - zod@3.25.67: - resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} snapshots: @@ -818,7 +818,7 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} - '@dotenvx/dotenvx@1.45.1': + '@dotenvx/dotenvx@1.47.5': dependencies: commander: 11.1.0 dotenv: 16.6.1 @@ -830,7 +830,7 @@ snapshots: picomatch: 4.0.2 which: 4.0.0 - '@ecies/ciphers@0.2.3(@noble/ciphers@1.3.0)': + '@ecies/ciphers@0.2.4(@noble/ciphers@1.3.0)': dependencies: '@noble/ciphers': 1.3.0 @@ -849,7 +849,7 @@ snapshots: progress: 2.0.3 proxy-agent: 6.5.0 semver: 7.7.2 - tar-fs: 3.0.10 + tar-fs: 3.1.0 yargs: 17.7.2 transitivePeerDependencies: - bare-buffer @@ -863,17 +863,17 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@24.0.6': + '@types/node@24.0.13': dependencies: undici-types: 7.8.0 optional: true '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.0.6 + '@types/node': 24.0.13 optional: true - agent-base@7.1.3: {} + agent-base@7.1.4: {} ansi-regex@5.0.1: {} @@ -895,14 +895,14 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.5.4: + bare-events@2.6.0: optional: true - bare-fs@4.1.5: + bare-fs@4.1.6: dependencies: - bare-events: 2.5.4 + bare-events: 2.6.0 bare-path: 3.0.0 - bare-stream: 2.6.5(bare-events@2.5.4) + bare-stream: 2.6.5(bare-events@2.6.0) optional: true bare-os@3.6.1: @@ -913,11 +913,11 @@ snapshots: bare-os: 3.6.1 optional: true - bare-stream@2.6.5(bare-events@2.5.4): + bare-stream@2.6.5(bare-events@2.6.0): dependencies: streamx: 2.22.1 optionalDependencies: - bare-events: 2.5.4 + bare-events: 2.6.0 optional: true basic-ftp@5.0.5: {} @@ -935,7 +935,7 @@ snapshots: dependencies: devtools-protocol: 0.0.1464554 mitt: 3.0.1 - zod: 3.25.67 + zod: 3.25.76 cliui@8.0.1: dependencies: @@ -998,7 +998,7 @@ snapshots: eciesjs@0.4.15: dependencies: - '@ecies/ciphers': 0.2.3(@noble/ciphers@1.3.0) + '@ecies/ciphers': 0.2.4(@noble/ciphers@1.3.0) '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.2 '@noble/hashes': 1.8.0 @@ -1093,7 +1093,7 @@ snapshots: get-stream@6.0.1: {} - get-uri@6.0.4: + get-uri@6.0.5: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 @@ -1116,14 +1116,14 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -1249,9 +1249,9 @@ snapshots: pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 - get-uri: 6.0.4 + get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 @@ -1327,7 +1327,7 @@ snapshots: proxy-agent@6.5.0: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -1345,80 +1345,80 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - puppeteer-core@24.11.0: + puppeteer-core@24.12.1: dependencies: '@puppeteer/browsers': 2.10.5 chromium-bidi: 5.1.0(devtools-protocol@0.0.1464554) debug: 4.4.1 devtools-protocol: 0.0.1464554 typed-query-selector: 2.12.0 - ws: 8.18.2 + ws: 8.18.3 transitivePeerDependencies: - bare-buffer - bufferutil - supports-color - utf-8-validate - puppeteer-extra-plugin-stealth@2.11.2(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)): + puppeteer-extra-plugin-stealth@2.11.2(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)): dependencies: debug: 4.4.1 - puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)) - puppeteer-extra-plugin-user-preferences: 2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)) + puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)) + puppeteer-extra-plugin-user-preferences: 2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)) optionalDependencies: - puppeteer-extra: 3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0) + puppeteer-extra: 3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1) transitivePeerDependencies: - supports-color - puppeteer-extra-plugin-user-data-dir@2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)): + puppeteer-extra-plugin-user-data-dir@2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)): dependencies: debug: 4.4.1 fs-extra: 10.1.0 - puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)) + puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)) rimraf: 3.0.2 optionalDependencies: - puppeteer-extra: 3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0) + puppeteer-extra: 3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1) transitivePeerDependencies: - supports-color - puppeteer-extra-plugin-user-preferences@2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)): + puppeteer-extra-plugin-user-preferences@2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)): dependencies: debug: 4.4.1 deepmerge: 4.3.1 - puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)) - puppeteer-extra-plugin-user-data-dir: 2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)) + puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)) + puppeteer-extra-plugin-user-data-dir: 2.4.1(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)) optionalDependencies: - puppeteer-extra: 3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0) + puppeteer-extra: 3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1) transitivePeerDependencies: - supports-color - puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0)): + puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1)): dependencies: '@types/debug': 4.1.12 debug: 4.4.1 merge-deep: 3.0.3 optionalDependencies: - puppeteer-extra: 3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0) + puppeteer-extra: 3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1) transitivePeerDependencies: - supports-color - puppeteer-extra@3.3.6(puppeteer-core@24.11.0)(puppeteer@24.11.0): + puppeteer-extra@3.3.6(puppeteer-core@24.12.1)(puppeteer@24.12.1): dependencies: '@types/debug': 4.1.12 debug: 4.4.1 deepmerge: 4.3.1 optionalDependencies: - puppeteer: 24.11.0 - puppeteer-core: 24.11.0 + puppeteer: 24.12.1 + puppeteer-core: 24.12.1 transitivePeerDependencies: - supports-color - puppeteer@24.11.0: + puppeteer@24.12.1: dependencies: '@puppeteer/browsers': 2.10.5 chromium-bidi: 5.1.0(devtools-protocol@0.0.1464554) cosmiconfig: 9.0.0 devtools-protocol: 0.0.1464554 - puppeteer-core: 24.11.0 + puppeteer-core: 24.12.1 typed-query-selector: 2.12.0 transitivePeerDependencies: - bare-buffer @@ -1464,13 +1464,13 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 - socks: 2.8.5 + socks: 2.8.6 transitivePeerDependencies: - supports-color - socks@2.8.5: + socks@2.8.6: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 @@ -1491,7 +1491,7 @@ snapshots: fast-fifo: 1.3.2 text-decoder: 1.2.3 optionalDependencies: - bare-events: 2.5.4 + bare-events: 2.6.0 string-width@4.2.3: dependencies: @@ -1507,12 +1507,12 @@ snapshots: strip-json-comments@3.1.1: {} - tar-fs@3.0.10: + tar-fs@3.1.0: dependencies: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.1.5 + bare-fs: 4.1.6 bare-path: 3.0.0 transitivePeerDependencies: - bare-buffer @@ -1556,7 +1556,7 @@ snapshots: wrappy@1.0.2: {} - ws@8.18.2: {} + ws@8.18.3: {} y18n@5.0.8: {} @@ -1577,4 +1577,4 @@ snapshots: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - zod@3.25.67: {} + zod@3.25.76: {} diff --git a/services/tracker-helper/pnpm-lock.yaml b/services/tracker-helper/pnpm-lock.yaml index 6e8b4be..1f5661f 100644 --- a/services/tracker-helper/pnpm-lock.yaml +++ b/services/tracker-helper/pnpm-lock.yaml @@ -10,118 +10,717 @@ importers: dependencies: '@eelkevdbos/elysia-basic-auth': specifier: ^2.0.1 - version: 2.0.1(elysia@1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3))(typescript@5.7.3) + version: 2.0.1(elysia@1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3))(typescript@5.8.3) '@elysiajs/eden': specifier: ^1.2.0 - version: 1.2.0(elysia@1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3)) + version: 1.3.2(elysia@1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3)) + '@types/dockerode': + specifier: ^3.3.34 + version: 3.3.42 + dockerode: + specifier: ^4.0.4 + version: 4.0.7 elysia: specifier: ^1.2.12 - version: 1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3) + version: 1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3) typescript: specifier: ^5.0.0 - version: 5.7.3 + version: 5.8.3 devDependencies: '@types/bun': specifier: latest - version: 1.2.2 + version: 1.2.18(@types/react@19.1.8) packages: + '@balena/dockerignore@1.0.2': + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + '@eelkevdbos/elysia-basic-auth@2.0.1': resolution: {integrity: sha512-k2XOnq+0wg3RhLRhweADtiM9xLGNERV1iToMDJAT6naJfCviufRwlCDgOUiHaQDRR82u4F6c7XAtTFAMBVIATw==} peerDependencies: elysia: ^1.0.15 typescript: ^5.0.0 - '@elysiajs/eden@1.2.0': - resolution: {integrity: sha512-MpV45ahuF+iFZUg4tyJbLr9qxzY99m8clJVgQrDrz7Qh6eOKQ8MY6vjYMj3Wh21pTIRHPHzOLhVorRGby1/Owg==} + '@elysiajs/eden@1.3.2': + resolution: {integrity: sha512-0bCU5DO7J7hQfS2y3O3399GtoxMWRDMgQNMTHOnf70/F2nF8SwGHvzwh3+wO62Ko5FMF7EYqTN9Csw/g/Q7qwg==} peerDependencies: - elysia: '>= 1.2.0' + elysia: '>= 1.3.0' - '@sinclair/typebox@0.34.22': - resolution: {integrity: sha512-0avTcz3XUm6mMcq5tQRoEnxyvmr3uanplFepD+a/TiDzOBZ0Us5bsShW41xOO2kST7AYv4xiCsmE5Ag02yOPfQ==} + '@grpc/grpc-js@1.13.4': + resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} + engines: {node: '>=12.10.0'} - '@types/bun@1.2.2': - resolution: {integrity: sha512-tr74gdku+AEDN5ergNiBnplr7hpDp3V1h7fqI2GcR/rsUaM39jpSeKH0TFibRvU0KwniRx5POgaYnaXbk0hU+w==} + '@grpc/proto-loader@0.7.15': + resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} + engines: {node: '>=6'} + hasBin: true - '@types/node@22.13.4': - resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - '@types/ws@8.5.14': - resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - bun-types@1.2.2: - resolution: {integrity: sha512-RCbMH5elr9gjgDGDhkTTugA21XtJAy/9jkKe/G3WR2q17VPGhcquf9Sir6uay9iW+7P/BV0CAHA1XlHXMAVKHg==} + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@sinclair/typebox@0.34.37': + resolution: {integrity: sha512-2TRuQVgQYfy+EzHRTIvkhv2ADEouJ2xNS/Vq+W5EuuewBdOrvATvljZTxHWZSTYr2sTjTHpGvucaGAt67S2akw==} + + '@tokenizer/inflate@0.2.7': + resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==} + engines: {node: '>=18'} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + + '@types/bun@1.2.18': + resolution: {integrity: sha512-Xf6RaWVheyemaThV0kUfaAUvCNokFr+bH8Jxp+tTZfx7dAPA8z9ePnP9S9+Vspzuxxx9JRAXhnyccRj3GyCMdQ==} + + '@types/docker-modem@3.0.6': + resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} + + '@types/dockerode@3.3.42': + resolution: {integrity: sha512-U1jqHMShibMEWHdxYhj3rCMNCiLx5f35i4e3CEUuW+JSSszc/tVqc6WCAPdhwBymG5R/vgbcceagK0St7Cq6Eg==} + + '@types/node@18.19.118': + resolution: {integrity: sha512-hIPK0hSrrcaoAu/gJMzN3QClXE4QdCdFvaenJ0JsjIbExP1JFFVH+RHcBt25c9n8bx5dkIfqKE+uw6BmBns7ug==} + + '@types/node@24.0.13': + resolution: {integrity: sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ==} + + '@types/react@19.1.8': + resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==} + + '@types/ssh2@1.15.5': + resolution: {integrity: sha512-N1ASjp/nXH3ovBHddRJpli4ozpk6UdDYIX4RJWFa9L1YKnzdhTlVmiGHm4DZnj/jLbqZpes4aeR30EFGQtvhQQ==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buildcheck@0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} + engines: {node: '>=10.0.0'} + + bun-types@1.2.18: + resolution: {integrity: sha512-04+Eha5NP7Z0A9YgDAzMk5PHR16ZuLVa83b26kH5+cp1qZW4F6FmAURngE7INf4tKOvCE69vYvDEwoNl1tGiWw==} + peerDependencies: + '@types/react': ^19 + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} cookie@1.0.2: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} - elysia@1.2.12: - resolution: {integrity: sha512-X1bZo09qe8/Poa/5tz08Y+sE/77B/wLwnA5xDDENU3FCrsUtYJuBVcy6BPXGRCgnJ1fPQpc0Ov2ZU5MYJXluTg==} + cpu-features@0.0.10: + resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} + engines: {node: '>=10.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} peerDependencies: - '@sinclair/typebox': '>= 0.34.0' - openapi-types: '>= 12.0.0' - typescript: '>= 5.0.0' + supports-color: '*' peerDependenciesMeta: - openapi-types: - optional: true - typescript: + supports-color: optional: true - memoirist@0.3.0: - resolution: {integrity: sha512-wR+4chMgVPq+T6OOsk40u9Wlpw1Pjx66NMNiYxCQQ4EUJ7jDs3D9kTCeKdBOkvAiqXlHLVJlvYL01PvIJ1MPNg==} + docker-modem@5.0.6: + resolution: {integrity: sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==} + engines: {node: '>= 8.0'} - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + dockerode@4.0.7: + resolution: {integrity: sha512-R+rgrSRTRdU5mH14PZTCPZtW/zw3HDWNTS/1ZAQpL/5Upe/ye5K9WQkIysu4wBoiMwKynsz0a8qWuGsHgEvSAA==} + engines: {node: '>= 8.0'} + + elysia@1.3.5: + resolution: {integrity: sha512-XVIKXlKFwUT7Sta8GY+wO5reD9I0rqAEtaz1Z71UgJb61csYt8Q3W9al8rtL5RgumuRR8e3DNdzlUN9GkC4KDw==} + peerDependencies: + exact-mirror: '>= 0.0.9' + file-type: '>= 20.0.0' + typescript: '>= 5.0.0' + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + exact-mirror@0.1.2: + resolution: {integrity: sha512-wFCPCDLmHbKGUb8TOi/IS7jLsgR8WVDGtDK3CzcB4Guf/weq7G+I+DkXiRSZfbemBFOxOINKpraM6ml78vo8Zw==} + peerDependencies: + '@sinclair/typebox': ^0.34.15 + peerDependenciesMeta: + '@sinclair/typebox': + optional: true + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + + file-type@21.0.0: + resolution: {integrity: sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg==} + engines: {node: '>=20'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nan@2.23.0: + resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + + protobufjs@7.5.3: + resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + engines: {node: '>=12.0.0'} + + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + split-ca@1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + + ssh2@1.16.0: + resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} + engines: {node: '>=10.16.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strtok3@10.3.1: + resolution: {integrity: sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw==} + engines: {node: '>=18'} + + tar-fs@2.1.3: + resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + token-types@6.0.3: + resolution: {integrity: sha512-IKJ6EzuPPWtKtEIEPpIdXv9j5j2LGJEYk0CKY2efgKoYKLBiZdh6iQkLVBow/CB3phyWAWCyk+bZeaimJn6uRQ==} + engines: {node: '>=14.16'} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + uint8array-extras@1.4.0: + resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} + engines: {node: '>=18'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} snapshots: - '@eelkevdbos/elysia-basic-auth@2.0.1(elysia@1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3))(typescript@5.7.3)': - dependencies: - elysia: 1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3) - typescript: 5.7.3 + '@balena/dockerignore@1.0.2': {} - '@elysiajs/eden@1.2.0(elysia@1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3))': + '@eelkevdbos/elysia-basic-auth@2.0.1(elysia@1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3))(typescript@5.8.3)': dependencies: - elysia: 1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3) + elysia: 1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3) + typescript: 5.8.3 - '@sinclair/typebox@0.34.22': {} - - '@types/bun@1.2.2': + '@elysiajs/eden@1.3.2(elysia@1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3))': dependencies: - bun-types: 1.2.2 + elysia: 1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3) - '@types/node@22.13.4': + '@grpc/grpc-js@1.13.4': dependencies: - undici-types: 6.20.0 + '@grpc/proto-loader': 0.7.15 + '@js-sdsl/ordered-map': 4.4.2 - '@types/ws@8.5.14': + '@grpc/proto-loader@0.7.15': dependencies: - '@types/node': 22.13.4 + lodash.camelcase: 4.3.0 + long: 5.3.2 + protobufjs: 7.5.3 + yargs: 17.7.2 - bun-types@1.2.2: + '@js-sdsl/ordered-map@4.4.2': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': dependencies: - '@types/node': 22.13.4 - '@types/ws': 8.5.14 + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@sinclair/typebox@0.34.37': + optional: true + + '@tokenizer/inflate@0.2.7': + dependencies: + debug: 4.4.1 + fflate: 0.8.2 + token-types: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@tokenizer/token@0.3.0': {} + + '@types/bun@1.2.18(@types/react@19.1.8)': + dependencies: + bun-types: 1.2.18(@types/react@19.1.8) + transitivePeerDependencies: + - '@types/react' + + '@types/docker-modem@3.0.6': + dependencies: + '@types/node': 24.0.13 + '@types/ssh2': 1.15.5 + + '@types/dockerode@3.3.42': + dependencies: + '@types/docker-modem': 3.0.6 + '@types/node': 24.0.13 + '@types/ssh2': 1.15.5 + + '@types/node@18.19.118': + dependencies: + undici-types: 5.26.5 + + '@types/node@24.0.13': + dependencies: + undici-types: 7.8.0 + + '@types/react@19.1.8': + dependencies: + csstype: 3.1.3 + + '@types/ssh2@1.15.5': + dependencies: + '@types/node': 18.19.118 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + base64-js@1.5.1: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buildcheck@0.0.6: + optional: true + + bun-types@1.2.18(@types/react@19.1.8): + dependencies: + '@types/node': 24.0.13 + '@types/react': 19.1.8 + + chownr@1.1.4: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} cookie@1.0.2: {} - elysia@1.2.12(@sinclair/typebox@0.34.22)(typescript@5.7.3): + cpu-features@0.0.10: + dependencies: + buildcheck: 0.0.6 + nan: 2.23.0 + optional: true + + csstype@3.1.3: {} + + debug@4.4.1: + dependencies: + ms: 2.1.3 + + docker-modem@5.0.6: + dependencies: + debug: 4.4.1 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.16.0 + transitivePeerDependencies: + - supports-color + + dockerode@4.0.7: + dependencies: + '@balena/dockerignore': 1.0.2 + '@grpc/grpc-js': 1.13.4 + '@grpc/proto-loader': 0.7.15 + docker-modem: 5.0.6 + protobufjs: 7.5.3 + tar-fs: 2.1.3 + uuid: 10.0.0 + transitivePeerDependencies: + - supports-color + + elysia@1.3.5(exact-mirror@0.1.2(@sinclair/typebox@0.34.37))(file-type@21.0.0)(typescript@5.8.3): dependencies: - '@sinclair/typebox': 0.34.22 cookie: 1.0.2 - memoirist: 0.3.0 + exact-mirror: 0.1.2(@sinclair/typebox@0.34.37) + fast-decode-uri-component: 1.0.1 + file-type: 21.0.0 + typescript: 5.8.3 optionalDependencies: - typescript: 5.7.3 + '@sinclair/typebox': 0.34.37 + openapi-types: 12.1.3 - memoirist@0.3.0: {} + emoji-regex@8.0.0: {} - typescript@5.7.3: {} + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 - undici-types@6.20.0: {} + escalade@3.2.0: {} + + exact-mirror@0.1.2(@sinclair/typebox@0.34.37): + optionalDependencies: + '@sinclair/typebox': 0.34.37 + + fast-decode-uri-component@1.0.1: {} + + fflate@0.8.2: {} + + file-type@21.0.0: + dependencies: + '@tokenizer/inflate': 0.2.7 + strtok3: 10.3.1 + token-types: 6.0.3 + uint8array-extras: 1.4.0 + transitivePeerDependencies: + - supports-color + + fs-constants@1.0.0: {} + + get-caller-file@2.0.5: {} + + ieee754@1.2.1: {} + + inherits@2.0.4: {} + + is-fullwidth-code-point@3.0.0: {} + + lodash.camelcase@4.3.0: {} + + long@5.3.2: {} + + mkdirp-classic@0.5.3: {} + + ms@2.1.3: {} + + nan@2.23.0: + optional: true + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + openapi-types@12.1.3: + optional: true + + protobufjs@7.5.3: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 24.0.13 + long: 5.3.2 + + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + require-directory@2.1.1: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + split-ca@1.0.1: {} + + ssh2@1.16.0: + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.10 + nan: 2.23.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strtok3@10.3.1: + dependencies: + '@tokenizer/token': 0.3.0 + + tar-fs@2.1.3: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.3 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + token-types@6.0.3: + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + + tweetnacl@0.14.5: {} + + typescript@5.8.3: {} + + uint8array-extras@1.4.0: {} + + undici-types@5.26.5: {} + + undici-types@7.8.0: {} + + util-deprecate@1.0.2: {} + + uuid@10.0.0: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/terraform/.terraform.lock.hcl b/terraform/.terraform.lock.hcl index 8f145b8..9a92f7c 100644 --- a/terraform/.terraform.lock.hcl +++ b/terraform/.terraform.lock.hcl @@ -24,43 +24,52 @@ provider "registry.opentofu.org/ansible/ansible" { ] } -provider "registry.opentofu.org/hashicorp/local" { - version = "2.5.2" +provider "registry.opentofu.org/bunnyway/bunnynet" { + version = "0.7.5" hashes = [ - "h1:6lS+5A/4WFAqY3/RHWFRBSiFVLPRjvLaUgxPQvjXLHU=", - "zh:25b95b76ceaa62b5c95f6de2fa6e6242edbf51e7fc6c057b7f7101aa4081f64f", - "zh:3c974fdf6b42ca6f93309cf50951f345bfc5726ec6013b8832bcd3be0eb3429e", - "zh:5de843bf6d903f5cca97ce1061e2e06b6441985c68d013eabd738a9e4b828278", - "zh:86beead37c7b4f149a54d2ae633c99ff92159c748acea93ff0f3603d6b4c9f4f", - "zh:8e52e81d3dc50c3f79305d257da7fde7af634fed65e6ab5b8e214166784a720e", - "zh:9882f444c087c69559873b2d72eec406a40ede21acb5ac334d6563bf3a2387df", - "zh:a4484193d110da4a06c7bffc44cc6b61d3b5e881cd51df2a83fdda1a36ea25d2", - "zh:a53342426d173e29d8ee3106cb68abecdf4be301a3f6589e4e8d42015befa7da", - "zh:d25ef2aef6a9004363fc6db80305d30673fc1f7dd0b980d41d863b12dacd382a", - "zh:fa2d522fb323e2121f65b79709fd596514b293d816a1d969af8f72d108888e4c", + "h1:RV1mRPnZqgwzQXXA+MeU7wwyRxpq8UkdyH9asQQhByU=", + "zh:06306f778155271c5789d4e334a2db37d4f53b2e3edd3ac55c6de7b21a59bc0f", + "zh:0eb4ef1871cc48fddfe66c6c0816b24c358b5616cb106acd89837985e9abc83f", + "zh:10aa641396252f8ee6f76c6f248d8f30c3415f9230b3a486ad4ff06badfcd292", + "zh:21098155a58c9461e2edfcf6cd7e24982bd0503a15ecc525382e78f09e19447c", + "zh:3fb5007a95d303a9e1ece1a4605824a454488ff55ecd1138ac7c268a83f19e47", + "zh:4dc4fb634039f78c054b63965a468c3bd55066b9531af7900297732f2a3639a2", + "zh:52f59d797020284971a1f4b7f5079c99db7aa42dac2ec01c3dced69896295342", + "zh:61c83423bcbe3af6eaa6cdef56525a47ddc5109f90a2a5b58d73cf2b390195ca", + "zh:70d82268c8f7478013fa6c3eb90da777a590dab0e24dbd07807492199722e85e", + "zh:7509c60199aa5c7b2cef91a8b46c38336d7ab3f86e3fadbaf4e9ffc1095551a3", + "zh:81264d9480f8344e963556acc8b6f9bf90731759c5f565abe7200b69de591f0f", + "zh:85c4ba0cdf98b551235ae062f2d85eda5291d1ebad227f8ba5da48515d751a35", + "zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f", + "zh:8ef1587c0337a0c5f65438f81801189a5bc17f51d3b94799c1cac5e8ff178509", + "zh:971598dbee00d3e6e81d89c02aa097002bcc02ba074cb007917f148dda9f9b72", + "zh:a74055059bb15d58f6c092ce4ed1a7b114d6e8f7234a5299e4b32da2b87f334b", + "zh:abce1a748c7864669bc28c1e805bcebc60ccb258954644166e516b2adeac417a", + "zh:d039eaf0f39ab7cc0e63d28e5326f028e614979c2b6edbeb6d4d1ef349413a29", + "zh:d16ce72e16bc5a764b1caff5265880f87ec77fd8ac9b3edd1801b9d12ba65335", ] } provider "registry.opentofu.org/vultr/vultr" { - version = "2.23.1" - constraints = "2.23.1" + version = "2.26.0" + constraints = "2.26.0" hashes = [ - "h1:VNpHOLXDPr/hNlsMoHFtUPjBhJnEuUxo5ywd5UeenX8=", - "zh:02e794393bb26377444e81523f803e40f6ee45134914047071fe6291e7fb3813", - "zh:06a2cb287bb5c79b05331aed90519bd08b3b8bc6b75191382ef1e8713bffc1e0", - "zh:088c1a73057cb37fb8fc3ef009b26ca437e03929df5d7802ae1eca206bc91b56", - "zh:1f7dc7e64e5ed8c0fa29658c5730c0fca5eeb3547215175319262f7ee92eac3c", - "zh:278b5738632ebe9ee04a966c02071ce3e0e6435af0e8da55c96c71d50e0076dd", - "zh:2c6fc71abf11fcb0c7dae89f99bd301dfa078a63a68529ea251e6b4cb0491f86", - "zh:487fe4cbd9b4d49c4049dc2de647e41b6e5cb0857215fe2d38a7529fd1e184ab", - "zh:4a8758b6c579bea6049f66d5238a20ac0878a2b89dee200f7655b74b61bebbbf", - "zh:72a86c02b5ba2d141708a55c1eb4d100644ba377263747aca11b53f82487f645", - "zh:8cabf4b700a63fd0daf7f9fc0c5bedff699d86b641fc66144b6ceb645765a345", - "zh:9c1602b47ba7fa2f23a1810a2ec37291c83a342888ed430fc1bed5dd2edefcda", - "zh:a27efb29592136f7c819aa22e1349dc3169be249d2e30873b72d7aabf80359eb", - "zh:c5c92c87e28456de6387d23bda949734d4b5deef32e79d71ec9ddf945a53fc7f", - "zh:cce93b449fd85e013ead67ed4ccc9861673a57a3d5e06d493419ebc97dcd21c5", - "zh:e5e24b7349c679e2118a74ef559dbe43c13f8d3369a6ce8c7c4bdb72a3c03540", - "zh:f226a9e61789c412493ff3abad4e6403aaae46d5d3532437b1c873ec772b828f", + "h1:WQKRKiA128F01AIIMli4iEU5MgOqEhzJ0lQKd+EKwao=", + "zh:0f5ce145fee375b30781b4c8ed852cfa397163806796bfce0a713edd7e2fc2a5", + "zh:12400bc28dde6630b0457783bb7cfe13c547976a248e4e9442a6116cc5dd098f", + "zh:1c31f329ff5b69567ede0f8f38b477815c9dc414958abc932bf16b7c75f862d2", + "zh:47119fba94bfef047f52a68e731f7e7e486e45bbd245e0f41801acc7ee35fc50", + "zh:4bd1440707d752d3d569366a39b79fca50182fb186040f585e0dfa508c7b495a", + "zh:5cc0282d4cb7373b7a9487b3c2da29fdc7ccb98650a8eafc62f443a8544f9b33", + "zh:65885e9eb865aa9fb132e6dd5dcb8fba52c24f62953e30c277519339830a4154", + "zh:888df1bd05765310df6f196725f702f13dc65ed7658f487082bb20dfb7215360", + "zh:951f9b2f65dea5b89a03e8363de30d1dbb6e810fc9306879c7839d92cb35351c", + "zh:95342aaf93e1fe421d9fca5fb15289a77ded4f61e93cc0ab370a6b4eb619edff", + "zh:c00b154d90b91cc1b60115ae7550c508a4c293dded7b3e9cea3a145618be7df8", + "zh:c9b155928e7a8fc9d257b9551b21ab72c1f8165c4f8063e40bb757c34bfb480c", + "zh:cf818353466eac9660c4c0fd184da41698f4802415fe51b53d6366c3bf6bf47e", + "zh:ed05017f7cdefbc3a492b7ff1d17b0564777449c2987d61ddad9155602746731", + "zh:f06d476e3c216a30f0e5c24968eeb9ec140f1205011c7383d005127addb7bd9a", + "zh:f3cec51aaa4647a1ffdb4c0d0d80e2693b8b3cbda730b5973ae3dd316a3e7e40", ] } diff --git a/terraform/main.tf b/terraform/main.tf index f4297f5..96cf1c9 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -62,7 +62,7 @@ terraform { required_providers { vultr = { source = "vultr/vultr" - version = "2.23.1" + version = "2.26.0" } ansible = { source = "ansible/ansible" @@ -106,8 +106,8 @@ resource "vultr_vpc" "futureporn_vpc" { resource "bunnynet_dns_record" "future_porn_a" { for_each = zipmap( - range(length(vultr_instance.load_balancer)), - vultr_instance.load_balancer + range(length(vultr_instance.our_vps)), + vultr_instance.our_vps ) zone = bunnynet_dns_zone.future_porn.id @@ -124,33 +124,35 @@ resource "bunnynet_dns_zone" "future_porn" { # load balancing instance -resource "vultr_instance" "load_balancer" { - count = 1 - hostname = "fp-lb-${count.index}" - plan = "vc2-1c-2gb" - region = "ord" - backups = "disabled" - ddos_protection = "false" - os_id = 1743 - enable_ipv6 = true - label = "fp lb ${count.index}" - tags = ["futureporn", "load_balancer", "our"] - ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] - user_data = base64encode(var.vps_user_data) - vpc_ids = [ - vultr_vpc.futureporn_vpc.id - ] - reserved_ip_id = vultr_reserved_ip.futureporn_v2_ip.id -} +# resource "vultr_instance" "load_balancer" { +# count = 1 +# hostname = "fp-lb-${count.index}" +# plan = "vc2-1c-2gb" +# region = "ord" +# backups = "disabled" +# ddos_protection = "false" +# os_id = 1743 +# enable_ipv6 = true +# label = "fp lb ${count.index}" +# tags = ["futureporn", "load_balancer", "our"] +# ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] +# user_data = base64encode(var.vps_user_data) +# vpc_ids = [ +# vultr_vpc.futureporn_vpc.id +# ] +# reserved_ip_id = vultr_reserved_ip.futureporn_v2_ip.id +# } + resource "bunnynet_dns_record" "future_porn_apex" { zone = bunnynet_dns_zone.future_porn.id name = "" type = "A" - value = vultr_reserved_ip.futureporn_v2_ip.subnet + value = vultr_instance.our_vps[0].main_ip ttl = 3600 } + resource "bunnynet_dns_record" "www_future_porn" { zone = bunnynet_dns_zone.future_porn.id name = "www" @@ -164,42 +166,42 @@ resource "bunnynet_dns_record" "www_future_porn" { # vultr instance for running our app -resource "vultr_instance" "our_server" { - count = 1 - hostname = "fp-our-server-${count.index}" - plan = "vc2-2c-4gb" - region = "ord" - backups = "disabled" - ddos_protection = "false" - os_id = 1743 - enable_ipv6 = true - label = "fp our server ${count.index}" - tags = ["futureporn", "our", "server"] - ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] - vpc_ids = [ - vultr_vpc.futureporn_vpc.id - ] - user_data = base64encode(var.vps_user_data) -} +# resource "vultr_instance" "our_server" { +# count = 1 +# hostname = "fp-our-server-${count.index}" +# plan = "vc2-2c-4gb" +# region = "ord" +# backups = "disabled" +# ddos_protection = "false" +# os_id = 1743 +# enable_ipv6 = true +# label = "fp our server ${count.index}" +# tags = ["futureporn", "our", "server"] +# ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] +# vpc_ids = [ +# vultr_vpc.futureporn_vpc.id +# ] +# user_data = base64encode(var.vps_user_data) +# } # vultr instance for running our app's background task runners -resource "vultr_instance" "our_worker" { - count = 1 - hostname = "fp-our-worker-${count.index}" - plan = "vc2-2c-4gb" - region = "ord" - backups = "disabled" - ddos_protection = "false" - os_id = 1743 - enable_ipv6 = true - label = "fp our worker ${count.index}" - tags = ["futureporn", "our", "worker"] - ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] - vpc_ids = [ - vultr_vpc.futureporn_vpc.id - ] - user_data = base64encode(var.vps_user_data) -} +# resource "vultr_instance" "our_worker" { +# count = 1 +# hostname = "fp-our-worker-${count.index}" +# plan = "vc2-2c-4gb" +# region = "ord" +# backups = "disabled" +# ddos_protection = "false" +# os_id = 1743 +# enable_ipv6 = true +# label = "fp our worker ${count.index}" +# tags = ["futureporn", "our", "worker"] +# ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] +# vpc_ids = [ +# vultr_vpc.futureporn_vpc.id +# ] +# user_data = base64encode(var.vps_user_data) +# } # vultr instance meant for capturing VODs @@ -219,6 +221,23 @@ resource "vultr_instance" "capture_vps" { user_data = base64encode(var.vps_user_data) } +# vultr instance meant for running our future.porn app +resource "vultr_instance" "our_vps" { + count = 1 + hostname = "fp-our-${count.index}" + plan = "vc2-2c-2gb" + region = "ord" + backups = "disabled" + ddos_protection = "false" + os_id = 1743 + enable_ipv6 = true + vpc_ids = [vultr_vpc.futureporn_vpc.id] + label = "fp our ${count.index}" + tags = ["futureporn", "capture"] + ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] + user_data = base64encode(var.vps_user_data) +} + # vultr instance with a GPU. experimental. # resource "vultr_instance" "capture_vps" { @@ -242,25 +261,25 @@ resource "vultr_instance" "capture_vps" { # } -resource "vultr_instance" "database" { - count = 1 - hostname = "fp-db-${count.index}" - plan = "vc2-1c-2gb" - region = "ord" - backups = "enabled" - backups_schedule { - hour = "2" - type = "daily" - } - ddos_protection = "false" - os_id = 1743 - enable_ipv6 = true - vpc_ids = [vultr_vpc.futureporn_vpc.id] - label = "fp database ${count.index}" - tags = ["futureporn", "database"] - ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] - user_data = base64encode(var.vps_user_data) -} +# resource "vultr_instance" "database" { +# count = 1 +# hostname = "fp-db-${count.index}" +# plan = "vc2-1c-2gb" +# region = "ord" +# backups = "enabled" +# backups_schedule { +# hour = "2" +# type = "daily" +# } +# ddos_protection = "false" +# os_id = 1743 +# enable_ipv6 = true +# vpc_ids = [vultr_vpc.futureporn_vpc.id] +# label = "fp database ${count.index}" +# tags = ["futureporn", "database"] +# ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID] +# user_data = base64encode(var.vps_user_data) +# } resource "vultr_instance" "tracker" { count = 0 @@ -279,118 +298,166 @@ resource "vultr_instance" "tracker" { reserved_ip_id = vultr_reserved_ip.futureporn_tracker_ip.id } -resource "ansible_host" "ipfs_vps" { - for_each = { for idx, host in var.ipfs_hosts : idx => host } - name = each.value - groups = ["ipfs"] +# resource "ansible_host" "ipfs_vps" { +# for_each = { for idx, host in var.ipfs_hosts : idx => host } +# name = each.value +# groups = ["ipfs"] - variables = { - ansible_user = "root" - ansible_host = each.value - } -} +# variables = { +# ansible_user = "root" +# ansible_host = each.value +# } +# } -resource "ansible_host" "capture_vps" { - for_each = { for idx, host in vultr_instance.capture_vps : idx => host } - name = each.value.hostname - groups = ["capture"] # Groups this host is part of. +# resource "ansible_host" "capture_vps" { +# for_each = { for idx, host in vultr_instance.capture_vps : idx => host } +# name = each.value.hostname +# groups = ["capture"] # Groups this host is part of. - variables = { - # Connection vars. - ansible_user = "root" - ansible_host = each.value.main_ip +# variables = { +# # Connection vars. +# ansible_user = "root" +# ansible_host = each.value.main_ip - # Custom vars that we might use in roles/tasks. - # hostname = "web1" - # fqdn = "web1.example.com" - } -} +# # Custom vars that we might use in roles/tasks. +# # hostname = "web1" +# # fqdn = "web1.example.com" +# } +# } -resource "ansible_host" "load_balancer" { - for_each = { for idx, host in vultr_instance.load_balancer : idx => host } - name = each.value.hostname - groups = ["load_balancer"] - variables = { - ansible_host = each.value.main_ip - internal_ip = each.value.internal_ip - } -} +# resource "ansible_host" "load_balancer" { +# for_each = { for idx, host in vultr_instance.load_balancer : idx => host } +# name = each.value.hostname +# groups = ["load_balancer"] +# variables = { +# ansible_host = each.value.main_ip +# internal_ip = each.value.internal_ip +# } +# } -resource "ansible_host" "database" { - for_each = { for idx, host in vultr_instance.database : idx => host } - name = each.value.hostname - groups = ["database"] - variables = { - ansible_host = each.value.main_ip - internal_ip = each.value.internal_ip - } -} +# resource "ansible_host" "database" { +# for_each = { for idx, host in vultr_instance.database : idx => host } +# name = each.value.hostname +# groups = ["database"] +# variables = { +# ansible_host = each.value.main_ip +# internal_ip = each.value.internal_ip +# } +# } -resource "ansible_host" "our_server" { - for_each = { for idx, host in vultr_instance.our_server : idx => host } +# resource "ansible_host" "our_server" { +# for_each = { for idx, host in vultr_instance.our_server : idx => host } +# name = each.value.hostname +# groups = ["our-server"] +# variables = { +# ansible_host = each.value.main_ip +# internal_ip = each.value.internal_ip +# vultr_instance_id = each.value.id +# } +# } + +# resource "ansible_host" "our_worker" { +# for_each = { for idx, host in vultr_instance.our_worker : idx => host } +# name = each.value.hostname +# groups = ["our-worker"] +# variables = { +# ansible_host = each.value.main_ip +# internal_ip = each.value.internal_ip +# vultr_instance_id = each.value.id +# } +# } + + +# resource "ansible_host" "tracker" { +# for_each = { for idx, host in vultr_instance.tracker : idx => host } +# name = each.value.hostname +# groups = ["tracker"] +# variables = { +# ansible_host = each.value.main_ip +# internal_ip = each.value.internal_ip +# vultr_instance_id = each.value.id +# } +# } + +resource "ansible_host" "our" { + for_each = { for idx, host in vultr_instance.our_vps : idx => host } name = each.value.hostname groups = ["our"] + variables = { - ansible_host = each.value.main_ip - internal_ip = each.value.internal_ip - vultr_instance_id = each.value.id + ansible_host = each.value.main_ip + internal_ip = each.value.internal_ip + vultr_instance_id = each.value.id + vultr_vfs_storage_id = vultr_virtual_file_system_storage.vfs.id } } -resource "ansible_host" "our_worker" { - for_each = { for idx, host in vultr_instance.our_worker : idx => host } - name = each.value.hostname - groups = ["our"] - variables = { - ansible_host = each.value.main_ip - internal_ip = each.value.internal_ip - vultr_instance_id = each.value.id - } +resource "vultr_virtual_file_system_storage" "vfs" { + label = "fp-vfs-cache" + size_gb = 200 + region = "ord" + tags = ["our", "vfs"] } -resource "ansible_host" "tracker" { - for_each = { for idx, host in vultr_instance.tracker : idx => host } - name = each.value.hostname - groups = ["tracker"] - variables = { - ansible_host = each.value.main_ip - internal_ip = each.value.internal_ip - vultr_instance_id = each.value.id - } -} +# resource "ansible_host" "periphery" { +# for_each = { for idx, host in vultr_instance.our_vps : idx => host } +# name = each.value.hostname +# groups = ["periphery"] -resource "ansible_group" "capture" { - name = "capture" -} +# variables = { +# ansible_host = each.value.main_ip +# internal_ip = each.value.internal_ip +# vultr_instance_id = each.value.id +# } +# } +# resource "ansible_group" "capture" { +# name = "capture" +# } + + +# resource "ansible_group" "our-server" { +# name = "our-server" +# } + +# resource "ansible_group" "our-worker" { +# name = "our-worker" +# } + +# resource "ansible_group" "tracker" { +# name = "tracker" +# } resource "ansible_group" "our" { name = "our" } -resource "ansible_group" "tracker" { - name = "tracker" -} +# resource "ansible_group" "periphery" { +# name = "periphery" +# } -resource "ansible_group" "load_balancer" { - name = "load_balancer" -} +# resource "ansible_group" "load_balancer" { +# name = "load_balancer" +# } -resource "ansible_group" "database" { - name = "database" -} +# resource "ansible_group" "database" { +# name = "database" +# } resource "ansible_group" "futureporn" { name = "futureporn" children = [ - "load_balancer", - "database", - "capture", - "our", - "tracker" + # "load_balancer", + # "database", + # "capture", + # "our-server", + # "our-worker", + # "periphery", + # "tracker", + "our" ] }