add vcsi to requirements
This commit is contained in:
		
							parent
							
								
									41ce355e7e
								
							
						
					
					
						commit
						4a9a04ee86
					
				
							
								
								
									
										4
									
								
								.npmrc
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								.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
 | 
			
		||||
node-version=20.19.3
 | 
			
		||||
recursive-install=true
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
								
							@ -1,7 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
    "recommendations": [
 | 
			
		||||
        "redhat.vscode-yaml",
 | 
			
		||||
        "elixir-lsp.elixir-ls",
 | 
			
		||||
        "jetify.devbox",
 | 
			
		||||
        "redhat.ansible",
 | 
			
		||||
        "dotjoshjohnson.xml"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							@ -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
 | 
			
		||||
}
 | 
			
		||||
@ -3,4 +3,5 @@
 | 
			
		||||
inventory = ./inventory/terraform.yml
 | 
			
		||||
private_key_file = ~/.ssh/futureporn2025
 | 
			
		||||
remote_user = root
 | 
			
		||||
interpreter_python=auto_silent
 | 
			
		||||
interpreter_python=auto_silent
 | 
			
		||||
nocows = 1
 | 
			
		||||
@ -6,3 +6,6 @@ collections:
 | 
			
		||||
  - name: gluster.gluster
 | 
			
		||||
roles:
 | 
			
		||||
  - name: nvjacobo.caddy
 | 
			
		||||
  - name: geerlingguy.nodejs
 | 
			
		||||
  - name: artis3n.tailscale
 | 
			
		||||
  - name: bpbradley.komodo
 | 
			
		||||
@ -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:
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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 {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										0
									
								
								packages/scripts/thumbnail-generator.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								packages/scripts/thumbnail-generator.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										469
									
								
								packages/utils/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										469
									
								
								packages/utils/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -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: {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										40
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -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: {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1 +1,2 @@
 | 
			
		||||
ultralytics
 | 
			
		||||
ultralytics
 | 
			
		||||
vcsi
 | 
			
		||||
							
								
								
									
										158
									
								
								services/scout/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										158
									
								
								services/scout/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -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: {}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										711
									
								
								services/tracker-helper/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										711
									
								
								services/tracker-helper/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										73
									
								
								terraform/.terraform.lock.hcl
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										73
									
								
								terraform/.terraform.lock.hcl
									
									
									
										generated
									
									
									
								
							@ -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",
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user