diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..997e6a5
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,98 @@
+name: CI
+
+on:
+ push:
+ branches: [main]
+ pull_request:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+jobs:
+ # Projects opt in to CI simply by having a .tool-versions file in their top level directory
+ discover:
+ name: Discover projects
+ runs-on: ubuntu-latest
+ outputs:
+ projects: ${{ steps.find.outputs.projects }}
+ steps:
+ - uses: actions/checkout@v5
+
+ - name: Find projects with a .tool-versions
+ id: find
+ run: |
+ projects=$(
+ for dir in */; do
+ if [[ -f "${dir}.tool-versions" ]]; then
+ echo "${dir%/}"
+ fi
+ done | jq -R . | jq -sc .
+ )
+ echo "Discovered: $projects"
+ echo "projects=$projects" >> "$GITHUB_OUTPUT"
+
+ # Guards against a half-adopted project silently dropping out of CI.
+ # If a project declares a .tool-versions it must also provide the scripts the build job runs.
+ conform:
+ name: Check project structure
+ needs: discover
+ if: needs.discover.outputs.projects != '[]'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v5
+
+ - name: Every project must have executable setup and test scripts
+ env:
+ PROJECTS: ${{ needs.discover.outputs.projects }}
+ run: |
+ status=0
+ for project in $(jq -r '.[]' <<< "$PROJECTS"); do
+ for script in setup test; do
+ path="$project/script/$script"
+ if [[ ! -f "$path" ]]; then
+ echo "::error file=$project/.tool-versions::$project declares a .tool-versions but has no $path"
+ status=1
+ elif [[ ! -x "$path" ]]; then
+ echo "::error file=$path::$path is not executable, run: chmod +x $path"
+ status=1
+ fi
+ done
+ done
+ exit $status
+
+ build:
+ name: ${{ matrix.project }}
+ needs: discover
+ if: needs.discover.outputs.projects != '[]'
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ project: ${{ fromJSON(needs.discover.outputs.projects) }}
+ defaults:
+ run:
+ working-directory: ${{ matrix.project }}
+ steps:
+ - uses: actions/checkout@v5
+
+ # Optional extra step for toolchains that build from source and need system
+ # libraries the runner does not ship (e.g. php).
+ # Runs before mise, so it cannot rely on dependencies in `.tool-versions`.
+ - name: Install system packages
+ run: |
+ if [[ -x script/system-packages ]]; then
+ ./script/system-packages
+ fi
+
+ - name: Install the toolchain declared in .tool-versions
+ uses: jdx/mise-action@v2
+ with:
+ working_directory: ${{ matrix.project }}
+
+ - run: ./script/setup
+
+ - run: ./script/test
diff --git a/README.md b/README.md
index a4d1298..b3e5d8f 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# Coding Exercise Project
+[](https://github.com/guardian/coding-exercise-project/actions/workflows/ci.yml)
+
This repository contains small skeleton projects in a number of programming languages.
It is designed to aid in the coding exercise stage of the Guardian's recruitment process for Software Engineers.
@@ -22,8 +24,34 @@ You can set up your own environment but please do so **before** you join the Han
If you have any issues with your environment please let your interviewer know as soon as you join the Hangout so that
they can adjust the exercise accordingly.
+## Prerequisites
+
+Every skeleton declares the toolchain it needs in a [`.tool-versions`](https://mise.jdx.dev/configuration.html#tool-versions)
+file. For example, the Scala project asks for:
+
+```
+java corretto-21
+sbt 1
+```
+
+You are free to install those tools however you like — a system package manager, a language-specific
+version manager, or an existing installation. All that matters is that they end up on your `PATH`.
+If they are not, `./script/setup` will fail with a "command not found" error.
+
+### Recommended: mise
+
+The quickest way to get the right versions is [mise](https://mise.jdx.dev/), which reads
+`.tool-versions` and installs all listed tools.
+
+Follow mise's [getting started guide](https://mise.jdx.dev/getting-started.html) to install it and
+activate it in your shell. Then, from inside the language directory of your choice:
+
+```sh
+mise install
+```
+
## How to use
-This repository has a directory per language. Each skeleton follows the same structure with a README and a failing test.
+This repository has a directory per language. Each skeleton follows the same structure with a README and a passing test.
To get started:
@@ -31,19 +59,31 @@ To get started:
🗂 Switch directories to the language of your choosing
-🔌 Install dependencies and perform other setup tasks `./script/setup` (usually uses [homebrew](https://brew.sh/))
+🔧 Install the toolchain listed in `.tool-versions`, e.g. with `mise install`
-🧪 Run the tests and witness them fail `./script/test`
+🔌 Install dependencies and perform other setup tasks `./script/setup`
+
+🧪 Run the tests and watch them pass `./script/test`
💻 Now it is up to you! Using your editor of choice, start writing code!
## Missing language?
Please raise a PR to add it with:
- A README
-- A failing test
-- A `./script/setup` script to install dependencies and perform other setup tasks
+- A `.tool-versions` declaring the language toolchain, pinned to its major version
+- A passing example test
+- A `./script/setup` script to install dependencies and do any other initial setup
- A `./script/test` script to run the tests
+Adding a `.tool-versions` file enrols a project in CI, so `./script/setup` and `./script/test`
+must exist and be executable — the `Check project structure` job enforces this.
+
+If the toolchain is built from source and needs system libraries that may not be present,
+add an executable `./script/system-packages` that installs them. CI runs it before installing the
+toolchain, and anyone building that toolchain locally can run it themselves. This script is run separately
+to `./script/setup`, because `setup` runs after the toolchain is already on your `PATH`.
+Only `php` needs this today.
+
The requirement for the `./script` commands is to keep consistency across languages and make it easy to switch between them.
Read more [here](https://github.com/github/scripts-to-rule-them-all).
diff --git a/clojure/gol/.gitignore b/clojure/.gitignore
similarity index 100%
rename from clojure/gol/.gitignore
rename to clojure/.gitignore
diff --git a/clojure/.tool-versions b/clojure/.tool-versions
new file mode 100644
index 0000000..e746dd1
--- /dev/null
+++ b/clojure/.tool-versions
@@ -0,0 +1,2 @@
+java corretto-21
+leiningen 2.12
diff --git a/clojure/README.md b/clojure/README.md
new file mode 100644
index 0000000..e7cf21e
--- /dev/null
+++ b/clojure/README.md
@@ -0,0 +1,30 @@
+# Clojure
+
+Skeleton project for Clojure.
+
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+java corretto-21
+leiningen 2.12
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
+
+## Usage
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests
+- `./script/start` to run the app
+
+## Structure
+- Code located in [`core.clj`](./src/pairing/core.clj)
+- Tests located in [`core_test.clj`](./test/pairing/core_test.clj)
+
+However, you're free to organise your code as you like.
diff --git a/clojure/gol/README.md b/clojure/gol/README.md
deleted file mode 100644
index 52826d9..0000000
--- a/clojure/gol/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Game of Life (Clojure)
-
-Game of Life skeleton
-
-## Getting started
-
-This project uses [Leiningen](http://leiningen.org/) which will self-install when you first run the tests.
-
-## Usage
-
-./lein test
diff --git a/clojure/gol/lein b/clojure/gol/lein
deleted file mode 100755
index 513be15..0000000
--- a/clojure/gol/lein
+++ /dev/null
@@ -1,365 +0,0 @@
-#!/usr/bin/env bash
-
-# Ensure this file is executable via `chmod a+x lein`, then place it
-# somewhere on your $PATH, like ~/bin. The rest of Leiningen will be
-# installed upon first run into the ~/.lein/self-installs directory.
-
-export LEIN_VERSION="2.5.1"
-
-case $LEIN_VERSION in
- *SNAPSHOT) SNAPSHOT="YES" ;;
- *) SNAPSHOT="NO" ;;
-esac
-
-if [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]]; then
- delimiter=";"
-else
- delimiter=":"
-fi
-
-if [[ "$OSTYPE" == "cygwin" ]]; then
- cygwin=true
-else
- cygwin=false
-fi
-
-function make_native_path {
- # ensure we have native paths
- if $cygwin && [[ "$1" == /* ]]; then
- echo -n "$(cygpath -wp "$1")"
- elif [[ "$OSTYPE" == "msys" && "$1" == /?/* ]]; then
- echo -n "$(sh -c "(cd $1 2 /dev/null
- download_failed_message "$LEIN_URL" "$exit_code"
- exit 1
- fi
-}
-
-if [ `id -u` -eq 0 ] && [ "$LEIN_ROOT" = "" ]; then
- echo "WARNING: You're currently running as root; probably by accident."
- echo "Press control-C to abort or Enter to continue as root."
- echo "Set LEIN_ROOT to disable this warning."
- read _
-fi
-
-NOT_FOUND=1
-ORIGINAL_PWD="$PWD"
-while [ ! -r "$PWD/project.clj" ] && [ "$PWD" != "/" ] && [ $NOT_FOUND -ne 0 ]
-do
- cd ..
- if [ "$(dirname "$PWD")" = "/" ]; then
- NOT_FOUND=0
- cd "$ORIGINAL_PWD"
- fi
-done
-
-export LEIN_HOME="${LEIN_HOME:-"$HOME/.lein"}"
-
-for f in "$LEIN_HOME/leinrc" ".leinrc"; do
- if [ -e "$f" ]; then
- source "$f"
- fi
-done
-
-if $cygwin; then
- export LEIN_HOME=`cygpath -w "$LEIN_HOME"`
-fi
-
-LEIN_JAR="$LEIN_HOME/self-installs/leiningen-$LEIN_VERSION-standalone.jar"
-
-# normalize $0 on certain BSDs
-if [ "$(dirname "$0")" = "." ]; then
- SCRIPT="$(which $(basename "$0"))"
- if [ -z "$SCRIPT" ]; then
- SCRIPT="$0"
- fi
-else
- SCRIPT="$0"
-fi
-
-# resolve symlinks to the script itself portably
-while [ -h "$SCRIPT" ] ; do
- ls=`ls -ld "$SCRIPT"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- SCRIPT="$link"
- else
- SCRIPT="$(dirname "$SCRIPT"$)/$link"
- fi
-done
-
-BIN_DIR="$(dirname "$SCRIPT")"
-
-export LEIN_JVM_OPTS="${LEIN_JVM_OPTS-"-XX:+TieredCompilation -XX:TieredStopAtLevel=1"}"
-
-# This needs to be defined before we call HTTP_CLIENT below
-if [ "$HTTP_CLIENT" = "" ]; then
- if type -p curl >/dev/null 2>&1; then
- if [ "$https_proxy" != "" ]; then
- CURL_PROXY="-x $https_proxy"
- fi
- HTTP_CLIENT="curl $CURL_PROXY -f -L -o"
- else
- HTTP_CLIENT="wget -O"
- fi
-fi
-
-
-# When :eval-in :classloader we need more memory
-grep -E -q '^\s*:eval-in\s+:classloader\s*$' project.clj 2> /dev/null && \
- export LEIN_JVM_OPTS="$LEIN_JVM_OPTS -Xms64m -Xmx512m"
-
-if [ -r "$BIN_DIR/../src/leiningen/version.clj" ]; then
- # Running from source checkout
- LEIN_DIR="$(dirname "$BIN_DIR")"
-
- # Need to use lein release to bootstrap the leiningen-core library (for aether)
- if [ ! -r "$LEIN_DIR/leiningen-core/.lein-bootstrap" ]; then
- echo "Leiningen is missing its dependencies."
- echo "Please run \"lein bootstrap\" in the leiningen-core/ directory"
- echo "with a stable release of Leiningen. See CONTRIBUTING.md for details."
- exit 1
- fi
-
- # If project.clj for lein or leiningen-core changes, we must recalculate
- LAST_PROJECT_CHECKSUM=$(cat "$LEIN_DIR/.lein-project-checksum" 2> /dev/null)
- PROJECT_CHECKSUM=$(sum "$LEIN_DIR/project.clj" "$LEIN_DIR/leiningen-core/project.clj")
- if [ "$PROJECT_CHECKSUM" != "$LAST_PROJECT_CHECKSUM" ]; then
- if [ -r "$LEIN_DIR/.lein-classpath" ]; then
- rm "$LEIN_DIR/.lein-classpath"
- fi
- fi
-
- # Use bin/lein to calculate its own classpath.
- if [ ! -r "$LEIN_DIR/.lein-classpath" ] && [ "$1" != "classpath" ]; then
- echo "Recalculating Leiningen's classpath."
- ORIG_PWD="$PWD"
- cd "$LEIN_DIR"
-
- LEIN_NO_USER_PROFILES=1 $0 classpath .lein-classpath
- sum "$LEIN_DIR/project.clj" "$LEIN_DIR/leiningen-core/project.clj" > \
- .lein-project-checksum
- cd "$ORIG_PWD"
- fi
-
- mkdir -p "$LEIN_DIR/target/classes"
- export LEIN_JVM_OPTS="$LEIN_JVM_OPTS -Dclojure.compile.path=$LEIN_DIR/target/classes"
- add_path CLASSPATH "$LEIN_DIR/leiningen-core/src/" "$LEIN_DIR/leiningen-core/resources/" \
- "$LEIN_DIR/test:$LEIN_DIR/target/classes" "$LEIN_DIR/src" ":$LEIN_DIR/resources"
-
- if [ -r "$LEIN_DIR/.lein-classpath" ]; then
- add_path CLASSPATH "$(cat "$LEIN_DIR/.lein-classpath" 2> /dev/null)"
- else
- add_path CLASSPATH "$(cat "$LEIN_DIR/leiningen-core/.lein-bootstrap" 2> /dev/null)"
- fi
-else # Not running from a checkout
- add_path CLASSPATH "$LEIN_JAR"
-
- BOOTCLASSPATH="-Xbootclasspath/a:$LEIN_JAR"
-
- if [ ! -r "$LEIN_JAR" -a "$1" != "self-install" ]; then
- self_install
- fi
-fi
-
-# TODO: explain what to do when Java is missing
-export JAVA_CMD="${JAVA_CMD:-"java"}"
-export LEIN_JAVA_CMD="${LEIN_JAVA_CMD:-$JAVA_CMD}"
-
-if [[ -z "${DRIP_INIT+x}" && "$(basename "$LEIN_JAVA_CMD")" == *drip* ]]; then
- export DRIP_INIT="$(printf -- '-e\n(require (quote leiningen.repl))')"
- export DRIP_INIT_CLASS="clojure.main"
-fi
-
-# Support $JAVA_OPTS for backwards-compatibility.
-export JVM_OPTS="${JVM_OPTS:-"$JAVA_OPTS"}"
-
-# Handle jline issue with cygwin not propagating OSTYPE through java subprocesses: https://github.com/jline/jline2/issues/62
-cygterm=false
-if $cygwin; then
- case "$TERM" in
- rxvt* | xterm* | vt*) cygterm=true ;;
- esac
-fi
-
-if $cygterm; then
- LEIN_JVM_OPTS="$LEIN_JVM_OPTS -Djline.terminal=jline.UnixTerminal"
- stty -icanon min 1 -echo > /dev/null 2>&1
-fi
-
-# TODO: investigate http://skife.org/java/unix/2011/06/20/really_executable_jars.html
-# If you're packaging this for a package manager (.deb, homebrew, etc)
-# you need to remove the self-install and upgrade functionality or see lein-pkg.
-if [ "$1" = "self-install" ]; then
- if [ -r "$BIN_DIR/../src/leiningen/version.clj" ]; then
- echo "Running self-install from a checkout is not supported."
- echo "See CONTRIBUTING.md for SNAPSHOT-specific build instructions."
- exit 1
- fi
- echo "Manual self-install is deprecated; it will run automatically when necessary."
- self_install
-elif [ "$1" = "upgrade" ] || [ "$1" = "downgrade" ]; then
- if [ "$LEIN_DIR" != "" ]; then
- echo "The upgrade task is not meant to be run from a checkout."
- exit 1
- fi
- if [ $SNAPSHOT = "YES" ]; then
- echo "The upgrade task is only meant for stable releases."
- echo "See the \"Hacking\" section of the README."
- exit 1
- fi
- if [ ! -w "$SCRIPT" ]; then
- echo "You do not have permission to upgrade the installation in $SCRIPT"
- exit 1
- else
- TARGET_VERSION="${2:-stable}"
- echo "The script at $SCRIPT will be upgraded to the latest $TARGET_VERSION version."
- echo -n "Do you want to continue [Y/n]? "
- read RESP
- case "$RESP" in
- y|Y|"")
- echo
- echo "Upgrading..."
- TARGET="/tmp/lein-$$-upgrade"
- if $cygwin; then
- TARGET=`cygpath -w $TARGET`
- fi
- LEIN_SCRIPT_URL="https://github.com/technomancy/leiningen/raw/$TARGET_VERSION/bin/lein"
- $HTTP_CLIENT "$TARGET" "$LEIN_SCRIPT_URL"
- if [ $? == 0 ]; then
- cmp -s "$TARGET" "$SCRIPT"
- if [ $? == 0 ]; then
- echo "Leiningen is already up-to-date."
- fi
- mv "$TARGET" "$SCRIPT" && chmod +x "$SCRIPT"
- exec "$SCRIPT" version
- else
- download_failed_message "$LEIN_SCRIPT_URL"
- fi;;
- *)
- echo "Aborted."
- exit 1;;
- esac
- fi
-else
- if $cygwin; then
- # When running on Cygwin, use Windows-style paths for java
- ORIGINAL_PWD=`cygpath -w "$ORIGINAL_PWD"`
- fi
-
- # apply context specific CLASSPATH entries
- if [ -f .lein-classpath ]; then
- add_path CLASSPATH "$(cat .lein-classpath)"
- fi
-
- if [ $DEBUG ]; then
- echo "Leiningen's classpath: $CLASSPATH"
- fi
-
- if [ -r .lein-fast-trampoline ]; then
- export LEIN_FAST_TRAMPOLINE='y'
- fi
-
- if [ "$LEIN_FAST_TRAMPOLINE" != "" ] && [ -r project.clj ]; then
- INPUTS="$@ $(cat project.clj) $LEIN_VERSION $(test -f "$LEIN_HOME/profiles.clj" && cat "$LEIN_HOME/profiles.clj")"
- export INPUT_CHECKSUM=$(echo $INPUTS | shasum - | cut -f 1 -d " ")
- # Just don't change :target-path in project.clj, mkay?
- TRAMPOLINE_FILE="target/trampolines/$INPUT_CHECKSUM"
- else
- if hash mktemp 2>/dev/null; then
- # Check if mktemp is available before using it
- TRAMPOLINE_FILE="$(mktemp /tmp/lein-trampoline-XXXXXXXXXXXXX)"
- else
- TRAMPOLINE_FILE="/tmp/lein-trampoline-$$"
- fi
- trap "rm -f $TRAMPOLINE_FILE" EXIT
- fi
-
- if $cygwin; then
- TRAMPOLINE_FILE=`cygpath -w $TRAMPOLINE_FILE`
- fi
-
- if [ "$INPUT_CHECKSUM" != "" ] && [ -r "$TRAMPOLINE_FILE" ]; then
- if [ $DEBUG ]; then
- echo "Fast trampoline with $TRAMPOLINE_FILE."
- fi
- exec sh -c "exec $(cat $TRAMPOLINE_FILE)"
- else
- export TRAMPOLINE_FILE
- "$LEIN_JAVA_CMD" \
- "${BOOTCLASSPATH[@]}" \
- -Dfile.encoding=UTF-8 \
- -Dmaven.wagon.http.ssl.easy=false \
- -Dmaven.wagon.rto=10000 \
- $LEIN_JVM_OPTS \
- -Dleiningen.original.pwd="$ORIGINAL_PWD" \
- -Dleiningen.script="$SCRIPT" \
- -classpath "$CLASSPATH" \
- clojure.main -m leiningen.core.main "$@"
-
- EXIT_CODE=$?
-
- if $cygterm ; then
- stty icanon echo > /dev/null 2>&1
- fi
-
- ## TODO: [ -r "$TRAMPOLINE_FILE" ] may be redundant? A trampoline file
- ## is always generated these days.
- if [ -r "$TRAMPOLINE_FILE" ] && [ "$LEIN_TRAMPOLINE_WARMUP" = "" ]; then
- TRAMPOLINE="$(cat $TRAMPOLINE_FILE)"
- if [ "$INPUT_CHECKSUM" = "" ]; then
- rm $TRAMPOLINE_FILE
- fi
- if [ "$TRAMPOLINE" = "" ]; then
- exit $EXIT_CODE
- else
- exec sh -c "exec $TRAMPOLINE"
- fi
- else
- exit $EXIT_CODE
- fi
- fi
-fi
diff --git a/clojure/gol/project.clj b/clojure/gol/project.clj
deleted file mode 100644
index 017b9c5..0000000
--- a/clojure/gol/project.clj
+++ /dev/null
@@ -1,4 +0,0 @@
-(defproject gol "0.1.0-SNAPSHOT"
- :description "Game of Life pairing test"
- :min-lein-version "2.5.1"
- :dependencies [[org.clojure/clojure "1.6.0"]])
diff --git a/clojure/gol/src/gol/core.clj b/clojure/gol/src/gol/core.clj
deleted file mode 100644
index 8ef032c..0000000
--- a/clojure/gol/src/gol/core.clj
+++ /dev/null
@@ -1,6 +0,0 @@
-(ns gol.core)
-
-(defn foo
- "I don't do a whole lot."
- [x]
- (println x "Hello, World!"))
diff --git a/clojure/gol/test/gol/core_test.clj b/clojure/gol/test/gol/core_test.clj
deleted file mode 100644
index fe37605..0000000
--- a/clojure/gol/test/gol/core_test.clj
+++ /dev/null
@@ -1,7 +0,0 @@
-(ns gol.core-test
- (:require [clojure.test :refer :all]
- [gol.core :refer :all]))
-
-(deftest a-test
- (testing "FIXME, I fail."
- (is (= 0 1))))
diff --git a/clojure/project.clj b/clojure/project.clj
new file mode 100644
index 0000000..a14eea5
--- /dev/null
+++ b/clojure/project.clj
@@ -0,0 +1,5 @@
+(defproject pairing "0.1.0-SNAPSHOT"
+ :description "Skeleton project for a pairing test"
+ :min-lein-version "2.5.1"
+ :dependencies [[org.clojure/clojure "1.11.1"]]
+ :main pairing.core)
diff --git a/clojure/script/setup b/clojure/script/setup
new file mode 100755
index 0000000..33f273c
--- /dev/null
+++ b/clojure/script/setup
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+lein deps
diff --git a/clojure/script/start b/clojure/script/start
new file mode 100755
index 0000000..77e49bf
--- /dev/null
+++ b/clojure/script/start
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+lein run
diff --git a/clojure/script/test b/clojure/script/test
new file mode 100755
index 0000000..2fe6eff
--- /dev/null
+++ b/clojure/script/test
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+lein test
diff --git a/clojure/src/pairing/core.clj b/clojure/src/pairing/core.clj
new file mode 100644
index 0000000..79c15a5
--- /dev/null
+++ b/clojure/src/pairing/core.clj
@@ -0,0 +1,10 @@
+(ns pairing.core)
+
+(defn greeting
+ "Builds a greeting for the given name."
+ [name]
+ (str "Hello, " name "!"))
+
+(defn -main
+ [& args]
+ (println (greeting "world")))
diff --git a/clojure/test/pairing/core_test.clj b/clojure/test/pairing/core_test.clj
new file mode 100644
index 0000000..5993d91
--- /dev/null
+++ b/clojure/test/pairing/core_test.clj
@@ -0,0 +1,7 @@
+(ns pairing.core-test
+ (:require [clojure.test :refer :all]
+ [pairing.core :refer :all]))
+
+(deftest greeting-test
+ (testing "greeting addresses the name it is given"
+ (is (= "Hello, world!" (greeting "world")))))
diff --git a/dot-net-core/.tool-versions b/dot-net-core/.tool-versions
new file mode 100644
index 0000000..0e1ae0a
--- /dev/null
+++ b/dot-net-core/.tool-versions
@@ -0,0 +1 @@
+dotnet 10
diff --git a/dot-net-core/Code/Code.csproj b/dot-net-core/Code/Code.csproj
index 71fb1ae..e35d2e3 100644
--- a/dot-net-core/Code/Code.csproj
+++ b/dot-net-core/Code/Code.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp10.0
+ net10.0
diff --git a/dot-net-core/Code/PairingTest.cs b/dot-net-core/Code/PairingTest.cs
index 78855bb..58d8a85 100644
--- a/dot-net-core/Code/PairingTest.cs
+++ b/dot-net-core/Code/PairingTest.cs
@@ -5,7 +5,7 @@ namespace Code
public class PairingTest
{
public static bool TestFunction() {
- return false;
+ return true;
}
static void Main(string[] args)
diff --git a/dot-net-core/README.md b/dot-net-core/README.md
index b3e81e0..fc3d41d 100644
--- a/dot-net-core/README.md
+++ b/dot-net-core/README.md
@@ -1,19 +1,32 @@
# .NET Core
-Pairing test skeleton using .NET core and `nunit` for testing.
+Skeleton project for .NET Core (C#).
+
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+dotnet 10
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
## Usage
-- `./script/setup` to install dependencies (uses [homebrew](https://brew.sh/))
-- `./script/test` to run the tests
-- `./script/start` to run the code
+- `./script/setup` to restore dependencies
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app
## Structure
- Code located in [`PairingTest.cs`](./Code/PairingTest.cs)
- Tests located in [`Tests.cs`](./Test/Tests.cs)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
## Notes
-IDE-wise you can use VS Code with the standard Microsoft C# extension.
-
-Skeleton created following these instructions: https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit
+IDE-wise you can use VS Code with the standard Microsoft C# extension.
diff --git a/dot-net-core/Test/Test.csproj b/dot-net-core/Test/Test.csproj
index ef96f3b..6c8a10c 100644
--- a/dot-net-core/Test/Test.csproj
+++ b/dot-net-core/Test/Test.csproj
@@ -1,7 +1,7 @@
- netcoreapp10.0
+ net10.0
false
diff --git a/dot-net-core/Test/Tests.cs b/dot-net-core/Test/Tests.cs
index b4c435f..e02207d 100644
--- a/dot-net-core/Test/Tests.cs
+++ b/dot-net-core/Test/Tests.cs
@@ -13,7 +13,7 @@ public void Setup()
[Test]
public void ExampleTest()
{
- Assert.IsTrue(Code.PairingTest.TestFunction());
+ Assert.That(Code.PairingTest.TestFunction(), Is.True);
}
}
}
\ No newline at end of file
diff --git a/dot-net-core/script/setup b/dot-net-core/script/setup
index 95a1b8c..48089ae 100755
--- a/dot-net-core/script/setup
+++ b/dot-net-core/script/setup
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-brew install dotnet-sdk
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+dotnet restore
diff --git a/dot-net-core/script/start b/dot-net-core/script/start
index 09d01b5..66b2051 100755
--- a/dot-net-core/script/start
+++ b/dot-net-core/script/start
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
dotnet run --project Code
diff --git a/dot-net-core/script/test b/dot-net-core/script/test
index d2ba6d7..3dc4035 100755
--- a/dot-net-core/script/test
+++ b/dot-net-core/script/test
@@ -1,5 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-dotnet test
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ dotnet watch test
+else
+ dotnet test
+fi
diff --git a/go/.gitignore b/go/.gitignore
new file mode 100644
index 0000000..7f1aba2
--- /dev/null
+++ b/go/.gitignore
@@ -0,0 +1,2 @@
+# Go build output
+/go
diff --git a/go/.tool-versions b/go/.tool-versions
new file mode 100644
index 0000000..a2e36c0
--- /dev/null
+++ b/go/.tool-versions
@@ -0,0 +1 @@
+go 1
diff --git a/go/README.md b/go/README.md
index 0898873..b6e56bb 100644
--- a/go/README.md
+++ b/go/README.md
@@ -1,14 +1,29 @@
-# GO
+# Go
Skeleton project for Go.
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+go 1
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
+
## Usage
-- `./script/setup` to install dependencies
+- `./script/setup` to fetch dependencies
- `./script/test` to run the tests
-- `./script/start` to run the code
+- `./script/start` to run the app
## Structure
-- Code located in [`pairing.go`](./src/pairing.go) and [`main.go`](main.go)
-- Tests located in [`pairing_test.go`](./src/pairing_test.go)
+- Code located in [`main.go`](./main.go) and [`src/pairing.go`](./src/pairing.go)
+- Tests located in [`src/pairing_test.go`](./src/pairing_test.go)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/go/go.mod b/go/go.mod
new file mode 100644
index 0000000..fcb18b1
--- /dev/null
+++ b/go/go.mod
@@ -0,0 +1,3 @@
+module github.com/guardian/coding-exercise-project/go
+
+go 1.21
diff --git a/go/main.go b/go/main.go
index 630d398..039bd26 100644
--- a/go/main.go
+++ b/go/main.go
@@ -1,7 +1,11 @@
package main
-import "./src"
+import (
+ "fmt"
+
+ "github.com/guardian/coding-exercise-project/go/src"
+)
func main() {
- println(pairing.SayHello())
+ fmt.Println(pairing.SayHello())
}
diff --git a/go/script/setup b/go/script/setup
index d00f272..ea96004 100755
--- a/go/script/setup
+++ b/go/script/setup
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-brew install go
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+go mod download
diff --git a/go/script/start b/go/script/start
index 3d6bd90..d5624cc 100755
--- a/go/script/start
+++ b/go/script/start
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
go run main.go
diff --git a/go/script/test b/go/script/test
index 1a21bbb..5cae49c 100755
--- a/go/script/test
+++ b/go/script/test
@@ -1,9 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-pushd src
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
-go test
-
-popd
+go test ./...
diff --git a/go/src/pairing.go b/go/src/pairing.go
index 8931531..9d8cffb 100644
--- a/go/src/pairing.go
+++ b/go/src/pairing.go
@@ -1,5 +1,5 @@
package pairing
func SayHello() string {
- return "hi"
+ return "hello"
}
diff --git a/go/src/pairing_test.go b/go/src/pairing_test.go
index bb74fa3..f6402de 100644
--- a/go/src/pairing_test.go
+++ b/go/src/pairing_test.go
@@ -2,12 +2,8 @@ package pairing
import "testing"
-func TestNothing(t *testing.T) {
- t.Skip("no implemented")
-}
-
func TestSimpleString(t *testing.T) {
- if SayHello() != "hello" {
- t.Error("couldn't get hello message")
- }
+ if SayHello() != "hello" {
+ t.Error("couldn't get hello message")
+ }
}
diff --git a/java/.gitignore b/java/.gitignore
new file mode 100644
index 0000000..b55eb8a
--- /dev/null
+++ b/java/.gitignore
@@ -0,0 +1,2 @@
+# Maven build output
+target/
diff --git a/java/.tool-versions b/java/.tool-versions
new file mode 100644
index 0000000..e1f4375
--- /dev/null
+++ b/java/.tool-versions
@@ -0,0 +1,2 @@
+java corretto-21
+maven 3
diff --git a/java/README.md b/java/README.md
index f4dd227..6ed5587 100644
--- a/java/README.md
+++ b/java/README.md
@@ -2,10 +2,30 @@
Skeleton project for Java using Maven.
+## Toolchain
+
+The toolchain is declared in [`.tool-versions`](.tool-versions):
+
+```
+java corretto-21
+maven 3
+```
+
+Install it however you prefer — [mise](https://mise.jdx.dev) is the easiest route:
+
+```bash
+mise install
+```
+
+`./script/setup` does not install the toolchain; it expects the tools above to be on your `PATH`.
+
## Usage
Feel free to run the main class and test suites directly through your IDE of choice. If you want to run from the terminal, you can use these commands:
-- `./script/setup` to attempt to install required packages (Java and Maven)
+- `./script/setup` to download dependencies
- `./script/run` to run the main class
- `./script/test` to run the test suite
+
+The example test passes out of the box. A good way to get your bearings is to break it
+deliberately, watch it fail, then put it back.
diff --git a/java/script/run b/java/script/run
index 73531ee..2f56be4 100755
--- a/java/script/run
+++ b/java/script/run
@@ -1,3 +1,7 @@
-#!/bin/bash
+#!/usr/bin/env bash
-mvn exec:java
\ No newline at end of file
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+mvn --quiet exec:java
diff --git a/java/script/setup b/java/script/setup
index 93e702a..ec10912 100755
--- a/java/script/setup
+++ b/java/script/setup
@@ -1,9 +1,7 @@
-#!/bin/bash
+#!/usr/bin/env bash
-set -e
+set -euo pipefail
-if which brew >/dev/null 2>&1 ; then
- brew install maven
-else
- echo "You don't have brew installed, so we can't automatically install Java and Maven. Please install them yourself."
-fi
\ No newline at end of file
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+mvn --quiet dependency:resolve
diff --git a/java/script/test b/java/script/test
index 8689dca..110bee7 100755
--- a/java/script/test
+++ b/java/script/test
@@ -1,3 +1,7 @@
-#!/bin/bash
+#!/usr/bin/env bash
-mvn test
\ No newline at end of file
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+mvn test
diff --git a/javascript-esm/.nvmrc b/javascript-esm/.nvmrc
deleted file mode 100644
index 1a2f5bd..0000000
--- a/javascript-esm/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-lts/*
\ No newline at end of file
diff --git a/javascript-esm/.tool-versions b/javascript-esm/.tool-versions
new file mode 100644
index 0000000..e2d8fff
--- /dev/null
+++ b/javascript-esm/.tool-versions
@@ -0,0 +1,2 @@
+node 22
+yarn 3
diff --git a/javascript-esm/README.md b/javascript-esm/README.md
index c8d4d9a..a93fb3e 100644
--- a/javascript-esm/README.md
+++ b/javascript-esm/README.md
@@ -1,15 +1,30 @@
# Javascript ESM
-Skeleton project for Javascript (ESM) with Jest for testing.
+Skeleton project for Javascript (ESM).
-## Usage
-- `./script/setup` to install dependencies
-- `./script/test` to run the tests
-- `./script/start` to run the index.js file
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+node 22
+yarn 3
+```
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
+
+## Usage
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app
## Structure
- Code located in [`index.js`](./src/index.js)
- Tests located in [`index.test.js`](./src/index.test.js)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/javascript-esm/package.json b/javascript-esm/package.json
index 43e3e6e..6a326cb 100644
--- a/javascript-esm/package.json
+++ b/javascript-esm/package.json
@@ -8,7 +8,7 @@
"jest": "^29.6.0"
},
"scripts": {
- "test": "jest --watchAll",
+ "test": "jest",
"start": "node src/index.js"
},
"jest": {
diff --git a/javascript-esm/script/setup b/javascript-esm/script/setup
index d302646..e2cee61 100755
--- a/javascript-esm/script/setup
+++ b/javascript-esm/script/setup
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
yarn
diff --git a/javascript-esm/script/start b/javascript-esm/script/start
index 420ecee..61c9770 100755
--- a/javascript-esm/script/start
+++ b/javascript-esm/script/start
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
yarn start
diff --git a/javascript-esm/script/test b/javascript-esm/script/test
index ee53164..8e0454e 100755
--- a/javascript-esm/script/test
+++ b/javascript-esm/script/test
@@ -1,5 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-yarn test --watch
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ yarn test --watchAll
+else
+ yarn test
+fi
diff --git a/javascript-esm/src/index.js b/javascript-esm/src/index.js
index 0f2f55b..b9ad5ad 100644
--- a/javascript-esm/src/index.js
+++ b/javascript-esm/src/index.js
@@ -1,3 +1,3 @@
export const pairingTest = () => {
- return false;
+ return true;
}
\ No newline at end of file
diff --git a/javascript-esm/src/index.test.js b/javascript-esm/src/index.test.js
index 45c3aee..97dd210 100644
--- a/javascript-esm/src/index.test.js
+++ b/javascript-esm/src/index.test.js
@@ -1,5 +1,5 @@
import { pairingTest } from './index'
-test('a failing test', () => {
+test('pairingTest returns true', () => {
expect(pairingTest()).toBe(true);
});
\ No newline at end of file
diff --git a/javascript/.nvmrc b/javascript/.nvmrc
deleted file mode 100644
index 1a2f5bd..0000000
--- a/javascript/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-lts/*
\ No newline at end of file
diff --git a/javascript/.tool-versions b/javascript/.tool-versions
new file mode 100644
index 0000000..e2d8fff
--- /dev/null
+++ b/javascript/.tool-versions
@@ -0,0 +1,2 @@
+node 22
+yarn 3
diff --git a/javascript/README.md b/javascript/README.md
index 14b35ca..a54a207 100644
--- a/javascript/README.md
+++ b/javascript/README.md
@@ -1,14 +1,30 @@
-# Javascript
+# JavaScript
-Skeleton project for Javascript with Jest for testing.
+Skeleton project for JavaScript.
-## Usage
-- `./script/setup` to install dependencies
-- `./script/test` to run the tests
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+node 22
+yarn 3
+```
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
+
+## Usage
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app
## Structure
- Code located in [`index.js`](./src/index.js)
- Tests located in [`index.test.js`](./src/index.test.js)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/javascript/package.json b/javascript/package.json
index a7454c1..2c21315 100644
--- a/javascript/package.json
+++ b/javascript/package.json
@@ -5,6 +5,7 @@
"jest": "^29.5.0"
},
"scripts": {
- "test": "jest --watchAll"
+ "start": "node src/index.js",
+ "test": "jest"
}
}
diff --git a/javascript/script/setup b/javascript/script/setup
index d302646..e2cee61 100755
--- a/javascript/script/setup
+++ b/javascript/script/setup
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
yarn
diff --git a/javascript/script/start b/javascript/script/start
new file mode 100755
index 0000000..61c9770
--- /dev/null
+++ b/javascript/script/start
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+yarn start
diff --git a/javascript/script/test b/javascript/script/test
index ee53164..8e0454e 100755
--- a/javascript/script/test
+++ b/javascript/script/test
@@ -1,5 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-yarn test --watch
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ yarn test --watchAll
+else
+ yarn test
+fi
diff --git a/javascript/src/index.js b/javascript/src/index.js
index 3e9b0fa..6bbaa9c 100644
--- a/javascript/src/index.js
+++ b/javascript/src/index.js
@@ -1,5 +1,5 @@
function pairingTest() {
- return false;
+ return true;
}
module.exports = {
diff --git a/javascript/src/index.test.js b/javascript/src/index.test.js
index b017cf5..ca7ffbd 100644
--- a/javascript/src/index.test.js
+++ b/javascript/src/index.test.js
@@ -1,5 +1,5 @@
const { pairingTest } = require('.');
-test('a failing test', () => {
+test('pairingTest returns true', () => {
expect(pairingTest()).toBe(true);
});
\ No newline at end of file
diff --git a/kotlin/.tool-versions b/kotlin/.tool-versions
new file mode 100644
index 0000000..0ef52de
--- /dev/null
+++ b/kotlin/.tool-versions
@@ -0,0 +1 @@
+java corretto-21
diff --git a/kotlin/README.md b/kotlin/README.md
index 7b3ef4f..d654d70 100644
--- a/kotlin/README.md
+++ b/kotlin/README.md
@@ -1,40 +1,29 @@
-# Kotlin Pairing Test Project
+# Kotlin
-This is a skeleton project for the Guardian Kotlin [pair programming exercise](https://github.com/guardian/coding-exercises).
+Skeleton project for Kotlin.
-## Structure
-- Code located in [`Main.kt`](./src/main/kotlin/com/gu/pairingtest/Main.kt)
-- Tests located in [`MainTest.kt`](./src/test/kotlin/MainTest.kt)
-
-However, you're free to organise your code as you like.
-
-## Running in Android studio or IntelliJ IDEA
-You should be able to import this project into Android studio or IntelliJ and click the play button next to each unit test to run the unit tests. If this is too slow or doesn't work try following the next section for setting up on the command line / any other IDE.
-
-## Using another IDE and running on the command line
-If you'd like to use another IDE (e.g VSCode, Atom, Vim) you'll need to be able to run the unit tests via the command line.
+## Prerequisites
-To do this make sure you have the JDK installed and the JAVA_HOME environment variable set.
-If on MacOS you can run `./script/setup` in a terminal to try to automate this process.
-If this fails or you're on Windows you can [install the JDK manually](https://adoptium.net/)
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
-Once the JDK is installed then:
+```
+java corretto-21
+```
-If on MacOS / Linux open a terminal and run:
-- `./script/setup` to make sure your JAVA_HOME is set
-- `./script/test` to run the unit tests.
-- `./script/start` to run the main function
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
-If on Windows open Powershell and run:
-- `./gradlew.bat test` to run the unit tests
-- `./gradlew.bat run` to run the main function
-- If these complain about JAVA_HOME not being set. Try running `$env:JAVA_HOME = Join-Path (Get-Command javac).path "../../" -Resolve` and running them again
+```sh
+mise install
+```
-*Please note:* Unit tests will not output results if run twice without any test or code changes. See: https://blog.gradle.org/stop-rerunning-tests
+## Usage
+- `./script/setup` to download the Gradle distribution
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app
-## Manual setup
-
-If these scripts fail and you can't open the project in Android Studio, you may have to [install the JDK manually](https://adoptium.net/). JDK versions 8 and above should work.
-
-Once you've installed the JDK and set the JAVA_HOME environment variable to the location of your JDK install, then try running `./gradlew test` which will use the Gradle wrapper script to download Gradle and run the tests. If this fails [download gradle manually](https://gradle.org/install/) and run `gradle test`.
+## Structure
+- Code located in [`Main.kt`](./src/main/kotlin/com/gu/pairingtest/Main.kt)
+- Tests located in [`MainTest.kt`](./src/test/kotlin/MainTest.kt)
+However, you're free to organise your code as you like.
diff --git a/kotlin/build.gradle b/kotlin/build.gradle
index 3d0460c..bbef530 100644
--- a/kotlin/build.gradle
+++ b/kotlin/build.gradle
@@ -1,13 +1,8 @@
plugins {
- id 'java'
- id 'org.jetbrains.kotlin.jvm' version '1.5.31'
+ id 'org.jetbrains.kotlin.jvm' version '2.0.21'
id 'application'
}
-ext {
- kotlinVersion = '1.5.31'
-}
-
group 'com.gu'
version '1.0-SNAPSHOT'
@@ -16,32 +11,21 @@ repositories {
}
dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
- testImplementation group: 'junit', name: 'junit', version: '4.12'
- testImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.5.31"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib"
+ testImplementation group: 'junit', name: 'junit', version: '4.13.2'
+ testImplementation "org.jetbrains.kotlin:kotlin-test-junit"
}
test {
- testLogging.showStandardStreams = true
-
testLogging {
- events "PASSED", "SKIPPED", "FAILED", "STANDARD_OUT", "STANDARD_ERROR"
- }
+ events "PASSED", "SKIPPED", "FAILED", "STANDARD_OUT", "STANDARD_ERROR"
+ }
}
-compileKotlin {
- kotlinOptions.jvmTarget = "1.8"
-}
-compileTestKotlin {
- kotlinOptions.jvmTarget = "1.8"
+kotlin {
+ jvmToolchain(21)
}
-jar {
- manifest {
- attributes(
- 'Main-Class': 'com.gu.pairingtest.MainKt'
- )
- }
+application {
+ mainClass = 'com.gu.pairingtest.MainKt'
}
-
-mainClassName = 'com.gu.pairingtest.MainKt'
\ No newline at end of file
diff --git a/kotlin/gradle/wrapper/gradle-wrapper.jar b/kotlin/gradle/wrapper/gradle-wrapper.jar
index e708b1c..a4b76b9 100644
Binary files a/kotlin/gradle/wrapper/gradle-wrapper.jar and b/kotlin/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/kotlin/gradle/wrapper/gradle-wrapper.properties b/kotlin/gradle/wrapper/gradle-wrapper.properties
index da9702f..e2847c8 100644
--- a/kotlin/gradle/wrapper/gradle-wrapper.properties
+++ b/kotlin/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/kotlin/gradlew b/kotlin/gradlew
index 4f906e0..f5feea6 100755
--- a/kotlin/gradlew
+++ b/kotlin/gradlew
@@ -1,7 +1,7 @@
-#!/usr/bin/env sh
+#!/bin/sh
#
-# Copyright 2015 the original author or authors.
+# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,69 +15,104 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+# SPDX-License-Identifier: Apache-2.0
+#
##############################################################################
-##
-## Gradle start up script for UN*X
-##
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
##############################################################################
# Attempt to set APP_HOME
+
# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
+' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
+MAX_FD=maximum
warn () {
echo "$*"
-}
+} >&2
die () {
echo
echo "$*"
echo
exit 1
-}
+} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -87,9 +122,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACMD=$JAVA_HOME/jre/sh/java
else
- JAVACMD="$JAVA_HOME/bin/java"
+ JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -98,88 +133,120 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
fi
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
fi
- i=`expr $i + 1`
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
fi
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=`save "$@"`
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
exec "$JAVACMD" "$@"
diff --git a/kotlin/gradlew.bat b/kotlin/gradlew.bat
index ac1b06f..9b42019 100644
--- a/kotlin/gradlew.bat
+++ b/kotlin/gradlew.bat
@@ -13,8 +13,10 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +27,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
diff --git a/kotlin/script/setup b/kotlin/script/setup
index 9fa76d6..6b9582d 100755
--- a/kotlin/script/setup
+++ b/kotlin/script/setup
@@ -1,42 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-# If JAVA_HOME not set then search for jdk to set JAVA_HOME to
-# This includes the JDK integrated into Android studio
-if [[ -z "$JAVA_HOME" ]]; then
- echo "JAVA_HOME not set"
- android_studio_path="/Applications/Android Studio.app/Contents"
- system_java_home=$(/usr/libexec/java_home)
- potential_java_homes=("$JAVA_HOME" "$system_java_home" "$android_studio_path/jre/Contents/Home" "$android_studio_path/jre/jdk/Contents/Home")
- for potential_java_home in "${potential_java_homes[@]}"
- do
- if [[ -f "$potential_java_home/bin/javac" ]]; then
- echo "Found JDK at $potential_java_home"
- JAVA_HOME=$potential_java_home
- fi
- done
-fi
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
-# If we still can't find a JDK on JAVA_HOME then ask user to install using homebrew
-if [[ -z "$JAVA_HOME" ]]; then
- echo "Failed to find JDK as no JAVA_HOME is set"
- read -p "Install adoptopenjdk11 using homebrew? [y/n] " -n 1 -r
- echo ""
- if [[ $REPLY =~ ^[Yy]$ ]]; then
- brew install adoptopenjdk11
- JAVA_HOME=$(/usr/libexec/java_home)
- echo "Setting JAVA_HOME to $JAVA_HOME"
- else
- echo "Install JDK and set JAVA_HOME manually."
- fi
- exit
-fi
-
-# Tell user to export JAVA_HOME to prevent setup script running again
-if [[ ! -z "$JAVA_HOME" ]]; then
- echo "To prevent setup script running again run:"
- echo ""
- echo "export JAVA_HOME=\"$JAVA_HOME\""
- echo ""
-fi
+./gradlew --version
diff --git a/kotlin/script/start b/kotlin/script/start
index 55f58ea..b1fbd67 100755
--- a/kotlin/script/start
+++ b/kotlin/script/start
@@ -1,11 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-# If JAVA_HOME not set run setup script using source so that JAVA_HOME is set for this script
-if [[ -z "$JAVA_HOME" ]]
-then
- source ./script/setup
-fi
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
./gradlew run
diff --git a/kotlin/script/test b/kotlin/script/test
index 64b124e..725030d 100755
--- a/kotlin/script/test
+++ b/kotlin/script/test
@@ -1,11 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-# If JAVA_HOME not set run setup script using source so that JAVA_HOME is set for this script
-if [[ -z "$JAVA_HOME" ]]
-then
- source ./script/setup
-fi
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
-./gradlew test
+if [[ "${1:-}" == "--watch" ]]; then
+ ./gradlew test --continuous
+else
+ ./gradlew test
+fi
diff --git a/php/.tool-versions b/php/.tool-versions
new file mode 100644
index 0000000..13bc26d
--- /dev/null
+++ b/php/.tool-versions
@@ -0,0 +1 @@
+php 8
diff --git a/php/README.md b/php/README.md
index b467e11..b083d0d 100644
--- a/php/README.md
+++ b/php/README.md
@@ -1,23 +1,34 @@
# PHP
-Skeleton project for PHP with PHPUnit for testing.
+Skeleton project for PHP.
-## Usage (on MacOS or Linux)
-- `./script/setup` to install dependencies using brew
- - If this doesn't work install PHP CLI and [Composer](https://getcomposer.org/) manually
-- `./script/test` to run the tests
-- `./script/start` to run the code
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+php 8
+```
-*Note: You need [brew](https://brew.sh/) installed for the setup script to work. If you haven't installed brew before it will require at least 5gb of space. Downloading these packages will take a long time, so please ensure you do so well in advance of the interview.*
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
-## Usage (on Windows)
-- `PowerShell.exe -ExecutionPolicy UnRestricted -File .\script\setup.ps1` to download temp install of php and composer dependencies
- - If this doesn't work install [PHP](https://www.php.net/manual/en/install.windows.php) and [Composer](https://getcomposer.org/) manually
-- `php composer.phar test` to run the tests
-- `php composer.phar start` to run the code
+```sh
+mise install
+```
+
+Note that mise compiles PHP from source, so it needs some system libraries to build against.
+If `mise install` fails, run [`./script/system-packages`](./script/system-packages) to install
+them and try again. You can skip this if you install PHP from a package manager instead
+(`apt install php`, `brew install php`), as that comes pre-built.
+
+## Usage
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests
+- `./script/start` to run the app
## Structure
- Code located in [`code.php`](./code.php)
-- Tests located in [`tests.php`](./tests.php)
+- Tests located in [`Tests.php`](./Tests.php)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/php/Tests.php b/php/Tests.php
index dee4e4d..65dc131 100644
--- a/php/Tests.php
+++ b/php/Tests.php
@@ -2,12 +2,12 @@
use PHPUnit\Framework\TestCase;
+require_once __DIR__ . '/code.php';
+
class Tests extends TestCase
{
public function testSkeleton()
{
- $this->assertSame(true, false);
+ $this->assertSame("Hi there!", greeting());
}
}
-
-?>
\ No newline at end of file
diff --git a/php/code.php b/php/code.php
index ca8fd95..05ca84e 100644
--- a/php/code.php
+++ b/php/code.php
@@ -1,9 +1,9 @@
\ No newline at end of file
+if (basename(__FILE__) === basename($_SERVER['SCRIPT_FILENAME'] ?? '')) {
+ echo greeting() . "\n";
+}
diff --git a/php/composer.json b/php/composer.json
index 594c44d..1c8f665 100644
--- a/php/composer.json
+++ b/php/composer.json
@@ -4,6 +4,7 @@
},
"scripts": {
"start": "php code.php",
- "test": "phpunit Tests.php"
+ "test": "vendor/bin/phpunit Tests.php"
}
}
+
diff --git a/php/script/setup b/php/script/setup
index 296efed..069d192 100755
--- a/php/script/setup
+++ b/php/script/setup
@@ -1,7 +1,21 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-brew install php
-brew install phpunit
-brew install composer
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+# Bootstrap composer locally if not present
+if [[ ! -f composer.phar ]]; then
+ EXPECTED_SIG="$(curl -fsSL https://composer.github.io/installer.sig)"
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
+ ACTUAL_SIG="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
+ if [[ "$EXPECTED_SIG" != "$ACTUAL_SIG" ]]; then
+ echo "Composer installer signature verification failed" >&2
+ rm -f composer-setup.php
+ exit 1
+ fi
+ php composer-setup.php
+ rm -f composer-setup.php
+fi
+
+php composer.phar install
diff --git a/php/script/setup.ps1 b/php/script/setup.ps1
deleted file mode 100644
index 4a2973e..0000000
--- a/php/script/setup.ps1
+++ /dev/null
@@ -1,27 +0,0 @@
-$phpZipUrl = "https://windows.php.net/downloads/releases/php-8.1.10-nts-Win32-vs16-x64.zip"
-$phpZipFilename = "php-8.1.10-nts-Win32-vs16-x64.zip"
-$localPhp = "./php"
-
-# Download PHP zip
-Import-Module BitsTransfer
-Start-BitsTransfer -Source $phpZipUrl -Destination $phpZipFilename
-
-# Extract PHP zip
-Expand-Archive -Force -LiteralPath ./$phpZipFilename -DestinationPath $localPhp
-
-# Add downloaded php to path
-$phpPath = (Convert-Path $localPhp)
-$env:PATH = $env:PATH + ";" + $phpPath
-
-php --version
-
-# Copy php config to local install
-cp ./php.ini $localPhp
-
-# Download Composer install php script
-php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
-php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
-php composer-setup.php
-php -r "unlink('composer-setup.php');"
-
-php composer.phar install
\ No newline at end of file
diff --git a/php/script/start b/php/script/start
index 50ebaf2..ee7f767 100755
--- a/php/script/start
+++ b/php/script/start
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-composer run-script start
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+php composer.phar run-script start
diff --git a/php/script/system-packages b/php/script/system-packages
new file mode 100755
index 0000000..ded5c34
--- /dev/null
+++ b/php/script/system-packages
@@ -0,0 +1,92 @@
+#!/usr/bin/env bash
+
+# Installs the system libraries PHP is compiled against.
+#
+# You only need this if you are *building* PHP from source, which is what mise does.
+# If you install PHP from a package manager (apt install php, brew install php) the
+# packaging has already taken care of this and you can skip it.
+#
+# This is separate from `script/setup` because it has to run *before* the toolchain is
+# built. By the time `setup` runs, PHP is already compiled and on your PATH.
+
+set -euo pipefail
+
+# Debian/Ubuntu package names, used by the CI runner and most devcontainers.
+APT_PACKAGES=(
+ autoconf
+ bison
+ build-essential
+ libbz2-dev
+ libcurl4-openssl-dev
+ libfreetype6-dev
+ libgd-dev
+ libgmp-dev
+ libicu-dev
+ libjpeg-dev
+ libonig-dev
+ libpng-dev
+ libpq-dev
+ libreadline-dev
+ libsodium-dev
+ libsqlite3-dev
+ libssl-dev
+ libwebp-dev
+ libxml2-dev
+ libxslt1-dev
+ libzip-dev
+ pkg-config
+ re2c
+ zlib1g-dev
+)
+
+# macOS equivalents. Xcode Command Line Tools provide the compiler toolchain itself.
+BREW_PACKAGES=(
+ autoconf
+ bison
+ freetype
+ gd
+ gettext
+ gmp
+ icu4c
+ jpeg
+ libiconv
+ libpng
+ libsodium
+ libxml2
+ libzip
+ oniguruma
+ pkg-config
+ re2c
+ webp
+)
+
+if command -v apt-get >/dev/null 2>&1; then
+ # Containers often run as root, without sudo installed.
+ if [[ "$(id -u)" -eq 0 ]]; then
+ sudo=()
+ elif command -v sudo >/dev/null 2>&1; then
+ sudo=(sudo)
+ else
+ echo "This script needs root to install packages, but sudo is not available." >&2
+ echo "Re-run it as root, or install these packages yourself:" >&2
+ printf ' %s\n' "${APT_PACKAGES[*]}" >&2
+ exit 1
+ fi
+
+ "${sudo[@]}" apt-get update --quiet
+ "${sudo[@]}" apt-get install --yes --no-install-recommends "${APT_PACKAGES[@]}"
+
+elif command -v brew >/dev/null 2>&1; then
+ brew install "${BREW_PACKAGES[@]}"
+
+else
+ echo "Could not find apt-get or brew, so this script cannot install packages for you." >&2
+ echo "" >&2
+ echo "PHP is compiled from source, and needs the development headers for roughly:" >&2
+ echo " autoconf bison libcurl libgd libicu libjpeg libpng libsodium libsqlite3" >&2
+ echo " libssl libxml2 libzip oniguruma pkg-config re2c zlib" >&2
+ echo "" >&2
+ echo "Install the equivalents for your system, or install PHP from your package" >&2
+ echo "manager instead of building it - see .tool-versions for the version needed." >&2
+ exit 1
+fi
diff --git a/php/script/test b/php/script/test
index c69c1ce..6ffdaec 100755
--- a/php/script/test
+++ b/php/script/test
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-composer run-script test
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+php composer.phar run-script test
diff --git a/python/.tool-versions b/python/.tool-versions
new file mode 100644
index 0000000..234139b
--- /dev/null
+++ b/python/.tool-versions
@@ -0,0 +1 @@
+python 3.13
diff --git a/python/README.md b/python/README.md
index 98ad12a..75cb987 100644
--- a/python/README.md
+++ b/python/README.md
@@ -2,16 +2,29 @@
Skeleton project for Python.
-## Usage (on MacOS / Linux)
-- `./script/setup` to install dependencies (uses [homebrew](https://brew.sh/))
-- `./script/test` to run the tests
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+python 3.13
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
-## Usage (on Windows)
-- Install Python 3. You can either download from https://www.python.org/downloads/ or run `python` in a terminal to open Windows store Python download.
-- Run `./script/test.bat` in terminal to run tests
+```sh
+mise install
+```
+
+## Usage
+- `./script/setup` to create the virtual environment
+- `./script/test` to run the tests
+- `./script/start` to run the exercise
## Structure
- Code located in [`pairing_exercise.py`](./pairing_exercise.py)
- Tests located in [`test_pairing_exercise.py`](./test_pairing_exercise.py)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
+
diff --git a/python/script/setup b/python/script/setup
index 9b77adb..dc11e2a 100755
--- a/python/script/setup
+++ b/python/script/setup
@@ -1,14 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-pushd "$DIR"
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
-brew install python3
+python3 -m venv venv
-pip3 install virtualenv
-
-virtualenv ../venv
-
-popd
+if [[ -f requirements.txt ]]; then
+ venv/bin/pip install -r requirements.txt
+fi
diff --git a/python/script/start b/python/script/start
new file mode 100755
index 0000000..002d8ea
--- /dev/null
+++ b/python/script/start
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+venv/bin/python pairing_exercise.py
diff --git a/python/script/test b/python/script/test
index c4115ce..96bba79 100755
--- a/python/script/test
+++ b/python/script/test
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
-"$DIR"/../venv/bin/python -m unittest discover
+venv/bin/python -m unittest discover
diff --git a/python/script/test.bat b/python/script/test.bat
deleted file mode 100644
index c2145d5..0000000
--- a/python/script/test.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-:: Setup python virtual environment if it doesn't already exist
-@echo off
-if not exist venv\ (
- python -m venv .\venv
-)
-
-call .\venv\Scripts\activate.bat
-
-python -m unittest discover
diff --git a/python/test_pairing_exercise.py b/python/test_pairing_exercise.py
index 2321fdc..b3b2534 100644
--- a/python/test_pairing_exercise.py
+++ b/python/test_pairing_exercise.py
@@ -3,8 +3,5 @@
class TestPairingExercise(unittest.TestCase):
- def test_unit_tests(self):
- self.assertTrue(False, 'Failed!')
-
- def test_import(self):
+ def test_name(self):
self.assertEqual(pairing_exercise.name, 'Pairing exercise')
diff --git a/ruby/.ruby-version b/ruby/.ruby-version
deleted file mode 100644
index 84d6c67..0000000
--- a/ruby/.ruby-version
+++ /dev/null
@@ -1 +0,0 @@
-3.4.10
diff --git a/ruby/.tool-versions b/ruby/.tool-versions
new file mode 100644
index 0000000..380cf51
--- /dev/null
+++ b/ruby/.tool-versions
@@ -0,0 +1 @@
+ruby 3.4
diff --git a/ruby/README.md b/ruby/README.md
index 77e4577..5a3fcd7 100644
--- a/ruby/README.md
+++ b/ruby/README.md
@@ -1,17 +1,32 @@
# Ruby
-Pairing test starter project for Ruby with rspec for testing.
+Skeleton project for Ruby.
+
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+ruby 3.4
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
## Usage
-- `./script/setup` to install dependencies
+- `./script/setup` to fetch dependencies
- `./script/test` to run the tests
-- `./script/start` to run the code
+- `./script/start` to run the app
- `./script/console` for an interactive prompt
## Structure
-- Code located in [pairing_test.rb](./lib/pairing_test.rb)
-- Tests located in [pairing_test_spec.rb](./spec/pairing_test_spec.rb)
+- Code located in [`pairing_test.rb`](./lib/pairing_test.rb)
+- Tests located in [`pairing_test_spec.rb`](./spec/pairing_test_spec.rb)
`lib` has been added to the `require` path so all imports inside the `lib` directory must be relative to this, e.g. `require "pairing_test/version"`.
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/ruby/lib/pairing_test.rb b/ruby/lib/pairing_test.rb
index 35a25ed..1a00157 100644
--- a/ruby/lib/pairing_test.rb
+++ b/ruby/lib/pairing_test.rb
@@ -2,11 +2,8 @@
module PairingTest
class Main
- def initialize
- print "hello world"
- end
def returnsFalse
- true
+ false
end
end
end
diff --git a/ruby/script/setup b/ruby/script/setup
index 1ba28af..29df332 100755
--- a/ruby/script/setup
+++ b/ruby/script/setup
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
+
set -euo pipefail
-IFS=$'\n\t'
-set -vx
-gem install bundler
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
bundle install
diff --git a/ruby/script/test b/ruby/script/test
index 2d784f2..5cafbd0 100755
--- a/ruby/script/test
+++ b/ruby/script/test
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-rake spec
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+bundle exec rake spec
diff --git a/ruby/spec/pairing_test_spec.rb b/ruby/spec/pairing_test_spec.rb
index fdb1cd6..07209f5 100644
--- a/ruby/spec/pairing_test_spec.rb
+++ b/ruby/spec/pairing_test_spec.rb
@@ -1,5 +1,5 @@
RSpec.describe PairingTest do
- it "the passes instance method returns true" do
+ it "returnsFalse returns false" do
expect(PairingTest::Main.new.returnsFalse).to eq(false)
end
end
diff --git a/rust/.gitignore b/rust/.gitignore
new file mode 100644
index 0000000..9a9fb4d
--- /dev/null
+++ b/rust/.gitignore
@@ -0,0 +1,2 @@
+# Cargo build output
+/target
diff --git a/rust/.tool-versions b/rust/.tool-versions
new file mode 100644
index 0000000..367295f
--- /dev/null
+++ b/rust/.tool-versions
@@ -0,0 +1 @@
+rust 1
diff --git a/rust/README.md b/rust/README.md
index d248b87..d062192 100644
--- a/rust/README.md
+++ b/rust/README.md
@@ -1,14 +1,29 @@
# Rust
-Skeleton project for Rust.\
-It is assumed that Rust is installed on your machine. If not, please follow the [installation guide](https://www.rust-lang.org/tools/install).
+Skeleton project for Rust.
+
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+rust 1
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
## Usage
+- `./script/setup` to fetch dependencies
- `./script/test` to run the tests
-- `./script/start` to run the code
+- `./script/start` to run the app
## Structure
- Code located in [`main.rs`](./src/main.rs)
- Tests located in [`lib.rs`](./src/lib.rs)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/rust/script/setup b/rust/script/setup
new file mode 100755
index 0000000..e89fa92
--- /dev/null
+++ b/rust/script/setup
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+cargo fetch
diff --git a/rust/script/start b/rust/script/start
index e474a3f..e436496 100755
--- a/rust/script/start
+++ b/rust/script/start
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
cargo run
diff --git a/rust/script/test b/rust/script/test
index e48306a..e2b669f 100755
--- a/rust/script/test
+++ b/rust/script/test
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
cargo test
diff --git a/scala/.gitignore b/scala/.gitignore
index c23b464..8ad4160 100644
--- a/scala/.gitignore
+++ b/scala/.gitignore
@@ -1,8 +1,7 @@
+# sbt build output
+target/
+
# Metals / builds
.bloop
.bsp
metals.sbt
-
-# Temp install of sbt
-sbt/
-*.zip
\ No newline at end of file
diff --git a/scala/.tool-versions b/scala/.tool-versions
new file mode 100644
index 0000000..e48fa7b
--- /dev/null
+++ b/scala/.tool-versions
@@ -0,0 +1,2 @@
+java corretto-21
+sbt 1
diff --git a/scala/README.md b/scala/README.md
index 4a04563..9de01f5 100644
--- a/scala/README.md
+++ b/scala/README.md
@@ -2,16 +2,26 @@
Skeleton project for Scala.
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+java corretto-21
+sbt 1
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
+
## Usage
-- `./script/setup` to install dependencies
-- `./script/test` to run the tests
-
-## Usage (on Windows)
-- Make sure JDK version 8 or above is installed and JAVA_HOME environment variable is set
-- Use Powershell to execute the below commands
-- `PowerShell.exe -ExecutionPolicy UnRestricted -File .\script\setup.ps1` to download and extract portable sbt
- - (If this script fails you can do this manually by visiting https://github.com/sbt/sbt/releases ,downloading the latest sbt zip and extracting it to ./coding-exercise-project/scala/sbt)
-- `.\sbt\sbt\bin\sbt test` to run tests
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app
## Structure
- Code located in [`Main.scala`](./src/main/scala/gu/com/Main.scala)
diff --git a/scala/script/setup b/scala/script/setup
index 0cf0b02..3042a15 100755
--- a/scala/script/setup
+++ b/scala/script/setup
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-brew install --cask "guardian/devtools/gu-scala"
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+sbt update
diff --git a/scala/script/setup.ps1 b/scala/script/setup.ps1
deleted file mode 100644
index 7edf805..0000000
--- a/scala/script/setup.ps1
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-$url = "https://github.com/sbt/sbt/releases/download/v1.9.1/sbt-1.9.1.zip"
-$zipFilename = "./sbt-1.9.1.zip"
-$localSbt = "./sbt"
-
-# Download SBT Zip
-Import-Module BitsTransfer
-Start-BitsTransfer -Source $url -Destination $zipFilename
-
-# Unzip to temp folder
-Expand-Archive -Force -LiteralPath ./$zipFilename -DestinationPath $localSbt
-
-# Add to temp PATH
-$env:PATH += ";" + (Convert-Path "$localSbt/sbt/bin" ) + ";"
diff --git a/scala/script/start b/scala/script/start
new file mode 100755
index 0000000..1653071
--- /dev/null
+++ b/scala/script/start
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+sbt run
diff --git a/scala/script/test b/scala/script/test
index 162a8a0..330cdfd 100755
--- a/scala/script/test
+++ b/scala/script/test
@@ -1,5 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-sbt ~test
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ sbt "~test"
+else
+ sbt test
+fi
diff --git a/scala/src/main/scala/gu/com/Main.scala b/scala/src/main/scala/gu/com/Main.scala
index c9066df..7e6be93 100644
--- a/scala/src/main/scala/gu/com/Main.scala
+++ b/scala/src/main/scala/gu/com/Main.scala
@@ -5,5 +5,5 @@ object Main {
}
- def whereWeLive = "Mars"
+ def whereWeLive = "Earth"
}
diff --git a/swift/.tool-versions b/swift/.tool-versions
new file mode 100644
index 0000000..61f5544
--- /dev/null
+++ b/swift/.tool-versions
@@ -0,0 +1 @@
+swift 6
diff --git a/swift/README.md b/swift/README.md
index 78ea463..cedecbc 100644
--- a/swift/README.md
+++ b/swift/README.md
@@ -2,22 +2,28 @@
Skeleton project for Swift.
-## Usage
-- Follow instructions at https://www.swift.org/install/ to install the Swift SDK
-- `swift test` to run the tests
-- `swift run` to run the code
+## Prerequisites
-## Structure
-- Tests located in [`CodingExerciseTests.swift`](./Tests/CodingExerciseTests/CodingExerciseTests.swift)
-- Runtime code located in [`CodingExercise.swift`](./Sources/CodingExercise/CodingExercise.swift)
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+swift 6
+```
-However, feel free to organise your code as you like.
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
-## IDE
+```sh
+mise install
+```
-The pairing test is a generic problem solving exercise and you can use any code editor you like so long as you can run swift code and write unit tests.
+## Usage
+- `./script/setup` to resolve dependencies
+- `./script/test` to run the tests
+- `./script/start` to run the app
+
+## Structure
+- Tests located in [`CodingExerciseTests.swift`](./Tests/CodingExerciseTests/CodingExerciseTests.swift)
+- Code located in [`CodingExercise.swift`](./Sources/CodingExercise/CodingExercise.swift)
-However we suggest any of the following as they're the easiest to get started with:
-- [XCode](https://developer.apple.com/xcode/)
-- [VSCode](https://code.visualstudio.com/) or [VSCodium](https://vscodium.com/) with the [Swift extension](https://marketplace.visualstudio.com/items?itemName=swiftlang.swift-vscode)
-- [XCode Swift Playground](https://www.apple.com/uk/swift/playgrounds/)
\ No newline at end of file
+However, you're free to organise your code as you like.
\ No newline at end of file
diff --git a/swift/script/setup b/swift/script/setup
new file mode 100755
index 0000000..0b980ee
--- /dev/null
+++ b/swift/script/setup
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+swift package resolve
diff --git a/swift/script/start b/swift/script/start
new file mode 100755
index 0000000..8e37626
--- /dev/null
+++ b/swift/script/start
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+swift run
diff --git a/swift/script/test b/swift/script/test
new file mode 100755
index 0000000..c9a1f5a
--- /dev/null
+++ b/swift/script/test
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+swift test
diff --git a/typescript-deno/.tool-versions b/typescript-deno/.tool-versions
new file mode 100644
index 0000000..776e434
--- /dev/null
+++ b/typescript-deno/.tool-versions
@@ -0,0 +1 @@
+deno 2
diff --git a/typescript-deno/README.md b/typescript-deno/README.md
index 0675ad6..48facad 100644
--- a/typescript-deno/README.md
+++ b/typescript-deno/README.md
@@ -2,23 +2,26 @@
Skeleton project for TypeScript with testing via [Deno](https://deno.land/).
-Make sure you have Deno installed by running `deno --version`.
+## Prerequisites
-If using VSCode, you might want to enable the extension in the settings:
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
-```jsonc
-// .vscode/settings.json
-{
- "deno.enable": true,
- // or specifically
- "deno.enablePaths": ["./typescript-deno"]
-}
+```
+deno 2
+```
+
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
```
## Usage
-- `./script/start` to run the source code
-- `./script/test` to run the tests in watch mode
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app
## Structure
@@ -26,3 +29,16 @@ If using VSCode, you might want to enable the extension in the settings:
- Tests located in [`mod.test.ts`](./src/mod.test.ts)
However, you are free to organise your code as you like.
+
+## VSCode
+
+If using VSCode, you might want to enable the Deno extension in the settings:
+
+```jsonc
+// .vscode/settings.json
+{
+ "deno.enable": true,
+ // or specifically
+ "deno.enablePaths": ["./typescript-deno"]
+}
+```
diff --git a/typescript-deno/deno.lock b/typescript-deno/deno.lock
index a1f6fd9..e0d0f41 100644
--- a/typescript-deno/deno.lock
+++ b/typescript-deno/deno.lock
@@ -1,5 +1,20 @@
{
- "version": "3",
+ "version": "5",
+ "specifiers": {
+ "jsr:@std/assert@*": "1.0.19",
+ "jsr:@std/internal@^1.0.12": "1.0.14"
+ },
+ "jsr": {
+ "@std/assert@1.0.19": {
+ "integrity": "eaada96ee120cb980bc47e040f82814d786fe8162ecc53c91d8df60b8755991e",
+ "dependencies": [
+ "jsr:@std/internal"
+ ]
+ },
+ "@std/internal@1.0.14": {
+ "integrity": "291516b3d4c35024d6ffbc0a9df5bf4c64116e05b50012cf846710152d2ffdf7"
+ }
+ },
"remote": {
"https://deno.land/std@0.153.0/fmt/colors.ts": "ff7dc9c9f33a72bd48bc24b21bbc1b4545d8494a431f17894dbc5fe92a938fc4",
"https://deno.land/std@0.153.0/testing/_diff.ts": "141f978a283defc367eeee3ff7b58aa8763cf7c8e0c585132eae614468e9d7b8",
diff --git a/typescript-deno/script/setup b/typescript-deno/script/setup
new file mode 100755
index 0000000..0ca8275
--- /dev/null
+++ b/typescript-deno/script/setup
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+deno cache src/mod.test.ts
diff --git a/typescript-deno/script/start b/typescript-deno/script/start
index b0d1a3e..ab53f08 100755
--- a/typescript-deno/script/start
+++ b/typescript-deno/script/start
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
deno run src/mod.ts
diff --git a/typescript-deno/script/test b/typescript-deno/script/test
index 7a2d381..e7d024f 100755
--- a/typescript-deno/script/test
+++ b/typescript-deno/script/test
@@ -1,5 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-deno test src --watch
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ deno test src --watch
+else
+ deno test src
+fi
diff --git a/typescript-deno/src/mod.test.ts b/typescript-deno/src/mod.test.ts
index 5223dd6..99d2474 100644
--- a/typescript-deno/src/mod.test.ts
+++ b/typescript-deno/src/mod.test.ts
@@ -1,4 +1,4 @@
-import { assertEquals } from "https://deno.land/std@0.153.0/testing/asserts.ts";
+import { assertEquals } from "jsr:@std/assert";
import { result } from "./mod.ts";
Deno.test("Pairing test", () => {
diff --git a/typescript-deno/src/mod.ts b/typescript-deno/src/mod.ts
index b2f9891..de4efbc 100644
--- a/typescript-deno/src/mod.ts
+++ b/typescript-deno/src/mod.ts
@@ -1,4 +1,4 @@
-const result = false;
+const result = true;
if (import.meta.main) {
console.info(`Running %cmod.ts`, "color: blue");
diff --git a/typescript-node/.nvmrc b/typescript-node/.nvmrc
deleted file mode 100644
index b009dfb..0000000
--- a/typescript-node/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-lts/*
diff --git a/typescript-node/.tool-versions b/typescript-node/.tool-versions
new file mode 100644
index 0000000..e2d8fff
--- /dev/null
+++ b/typescript-node/.tool-versions
@@ -0,0 +1,2 @@
+node 22
+yarn 3
diff --git a/typescript-node/.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-03c04fd526.zip b/typescript-node/.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-03c04fd526.zip
deleted file mode 100644
index 2758853..0000000
Binary files a/typescript-node/.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-03c04fd526.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-d0491bb59f.zip b/typescript-node/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-d0491bb59f.zip
deleted file mode 100644
index 7652bd5..0000000
Binary files a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-d0491bb59f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.22.13-2782581d20-22e342c807.zip b/typescript-node/.yarn/cache/@babel-code-frame-npm-7.22.13-2782581d20-22e342c807.zip
deleted file mode 100644
index 9ecb85a..0000000
Binary files a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.22.13-2782581d20-22e342c807.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.22.5-b36f88d6f9-cfe804f518.zip b/typescript-node/.yarn/cache/@babel-code-frame-npm-7.22.5-b36f88d6f9-cfe804f518.zip
deleted file mode 100644
index 998495e..0000000
Binary files a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.22.5-b36f88d6f9-cfe804f518.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-code-frame-npm-7.29.7-cc910f9962-21b12fe235.zip b/typescript-node/.yarn/cache/@babel-code-frame-npm-7.29.7-cc910f9962-21b12fe235.zip
new file mode 100644
index 0000000..2696bc6
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-code-frame-npm-7.29.7-cc910f9962-21b12fe235.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-compat-data-npm-7.22.5-282f002362-eb1a47ebf7.zip b/typescript-node/.yarn/cache/@babel-compat-data-npm-7.22.5-282f002362-eb1a47ebf7.zip
deleted file mode 100644
index 8e5741a..0000000
Binary files a/typescript-node/.yarn/cache/@babel-compat-data-npm-7.22.5-282f002362-eb1a47ebf7.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-compat-data-npm-7.29.7-6487d724ba-4424f8fb72.zip b/typescript-node/.yarn/cache/@babel-compat-data-npm-7.29.7-6487d724ba-4424f8fb72.zip
new file mode 100644
index 0000000..c261d03
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-compat-data-npm-7.29.7-6487d724ba-4424f8fb72.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-core-npm-7.22.5-d75e931080-173ae42695.zip b/typescript-node/.yarn/cache/@babel-core-npm-7.22.5-d75e931080-173ae42695.zip
deleted file mode 100644
index 0b6ae49..0000000
Binary files a/typescript-node/.yarn/cache/@babel-core-npm-7.22.5-d75e931080-173ae42695.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-core-npm-7.29.7-78bc20dbf7-95149e98ff.zip b/typescript-node/.yarn/cache/@babel-core-npm-7.29.7-78bc20dbf7-95149e98ff.zip
new file mode 100644
index 0000000..81e43a8
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-core-npm-7.29.7-78bc20dbf7-95149e98ff.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-generator-npm-7.22.5-0e87a1a822-efa64da70c.zip b/typescript-node/.yarn/cache/@babel-generator-npm-7.22.5-0e87a1a822-efa64da70c.zip
deleted file mode 100644
index 5017713..0000000
Binary files a/typescript-node/.yarn/cache/@babel-generator-npm-7.22.5-0e87a1a822-efa64da70c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-generator-npm-7.23.3-a2ca9dda65-b6e71cca85.zip b/typescript-node/.yarn/cache/@babel-generator-npm-7.23.3-a2ca9dda65-b6e71cca85.zip
deleted file mode 100644
index f2eb1ed..0000000
Binary files a/typescript-node/.yarn/cache/@babel-generator-npm-7.23.3-a2ca9dda65-b6e71cca85.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-generator-npm-7.29.8-00b0e7c8b6-e3d80ad2ce.zip b/typescript-node/.yarn/cache/@babel-generator-npm-7.29.8-00b0e7c8b6-e3d80ad2ce.zip
new file mode 100644
index 0000000..1709831
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-generator-npm-7.29.8-00b0e7c8b6-e3d80ad2ce.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-compilation-targets-npm-7.22.5-5e6d9af186-a479460615.zip b/typescript-node/.yarn/cache/@babel-helper-compilation-targets-npm-7.22.5-5e6d9af186-a479460615.zip
deleted file mode 100644
index eb6b91e..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-compilation-targets-npm-7.22.5-5e6d9af186-a479460615.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-compilation-targets-npm-7.29.7-7cb31cc38d-f60a943937.zip b/typescript-node/.yarn/cache/@babel-helper-compilation-targets-npm-7.29.7-7cb31cc38d-f60a943937.zip
new file mode 100644
index 0000000..0572c3a
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-compilation-targets-npm-7.29.7-7cb31cc38d-f60a943937.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-environment-visitor-npm-7.22.20-260909e014-d80ee98ff6.zip b/typescript-node/.yarn/cache/@babel-helper-environment-visitor-npm-7.22.20-260909e014-d80ee98ff6.zip
deleted file mode 100644
index 3d5f747..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-environment-visitor-npm-7.22.20-260909e014-d80ee98ff6.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-environment-visitor-npm-7.22.5-7bc52eec61-248532077d.zip b/typescript-node/.yarn/cache/@babel-helper-environment-visitor-npm-7.22.5-7bc52eec61-248532077d.zip
deleted file mode 100644
index 74536fc..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-environment-visitor-npm-7.22.5-7bc52eec61-248532077d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-function-name-npm-7.23.0-ce38271242-e44542257b.zip b/typescript-node/.yarn/cache/@babel-helper-function-name-npm-7.23.0-ce38271242-e44542257b.zip
deleted file mode 100644
index 2458055..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-function-name-npm-7.23.0-ce38271242-e44542257b.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-globals-npm-7.29.7-bb76425ef5-6deaf9846a.zip b/typescript-node/.yarn/cache/@babel-helper-globals-npm-7.29.7-bb76425ef5-6deaf9846a.zip
new file mode 100644
index 0000000..0f34438
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-globals-npm-7.29.7-bb76425ef5-6deaf9846a.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-hoist-variables-npm-7.22.5-6db3192347-394ca191b4.zip b/typescript-node/.yarn/cache/@babel-helper-hoist-variables-npm-7.22.5-6db3192347-394ca191b4.zip
deleted file mode 100644
index cf47266..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-hoist-variables-npm-7.22.5-6db3192347-394ca191b4.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-module-imports-npm-7.22.5-399b6063db-9ac2b0404f.zip b/typescript-node/.yarn/cache/@babel-helper-module-imports-npm-7.22.5-399b6063db-9ac2b0404f.zip
deleted file mode 100644
index 7c62276..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-module-imports-npm-7.22.5-399b6063db-9ac2b0404f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-module-imports-npm-7.29.7-c44b78302c-ad5a768fc9.zip b/typescript-node/.yarn/cache/@babel-helper-module-imports-npm-7.29.7-c44b78302c-ad5a768fc9.zip
new file mode 100644
index 0000000..dc4344f
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-module-imports-npm-7.29.7-c44b78302c-ad5a768fc9.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-module-transforms-npm-7.22.5-c31751930e-8985dc0d97.zip b/typescript-node/.yarn/cache/@babel-helper-module-transforms-npm-7.22.5-c31751930e-8985dc0d97.zip
deleted file mode 100644
index 0a31bc1..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-module-transforms-npm-7.22.5-c31751930e-8985dc0d97.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-module-transforms-npm-7.29.7-50e1c84dbd-484f6d0297.zip b/typescript-node/.yarn/cache/@babel-helper-module-transforms-npm-7.29.7-50e1c84dbd-484f6d0297.zip
new file mode 100644
index 0000000..2776228
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-module-transforms-npm-7.29.7-50e1c84dbd-484f6d0297.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip b/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip
deleted file mode 100644
index 14e851b..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.22.5-192e38e1de-c0fc722707.zip b/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.22.5-192e38e1de-c0fc722707.zip
deleted file mode 100644
index b738233..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.22.5-192e38e1de-c0fc722707.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.29.7-b50f319ba2-b0a183abcc.zip b/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.29.7-b50f319ba2-b0a183abcc.zip
new file mode 100644
index 0000000..ad0f130
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-plugin-utils-npm-7.29.7-b50f319ba2-b0a183abcc.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-simple-access-npm-7.22.5-0a3f578780-fe9686714c.zip b/typescript-node/.yarn/cache/@babel-helper-simple-access-npm-7.22.5-0a3f578780-fe9686714c.zip
deleted file mode 100644
index 83f207b..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-simple-access-npm-7.22.5-0a3f578780-fe9686714c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.5-5e708abd3e-d10e05a02f.zip b/typescript-node/.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.5-5e708abd3e-d10e05a02f.zip
deleted file mode 100644
index 806f1fc..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.5-5e708abd3e-d10e05a02f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.6-e723505aef-e141cace58.zip b/typescript-node/.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.6-e723505aef-e141cace58.zip
deleted file mode 100644
index c2ebd88..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-split-export-declaration-npm-7.22.6-e723505aef-e141cace58.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-string-parser-npm-7.22.5-448ff0e489-836851ca5e.zip b/typescript-node/.yarn/cache/@babel-helper-string-parser-npm-7.22.5-448ff0e489-836851ca5e.zip
deleted file mode 100644
index 7040849..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-string-parser-npm-7.22.5-448ff0e489-836851ca5e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-string-parser-npm-7.29.7-87998d618e-4c229d2c22.zip b/typescript-node/.yarn/cache/@babel-helper-string-parser-npm-7.29.7-87998d618e-4c229d2c22.zip
new file mode 100644
index 0000000..6207d77
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-string-parser-npm-7.29.7-87998d618e-4c229d2c22.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.12.11-e33455648e-e604c6bf89.zip b/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.12.11-e33455648e-e604c6bf89.zip
deleted file mode 100644
index f2b9850..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.12.11-e33455648e-e604c6bf89.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.20-18305bb306-136412784d.zip b/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.20-18305bb306-136412784d.zip
deleted file mode 100644
index 53d7fc0..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.20-18305bb306-136412784d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.5-4536624779-7f0f301134.zip b/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.5-4536624779-7f0f301134.zip
deleted file mode 100644
index 6156061..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.22.5-4536624779-7f0f301134.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.29.7-9939aac13d-cc7779e96f.zip b/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.29.7-9939aac13d-cc7779e96f.zip
new file mode 100644
index 0000000..7323864
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-validator-identifier-npm-7.29.7-9939aac13d-cc7779e96f.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-validator-option-npm-7.22.5-eaf22b24ab-bbeca8a85e.zip b/typescript-node/.yarn/cache/@babel-helper-validator-option-npm-7.22.5-eaf22b24ab-bbeca8a85e.zip
deleted file mode 100644
index 133d4a3..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helper-validator-option-npm-7.22.5-eaf22b24ab-bbeca8a85e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helper-validator-option-npm-7.29.7-635d603818-aeb6aa966f.zip b/typescript-node/.yarn/cache/@babel-helper-validator-option-npm-7.29.7-635d603818-aeb6aa966f.zip
new file mode 100644
index 0000000..5139734
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helper-validator-option-npm-7.29.7-635d603818-aeb6aa966f.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-helpers-npm-7.22.5-b98bfa9936-a96e785029.zip b/typescript-node/.yarn/cache/@babel-helpers-npm-7.22.5-b98bfa9936-a96e785029.zip
deleted file mode 100644
index 03fdf58..0000000
Binary files a/typescript-node/.yarn/cache/@babel-helpers-npm-7.22.5-b98bfa9936-a96e785029.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-helpers-npm-7.29.7-97e81ccfb9-b5c4ed0ce5.zip b/typescript-node/.yarn/cache/@babel-helpers-npm-7.29.7-97e81ccfb9-b5c4ed0ce5.zip
new file mode 100644
index 0000000..2a836cc
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-helpers-npm-7.29.7-97e81ccfb9-b5c4ed0ce5.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-highlight-npm-7.13.10-b1fa170476-2f33624c8e.zip b/typescript-node/.yarn/cache/@babel-highlight-npm-7.13.10-b1fa170476-2f33624c8e.zip
deleted file mode 100644
index 83160c5..0000000
Binary files a/typescript-node/.yarn/cache/@babel-highlight-npm-7.13.10-b1fa170476-2f33624c8e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-highlight-npm-7.22.20-5de7aba88d-84bd034dca.zip b/typescript-node/.yarn/cache/@babel-highlight-npm-7.22.20-5de7aba88d-84bd034dca.zip
deleted file mode 100644
index 7c810e8..0000000
Binary files a/typescript-node/.yarn/cache/@babel-highlight-npm-7.22.20-5de7aba88d-84bd034dca.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-highlight-npm-7.22.5-3182ccc1fe-f61ae6de6e.zip b/typescript-node/.yarn/cache/@babel-highlight-npm-7.22.5-3182ccc1fe-f61ae6de6e.zip
deleted file mode 100644
index ba4915a..0000000
Binary files a/typescript-node/.yarn/cache/@babel-highlight-npm-7.22.5-3182ccc1fe-f61ae6de6e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-parser-npm-7.13.16-a424e995a5-5dd35906ab.zip b/typescript-node/.yarn/cache/@babel-parser-npm-7.13.16-a424e995a5-5dd35906ab.zip
deleted file mode 100644
index 5b25534..0000000
Binary files a/typescript-node/.yarn/cache/@babel-parser-npm-7.13.16-a424e995a5-5dd35906ab.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-parser-npm-7.22.5-6f8647af64-470ebba516.zip b/typescript-node/.yarn/cache/@babel-parser-npm-7.22.5-6f8647af64-470ebba516.zip
deleted file mode 100644
index 2cb3d30..0000000
Binary files a/typescript-node/.yarn/cache/@babel-parser-npm-7.22.5-6f8647af64-470ebba516.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-parser-npm-7.23.3-8d3a021e39-4aa7366e40.zip b/typescript-node/.yarn/cache/@babel-parser-npm-7.23.3-8d3a021e39-4aa7366e40.zip
deleted file mode 100644
index 4019a8a..0000000
Binary files a/typescript-node/.yarn/cache/@babel-parser-npm-7.23.3-8d3a021e39-4aa7366e40.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-parser-npm-7.29.8-d8ac19f8b3-c8bbea3c87.zip b/typescript-node/.yarn/cache/@babel-parser-npm-7.29.8-d8ac19f8b3-c8bbea3c87.zip
new file mode 100644
index 0000000..5869a3d
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-parser-npm-7.29.8-d8ac19f8b3-c8bbea3c87.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-3e80814b5b.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-3e80814b5b.zip
new file mode 100644
index 0000000..025890a
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-3e80814b5b.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-import-attributes-npm-7.29.7-efe565cbb9-9f47345d09.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-import-attributes-npm-7.29.7-efe565cbb9-9f47345d09.zip
new file mode 100644
index 0000000..606422c
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-plugin-syntax-import-attributes-npm-7.29.7-efe565cbb9-9f47345d09.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.22.5-2cbf8e7e68-8829d30c26.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.22.5-2cbf8e7e68-8829d30c26.zip
deleted file mode 100644
index 75bf21b..0000000
Binary files a/typescript-node/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.22.5-2cbf8e7e68-8829d30c26.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.29.7-887bb0abd4-84150d27c5.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.29.7-887bb0abd4-84150d27c5.zip
new file mode 100644
index 0000000..15c893d
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-plugin-syntax-jsx-npm-7.29.7-887bb0abd4-84150d27c5.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip
new file mode 100644
index 0000000..f4e1801
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-b317174783.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-bbd1a56b09.zip
similarity index 61%
rename from typescript-node/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip
rename to typescript-node/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-bbd1a56b09.zip
index 8b234e2..041d045 100644
Binary files a/typescript-node/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip and b/typescript-node/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-bbd1a56b09.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.22.5-e17157d73d-8ab7718fbb.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.22.5-e17157d73d-8ab7718fbb.zip
deleted file mode 100644
index 0bb39ee..0000000
Binary files a/typescript-node/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.22.5-e17157d73d-8ab7718fbb.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.29.7-4784fd3786-ef454d2a7a.zip b/typescript-node/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.29.7-4784fd3786-ef454d2a7a.zip
new file mode 100644
index 0000000..788b914
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.29.7-4784fd3786-ef454d2a7a.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-e037731631.zip b/typescript-node/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-e037731631.zip
deleted file mode 100644
index 121afdf..0000000
Binary files a/typescript-node/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-e037731631.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-template-npm-7.22.15-0b464facb4-1f3e7dcd6c.zip b/typescript-node/.yarn/cache/@babel-template-npm-7.22.15-0b464facb4-1f3e7dcd6c.zip
deleted file mode 100644
index 499a48f..0000000
Binary files a/typescript-node/.yarn/cache/@babel-template-npm-7.22.15-0b464facb4-1f3e7dcd6c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-template-npm-7.22.5-358c44dc9d-c574641016.zip b/typescript-node/.yarn/cache/@babel-template-npm-7.22.5-358c44dc9d-c574641016.zip
deleted file mode 100644
index dc95158..0000000
Binary files a/typescript-node/.yarn/cache/@babel-template-npm-7.22.5-358c44dc9d-c574641016.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-template-npm-7.29.7-46b79049c7-521eb6a1fd.zip b/typescript-node/.yarn/cache/@babel-template-npm-7.29.7-46b79049c7-521eb6a1fd.zip
new file mode 100644
index 0000000..9322dfc
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-template-npm-7.29.7-46b79049c7-521eb6a1fd.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-traverse-npm-7.23.3-a268f4c943-f4e0c05f2f.zip b/typescript-node/.yarn/cache/@babel-traverse-npm-7.23.3-a268f4c943-f4e0c05f2f.zip
deleted file mode 100644
index 8f02a4a..0000000
Binary files a/typescript-node/.yarn/cache/@babel-traverse-npm-7.23.3-a268f4c943-f4e0c05f2f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-traverse-npm-7.29.8-58d4eddcdc-7c33eb59db.zip b/typescript-node/.yarn/cache/@babel-traverse-npm-7.29.8-58d4eddcdc-7c33eb59db.zip
new file mode 100644
index 0000000..5b40bd2
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-traverse-npm-7.29.8-58d4eddcdc-7c33eb59db.zip differ
diff --git a/typescript-node/.yarn/cache/@babel-types-npm-7.13.17-0f101c5a5a-985ea4639a.zip b/typescript-node/.yarn/cache/@babel-types-npm-7.13.17-0f101c5a5a-985ea4639a.zip
deleted file mode 100644
index 55df1a2..0000000
Binary files a/typescript-node/.yarn/cache/@babel-types-npm-7.13.17-0f101c5a5a-985ea4639a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-types-npm-7.22.5-d1e4264bef-c13a9c1dc7.zip b/typescript-node/.yarn/cache/@babel-types-npm-7.22.5-d1e4264bef-c13a9c1dc7.zip
deleted file mode 100644
index 3676b26..0000000
Binary files a/typescript-node/.yarn/cache/@babel-types-npm-7.22.5-d1e4264bef-c13a9c1dc7.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-types-npm-7.23.3-77a779c6d4-b96f1ec495.zip b/typescript-node/.yarn/cache/@babel-types-npm-7.23.3-77a779c6d4-b96f1ec495.zip
deleted file mode 100644
index 206f433..0000000
Binary files a/typescript-node/.yarn/cache/@babel-types-npm-7.23.3-77a779c6d4-b96f1ec495.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@babel-types-npm-7.29.8-3f9597fc63-9ac45d1fc7.zip b/typescript-node/.yarn/cache/@babel-types-npm-7.29.8-3f9597fc63-9ac45d1fc7.zip
new file mode 100644
index 0000000..37f79b9
Binary files /dev/null and b/typescript-node/.yarn/cache/@babel-types-npm-7.29.8-3f9597fc63-9ac45d1fc7.zip differ
diff --git a/typescript-node/.yarn/cache/@guardian-tsconfig-npm-0.2.0-b9fa585231-c4f3421759.zip b/typescript-node/.yarn/cache/@guardian-tsconfig-npm-0.2.0-b9fa585231-c4f3421759.zip
new file mode 100644
index 0000000..76d0404
Binary files /dev/null and b/typescript-node/.yarn/cache/@guardian-tsconfig-npm-0.2.0-b9fa585231-c4f3421759.zip differ
diff --git a/typescript-node/.yarn/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-4a473b9b32.zip b/typescript-node/.yarn/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-4a473b9b32.zip
deleted file mode 100644
index d19176f..0000000
Binary files a/typescript-node/.yarn/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-4a473b9b32.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-5d36d28996.zip b/typescript-node/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-5d36d28996.zip
new file mode 100644
index 0000000..665f7d1
Binary files /dev/null and b/typescript-node/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-5d36d28996.zip differ
diff --git a/typescript-node/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-5282759d96.zip b/typescript-node/.yarn/cache/@istanbuljs-schema-npm-0.1.6-958cdcc3d9-e0700df94e.zip
similarity index 57%
rename from typescript-node/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-5282759d96.zip
rename to typescript-node/.yarn/cache/@istanbuljs-schema-npm-0.1.6-958cdcc3d9-e0700df94e.zip
index 5796f76..378a14d 100644
Binary files a/typescript-node/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-5282759d96.zip and b/typescript-node/.yarn/cache/@istanbuljs-schema-npm-0.1.6-958cdcc3d9-e0700df94e.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-console-npm-29.5.0-83c389ece6-9f4f4b8fab.zip b/typescript-node/.yarn/cache/@jest-console-npm-29.5.0-83c389ece6-9f4f4b8fab.zip
deleted file mode 100644
index a70f2f9..0000000
Binary files a/typescript-node/.yarn/cache/@jest-console-npm-29.5.0-83c389ece6-9f4f4b8fab.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jest-console-npm-29.7.0-77689f186f-0e3624e32c.zip b/typescript-node/.yarn/cache/@jest-console-npm-29.7.0-77689f186f-0e3624e32c.zip
new file mode 100644
index 0000000..29c3e01
Binary files /dev/null and b/typescript-node/.yarn/cache/@jest-console-npm-29.7.0-77689f186f-0e3624e32c.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-core-npm-29.5.0-39570175a0-9e8f5243fe.zip b/typescript-node/.yarn/cache/@jest-core-npm-29.7.0-cef60d74c4-af759c9781.zip
similarity index 54%
rename from typescript-node/.yarn/cache/@jest-core-npm-29.5.0-39570175a0-9e8f5243fe.zip
rename to typescript-node/.yarn/cache/@jest-core-npm-29.7.0-cef60d74c4-af759c9781.zip
index 30700a6..ac11322 100644
Binary files a/typescript-node/.yarn/cache/@jest-core-npm-29.5.0-39570175a0-9e8f5243fe.zip and b/typescript-node/.yarn/cache/@jest-core-npm-29.7.0-cef60d74c4-af759c9781.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-environment-npm-29.5.0-e56073a8da-921de6325c.zip b/typescript-node/.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-6fb398143b.zip
similarity index 86%
rename from typescript-node/.yarn/cache/@jest-environment-npm-29.5.0-e56073a8da-921de6325c.zip
rename to typescript-node/.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-6fb398143b.zip
index 073deac..12768f5 100644
Binary files a/typescript-node/.yarn/cache/@jest-environment-npm-29.5.0-e56073a8da-921de6325c.zip and b/typescript-node/.yarn/cache/@jest-environment-npm-29.7.0-97705658d0-6fb398143b.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-expect-npm-29.5.0-5a0f59dbb2-bd10e29511.zip b/typescript-node/.yarn/cache/@jest-expect-npm-29.7.0-9dfe9cebaa-a01cb85fd9.zip
similarity index 78%
rename from typescript-node/.yarn/cache/@jest-expect-npm-29.5.0-5a0f59dbb2-bd10e29511.zip
rename to typescript-node/.yarn/cache/@jest-expect-npm-29.7.0-9dfe9cebaa-a01cb85fd9.zip
index 9de2ee9..3535939 100644
Binary files a/typescript-node/.yarn/cache/@jest-expect-npm-29.5.0-5a0f59dbb2-bd10e29511.zip and b/typescript-node/.yarn/cache/@jest-expect-npm-29.7.0-9dfe9cebaa-a01cb85fd9.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-expect-utils-npm-29.5.0-69b6ba2629-c46fb677c8.zip b/typescript-node/.yarn/cache/@jest-expect-utils-npm-29.5.0-69b6ba2629-c46fb677c8.zip
deleted file mode 100644
index 904c9a7..0000000
Binary files a/typescript-node/.yarn/cache/@jest-expect-utils-npm-29.5.0-69b6ba2629-c46fb677c8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jest-expect-utils-npm-29.7.0-14740cc487-75eb177f3d.zip b/typescript-node/.yarn/cache/@jest-expect-utils-npm-29.7.0-14740cc487-75eb177f3d.zip
new file mode 100644
index 0000000..b104b3e
Binary files /dev/null and b/typescript-node/.yarn/cache/@jest-expect-utils-npm-29.7.0-14740cc487-75eb177f3d.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-fake-timers-npm-29.5.0-2aa473528b-69930c6922.zip b/typescript-node/.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-caf2bbd11f.zip
similarity index 62%
rename from typescript-node/.yarn/cache/@jest-fake-timers-npm-29.5.0-2aa473528b-69930c6922.zip
rename to typescript-node/.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-caf2bbd11f.zip
index db3e889..45934cd 100644
Binary files a/typescript-node/.yarn/cache/@jest-fake-timers-npm-29.5.0-2aa473528b-69930c6922.zip and b/typescript-node/.yarn/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-caf2bbd11f.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-globals-npm-29.5.0-422d68c3c4-b309ab8f21.zip b/typescript-node/.yarn/cache/@jest-globals-npm-29.7.0-06f2bd411e-97dbb94591.zip
similarity index 62%
rename from typescript-node/.yarn/cache/@jest-globals-npm-29.5.0-422d68c3c4-b309ab8f21.zip
rename to typescript-node/.yarn/cache/@jest-globals-npm-29.7.0-06f2bd411e-97dbb94591.zip
index 69724ed..23f3bac 100644
Binary files a/typescript-node/.yarn/cache/@jest-globals-npm-29.5.0-422d68c3c4-b309ab8f21.zip and b/typescript-node/.yarn/cache/@jest-globals-npm-29.7.0-06f2bd411e-97dbb94591.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-reporters-npm-29.5.0-4a682bb3f7-481268aac9.zip b/typescript-node/.yarn/cache/@jest-reporters-npm-29.7.0-2561cd7a09-7eadabd62c.zip
similarity index 69%
rename from typescript-node/.yarn/cache/@jest-reporters-npm-29.5.0-4a682bb3f7-481268aac9.zip
rename to typescript-node/.yarn/cache/@jest-reporters-npm-29.7.0-2561cd7a09-7eadabd62c.zip
index c7f1bec..6a993dd 100644
Binary files a/typescript-node/.yarn/cache/@jest-reporters-npm-29.5.0-4a682bb3f7-481268aac9.zip and b/typescript-node/.yarn/cache/@jest-reporters-npm-29.7.0-2561cd7a09-7eadabd62c.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-schemas-npm-29.4.3-7d963e8d97-ac754e245c.zip b/typescript-node/.yarn/cache/@jest-schemas-npm-29.4.3-7d963e8d97-ac754e245c.zip
deleted file mode 100644
index be7fd9a..0000000
Binary files a/typescript-node/.yarn/cache/@jest-schemas-npm-29.4.3-7d963e8d97-ac754e245c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip b/typescript-node/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip
new file mode 100644
index 0000000..ce56da4
Binary files /dev/null and b/typescript-node/.yarn/cache/@jest-schemas-npm-29.6.3-292730e442-910040425f.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-source-map-npm-29.4.3-5978e0c3b9-2301d22514.zip b/typescript-node/.yarn/cache/@jest-source-map-npm-29.6.3-8bb8289263-bcc5a8697d.zip
similarity index 64%
rename from typescript-node/.yarn/cache/@jest-source-map-npm-29.4.3-5978e0c3b9-2301d22514.zip
rename to typescript-node/.yarn/cache/@jest-source-map-npm-29.6.3-8bb8289263-bcc5a8697d.zip
index 951b9e5..57b5f02 100644
Binary files a/typescript-node/.yarn/cache/@jest-source-map-npm-29.4.3-5978e0c3b9-2301d22514.zip and b/typescript-node/.yarn/cache/@jest-source-map-npm-29.6.3-8bb8289263-bcc5a8697d.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-test-result-npm-29.5.0-811e0e2459-2e8ff52422.zip b/typescript-node/.yarn/cache/@jest-test-result-npm-29.7.0-4bb532101b-67b6317d52.zip
similarity index 53%
rename from typescript-node/.yarn/cache/@jest-test-result-npm-29.5.0-811e0e2459-2e8ff52422.zip
rename to typescript-node/.yarn/cache/@jest-test-result-npm-29.7.0-4bb532101b-67b6317d52.zip
index b0f4ecd..59da956 100644
Binary files a/typescript-node/.yarn/cache/@jest-test-result-npm-29.5.0-811e0e2459-2e8ff52422.zip and b/typescript-node/.yarn/cache/@jest-test-result-npm-29.7.0-4bb532101b-67b6317d52.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-test-sequencer-npm-29.5.0-014a9472cd-eca34b4aeb.zip b/typescript-node/.yarn/cache/@jest-test-sequencer-npm-29.5.0-014a9472cd-eca34b4aeb.zip
deleted file mode 100644
index d255478..0000000
Binary files a/typescript-node/.yarn/cache/@jest-test-sequencer-npm-29.5.0-014a9472cd-eca34b4aeb.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jest-test-sequencer-npm-29.7.0-291f23a495-73f4359901.zip b/typescript-node/.yarn/cache/@jest-test-sequencer-npm-29.7.0-291f23a495-73f4359901.zip
new file mode 100644
index 0000000..d199c9e
Binary files /dev/null and b/typescript-node/.yarn/cache/@jest-test-sequencer-npm-29.7.0-291f23a495-73f4359901.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-transform-npm-29.5.0-0a2f81b553-d55d604085.zip b/typescript-node/.yarn/cache/@jest-transform-npm-29.5.0-0a2f81b553-d55d604085.zip
deleted file mode 100644
index 4ebdb5a..0000000
Binary files a/typescript-node/.yarn/cache/@jest-transform-npm-29.5.0-0a2f81b553-d55d604085.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jest-transform-npm-29.7.0-af20d68b57-0f8ac9f413.zip b/typescript-node/.yarn/cache/@jest-transform-npm-29.7.0-af20d68b57-0f8ac9f413.zip
new file mode 100644
index 0000000..29db8e9
Binary files /dev/null and b/typescript-node/.yarn/cache/@jest-transform-npm-29.7.0-af20d68b57-0f8ac9f413.zip differ
diff --git a/typescript-node/.yarn/cache/@jest-types-npm-29.5.0-36a4c63efc-1811f94b19.zip b/typescript-node/.yarn/cache/@jest-types-npm-29.5.0-36a4c63efc-1811f94b19.zip
deleted file mode 100644
index 6c5029a..0000000
Binary files a/typescript-node/.yarn/cache/@jest-types-npm-29.5.0-36a4c63efc-1811f94b19.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-a0bcf15dbb.zip b/typescript-node/.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-a0bcf15dbb.zip
new file mode 100644
index 0000000..1075f4a
Binary files /dev/null and b/typescript-node/.yarn/cache/@jest-types-npm-29.6.3-a584ca999d-a0bcf15dbb.zip differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.13-9bd96ac800-f2105acefc.zip b/typescript-node/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.13-9bd96ac800-f2105acefc.zip
new file mode 100644
index 0000000..2615e43
Binary files /dev/null and b/typescript-node/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.13-9bd96ac800-f2105acefc.zip differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip b/typescript-node/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip
deleted file mode 100644
index 5f0aef7..0000000
Binary files a/typescript-node/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-remapping-npm-2.3.5-df8dacc063-4a66a7397c.zip b/typescript-node/.yarn/cache/@jridgewell-remapping-npm-2.3.5-df8dacc063-4a66a7397c.zip
new file mode 100644
index 0000000..816744c
Binary files /dev/null and b/typescript-node/.yarn/cache/@jridgewell-remapping-npm-2.3.5-df8dacc063-4a66a7397c.zip differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip b/typescript-node/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip
deleted file mode 100644
index 97e857d..0000000
Binary files a/typescript-node/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-83b85f72c5.zip b/typescript-node/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-83b85f72c5.zip
new file mode 100644
index 0000000..a572422
Binary files /dev/null and b/typescript-node/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-83b85f72c5.zip differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip b/typescript-node/.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip
deleted file mode 100644
index 3b901fc..0000000
Binary files a/typescript-node/.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip b/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip
deleted file mode 100644
index d8703c8..0000000
Binary files a/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip b/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip
deleted file mode 100644
index 402f52b..0000000
Binary files a/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-c2e36e6797.zip b/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-c2e36e6797.zip
new file mode 100644
index 0000000..49cffdd
Binary files /dev/null and b/typescript-node/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-c2e36e6797.zip differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip b/typescript-node/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip
deleted file mode 100644
index 0247c80..0000000
Binary files a/typescript-node/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-af8fda2431.zip b/typescript-node/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-af8fda2431.zip
new file mode 100644
index 0000000..1d292a7
Binary files /dev/null and b/typescript-node/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-af8fda2431.zip differ
diff --git a/typescript-node/.yarn/cache/@npmcli-fs-npm-3.1.0-0844a57978-a50a6818de.zip b/typescript-node/.yarn/cache/@npmcli-fs-npm-3.1.0-0844a57978-a50a6818de.zip
deleted file mode 100644
index 2fca778..0000000
Binary files a/typescript-node/.yarn/cache/@npmcli-fs-npm-3.1.0-0844a57978-a50a6818de.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-6ad6a00fc4.zip b/typescript-node/.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-6ad6a00fc4.zip
deleted file mode 100644
index 96f576f..0000000
Binary files a/typescript-node/.yarn/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-6ad6a00fc4.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@sinclair-typebox-npm-0.25.24-d04d0f45ef-10219c58f4.zip b/typescript-node/.yarn/cache/@sinclair-typebox-npm-0.25.24-d04d0f45ef-10219c58f4.zip
deleted file mode 100644
index d5cfabe..0000000
Binary files a/typescript-node/.yarn/cache/@sinclair-typebox-npm-0.25.24-d04d0f45ef-10219c58f4.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@sinclair-typebox-npm-0.27.12-8aabc4a199-f670bb7aee.zip b/typescript-node/.yarn/cache/@sinclair-typebox-npm-0.27.12-8aabc4a199-f670bb7aee.zip
new file mode 100644
index 0000000..ca9d753
Binary files /dev/null and b/typescript-node/.yarn/cache/@sinclair-typebox-npm-0.27.12-8aabc4a199-f670bb7aee.zip differ
diff --git a/typescript-node/.yarn/cache/@sinonjs-commons-npm-3.0.0-fa72ff71a1-b4b5b73d4d.zip b/typescript-node/.yarn/cache/@sinonjs-commons-npm-3.0.0-fa72ff71a1-b4b5b73d4d.zip
deleted file mode 100644
index 2e2b913..0000000
Binary files a/typescript-node/.yarn/cache/@sinonjs-commons-npm-3.0.0-fa72ff71a1-b4b5b73d4d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a7c3e7cc61.zip b/typescript-node/.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a7c3e7cc61.zip
new file mode 100644
index 0000000..2b3482b
Binary files /dev/null and b/typescript-node/.yarn/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-a7c3e7cc61.zip differ
diff --git a/typescript-node/.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip b/typescript-node/.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip
deleted file mode 100644
index d240a82..0000000
Binary files a/typescript-node/.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-babel__core-npm-7.20.1-f44761b6b6-9fcd9691a3.zip b/typescript-node/.yarn/cache/@types-babel__core-npm-7.20.1-f44761b6b6-9fcd9691a3.zip
deleted file mode 100644
index feba4ca..0000000
Binary files a/typescript-node/.yarn/cache/@types-babel__core-npm-7.20.1-f44761b6b6-9fcd9691a3.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-babel__core-npm-7.20.5-4d95f75eab-a3226f7930.zip b/typescript-node/.yarn/cache/@types-babel__core-npm-7.20.5-4d95f75eab-a3226f7930.zip
new file mode 100644
index 0000000..89f59ad
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-babel__core-npm-7.20.5-4d95f75eab-a3226f7930.zip differ
diff --git a/typescript-node/.yarn/cache/@types-babel__generator-npm-7.27.0-a5af33547a-e6739cacfa.zip b/typescript-node/.yarn/cache/@types-babel__generator-npm-7.27.0-a5af33547a-e6739cacfa.zip
new file mode 100644
index 0000000..337558d
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-babel__generator-npm-7.27.0-a5af33547a-e6739cacfa.zip differ
diff --git a/typescript-node/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-b7764309e5.zip b/typescript-node/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-b7764309e5.zip
deleted file mode 100644
index 71eb90e..0000000
Binary files a/typescript-node/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-b7764309e5.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip b/typescript-node/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip
deleted file mode 100644
index 039d077..0000000
Binary files a/typescript-node/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-babel__template-npm-7.4.4-f34eba762c-d7a02d2a9b.zip b/typescript-node/.yarn/cache/@types-babel__template-npm-7.4.4-f34eba762c-d7a02d2a9b.zip
new file mode 100644
index 0000000..c421f05
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-babel__template-npm-7.4.4-f34eba762c-d7a02d2a9b.zip differ
diff --git a/typescript-node/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-7bcf7fd0c8.zip b/typescript-node/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-7bcf7fd0c8.zip
deleted file mode 100644
index f7b698d..0000000
Binary files a/typescript-node/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-7bcf7fd0c8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-babel__traverse-npm-7.28.0-44a48c1b20-e3124e6575.zip b/typescript-node/.yarn/cache/@types-babel__traverse-npm-7.28.0-44a48c1b20-e3124e6575.zip
new file mode 100644
index 0000000..f8df777
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-babel__traverse-npm-7.28.0-44a48c1b20-e3124e6575.zip differ
diff --git a/typescript-node/.yarn/cache/@types-graceful-fs-npm-4.1.6-1eadcf742d-c3070ccdc9.zip b/typescript-node/.yarn/cache/@types-graceful-fs-npm-4.1.6-1eadcf742d-c3070ccdc9.zip
deleted file mode 100644
index b3aaa72..0000000
Binary files a/typescript-node/.yarn/cache/@types-graceful-fs-npm-4.1.6-1eadcf742d-c3070ccdc9.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-graceful-fs-npm-4.1.9-ebd697fe83-79d746a8f0.zip b/typescript-node/.yarn/cache/@types-graceful-fs-npm-4.1.9-ebd697fe83-79d746a8f0.zip
new file mode 100644
index 0000000..8af594b
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-graceful-fs-npm-4.1.9-ebd697fe83-79d746a8f0.zip differ
diff --git a/typescript-node/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip b/typescript-node/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip
deleted file mode 100644
index fb8fe6a..0000000
Binary files a/typescript-node/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.6-2ea31fda9c-3feac423fd.zip b/typescript-node/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.6-2ea31fda9c-3feac423fd.zip
new file mode 100644
index 0000000..c09edec
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.6-2ea31fda9c-3feac423fd.zip differ
diff --git a/typescript-node/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-656398b62d.zip b/typescript-node/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-656398b62d.zip
deleted file mode 100644
index 30b7987..0000000
Binary files a/typescript-node/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-656398b62d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-istanbul-lib-report-npm-3.0.3-a5c0ef4b88-b91e9b60f8.zip b/typescript-node/.yarn/cache/@types-istanbul-lib-report-npm-3.0.3-a5c0ef4b88-b91e9b60f8.zip
new file mode 100644
index 0000000..b9934ce
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-istanbul-lib-report-npm-3.0.3-a5c0ef4b88-b91e9b60f8.zip differ
diff --git a/typescript-node/.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.zip b/typescript-node/.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.zip
deleted file mode 100644
index 8f12c1a..0000000
Binary files a/typescript-node/.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-286a18cff1.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-istanbul-reports-npm-3.0.4-1afa69db29-93eb188357.zip b/typescript-node/.yarn/cache/@types-istanbul-reports-npm-3.0.4-1afa69db29-93eb188357.zip
new file mode 100644
index 0000000..47eedca
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-istanbul-reports-npm-3.0.4-1afa69db29-93eb188357.zip differ
diff --git a/typescript-node/.yarn/cache/@types-jest-npm-29.5.14-506446c38e-18dba4623f.zip b/typescript-node/.yarn/cache/@types-jest-npm-29.5.14-506446c38e-18dba4623f.zip
new file mode 100644
index 0000000..be6d976
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-jest-npm-29.5.14-506446c38e-18dba4623f.zip differ
diff --git a/typescript-node/.yarn/cache/@types-jest-npm-29.5.2-1a72e55a50-7d205599ea.zip b/typescript-node/.yarn/cache/@types-jest-npm-29.5.2-1a72e55a50-7d205599ea.zip
deleted file mode 100644
index 42deb89..0000000
Binary files a/typescript-node/.yarn/cache/@types-jest-npm-29.5.2-1a72e55a50-7d205599ea.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-node-npm-15.0.1-dcfad4a203-af8c8ba83e.zip b/typescript-node/.yarn/cache/@types-node-npm-15.0.1-dcfad4a203-af8c8ba83e.zip
deleted file mode 100644
index 3f241a4..0000000
Binary files a/typescript-node/.yarn/cache/@types-node-npm-15.0.1-dcfad4a203-af8c8ba83e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-node-npm-20.19.43-198d0ea14c-c959b5d256.zip b/typescript-node/.yarn/cache/@types-node-npm-20.19.43-198d0ea14c-c959b5d256.zip
new file mode 100644
index 0000000..fb24547
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-node-npm-20.19.43-198d0ea14c-c959b5d256.zip differ
diff --git a/typescript-node/.yarn/cache/@types-node-npm-20.3.3-aac92e0a89-7a0d008004.zip b/typescript-node/.yarn/cache/@types-node-npm-20.3.3-aac92e0a89-7a0d008004.zip
deleted file mode 100644
index 2cc3f38..0000000
Binary files a/typescript-node/.yarn/cache/@types-node-npm-20.3.3-aac92e0a89-7a0d008004.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-node-npm-26.1.2-13e3ff0b99-c77629c1e6.zip b/typescript-node/.yarn/cache/@types-node-npm-26.1.2-13e3ff0b99-c77629c1e6.zip
new file mode 100644
index 0000000..74a4e12
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-node-npm-26.1.2-13e3ff0b99-c77629c1e6.zip differ
diff --git a/typescript-node/.yarn/cache/@types-prettier-npm-2.7.3-497316f37c-705384209c.zip b/typescript-node/.yarn/cache/@types-prettier-npm-2.7.3-497316f37c-705384209c.zip
deleted file mode 100644
index 4a7eb91..0000000
Binary files a/typescript-node/.yarn/cache/@types-prettier-npm-2.7.3-497316f37c-705384209c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip b/typescript-node/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip
deleted file mode 100644
index 7b51292..0000000
Binary files a/typescript-node/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-stack-utils-npm-2.0.3-48a0a03262-72576cc152.zip b/typescript-node/.yarn/cache/@types-stack-utils-npm-2.0.3-48a0a03262-72576cc152.zip
new file mode 100644
index 0000000..875101a
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-stack-utils-npm-2.0.3-48a0a03262-72576cc152.zip differ
diff --git a/typescript-node/.yarn/cache/@types-yargs-npm-17.0.24-b034cf1d8b-5f3ac4dc4f.zip b/typescript-node/.yarn/cache/@types-yargs-npm-17.0.24-b034cf1d8b-5f3ac4dc4f.zip
deleted file mode 100644
index d6fd868..0000000
Binary files a/typescript-node/.yarn/cache/@types-yargs-npm-17.0.24-b034cf1d8b-5f3ac4dc4f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-yargs-npm-17.0.35-c5495bc7ea-ebf1f53733.zip b/typescript-node/.yarn/cache/@types-yargs-npm-17.0.35-c5495bc7ea-ebf1f53733.zip
new file mode 100644
index 0000000..b950766
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-yargs-npm-17.0.35-c5495bc7ea-ebf1f53733.zip differ
diff --git a/typescript-node/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-54cf3f8d2c.zip b/typescript-node/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-54cf3f8d2c.zip
deleted file mode 100644
index 1ecb2e1..0000000
Binary files a/typescript-node/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-54cf3f8d2c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/@types-yargs-parser-npm-21.0.3-1d265246a1-ef236c27f9.zip b/typescript-node/.yarn/cache/@types-yargs-parser-npm-21.0.3-1d265246a1-ef236c27f9.zip
new file mode 100644
index 0000000..d97b0d2
Binary files /dev/null and b/typescript-node/.yarn/cache/@types-yargs-parser-npm-21.0.3-1d265246a1-ef236c27f9.zip differ
diff --git a/typescript-node/.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip b/typescript-node/.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip
deleted file mode 100644
index a8b40a5..0000000
Binary files a/typescript-node/.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/abbrev-npm-5.0.0-31d7ffe3c8-40526a5754.zip b/typescript-node/.yarn/cache/abbrev-npm-5.0.0-31d7ffe3c8-40526a5754.zip
new file mode 100644
index 0000000..24085f0
Binary files /dev/null and b/typescript-node/.yarn/cache/abbrev-npm-5.0.0-31d7ffe3c8-40526a5754.zip differ
diff --git a/typescript-node/.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip b/typescript-node/.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip
deleted file mode 100644
index c7d271a..0000000
Binary files a/typescript-node/.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip b/typescript-node/.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip
deleted file mode 100644
index 2a17c8f..0000000
Binary files a/typescript-node/.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip b/typescript-node/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip
deleted file mode 100644
index 7db0127..0000000
Binary files a/typescript-node/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ansi-regex-npm-6.0.1-8d663a607d-1ff8b7667c.zip b/typescript-node/.yarn/cache/ansi-regex-npm-6.0.1-8d663a607d-1ff8b7667c.zip
deleted file mode 100644
index 088e552..0000000
Binary files a/typescript-node/.yarn/cache/ansi-regex-npm-6.0.1-8d663a607d-1ff8b7667c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip b/typescript-node/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip
deleted file mode 100644
index 4ffdcc4..0000000
Binary files a/typescript-node/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ansi-styles-npm-6.2.1-d43647018c-ef940f2f0c.zip b/typescript-node/.yarn/cache/ansi-styles-npm-6.2.1-d43647018c-ef940f2f0c.zip
deleted file mode 100644
index aa1bdfd..0000000
Binary files a/typescript-node/.yarn/cache/ansi-styles-npm-6.2.1-d43647018c-ef940f2f0c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip b/typescript-node/.yarn/cache/anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip
similarity index 58%
rename from typescript-node/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip
rename to typescript-node/.yarn/cache/anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip
index b71280d..095ff20 100644
Binary files a/typescript-node/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip and b/typescript-node/.yarn/cache/anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip differ
diff --git a/typescript-node/.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip b/typescript-node/.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip
deleted file mode 100644
index 6b14888..0000000
Binary files a/typescript-node/.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip b/typescript-node/.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip
deleted file mode 100644
index 1f0af50..0000000
Binary files a/typescript-node/.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/babel-jest-npm-29.5.0-7423e21d96-eafb6d37de.zip b/typescript-node/.yarn/cache/babel-jest-npm-29.7.0-273152fbe9-ee6f8e0495.zip
similarity index 62%
rename from typescript-node/.yarn/cache/babel-jest-npm-29.5.0-7423e21d96-eafb6d37de.zip
rename to typescript-node/.yarn/cache/babel-jest-npm-29.7.0-273152fbe9-ee6f8e0495.zip
index 587a7ad..e5097b3 100644
Binary files a/typescript-node/.yarn/cache/babel-jest-npm-29.5.0-7423e21d96-eafb6d37de.zip and b/typescript-node/.yarn/cache/babel-jest-npm-29.7.0-273152fbe9-ee6f8e0495.zip differ
diff --git a/typescript-node/.yarn/cache/babel-plugin-jest-hoist-npm-29.5.0-3760955b96-099b525407.zip b/typescript-node/.yarn/cache/babel-plugin-jest-hoist-npm-29.6.3-46120a3297-51250f2281.zip
similarity index 67%
rename from typescript-node/.yarn/cache/babel-plugin-jest-hoist-npm-29.5.0-3760955b96-099b525407.zip
rename to typescript-node/.yarn/cache/babel-plugin-jest-hoist-npm-29.6.3-46120a3297-51250f2281.zip
index c68f1e1..605fd52 100644
Binary files a/typescript-node/.yarn/cache/babel-plugin-jest-hoist-npm-29.5.0-3760955b96-099b525407.zip and b/typescript-node/.yarn/cache/babel-plugin-jest-hoist-npm-29.6.3-46120a3297-51250f2281.zip differ
diff --git a/typescript-node/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip b/typescript-node/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip
deleted file mode 100644
index bdd25ae..0000000
Binary files a/typescript-node/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/babel-preset-current-node-syntax-npm-1.2.0-a954a29b2b-3608fa671c.zip b/typescript-node/.yarn/cache/babel-preset-current-node-syntax-npm-1.2.0-a954a29b2b-3608fa671c.zip
new file mode 100644
index 0000000..268b08a
Binary files /dev/null and b/typescript-node/.yarn/cache/babel-preset-current-node-syntax-npm-1.2.0-a954a29b2b-3608fa671c.zip differ
diff --git a/typescript-node/.yarn/cache/babel-preset-jest-npm-29.5.0-1e9ee3b405-5566ca2762.zip b/typescript-node/.yarn/cache/babel-preset-jest-npm-29.5.0-1e9ee3b405-5566ca2762.zip
deleted file mode 100644
index bfb8453..0000000
Binary files a/typescript-node/.yarn/cache/babel-preset-jest-npm-29.5.0-1e9ee3b405-5566ca2762.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-aa4ff2a8a7.zip b/typescript-node/.yarn/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-aa4ff2a8a7.zip
new file mode 100644
index 0000000..9f46181
Binary files /dev/null and b/typescript-node/.yarn/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-aa4ff2a8a7.zip differ
diff --git a/typescript-node/.yarn/cache/baseline-browser-mapping-npm-2.11.12-1c55327a8b-e154d9b239.zip b/typescript-node/.yarn/cache/baseline-browser-mapping-npm-2.11.12-1c55327a8b-e154d9b239.zip
new file mode 100644
index 0000000..98ae641
Binary files /dev/null and b/typescript-node/.yarn/cache/baseline-browser-mapping-npm-2.11.12-1c55327a8b-e154d9b239.zip differ
diff --git a/typescript-node/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip b/typescript-node/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip
deleted file mode 100644
index 9deab64..0000000
Binary files a/typescript-node/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/brace-expansion-npm-1.1.18-2759b99171-aa84023a41.zip b/typescript-node/.yarn/cache/brace-expansion-npm-1.1.18-2759b99171-aa84023a41.zip
new file mode 100644
index 0000000..e5f2b33
Binary files /dev/null and b/typescript-node/.yarn/cache/brace-expansion-npm-1.1.18-2759b99171-aa84023a41.zip differ
diff --git a/typescript-node/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip b/typescript-node/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip
deleted file mode 100644
index 11d5bd0..0000000
Binary files a/typescript-node/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip b/typescript-node/.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip
deleted file mode 100644
index 92998e3..0000000
Binary files a/typescript-node/.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip b/typescript-node/.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip
new file mode 100644
index 0000000..b4e6ac8
Binary files /dev/null and b/typescript-node/.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip differ
diff --git a/typescript-node/.yarn/cache/browserslist-npm-4.21.9-f6128308c1-80d3820584.zip b/typescript-node/.yarn/cache/browserslist-npm-4.21.9-f6128308c1-80d3820584.zip
deleted file mode 100644
index 251e5c0..0000000
Binary files a/typescript-node/.yarn/cache/browserslist-npm-4.21.9-f6128308c1-80d3820584.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/browserslist-npm-4.28.7-844ec494a5-81093d27f0.zip b/typescript-node/.yarn/cache/browserslist-npm-4.28.7-844ec494a5-81093d27f0.zip
new file mode 100644
index 0000000..54ffcaf
Binary files /dev/null and b/typescript-node/.yarn/cache/browserslist-npm-4.28.7-844ec494a5-81093d27f0.zip differ
diff --git a/typescript-node/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip b/typescript-node/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip
deleted file mode 100644
index df60234..0000000
Binary files a/typescript-node/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip b/typescript-node/.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip
new file mode 100644
index 0000000..efe1b76
Binary files /dev/null and b/typescript-node/.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip differ
diff --git a/typescript-node/.yarn/cache/cacache-npm-17.1.3-f75f768a29-385756781e.zip b/typescript-node/.yarn/cache/cacache-npm-17.1.3-f75f768a29-385756781e.zip
deleted file mode 100644
index b4de6cc..0000000
Binary files a/typescript-node/.yarn/cache/cacache-npm-17.1.3-f75f768a29-385756781e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/caniuse-lite-npm-1.0.30001511-1b93649656-b7a8176673.zip b/typescript-node/.yarn/cache/caniuse-lite-npm-1.0.30001511-1b93649656-b7a8176673.zip
deleted file mode 100644
index 2ea9fa1..0000000
Binary files a/typescript-node/.yarn/cache/caniuse-lite-npm-1.0.30001511-1b93649656-b7a8176673.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/caniuse-lite-npm-1.0.30001806-92c0bb0a20-4b4a970fbd.zip b/typescript-node/.yarn/cache/caniuse-lite-npm-1.0.30001806-92c0bb0a20-4b4a970fbd.zip
new file mode 100644
index 0000000..8e3a134
Binary files /dev/null and b/typescript-node/.yarn/cache/caniuse-lite-npm-1.0.30001806-92c0bb0a20-4b4a970fbd.zip differ
diff --git a/typescript-node/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip b/typescript-node/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip
deleted file mode 100644
index 3f58a7b..0000000
Binary files a/typescript-node/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-036e973e66.zip b/typescript-node/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip
similarity index 51%
rename from typescript-node/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-036e973e66.zip
rename to typescript-node/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip
index b0789f7..03d46b8 100644
Binary files a/typescript-node/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-036e973e66.zip and b/typescript-node/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip differ
diff --git a/typescript-node/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip b/typescript-node/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip
deleted file mode 100644
index e074b2f..0000000
Binary files a/typescript-node/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/chownr-npm-3.0.0-5275e85d25-fd73a4bab4.zip b/typescript-node/.yarn/cache/chownr-npm-3.0.0-5275e85d25-fd73a4bab4.zip
new file mode 100644
index 0000000..236fe78
Binary files /dev/null and b/typescript-node/.yarn/cache/chownr-npm-3.0.0-5275e85d25-fd73a4bab4.zip differ
diff --git a/typescript-node/.yarn/cache/ci-info-npm-3.8.0-d56a0b67d6-d0a4d31604.zip b/typescript-node/.yarn/cache/ci-info-npm-3.8.0-d56a0b67d6-d0a4d31604.zip
deleted file mode 100644
index 2ae3f09..0000000
Binary files a/typescript-node/.yarn/cache/ci-info-npm-3.8.0-d56a0b67d6-d0a4d31604.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ci-info-npm-3.9.0-646784ca0e-6b19dc9b29.zip b/typescript-node/.yarn/cache/ci-info-npm-3.9.0-646784ca0e-6b19dc9b29.zip
new file mode 100644
index 0000000..48c6624
Binary files /dev/null and b/typescript-node/.yarn/cache/ci-info-npm-3.9.0-646784ca0e-6b19dc9b29.zip differ
diff --git a/typescript-node/.yarn/cache/cjs-module-lexer-npm-1.2.3-9d788a3c14-5ea3cb867a.zip b/typescript-node/.yarn/cache/cjs-module-lexer-npm-1.2.3-9d788a3c14-5ea3cb867a.zip
deleted file mode 100644
index 6492b26..0000000
Binary files a/typescript-node/.yarn/cache/cjs-module-lexer-npm-1.2.3-9d788a3c14-5ea3cb867a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/cjs-module-lexer-npm-1.4.3-4a46e7bf6c-221a1661a9.zip b/typescript-node/.yarn/cache/cjs-module-lexer-npm-1.4.3-4a46e7bf6c-221a1661a9.zip
new file mode 100644
index 0000000..fd54f1a
Binary files /dev/null and b/typescript-node/.yarn/cache/cjs-module-lexer-npm-1.4.3-4a46e7bf6c-221a1661a9.zip differ
diff --git a/typescript-node/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip b/typescript-node/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip
deleted file mode 100644
index c510995..0000000
Binary files a/typescript-node/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-4efe0a1fcc.zip b/typescript-node/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-4efe0a1fcc.zip
deleted file mode 100644
index d6bdb45..0000000
Binary files a/typescript-node/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-4efe0a1fcc.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/collect-v8-coverage-npm-1.0.3-58d347a876-ed1d1ebc9c.zip b/typescript-node/.yarn/cache/collect-v8-coverage-npm-1.0.3-58d347a876-ed1d1ebc9c.zip
new file mode 100644
index 0000000..6415dca
Binary files /dev/null and b/typescript-node/.yarn/cache/collect-v8-coverage-npm-1.0.3-58d347a876-ed1d1ebc9c.zip differ
diff --git a/typescript-node/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip b/typescript-node/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip
deleted file mode 100644
index 1b4c939..0000000
Binary files a/typescript-node/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip b/typescript-node/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip
deleted file mode 100644
index f158de9..0000000
Binary files a/typescript-node/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip b/typescript-node/.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip
deleted file mode 100644
index 625a79f..0000000
Binary files a/typescript-node/.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip b/typescript-node/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip
deleted file mode 100644
index a1f2fe6..0000000
Binary files a/typescript-node/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-bcd2e3ea7d.zip b/typescript-node/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-bcd2e3ea7d.zip
deleted file mode 100644
index f8cf2e8..0000000
Binary files a/typescript-node/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-bcd2e3ea7d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/create-jest-npm-29.7.0-3a6a7b993b-1427d49458.zip b/typescript-node/.yarn/cache/create-jest-npm-29.7.0-3a6a7b993b-1427d49458.zip
new file mode 100644
index 0000000..393187b
Binary files /dev/null and b/typescript-node/.yarn/cache/create-jest-npm-29.7.0-3a6a7b993b-1427d49458.zip differ
diff --git a/typescript-node/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip b/typescript-node/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip
deleted file mode 100644
index 9613e38..0000000
Binary files a/typescript-node/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-8d306efaca.zip b/typescript-node/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-8d306efaca.zip
new file mode 100644
index 0000000..b34d791
Binary files /dev/null and b/typescript-node/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-8d306efaca.zip differ
diff --git a/typescript-node/.yarn/cache/debug-npm-4.3.1-22e08d605e-2c3352e37d.zip b/typescript-node/.yarn/cache/debug-npm-4.3.1-22e08d605e-2c3352e37d.zip
deleted file mode 100644
index 79e916f..0000000
Binary files a/typescript-node/.yarn/cache/debug-npm-4.3.1-22e08d605e-2c3352e37d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip b/typescript-node/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip
deleted file mode 100644
index d3a11d8..0000000
Binary files a/typescript-node/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/debug-npm-4.4.3-0105c6123a-4805abd570.zip b/typescript-node/.yarn/cache/debug-npm-4.4.3-0105c6123a-4805abd570.zip
new file mode 100644
index 0000000..d2c0c42
Binary files /dev/null and b/typescript-node/.yarn/cache/debug-npm-4.4.3-0105c6123a-4805abd570.zip differ
diff --git a/typescript-node/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip b/typescript-node/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip
deleted file mode 100644
index 64afea8..0000000
Binary files a/typescript-node/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/dedent-npm-1.7.2-32d3f9ce4a-58f46def0e.zip b/typescript-node/.yarn/cache/dedent-npm-1.7.2-32d3f9ce4a-58f46def0e.zip
new file mode 100644
index 0000000..d123a4f
Binary files /dev/null and b/typescript-node/.yarn/cache/dedent-npm-1.7.2-32d3f9ce4a-58f46def0e.zip differ
diff --git a/typescript-node/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-a8c43a1ed8.zip b/typescript-node/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-a8c43a1ed8.zip
deleted file mode 100644
index 3e07a61..0000000
Binary files a/typescript-node/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-a8c43a1ed8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip b/typescript-node/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip
new file mode 100644
index 0000000..93a5246
Binary files /dev/null and b/typescript-node/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip differ
diff --git a/typescript-node/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip b/typescript-node/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip
deleted file mode 100644
index 9921e5e..0000000
Binary files a/typescript-node/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip b/typescript-node/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip
deleted file mode 100644
index 30053d1..0000000
Binary files a/typescript-node/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/diff-sequences-npm-29.4.3-ffe403944f-28b265e04f.zip b/typescript-node/.yarn/cache/diff-sequences-npm-29.6.3-18ab2c9949-f4914158e1.zip
similarity index 54%
rename from typescript-node/.yarn/cache/diff-sequences-npm-29.4.3-ffe403944f-28b265e04f.zip
rename to typescript-node/.yarn/cache/diff-sequences-npm-29.6.3-18ab2c9949-f4914158e1.zip
index 23a8f70..89803db 100644
Binary files a/typescript-node/.yarn/cache/diff-sequences-npm-29.4.3-ffe403944f-28b265e04f.zip and b/typescript-node/.yarn/cache/diff-sequences-npm-29.6.3-18ab2c9949-f4914158e1.zip differ
diff --git a/typescript-node/.yarn/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-7d00d7cd8e.zip b/typescript-node/.yarn/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-7d00d7cd8e.zip
deleted file mode 100644
index 1038599..0000000
Binary files a/typescript-node/.yarn/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-7d00d7cd8e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/electron-to-chromium-npm-1.4.447-ea588ffa0b-2771bed3f4.zip b/typescript-node/.yarn/cache/electron-to-chromium-npm-1.4.447-ea588ffa0b-2771bed3f4.zip
deleted file mode 100644
index e566955..0000000
Binary files a/typescript-node/.yarn/cache/electron-to-chromium-npm-1.4.447-ea588ffa0b-2771bed3f4.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/electron-to-chromium-npm-1.5.400-f96133c5cc-0821a8b6fb.zip b/typescript-node/.yarn/cache/electron-to-chromium-npm-1.5.400-f96133c5cc-0821a8b6fb.zip
new file mode 100644
index 0000000..1665e36
Binary files /dev/null and b/typescript-node/.yarn/cache/electron-to-chromium-npm-1.5.400-f96133c5cc-0821a8b6fb.zip differ
diff --git a/typescript-node/.yarn/cache/emoji-regex-npm-9.2.2-e6fac8d058-8487182da7.zip b/typescript-node/.yarn/cache/emoji-regex-npm-9.2.2-e6fac8d058-8487182da7.zip
deleted file mode 100644
index e6b0ab4..0000000
Binary files a/typescript-node/.yarn/cache/emoji-regex-npm-9.2.2-e6fac8d058-8487182da7.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip b/typescript-node/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip
deleted file mode 100644
index 202e931..0000000
Binary files a/typescript-node/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip b/typescript-node/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip
deleted file mode 100644
index 3058584..0000000
Binary files a/typescript-node/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip b/typescript-node/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip
deleted file mode 100644
index 9577cce..0000000
Binary files a/typescript-node/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/error-ex-npm-1.3.4-c7248e4040-25136c0984.zip b/typescript-node/.yarn/cache/error-ex-npm-1.3.4-c7248e4040-25136c0984.zip
new file mode 100644
index 0000000..3296d16
Binary files /dev/null and b/typescript-node/.yarn/cache/error-ex-npm-1.3.4-c7248e4040-25136c0984.zip differ
diff --git a/typescript-node/.yarn/cache/es-errors-npm-1.3.0-fda0c9b8a8-ec1414527a.zip b/typescript-node/.yarn/cache/es-errors-npm-1.3.0-fda0c9b8a8-ec1414527a.zip
new file mode 100644
index 0000000..0ed2323
Binary files /dev/null and b/typescript-node/.yarn/cache/es-errors-npm-1.3.0-fda0c9b8a8-ec1414527a.zip differ
diff --git a/typescript-node/.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip b/typescript-node/.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip
deleted file mode 100644
index 88c57af..0000000
Binary files a/typescript-node/.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-47b029c83d.zip b/typescript-node/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-47b029c83d.zip
new file mode 100644
index 0000000..8212e54
Binary files /dev/null and b/typescript-node/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-47b029c83d.zip differ
diff --git a/typescript-node/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip b/typescript-node/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip
deleted file mode 100644
index b7ea3be..0000000
Binary files a/typescript-node/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/expect-npm-29.5.0-395e2d6fda-58f70b3869.zip b/typescript-node/.yarn/cache/expect-npm-29.7.0-62e9f7979e-9257f10288.zip
similarity index 52%
rename from typescript-node/.yarn/cache/expect-npm-29.5.0-395e2d6fda-58f70b3869.zip
rename to typescript-node/.yarn/cache/expect-npm-29.7.0-62e9f7979e-9257f10288.zip
index 96f39c8..4310bbc 100644
Binary files a/typescript-node/.yarn/cache/expect-npm-29.5.0-395e2d6fda-58f70b3869.zip and b/typescript-node/.yarn/cache/expect-npm-29.7.0-62e9f7979e-9257f10288.zip differ
diff --git a/typescript-node/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-3d21519a4f.zip b/typescript-node/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-3d21519a4f.zip
deleted file mode 100644
index ea4828a..0000000
Binary files a/typescript-node/.yarn/cache/exponential-backoff-npm-3.1.1-04df458b30-3d21519a4f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-471fdb70fd.zip b/typescript-node/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-471fdb70fd.zip
new file mode 100644
index 0000000..3bff787
Binary files /dev/null and b/typescript-node/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-471fdb70fd.zip differ
diff --git a/typescript-node/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-8510230778.zip b/typescript-node/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-8510230778.zip
deleted file mode 100644
index 5ab8d2a..0000000
Binary files a/typescript-node/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-8510230778.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/fb-watchman-npm-2.0.2-bcb6f8f831-b15a124cef.zip b/typescript-node/.yarn/cache/fb-watchman-npm-2.0.2-bcb6f8f831-b15a124cef.zip
new file mode 100644
index 0000000..63d51b0
Binary files /dev/null and b/typescript-node/.yarn/cache/fb-watchman-npm-2.0.2-bcb6f8f831-b15a124cef.zip differ
diff --git a/typescript-node/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-bd537daa9d.zip b/typescript-node/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-bd537daa9d.zip
new file mode 100644
index 0000000..5e5e534
Binary files /dev/null and b/typescript-node/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-bd537daa9d.zip differ
diff --git a/typescript-node/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip b/typescript-node/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip
deleted file mode 100644
index 1da4a36..0000000
Binary files a/typescript-node/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip b/typescript-node/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip
new file mode 100644
index 0000000..3991809
Binary files /dev/null and b/typescript-node/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip differ
diff --git a/typescript-node/.yarn/cache/foreground-child-npm-3.1.1-77e78ed774-139d270bc8.zip b/typescript-node/.yarn/cache/foreground-child-npm-3.1.1-77e78ed774-139d270bc8.zip
deleted file mode 100644
index a288850..0000000
Binary files a/typescript-node/.yarn/cache/foreground-child-npm-3.1.1-77e78ed774-139d270bc8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip b/typescript-node/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip
deleted file mode 100644
index 21a91aa..0000000
Binary files a/typescript-node/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/fs-minipass-npm-3.0.2-a27ef235f5-e9cc0e1f2d.zip b/typescript-node/.yarn/cache/fs-minipass-npm-3.0.2-a27ef235f5-e9cc0e1f2d.zip
deleted file mode 100644
index a8edf63..0000000
Binary files a/typescript-node/.yarn/cache/fs-minipass-npm-3.0.2-a27ef235f5-e9cc0e1f2d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip b/typescript-node/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip
deleted file mode 100644
index 204c8e4..0000000
Binary files a/typescript-node/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-11e6ea6fea.zip b/typescript-node/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-11e6ea6fea.zip
new file mode 100644
index 0000000..044eb1b
Binary files /dev/null and b/typescript-node/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-11e6ea6fea.zip differ
diff --git a/typescript-node/.yarn/cache/fsevents-patch-2882183fbf-8.zip b/typescript-node/.yarn/cache/fsevents-patch-2882183fbf-8.zip
deleted file mode 100644
index c4511f1..0000000
Binary files a/typescript-node/.yarn/cache/fsevents-patch-2882183fbf-8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip b/typescript-node/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip
deleted file mode 100644
index c22a184..0000000
Binary files a/typescript-node/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip b/typescript-node/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip
new file mode 100644
index 0000000..55fbdad
Binary files /dev/null and b/typescript-node/.yarn/cache/function-bind-npm-1.1.2-7a55be9b03-2b0ff4ce70.zip differ
diff --git a/typescript-node/.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip b/typescript-node/.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip
deleted file mode 100644
index ef82b87..0000000
Binary files a/typescript-node/.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/glob-npm-10.3.1-100b936079-19c8c28056.zip b/typescript-node/.yarn/cache/glob-npm-10.3.1-100b936079-19c8c28056.zip
deleted file mode 100644
index 85a20a6..0000000
Binary files a/typescript-node/.yarn/cache/glob-npm-10.3.1-100b936079-19c8c28056.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/glob-npm-7.1.6-1ce3a5189a-351d549dd9.zip b/typescript-node/.yarn/cache/glob-npm-7.1.6-1ce3a5189a-351d549dd9.zip
deleted file mode 100644
index a696eeb..0000000
Binary files a/typescript-node/.yarn/cache/glob-npm-7.1.6-1ce3a5189a-351d549dd9.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip b/typescript-node/.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip
new file mode 100644
index 0000000..b2fa0ac
Binary files /dev/null and b/typescript-node/.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip differ
diff --git a/typescript-node/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip b/typescript-node/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip
deleted file mode 100644
index 306b5aa..0000000
Binary files a/typescript-node/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/handlebars-npm-4.7.9-46c3c68605-ac39070fc1.zip b/typescript-node/.yarn/cache/handlebars-npm-4.7.9-46c3c68605-ac39070fc1.zip
new file mode 100644
index 0000000..8df1441
Binary files /dev/null and b/typescript-node/.yarn/cache/handlebars-npm-4.7.9-46c3c68605-ac39070fc1.zip differ
diff --git a/typescript-node/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip b/typescript-node/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip
deleted file mode 100644
index 60eafa6..0000000
Binary files a/typescript-node/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip b/typescript-node/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip
deleted file mode 100644
index f0731c9..0000000
Binary files a/typescript-node/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip b/typescript-node/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip
deleted file mode 100644
index 5988a7e..0000000
Binary files a/typescript-node/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/hasown-npm-2.0.4-75e16c9c2a-4bd8f916b6.zip b/typescript-node/.yarn/cache/hasown-npm-2.0.4-75e16c9c2a-4bd8f916b6.zip
new file mode 100644
index 0000000..8a33f0e
Binary files /dev/null and b/typescript-node/.yarn/cache/hasown-npm-2.0.4-75e16c9c2a-4bd8f916b6.zip differ
diff --git a/typescript-node/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip b/typescript-node/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip
deleted file mode 100644
index 19f1e0a..0000000
Binary files a/typescript-node/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip b/typescript-node/.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip
deleted file mode 100644
index a999ab7..0000000
Binary files a/typescript-node/.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip b/typescript-node/.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip
deleted file mode 100644
index b8bc994..0000000
Binary files a/typescript-node/.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip b/typescript-node/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip
deleted file mode 100644
index c09856b..0000000
Binary files a/typescript-node/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip b/typescript-node/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip
deleted file mode 100644
index f3f767a..0000000
Binary files a/typescript-node/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip b/typescript-node/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip
deleted file mode 100644
index 9b595c4..0000000
Binary files a/typescript-node/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/import-local-npm-3.2.0-bf54ec7842-0b0b0b412b.zip b/typescript-node/.yarn/cache/import-local-npm-3.2.0-bf54ec7842-0b0b0b412b.zip
new file mode 100644
index 0000000..c9e4ee2
Binary files /dev/null and b/typescript-node/.yarn/cache/import-local-npm-3.2.0-bf54ec7842-0b0b0b412b.zip differ
diff --git a/typescript-node/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip b/typescript-node/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip
deleted file mode 100644
index eedfdb0..0000000
Binary files a/typescript-node/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip b/typescript-node/.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip
deleted file mode 100644
index 0aad893..0000000
Binary files a/typescript-node/.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/is-core-module-npm-2.12.1-ce74e89160-f04ea30533.zip b/typescript-node/.yarn/cache/is-core-module-npm-2.12.1-ce74e89160-f04ea30533.zip
deleted file mode 100644
index 9512b2e..0000000
Binary files a/typescript-node/.yarn/cache/is-core-module-npm-2.12.1-ce74e89160-f04ea30533.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/is-core-module-npm-2.16.2-f7b0e85c93-9317844b49.zip b/typescript-node/.yarn/cache/is-core-module-npm-2.16.2-f7b0e85c93-9317844b49.zip
new file mode 100644
index 0000000..cc336af
Binary files /dev/null and b/typescript-node/.yarn/cache/is-core-module-npm-2.16.2-f7b0e85c93-9317844b49.zip differ
diff --git a/typescript-node/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip b/typescript-node/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip
deleted file mode 100644
index f981b1b..0000000
Binary files a/typescript-node/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip b/typescript-node/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip
deleted file mode 100644
index 4604ffc..0000000
Binary files a/typescript-node/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/is-stream-npm-2.0.1-c802db55e7-b8e05ccdf9.zip b/typescript-node/.yarn/cache/is-stream-npm-2.0.1-c802db55e7-b8e05ccdf9.zip
new file mode 100644
index 0000000..c5699a4
Binary files /dev/null and b/typescript-node/.yarn/cache/is-stream-npm-2.0.1-c802db55e7-b8e05ccdf9.zip differ
diff --git a/typescript-node/.yarn/cache/isexe-npm-4.0.0-588229ad74-2ead327ef5.zip b/typescript-node/.yarn/cache/isexe-npm-4.0.0-588229ad74-2ead327ef5.zip
new file mode 100644
index 0000000..e3e12a4
Binary files /dev/null and b/typescript-node/.yarn/cache/isexe-npm-4.0.0-588229ad74-2ead327ef5.zip differ
diff --git a/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-ea57c24288.zip b/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-ea57c24288.zip
deleted file mode 100644
index 9c1763f..0000000
Binary files a/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-ea57c24288.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.2.0-93f84b2c8c-a2a545033b.zip b/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.2.0-93f84b2c8c-a2a545033b.zip
deleted file mode 100644
index 89e143d..0000000
Binary files a/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.2.0-93f84b2c8c-a2a545033b.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-2367407a8d.zip b/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-2367407a8d.zip
new file mode 100644
index 0000000..e1256ef
Binary files /dev/null and b/typescript-node/.yarn/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-2367407a8d.zip differ
diff --git a/typescript-node/.yarn/cache/istanbul-lib-instrument-npm-6.0.3-959dca7404-74104c60c6.zip b/typescript-node/.yarn/cache/istanbul-lib-instrument-npm-6.0.3-959dca7404-74104c60c6.zip
new file mode 100644
index 0000000..7bbd375
Binary files /dev/null and b/typescript-node/.yarn/cache/istanbul-lib-instrument-npm-6.0.3-959dca7404-74104c60c6.zip differ
diff --git a/typescript-node/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-3f29eb3f53.zip b/typescript-node/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip
similarity index 82%
rename from typescript-node/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-3f29eb3f53.zip
rename to typescript-node/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip
index 90bcd0a..b946848 100644
Binary files a/typescript-node/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-3f29eb3f53.zip and b/typescript-node/.yarn/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-fd17a1b879.zip differ
diff --git a/typescript-node/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-292bfb4083.zip b/typescript-node/.yarn/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-21ad3df45d.zip
similarity index 56%
rename from typescript-node/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-292bfb4083.zip
rename to typescript-node/.yarn/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-21ad3df45d.zip
index 437f17d..344cd7c 100644
Binary files a/typescript-node/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-292bfb4083.zip and b/typescript-node/.yarn/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-21ad3df45d.zip differ
diff --git a/typescript-node/.yarn/cache/istanbul-reports-npm-3.1.5-fb11324e3e-7867228f83.zip b/typescript-node/.yarn/cache/istanbul-reports-npm-3.1.5-fb11324e3e-7867228f83.zip
deleted file mode 100644
index c6e973c..0000000
Binary files a/typescript-node/.yarn/cache/istanbul-reports-npm-3.1.5-fb11324e3e-7867228f83.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/istanbul-reports-npm-3.2.0-b755b56d78-72b4c85252.zip b/typescript-node/.yarn/cache/istanbul-reports-npm-3.2.0-b755b56d78-72b4c85252.zip
new file mode 100644
index 0000000..82ac307
Binary files /dev/null and b/typescript-node/.yarn/cache/istanbul-reports-npm-3.2.0-b755b56d78-72b4c85252.zip differ
diff --git a/typescript-node/.yarn/cache/jackspeak-npm-2.2.1-0644c98bfe-e29291c0d0.zip b/typescript-node/.yarn/cache/jackspeak-npm-2.2.1-0644c98bfe-e29291c0d0.zip
deleted file mode 100644
index b58505c..0000000
Binary files a/typescript-node/.yarn/cache/jackspeak-npm-2.2.1-0644c98bfe-e29291c0d0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-changed-files-npm-29.5.0-9ca582b770-a67a7cb3c1.zip b/typescript-node/.yarn/cache/jest-changed-files-npm-29.7.0-c2dcd10525-963e203893.zip
similarity index 72%
rename from typescript-node/.yarn/cache/jest-changed-files-npm-29.5.0-9ca582b770-a67a7cb3c1.zip
rename to typescript-node/.yarn/cache/jest-changed-files-npm-29.7.0-c2dcd10525-963e203893.zip
index 1607309..c0f4fb3 100644
Binary files a/typescript-node/.yarn/cache/jest-changed-files-npm-29.5.0-9ca582b770-a67a7cb3c1.zip and b/typescript-node/.yarn/cache/jest-changed-files-npm-29.7.0-c2dcd10525-963e203893.zip differ
diff --git a/typescript-node/.yarn/cache/jest-circus-npm-29.5.0-22f9f7095f-44ff5d06ac.zip b/typescript-node/.yarn/cache/jest-circus-npm-29.5.0-22f9f7095f-44ff5d06ac.zip
deleted file mode 100644
index 3a2d22e..0000000
Binary files a/typescript-node/.yarn/cache/jest-circus-npm-29.5.0-22f9f7095f-44ff5d06ac.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-3494371489.zip b/typescript-node/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-3494371489.zip
new file mode 100644
index 0000000..1deda1c
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-circus-npm-29.7.0-f7679858c6-3494371489.zip differ
diff --git a/typescript-node/.yarn/cache/jest-cli-npm-29.5.0-3746aee7e9-39897bbbc0.zip b/typescript-node/.yarn/cache/jest-cli-npm-29.5.0-3746aee7e9-39897bbbc0.zip
deleted file mode 100644
index fa71f98..0000000
Binary files a/typescript-node/.yarn/cache/jest-cli-npm-29.5.0-3746aee7e9-39897bbbc0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-cli-npm-29.7.0-9adb356180-664901277a.zip b/typescript-node/.yarn/cache/jest-cli-npm-29.7.0-9adb356180-664901277a.zip
new file mode 100644
index 0000000..3d5ca81
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-cli-npm-29.7.0-9adb356180-664901277a.zip differ
diff --git a/typescript-node/.yarn/cache/jest-config-npm-29.5.0-15ac67fe8b-c37c4dab96.zip b/typescript-node/.yarn/cache/jest-config-npm-29.7.0-97d8544d74-4cabf8f894.zip
similarity index 72%
rename from typescript-node/.yarn/cache/jest-config-npm-29.5.0-15ac67fe8b-c37c4dab96.zip
rename to typescript-node/.yarn/cache/jest-config-npm-29.7.0-97d8544d74-4cabf8f894.zip
index 6520688..aa8d730 100644
Binary files a/typescript-node/.yarn/cache/jest-config-npm-29.5.0-15ac67fe8b-c37c4dab96.zip and b/typescript-node/.yarn/cache/jest-config-npm-29.7.0-97d8544d74-4cabf8f894.zip differ
diff --git a/typescript-node/.yarn/cache/jest-diff-npm-29.5.0-5c9573ed73-dfd0f4a299.zip b/typescript-node/.yarn/cache/jest-diff-npm-29.7.0-0149e01930-08e24a9dd4.zip
similarity index 85%
rename from typescript-node/.yarn/cache/jest-diff-npm-29.5.0-5c9573ed73-dfd0f4a299.zip
rename to typescript-node/.yarn/cache/jest-diff-npm-29.7.0-0149e01930-08e24a9dd4.zip
index cb21b3f..13e779c 100644
Binary files a/typescript-node/.yarn/cache/jest-diff-npm-29.5.0-5c9573ed73-dfd0f4a299.zip and b/typescript-node/.yarn/cache/jest-diff-npm-29.7.0-0149e01930-08e24a9dd4.zip differ
diff --git a/typescript-node/.yarn/cache/jest-docblock-npm-29.4.3-0fa9ff492b-e0e9df1485.zip b/typescript-node/.yarn/cache/jest-docblock-npm-29.7.0-ec59f449dd-66390c3e94.zip
similarity index 55%
rename from typescript-node/.yarn/cache/jest-docblock-npm-29.4.3-0fa9ff492b-e0e9df1485.zip
rename to typescript-node/.yarn/cache/jest-docblock-npm-29.7.0-ec59f449dd-66390c3e94.zip
index ab0903f..c0da780 100644
Binary files a/typescript-node/.yarn/cache/jest-docblock-npm-29.4.3-0fa9ff492b-e0e9df1485.zip and b/typescript-node/.yarn/cache/jest-docblock-npm-29.7.0-ec59f449dd-66390c3e94.zip differ
diff --git a/typescript-node/.yarn/cache/jest-each-npm-29.5.0-a032ec515b-b8b297534d.zip b/typescript-node/.yarn/cache/jest-each-npm-29.7.0-93476f5ba0-e88f99f018.zip
similarity index 51%
rename from typescript-node/.yarn/cache/jest-each-npm-29.5.0-a032ec515b-b8b297534d.zip
rename to typescript-node/.yarn/cache/jest-each-npm-29.7.0-93476f5ba0-e88f99f018.zip
index 3e77ef2..3b4d9d9 100644
Binary files a/typescript-node/.yarn/cache/jest-each-npm-29.5.0-a032ec515b-b8b297534d.zip and b/typescript-node/.yarn/cache/jest-each-npm-29.7.0-93476f5ba0-e88f99f018.zip differ
diff --git a/typescript-node/.yarn/cache/jest-environment-node-npm-29.5.0-026c4574db-57981911cc.zip b/typescript-node/.yarn/cache/jest-environment-node-npm-29.5.0-026c4574db-57981911cc.zip
deleted file mode 100644
index bbf797c..0000000
Binary files a/typescript-node/.yarn/cache/jest-environment-node-npm-29.5.0-026c4574db-57981911cc.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-501a996629.zip b/typescript-node/.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-501a996629.zip
new file mode 100644
index 0000000..622f32b
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-environment-node-npm-29.7.0-860b5e25ec-501a996629.zip differ
diff --git a/typescript-node/.yarn/cache/jest-get-type-npm-29.4.3-790eefdb01-6ac7f2dde1.zip b/typescript-node/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip
similarity index 72%
rename from typescript-node/.yarn/cache/jest-get-type-npm-29.4.3-790eefdb01-6ac7f2dde1.zip
rename to typescript-node/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip
index 51f6859..8afbbd1 100644
Binary files a/typescript-node/.yarn/cache/jest-get-type-npm-29.4.3-790eefdb01-6ac7f2dde1.zip and b/typescript-node/.yarn/cache/jest-get-type-npm-29.6.3-500477292e-88ac9102d4.zip differ
diff --git a/typescript-node/.yarn/cache/jest-haste-map-npm-29.5.0-d366e15fd6-3828ff7783.zip b/typescript-node/.yarn/cache/jest-haste-map-npm-29.7.0-e3be419eff-c2c8f2d3e7.zip
similarity index 69%
rename from typescript-node/.yarn/cache/jest-haste-map-npm-29.5.0-d366e15fd6-3828ff7783.zip
rename to typescript-node/.yarn/cache/jest-haste-map-npm-29.7.0-e3be419eff-c2c8f2d3e7.zip
index 58681a6..f136b52 100644
Binary files a/typescript-node/.yarn/cache/jest-haste-map-npm-29.5.0-d366e15fd6-3828ff7783.zip and b/typescript-node/.yarn/cache/jest-haste-map-npm-29.7.0-e3be419eff-c2c8f2d3e7.zip differ
diff --git a/typescript-node/.yarn/cache/jest-leak-detector-npm-29.5.0-5ce1db8235-0fb845da7a.zip b/typescript-node/.yarn/cache/jest-leak-detector-npm-29.7.0-915d82553f-e3950e3ddd.zip
similarity index 79%
rename from typescript-node/.yarn/cache/jest-leak-detector-npm-29.5.0-5ce1db8235-0fb845da7a.zip
rename to typescript-node/.yarn/cache/jest-leak-detector-npm-29.7.0-915d82553f-e3950e3ddd.zip
index 840e496..db3bcee 100644
Binary files a/typescript-node/.yarn/cache/jest-leak-detector-npm-29.5.0-5ce1db8235-0fb845da7a.zip and b/typescript-node/.yarn/cache/jest-leak-detector-npm-29.7.0-915d82553f-e3950e3ddd.zip differ
diff --git a/typescript-node/.yarn/cache/jest-matcher-utils-npm-29.5.0-f255c78df4-1d3e8c746e.zip b/typescript-node/.yarn/cache/jest-matcher-utils-npm-29.5.0-f255c78df4-1d3e8c746e.zip
deleted file mode 100644
index 8c842cb..0000000
Binary files a/typescript-node/.yarn/cache/jest-matcher-utils-npm-29.5.0-f255c78df4-1d3e8c746e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-matcher-utils-npm-29.7.0-dfc74b630e-d7259e5f99.zip b/typescript-node/.yarn/cache/jest-matcher-utils-npm-29.7.0-dfc74b630e-d7259e5f99.zip
new file mode 100644
index 0000000..25c776c
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-matcher-utils-npm-29.7.0-dfc74b630e-d7259e5f99.zip differ
diff --git a/typescript-node/.yarn/cache/jest-message-util-npm-29.5.0-910b21363f-daddece6bb.zip b/typescript-node/.yarn/cache/jest-message-util-npm-29.5.0-910b21363f-daddece6bb.zip
deleted file mode 100644
index b4525f7..0000000
Binary files a/typescript-node/.yarn/cache/jest-message-util-npm-29.5.0-910b21363f-daddece6bb.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-a9d025b1c6.zip b/typescript-node/.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-a9d025b1c6.zip
new file mode 100644
index 0000000..acdc44e
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-a9d025b1c6.zip differ
diff --git a/typescript-node/.yarn/cache/jest-mock-npm-29.5.0-d14983d2ac-2a9cf07509.zip b/typescript-node/.yarn/cache/jest-mock-npm-29.5.0-d14983d2ac-2a9cf07509.zip
deleted file mode 100644
index 5cecb60..0000000
Binary files a/typescript-node/.yarn/cache/jest-mock-npm-29.5.0-d14983d2ac-2a9cf07509.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-81ba9b6868.zip b/typescript-node/.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-81ba9b6868.zip
new file mode 100644
index 0000000..b7e8baa
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-mock-npm-29.7.0-22c4769d06-81ba9b6868.zip differ
diff --git a/typescript-node/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip b/typescript-node/.yarn/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-db1a8ab2cb.zip
similarity index 52%
rename from typescript-node/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip
rename to typescript-node/.yarn/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-db1a8ab2cb.zip
index 36125b5..b4c4e50 100644
Binary files a/typescript-node/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip and b/typescript-node/.yarn/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-db1a8ab2cb.zip differ
diff --git a/typescript-node/.yarn/cache/jest-regex-util-npm-29.4.3-defc22c588-96fc7fc28c.zip b/typescript-node/.yarn/cache/jest-regex-util-npm-29.6.3-568e0094e2-0518beeb9b.zip
similarity index 71%
rename from typescript-node/.yarn/cache/jest-regex-util-npm-29.4.3-defc22c588-96fc7fc28c.zip
rename to typescript-node/.yarn/cache/jest-regex-util-npm-29.6.3-568e0094e2-0518beeb9b.zip
index c17765b..ddf6af3 100644
Binary files a/typescript-node/.yarn/cache/jest-regex-util-npm-29.4.3-defc22c588-96fc7fc28c.zip and b/typescript-node/.yarn/cache/jest-regex-util-npm-29.6.3-568e0094e2-0518beeb9b.zip differ
diff --git a/typescript-node/.yarn/cache/jest-resolve-dependencies-npm-29.5.0-c81c307c1c-479d2e5365.zip b/typescript-node/.yarn/cache/jest-resolve-dependencies-npm-29.7.0-06ec582f1e-aeb75d8150.zip
similarity index 79%
rename from typescript-node/.yarn/cache/jest-resolve-dependencies-npm-29.5.0-c81c307c1c-479d2e5365.zip
rename to typescript-node/.yarn/cache/jest-resolve-dependencies-npm-29.7.0-06ec582f1e-aeb75d8150.zip
index 8211e8f..00e4a31 100644
Binary files a/typescript-node/.yarn/cache/jest-resolve-dependencies-npm-29.5.0-c81c307c1c-479d2e5365.zip and b/typescript-node/.yarn/cache/jest-resolve-dependencies-npm-29.7.0-06ec582f1e-aeb75d8150.zip differ
diff --git a/typescript-node/.yarn/cache/jest-resolve-npm-29.5.0-cd698d7d0c-9a125f3cf3.zip b/typescript-node/.yarn/cache/jest-resolve-npm-29.5.0-cd698d7d0c-9a125f3cf3.zip
deleted file mode 100644
index 2e9cc6f..0000000
Binary files a/typescript-node/.yarn/cache/jest-resolve-npm-29.5.0-cd698d7d0c-9a125f3cf3.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-resolve-npm-29.7.0-5c36f0eefb-0ca218e107.zip b/typescript-node/.yarn/cache/jest-resolve-npm-29.7.0-5c36f0eefb-0ca218e107.zip
new file mode 100644
index 0000000..a72822f
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-resolve-npm-29.7.0-5c36f0eefb-0ca218e107.zip differ
diff --git a/typescript-node/.yarn/cache/jest-runner-npm-29.5.0-e3433af66a-437dea69c5.zip b/typescript-node/.yarn/cache/jest-runner-npm-29.7.0-3bc9f82b58-f0405778ea.zip
similarity index 91%
rename from typescript-node/.yarn/cache/jest-runner-npm-29.5.0-e3433af66a-437dea69c5.zip
rename to typescript-node/.yarn/cache/jest-runner-npm-29.7.0-3bc9f82b58-f0405778ea.zip
index 3bad857..50ad486 100644
Binary files a/typescript-node/.yarn/cache/jest-runner-npm-29.5.0-e3433af66a-437dea69c5.zip and b/typescript-node/.yarn/cache/jest-runner-npm-29.7.0-3bc9f82b58-f0405778ea.zip differ
diff --git a/typescript-node/.yarn/cache/jest-runtime-npm-29.5.0-e692162e2b-7af27bd9d5.zip b/typescript-node/.yarn/cache/jest-runtime-npm-29.5.0-e692162e2b-7af27bd9d5.zip
deleted file mode 100644
index 83321b7..0000000
Binary files a/typescript-node/.yarn/cache/jest-runtime-npm-29.5.0-e692162e2b-7af27bd9d5.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-runtime-npm-29.7.0-120fa64128-d19f113d01.zip b/typescript-node/.yarn/cache/jest-runtime-npm-29.7.0-120fa64128-d19f113d01.zip
new file mode 100644
index 0000000..4b50dc6
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-runtime-npm-29.7.0-120fa64128-d19f113d01.zip differ
diff --git a/typescript-node/.yarn/cache/jest-snapshot-npm-29.5.0-2187ce2f07-fe5df54122.zip b/typescript-node/.yarn/cache/jest-snapshot-npm-29.5.0-2187ce2f07-fe5df54122.zip
deleted file mode 100644
index 734a886..0000000
Binary files a/typescript-node/.yarn/cache/jest-snapshot-npm-29.5.0-2187ce2f07-fe5df54122.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-snapshot-npm-29.7.0-15ef0a4ad6-86821c3ad0.zip b/typescript-node/.yarn/cache/jest-snapshot-npm-29.7.0-15ef0a4ad6-86821c3ad0.zip
new file mode 100644
index 0000000..2cf5f39
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-snapshot-npm-29.7.0-15ef0a4ad6-86821c3ad0.zip differ
diff --git a/typescript-node/.yarn/cache/jest-util-npm-29.5.0-cf917d20f1-fd9212950d.zip b/typescript-node/.yarn/cache/jest-util-npm-29.5.0-cf917d20f1-fd9212950d.zip
deleted file mode 100644
index 36ba238..0000000
Binary files a/typescript-node/.yarn/cache/jest-util-npm-29.5.0-cf917d20f1-fd9212950d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-042ab4980f.zip b/typescript-node/.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-042ab4980f.zip
new file mode 100644
index 0000000..4ed8c18
Binary files /dev/null and b/typescript-node/.yarn/cache/jest-util-npm-29.7.0-ff1d59714b-042ab4980f.zip differ
diff --git a/typescript-node/.yarn/cache/jest-validate-npm-29.5.0-7f9f419807-43ca5df7cb.zip b/typescript-node/.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-191fcdc980.zip
similarity index 65%
rename from typescript-node/.yarn/cache/jest-validate-npm-29.5.0-7f9f419807-43ca5df7cb.zip
rename to typescript-node/.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-191fcdc980.zip
index 4529141..b72af69 100644
Binary files a/typescript-node/.yarn/cache/jest-validate-npm-29.5.0-7f9f419807-43ca5df7cb.zip and b/typescript-node/.yarn/cache/jest-validate-npm-29.7.0-795ac5ede8-191fcdc980.zip differ
diff --git a/typescript-node/.yarn/cache/jest-watcher-npm-29.5.0-50b2ae0988-62303ac7bd.zip b/typescript-node/.yarn/cache/jest-watcher-npm-29.7.0-e5372f1629-67e6e7fe69.zip
similarity index 94%
rename from typescript-node/.yarn/cache/jest-watcher-npm-29.5.0-50b2ae0988-62303ac7bd.zip
rename to typescript-node/.yarn/cache/jest-watcher-npm-29.7.0-e5372f1629-67e6e7fe69.zip
index 3dc5ce3..0aadb17 100644
Binary files a/typescript-node/.yarn/cache/jest-watcher-npm-29.5.0-50b2ae0988-62303ac7bd.zip and b/typescript-node/.yarn/cache/jest-watcher-npm-29.7.0-e5372f1629-67e6e7fe69.zip differ
diff --git a/typescript-node/.yarn/cache/jest-worker-npm-29.5.0-70da3388f1-1151a1ae36.zip b/typescript-node/.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-30fff60af4.zip
similarity index 54%
rename from typescript-node/.yarn/cache/jest-worker-npm-29.5.0-70da3388f1-1151a1ae36.zip
rename to typescript-node/.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-30fff60af4.zip
index f41564f..dbd1407 100644
Binary files a/typescript-node/.yarn/cache/jest-worker-npm-29.5.0-70da3388f1-1151a1ae36.zip and b/typescript-node/.yarn/cache/jest-worker-npm-29.7.0-4d3567fed6-30fff60af4.zip differ
diff --git a/typescript-node/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-bef146085f.zip b/typescript-node/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-bef146085f.zip
deleted file mode 100644
index 31ddcc7..0000000
Binary files a/typescript-node/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-bef146085f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/js-yaml-npm-3.15.1-057b38bd76-536cfb984b.zip b/typescript-node/.yarn/cache/js-yaml-npm-3.15.1-057b38bd76-536cfb984b.zip
new file mode 100644
index 0000000..0fea164
Binary files /dev/null and b/typescript-node/.yarn/cache/js-yaml-npm-3.15.1-057b38bd76-536cfb984b.zip differ
diff --git a/typescript-node/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip b/typescript-node/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip
deleted file mode 100644
index 08cc200..0000000
Binary files a/typescript-node/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-19c94095ea.zip b/typescript-node/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-19c94095ea.zip
new file mode 100644
index 0000000..9c18099
Binary files /dev/null and b/typescript-node/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-19c94095ea.zip differ
diff --git a/typescript-node/.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip b/typescript-node/.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip
deleted file mode 100644
index 7a35cef..0000000
Binary files a/typescript-node/.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-198a5436b1.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip b/typescript-node/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip
new file mode 100644
index 0000000..273106a
Binary files /dev/null and b/typescript-node/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip differ
diff --git a/typescript-node/.yarn/cache/lru-cache-npm-10.0.0-256d74bb20-18f101675f.zip b/typescript-node/.yarn/cache/lru-cache-npm-10.0.0-256d74bb20-18f101675f.zip
deleted file mode 100644
index 53a12f8..0000000
Binary files a/typescript-node/.yarn/cache/lru-cache-npm-10.0.0-256d74bb20-18f101675f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip b/typescript-node/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip
deleted file mode 100644
index 1635dac..0000000
Binary files a/typescript-node/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip b/typescript-node/.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip
deleted file mode 100644
index 49f2621..0000000
Binary files a/typescript-node/.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip b/typescript-node/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip
deleted file mode 100644
index e466cd8..0000000
Binary files a/typescript-node/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip b/typescript-node/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip
new file mode 100644
index 0000000..2a141ef
Binary files /dev/null and b/typescript-node/.yarn/cache/make-dir-npm-4.0.0-ec3cd921cc-bf0731a2dd.zip differ
diff --git a/typescript-node/.yarn/cache/make-fetch-happen-npm-11.1.1-f32b79aaaa-7268bf274a.zip b/typescript-node/.yarn/cache/make-fetch-happen-npm-11.1.1-f32b79aaaa-7268bf274a.zip
deleted file mode 100644
index 4c30e7f..0000000
Binary files a/typescript-node/.yarn/cache/make-fetch-happen-npm-11.1.1-f32b79aaaa-7268bf274a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/micromatch-npm-4.0.5-cfab5d7669-02a17b671c.zip b/typescript-node/.yarn/cache/micromatch-npm-4.0.5-cfab5d7669-02a17b671c.zip
deleted file mode 100644
index 060612a..0000000
Binary files a/typescript-node/.yarn/cache/micromatch-npm-4.0.5-cfab5d7669-02a17b671c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-79920eb634.zip b/typescript-node/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-79920eb634.zip
new file mode 100644
index 0000000..00406c8
Binary files /dev/null and b/typescript-node/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-79920eb634.zip differ
diff --git a/typescript-node/.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip b/typescript-node/.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip
deleted file mode 100644
index ba0c510..0000000
Binary files a/typescript-node/.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minimatch-npm-3.1.5-86958baf50-47ef6f412c.zip b/typescript-node/.yarn/cache/minimatch-npm-3.1.5-86958baf50-47ef6f412c.zip
new file mode 100644
index 0000000..e5d8afc
Binary files /dev/null and b/typescript-node/.yarn/cache/minimatch-npm-3.1.5-86958baf50-47ef6f412c.zip differ
diff --git a/typescript-node/.yarn/cache/minimatch-npm-9.0.2-54f51f778f-2eb12e2047.zip b/typescript-node/.yarn/cache/minimatch-npm-9.0.2-54f51f778f-2eb12e2047.zip
deleted file mode 100644
index a38ee1d..0000000
Binary files a/typescript-node/.yarn/cache/minimatch-npm-9.0.2-54f51f778f-2eb12e2047.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-75a6d645fb.zip b/typescript-node/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-75a6d645fb.zip
new file mode 100644
index 0000000..bd385cb
Binary files /dev/null and b/typescript-node/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-75a6d645fb.zip differ
diff --git a/typescript-node/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip b/typescript-node/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip
deleted file mode 100644
index 582f61c..0000000
Binary files a/typescript-node/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-fetch-npm-3.0.3-2c4966d142-af5ab2552a.zip b/typescript-node/.yarn/cache/minipass-fetch-npm-3.0.3-2c4966d142-af5ab2552a.zip
deleted file mode 100644
index f6ea3e0..0000000
Binary files a/typescript-node/.yarn/cache/minipass-fetch-npm-3.0.3-2c4966d142-af5ab2552a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip b/typescript-node/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip
deleted file mode 100644
index 913b687..0000000
Binary files a/typescript-node/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip b/typescript-node/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip
deleted file mode 100644
index 26e006f..0000000
Binary files a/typescript-node/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-npm-5.0.0-c64fb63c92-425dab2887.zip b/typescript-node/.yarn/cache/minipass-npm-5.0.0-c64fb63c92-425dab2887.zip
deleted file mode 100644
index c49ee93..0000000
Binary files a/typescript-node/.yarn/cache/minipass-npm-5.0.0-c64fb63c92-425dab2887.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-npm-6.0.2-a7fca64b94-d140b91f4a.zip b/typescript-node/.yarn/cache/minipass-npm-6.0.2-a7fca64b94-d140b91f4a.zip
deleted file mode 100644
index 845a9a6..0000000
Binary files a/typescript-node/.yarn/cache/minipass-npm-6.0.2-a7fca64b94-d140b91f4a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-npm-7.1.3-b73a16498d-2ede17c0bf.zip b/typescript-node/.yarn/cache/minipass-npm-7.1.3-b73a16498d-2ede17c0bf.zip
new file mode 100644
index 0000000..d3496bc
Binary files /dev/null and b/typescript-node/.yarn/cache/minipass-npm-7.1.3-b73a16498d-2ede17c0bf.zip differ
diff --git a/typescript-node/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip b/typescript-node/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip
deleted file mode 100644
index 4deae41..0000000
Binary files a/typescript-node/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip b/typescript-node/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip
deleted file mode 100644
index b6f4644..0000000
Binary files a/typescript-node/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip b/typescript-node/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip
deleted file mode 100644
index efb1b7f..0000000
Binary files a/typescript-node/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/minizlib-npm-3.1.0-6680befdba-a15e6f0128.zip b/typescript-node/.yarn/cache/minizlib-npm-3.1.0-6680befdba-a15e6f0128.zip
new file mode 100644
index 0000000..e862b38
Binary files /dev/null and b/typescript-node/.yarn/cache/minizlib-npm-3.1.0-6680befdba-a15e6f0128.zip differ
diff --git a/typescript-node/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip b/typescript-node/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip
deleted file mode 100644
index 4625e91..0000000
Binary files a/typescript-node/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip b/typescript-node/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip
deleted file mode 100644
index 725e9b8..0000000
Binary files a/typescript-node/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip b/typescript-node/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip
deleted file mode 100644
index e8c5cf4..0000000
Binary files a/typescript-node/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip b/typescript-node/.yarn/cache/neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip
new file mode 100644
index 0000000..cbf9a76
Binary files /dev/null and b/typescript-node/.yarn/cache/neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip differ
diff --git a/typescript-node/.yarn/cache/node-gyp-npm-13.0.1-b64b93933d-9d4e0eeaa4.zip b/typescript-node/.yarn/cache/node-gyp-npm-13.0.1-b64b93933d-9d4e0eeaa4.zip
new file mode 100644
index 0000000..22f9225
Binary files /dev/null and b/typescript-node/.yarn/cache/node-gyp-npm-13.0.1-b64b93933d-9d4e0eeaa4.zip differ
diff --git a/typescript-node/.yarn/cache/node-gyp-npm-9.4.0-ebf5f5573e-78b404e2e0.zip b/typescript-node/.yarn/cache/node-gyp-npm-9.4.0-ebf5f5573e-78b404e2e0.zip
deleted file mode 100644
index 58feae5..0000000
Binary files a/typescript-node/.yarn/cache/node-gyp-npm-9.4.0-ebf5f5573e-78b404e2e0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/node-releases-npm-2.0.12-888ed1398a-b8c56db82c.zip b/typescript-node/.yarn/cache/node-releases-npm-2.0.12-888ed1398a-b8c56db82c.zip
deleted file mode 100644
index 96ca378..0000000
Binary files a/typescript-node/.yarn/cache/node-releases-npm-2.0.12-888ed1398a-b8c56db82c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/node-releases-npm-2.0.52-3b0e966c9f-fb2bf43875.zip b/typescript-node/.yarn/cache/node-releases-npm-2.0.52-3b0e966c9f-fb2bf43875.zip
new file mode 100644
index 0000000..2c1e609
Binary files /dev/null and b/typescript-node/.yarn/cache/node-releases-npm-2.0.52-3b0e966c9f-fb2bf43875.zip differ
diff --git a/typescript-node/.yarn/cache/nopt-npm-10.0.1-c09d426c63-c2903b9171.zip b/typescript-node/.yarn/cache/nopt-npm-10.0.1-c09d426c63-c2903b9171.zip
new file mode 100644
index 0000000..bb70302
Binary files /dev/null and b/typescript-node/.yarn/cache/nopt-npm-10.0.1-c09d426c63-c2903b9171.zip differ
diff --git a/typescript-node/.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip b/typescript-node/.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip
deleted file mode 100644
index ce92f86..0000000
Binary files a/typescript-node/.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip b/typescript-node/.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip
deleted file mode 100644
index a7bb4a7..0000000
Binary files a/typescript-node/.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip b/typescript-node/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip
deleted file mode 100644
index 092fe42..0000000
Binary files a/typescript-node/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/path-scurry-npm-1.10.0-53ecc28cea-3b66a4a6ab.zip b/typescript-node/.yarn/cache/path-scurry-npm-1.10.0-53ecc28cea-3b66a4a6ab.zip
deleted file mode 100644
index aad3eea..0000000
Binary files a/typescript-node/.yarn/cache/path-scurry-npm-1.10.0-53ecc28cea-3b66a4a6ab.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip b/typescript-node/.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip
deleted file mode 100644
index 2d7c3d5..0000000
Binary files a/typescript-node/.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e1cf46bf84.zip b/typescript-node/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e1cf46bf84.zip
new file mode 100644
index 0000000..44976ad
Binary files /dev/null and b/typescript-node/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e1cf46bf84.zip differ
diff --git a/typescript-node/.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-45e2b882b5.zip b/typescript-node/.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-45e2b882b5.zip
deleted file mode 100644
index 783d768..0000000
Binary files a/typescript-node/.yarn/cache/picomatch-npm-2.2.3-3797e21cf0-45e2b882b5.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip b/typescript-node/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip
deleted file mode 100644
index 3384698..0000000
Binary files a/typescript-node/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/picomatch-npm-2.3.2-4d85543a37-0a3f5b9ff2.zip b/typescript-node/.yarn/cache/picomatch-npm-2.3.2-4d85543a37-0a3f5b9ff2.zip
new file mode 100644
index 0000000..9fce1cc
Binary files /dev/null and b/typescript-node/.yarn/cache/picomatch-npm-2.3.2-4d85543a37-0a3f5b9ff2.zip differ
diff --git a/typescript-node/.yarn/cache/picomatch-npm-4.0.5-bb8e0de0f7-44f305aa44.zip b/typescript-node/.yarn/cache/picomatch-npm-4.0.5-bb8e0de0f7-44f305aa44.zip
new file mode 100644
index 0000000..ef60674
Binary files /dev/null and b/typescript-node/.yarn/cache/picomatch-npm-4.0.5-bb8e0de0f7-44f305aa44.zip differ
diff --git a/typescript-node/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-46a65fefaf.zip b/typescript-node/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-46a65fefaf.zip
deleted file mode 100644
index a43593b..0000000
Binary files a/typescript-node/.yarn/cache/pirates-npm-4.0.6-a8ec571a43-46a65fefaf.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/pirates-npm-4.0.7-5e4ee2f078-3dcbaff13c.zip b/typescript-node/.yarn/cache/pirates-npm-4.0.7-5e4ee2f078-3dcbaff13c.zip
new file mode 100644
index 0000000..13eeb39
Binary files /dev/null and b/typescript-node/.yarn/cache/pirates-npm-4.0.7-5e4ee2f078-3dcbaff13c.zip differ
diff --git a/typescript-node/.yarn/cache/pretty-format-npm-29.5.0-4f1086147d-4065356b55.zip b/typescript-node/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-032c160238.zip
similarity index 66%
rename from typescript-node/.yarn/cache/pretty-format-npm-29.5.0-4f1086147d-4065356b55.zip
rename to typescript-node/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-032c160238.zip
index 4a2a6d3..329581e 100644
Binary files a/typescript-node/.yarn/cache/pretty-format-npm-29.5.0-4f1086147d-4065356b55.zip and b/typescript-node/.yarn/cache/pretty-format-npm-29.7.0-7d330b2ea2-032c160238.zip differ
diff --git a/typescript-node/.yarn/cache/proc-log-npm-7.0.0-d836af0493-ded2e976db.zip b/typescript-node/.yarn/cache/proc-log-npm-7.0.0-d836af0493-ded2e976db.zip
new file mode 100644
index 0000000..729a016
Binary files /dev/null and b/typescript-node/.yarn/cache/proc-log-npm-7.0.0-d836af0493-ded2e976db.zip differ
diff --git a/typescript-node/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip b/typescript-node/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip
deleted file mode 100644
index 9cefe07..0000000
Binary files a/typescript-node/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-05bf486587.zip b/typescript-node/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip
similarity index 85%
rename from typescript-node/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-05bf486587.zip
rename to typescript-node/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip
index c92be9f..ec51fd3 100644
Binary files a/typescript-node/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-05bf486587.zip and b/typescript-node/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip differ
diff --git a/typescript-node/.yarn/cache/pure-rand-npm-6.0.2-5d375bc0a6-79de33876a.zip b/typescript-node/.yarn/cache/pure-rand-npm-6.0.2-5d375bc0a6-79de33876a.zip
deleted file mode 100644
index 892176c..0000000
Binary files a/typescript-node/.yarn/cache/pure-rand-npm-6.0.2-5d375bc0a6-79de33876a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/pure-rand-npm-6.1.0-497ea3fc37-8d53bc02be.zip b/typescript-node/.yarn/cache/pure-rand-npm-6.1.0-497ea3fc37-8d53bc02be.zip
new file mode 100644
index 0000000..a460d65
Binary files /dev/null and b/typescript-node/.yarn/cache/pure-rand-npm-6.1.0-497ea3fc37-8d53bc02be.zip differ
diff --git a/typescript-node/.yarn/cache/react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip b/typescript-node/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-e20fe84c86.zip
similarity index 93%
rename from typescript-node/.yarn/cache/react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip
rename to typescript-node/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-e20fe84c86.zip
index 97bc63a..5de11f2 100644
Binary files a/typescript-node/.yarn/cache/react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip and b/typescript-node/.yarn/cache/react-is-npm-18.3.1-370a81e1e9-e20fe84c86.zip differ
diff --git a/typescript-node/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip b/typescript-node/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip
deleted file mode 100644
index 0053b67..0000000
Binary files a/typescript-node/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/resolve-npm-1.22.12-36aa35b43a-4dc5a614b3.zip b/typescript-node/.yarn/cache/resolve-npm-1.22.12-36aa35b43a-4dc5a614b3.zip
new file mode 100644
index 0000000..1020818
Binary files /dev/null and b/typescript-node/.yarn/cache/resolve-npm-1.22.12-36aa35b43a-4dc5a614b3.zip differ
diff --git a/typescript-node/.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip b/typescript-node/.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip
deleted file mode 100644
index f3daae8..0000000
Binary files a/typescript-node/.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip b/typescript-node/.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip
deleted file mode 100644
index 7d4960b..0000000
Binary files a/typescript-node/.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/resolve-patch-c3c319230f-0cc5b060cb.zip b/typescript-node/.yarn/cache/resolve-patch-c3c319230f-0cc5b060cb.zip
new file mode 100644
index 0000000..df866a9
Binary files /dev/null and b/typescript-node/.yarn/cache/resolve-patch-c3c319230f-0cc5b060cb.zip differ
diff --git a/typescript-node/.yarn/cache/resolve.exports-npm-2.0.2-f59b42bbe5-1c7778ca1b.zip b/typescript-node/.yarn/cache/resolve.exports-npm-2.0.2-f59b42bbe5-1c7778ca1b.zip
deleted file mode 100644
index 25724ce..0000000
Binary files a/typescript-node/.yarn/cache/resolve.exports-npm-2.0.2-f59b42bbe5-1c7778ca1b.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/resolve.exports-npm-2.0.3-eb33ea72e9-abfb9f9827.zip b/typescript-node/.yarn/cache/resolve.exports-npm-2.0.3-eb33ea72e9-abfb9f9827.zip
new file mode 100644
index 0000000..a7fd07e
Binary files /dev/null and b/typescript-node/.yarn/cache/resolve.exports-npm-2.0.3-eb33ea72e9-abfb9f9827.zip differ
diff --git a/typescript-node/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip b/typescript-node/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip
deleted file mode 100644
index 12e25fc..0000000
Binary files a/typescript-node/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip b/typescript-node/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip
deleted file mode 100644
index 6d2f541..0000000
Binary files a/typescript-node/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip b/typescript-node/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip
deleted file mode 100644
index 53c2813..0000000
Binary files a/typescript-node/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip b/typescript-node/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip
deleted file mode 100644
index c80798a..0000000
Binary files a/typescript-node/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip b/typescript-node/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip
deleted file mode 100644
index 1a93be6..0000000
Binary files a/typescript-node/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/semver-npm-7.5.3-275095dbf3-9d58db1652.zip b/typescript-node/.yarn/cache/semver-npm-7.5.3-275095dbf3-9d58db1652.zip
deleted file mode 100644
index 79b7d47..0000000
Binary files a/typescript-node/.yarn/cache/semver-npm-7.5.3-275095dbf3-9d58db1652.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/semver-npm-7.8.5-785968bbf9-0c580f17e8.zip b/typescript-node/.yarn/cache/semver-npm-7.8.5-785968bbf9-0c580f17e8.zip
new file mode 100644
index 0000000..44d8e43
Binary files /dev/null and b/typescript-node/.yarn/cache/semver-npm-7.8.5-785968bbf9-0c580f17e8.zip differ
diff --git a/typescript-node/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip b/typescript-node/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip
deleted file mode 100644
index fe99c6f..0000000
Binary files a/typescript-node/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/signal-exit-npm-4.0.2-e3f0e8ed25-41f5928431.zip b/typescript-node/.yarn/cache/signal-exit-npm-4.0.2-e3f0e8ed25-41f5928431.zip
deleted file mode 100644
index 60c1f70..0000000
Binary files a/typescript-node/.yarn/cache/signal-exit-npm-4.0.2-e3f0e8ed25-41f5928431.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip b/typescript-node/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip
deleted file mode 100644
index d587b3d..0000000
Binary files a/typescript-node/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip b/typescript-node/.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip
deleted file mode 100644
index f225cde..0000000
Binary files a/typescript-node/.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip b/typescript-node/.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip
deleted file mode 100644
index 4be1d89..0000000
Binary files a/typescript-node/.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ssri-npm-10.0.4-f583dafaf3-fb14da9f8a.zip b/typescript-node/.yarn/cache/ssri-npm-10.0.4-f583dafaf3-fb14da9f8a.zip
deleted file mode 100644
index cadf01f..0000000
Binary files a/typescript-node/.yarn/cache/ssri-npm-10.0.4-f583dafaf3-fb14da9f8a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip b/typescript-node/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip
deleted file mode 100644
index 0bf9402..0000000
Binary files a/typescript-node/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/string-width-npm-5.1.2-bf60531341-7369deaa29.zip b/typescript-node/.yarn/cache/string-width-npm-5.1.2-bf60531341-7369deaa29.zip
deleted file mode 100644
index bd88405..0000000
Binary files a/typescript-node/.yarn/cache/string-width-npm-5.1.2-bf60531341-7369deaa29.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip b/typescript-node/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip
deleted file mode 100644
index e12cf75..0000000
Binary files a/typescript-node/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-04c3239ede.zip b/typescript-node/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-04c3239ede.zip
deleted file mode 100644
index f7b2cf0..0000000
Binary files a/typescript-node/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-04c3239ede.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/strip-ansi-npm-7.1.0-7453b80b79-859c73fcf2.zip b/typescript-node/.yarn/cache/strip-ansi-npm-7.1.0-7453b80b79-859c73fcf2.zip
deleted file mode 100644
index 2cc856e..0000000
Binary files a/typescript-node/.yarn/cache/strip-ansi-npm-7.1.0-7453b80b79-859c73fcf2.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip b/typescript-node/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip
deleted file mode 100644
index aa46b98..0000000
Binary files a/typescript-node/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/tar-npm-6.1.15-44c3e71720-f23832fcee.zip b/typescript-node/.yarn/cache/tar-npm-6.1.15-44c3e71720-f23832fcee.zip
deleted file mode 100644
index 9c2411f..0000000
Binary files a/typescript-node/.yarn/cache/tar-npm-6.1.15-44c3e71720-f23832fcee.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/tar-npm-7.5.22-4f603e5fa8-e1434f4095.zip b/typescript-node/.yarn/cache/tar-npm-7.5.22-4f603e5fa8-e1434f4095.zip
new file mode 100644
index 0000000..bff7a0d
Binary files /dev/null and b/typescript-node/.yarn/cache/tar-npm-7.5.22-4f603e5fa8-e1434f4095.zip differ
diff --git a/typescript-node/.yarn/cache/tinyglobby-npm-0.2.17-f2c3ddb917-041e73eae5.zip b/typescript-node/.yarn/cache/tinyglobby-npm-0.2.17-f2c3ddb917-041e73eae5.zip
new file mode 100644
index 0000000..5dd2239
Binary files /dev/null and b/typescript-node/.yarn/cache/tinyglobby-npm-0.2.17-f2c3ddb917-041e73eae5.zip differ
diff --git a/typescript-node/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip b/typescript-node/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip
deleted file mode 100644
index bed5e12..0000000
Binary files a/typescript-node/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ts-jest-npm-29.1.1-04e888e48e-a8c9e284ed.zip b/typescript-node/.yarn/cache/ts-jest-npm-29.1.1-04e888e48e-a8c9e284ed.zip
deleted file mode 100644
index 51c8858..0000000
Binary files a/typescript-node/.yarn/cache/ts-jest-npm-29.1.1-04e888e48e-a8c9e284ed.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/ts-jest-npm-29.4.12-b5b8b5125b-8efdb268e1.zip b/typescript-node/.yarn/cache/ts-jest-npm-29.4.12-b5b8b5125b-8efdb268e1.zip
new file mode 100644
index 0000000..39ec185
Binary files /dev/null and b/typescript-node/.yarn/cache/ts-jest-npm-29.4.12-b5b8b5125b-8efdb268e1.zip differ
diff --git a/typescript-node/.yarn/cache/tsc-watch-npm-6.0.4-ca8d5a229b-f7bf7eefbc.zip b/typescript-node/.yarn/cache/tsc-watch-npm-6.0.4-ca8d5a229b-f7bf7eefbc.zip
deleted file mode 100644
index db7a0bd..0000000
Binary files a/typescript-node/.yarn/cache/tsc-watch-npm-6.0.4-ca8d5a229b-f7bf7eefbc.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/tsc-watch-npm-6.3.1-9055a68c71-891b5a66c8.zip b/typescript-node/.yarn/cache/tsc-watch-npm-6.3.1-9055a68c71-891b5a66c8.zip
new file mode 100644
index 0000000..b99319d
Binary files /dev/null and b/typescript-node/.yarn/cache/tsc-watch-npm-6.3.1-9055a68c71-891b5a66c8.zip differ
diff --git a/typescript-node/.yarn/cache/type-fest-npm-4.41.0-31a6ce52d8-7055c0e3eb.zip b/typescript-node/.yarn/cache/type-fest-npm-4.41.0-31a6ce52d8-7055c0e3eb.zip
new file mode 100644
index 0000000..5e03ba0
Binary files /dev/null and b/typescript-node/.yarn/cache/type-fest-npm-4.41.0-31a6ce52d8-7055c0e3eb.zip differ
diff --git a/typescript-node/.yarn/cache/typescript-npm-5.1.6-b157762de3-b2f2c35096.zip b/typescript-node/.yarn/cache/typescript-npm-5.1.6-b157762de3-b2f2c35096.zip
deleted file mode 100644
index e9450e9..0000000
Binary files a/typescript-node/.yarn/cache/typescript-npm-5.1.6-b157762de3-b2f2c35096.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/typescript-npm-5.9.3-48715be868-0d0ffb84f2.zip b/typescript-node/.yarn/cache/typescript-npm-5.9.3-48715be868-0d0ffb84f2.zip
new file mode 100644
index 0000000..14df920
Binary files /dev/null and b/typescript-node/.yarn/cache/typescript-npm-5.9.3-48715be868-0d0ffb84f2.zip differ
diff --git a/typescript-node/.yarn/cache/typescript-patch-77e3777349-a5a6dc399d.zip b/typescript-node/.yarn/cache/typescript-patch-77e3777349-a5a6dc399d.zip
new file mode 100644
index 0000000..97b583f
Binary files /dev/null and b/typescript-node/.yarn/cache/typescript-patch-77e3777349-a5a6dc399d.zip differ
diff --git a/typescript-node/.yarn/cache/typescript-patch-bd21d74a9d-f53bfe97f7.zip b/typescript-node/.yarn/cache/typescript-patch-bd21d74a9d-f53bfe97f7.zip
deleted file mode 100644
index 2877ec2..0000000
Binary files a/typescript-node/.yarn/cache/typescript-patch-bd21d74a9d-f53bfe97f7.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/uglify-js-npm-3.19.3-d73835bac2-7ed6272fba.zip b/typescript-node/.yarn/cache/uglify-js-npm-3.19.3-d73835bac2-7ed6272fba.zip
new file mode 100644
index 0000000..ca34414
Binary files /dev/null and b/typescript-node/.yarn/cache/uglify-js-npm-3.19.3-d73835bac2-7ed6272fba.zip differ
diff --git a/typescript-node/.yarn/cache/undici-npm-8.10.0-83850c8bfa-6b7c5442ec.zip b/typescript-node/.yarn/cache/undici-npm-8.10.0-83850c8bfa-6b7c5442ec.zip
new file mode 100644
index 0000000..4e57955
Binary files /dev/null and b/typescript-node/.yarn/cache/undici-npm-8.10.0-83850c8bfa-6b7c5442ec.zip differ
diff --git a/typescript-node/.yarn/cache/undici-types-npm-6.21.0-eb2b0ed56a-46331c7d60.zip b/typescript-node/.yarn/cache/undici-types-npm-6.21.0-eb2b0ed56a-46331c7d60.zip
new file mode 100644
index 0000000..0f8cbe3
Binary files /dev/null and b/typescript-node/.yarn/cache/undici-types-npm-6.21.0-eb2b0ed56a-46331c7d60.zip differ
diff --git a/typescript-node/.yarn/cache/undici-types-npm-8.3.0-d34470de3e-bdc1d54d8b.zip b/typescript-node/.yarn/cache/undici-types-npm-8.3.0-d34470de3e-bdc1d54d8b.zip
new file mode 100644
index 0000000..214d2db
Binary files /dev/null and b/typescript-node/.yarn/cache/undici-types-npm-8.3.0-d34470de3e-bdc1d54d8b.zip differ
diff --git a/typescript-node/.yarn/cache/unique-filename-npm-3.0.0-77d68e0a45-8e2f59b356.zip b/typescript-node/.yarn/cache/unique-filename-npm-3.0.0-77d68e0a45-8e2f59b356.zip
deleted file mode 100644
index bb91bbf..0000000
Binary files a/typescript-node/.yarn/cache/unique-filename-npm-3.0.0-77d68e0a45-8e2f59b356.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/unique-slug-npm-4.0.0-e6b08f28aa-0884b58365.zip b/typescript-node/.yarn/cache/unique-slug-npm-4.0.0-e6b08f28aa-0884b58365.zip
deleted file mode 100644
index 9d1cb9f..0000000
Binary files a/typescript-node/.yarn/cache/unique-slug-npm-4.0.0-e6b08f28aa-0884b58365.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-b98327518f.zip b/typescript-node/.yarn/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-b98327518f.zip
deleted file mode 100644
index afa8836..0000000
Binary files a/typescript-node/.yarn/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-b98327518f.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/update-browserslist-db-npm-1.2.3-de1d320326-6f209a97ae.zip b/typescript-node/.yarn/cache/update-browserslist-db-npm-1.2.3-de1d320326-6f209a97ae.zip
new file mode 100644
index 0000000..d33ce80
Binary files /dev/null and b/typescript-node/.yarn/cache/update-browserslist-db-npm-1.2.3-de1d320326-6f209a97ae.zip differ
diff --git a/typescript-node/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip b/typescript-node/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip
deleted file mode 100644
index c2309cf..0000000
Binary files a/typescript-node/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/v8-to-istanbul-npm-9.1.0-04cd324682-2069d59ee4.zip b/typescript-node/.yarn/cache/v8-to-istanbul-npm-9.1.0-04cd324682-2069d59ee4.zip
deleted file mode 100644
index 4bec15e..0000000
Binary files a/typescript-node/.yarn/cache/v8-to-istanbul-npm-9.1.0-04cd324682-2069d59ee4.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/v8-to-istanbul-npm-9.3.0-35fef658c9-ded42cd535.zip b/typescript-node/.yarn/cache/v8-to-istanbul-npm-9.3.0-35fef658c9-ded42cd535.zip
new file mode 100644
index 0000000..c279550
Binary files /dev/null and b/typescript-node/.yarn/cache/v8-to-istanbul-npm-9.3.0-35fef658c9-ded42cd535.zip differ
diff --git a/typescript-node/.yarn/cache/which-npm-7.0.0-638dd00e77-913a43ac10.zip b/typescript-node/.yarn/cache/which-npm-7.0.0-638dd00e77-913a43ac10.zip
new file mode 100644
index 0000000..08427b7
Binary files /dev/null and b/typescript-node/.yarn/cache/which-npm-7.0.0-638dd00e77-913a43ac10.zip differ
diff --git a/typescript-node/.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip b/typescript-node/.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip
deleted file mode 100644
index 4dc7fcc..0000000
Binary files a/typescript-node/.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-2a44b27881.zip b/typescript-node/.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-2a44b27881.zip
new file mode 100644
index 0000000..5463df0
Binary files /dev/null and b/typescript-node/.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-2a44b27881.zip differ
diff --git a/typescript-node/.yarn/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-371733296d.zip b/typescript-node/.yarn/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-371733296d.zip
deleted file mode 100644
index 2ee78f3..0000000
Binary files a/typescript-node/.yarn/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-371733296d.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip b/typescript-node/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip
deleted file mode 100644
index f2d3306..0000000
Binary files a/typescript-node/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip and /dev/null differ
diff --git a/typescript-node/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-eba5118240.zip b/typescript-node/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-eba5118240.zip
new file mode 100644
index 0000000..65aad15
Binary files /dev/null and b/typescript-node/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-eba5118240.zip differ
diff --git a/typescript-node/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip b/typescript-node/.yarn/cache/yargs-npm-17.7.3-01dd9c59ec-16fb2d4866.zip
similarity index 64%
rename from typescript-node/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip
rename to typescript-node/.yarn/cache/yargs-npm-17.7.3-01dd9c59ec-16fb2d4866.zip
index 54c49dc..26c3fa2 100644
Binary files a/typescript-node/.yarn/cache/yargs-npm-17.7.2-80b62638e1-73b572e863.zip and b/typescript-node/.yarn/cache/yargs-npm-17.7.3-01dd9c59ec-16fb2d4866.zip differ
diff --git a/typescript-node/.yarn/install-state.gz b/typescript-node/.yarn/install-state.gz
deleted file mode 100644
index ae31166..0000000
Binary files a/typescript-node/.yarn/install-state.gz and /dev/null differ
diff --git a/typescript-node/README.md b/typescript-node/README.md
index 3d2ea8d..c52f962 100644
--- a/typescript-node/README.md
+++ b/typescript-node/README.md
@@ -1,16 +1,30 @@
# TypeScript
-Skeleton project for TypeScript (via NodeJS) with Jest for testing.
+Skeleton project for TypeScript (via NodeJS).
-## Usage
-- `./script/setup` to install dependencies
-- `./script/test` to run the tests
+## Prerequisites
+
+The toolchain this project needs is declared in [`.tool-versions`](./.tool-versions):
+
+```
+node 22
+yarn 3
+```
-### Other commands
-- `yarn watch` will constantly compile `index.ts` then execute the compiled version on every file change (for quick development feedback loop) using [tsc-watch](https://www.npmjs.com/package/tsc-watch) under the hood.
+Install those however you prefer, as long as they end up on your `PATH`. The quickest route is
+[mise](https://mise.jdx.dev/), which reads the file for you:
+
+```sh
+mise install
+```
+
+## Usage
+- `./script/setup` to fetch dependencies
+- `./script/test` to run the tests, or `./script/test --watch` to re-run them on every change
+- `./script/start` to run the app (watches for changes and recompiles automatically)
## Structure
- Code located in [`index.ts`](./src/index.ts)
- Tests located in [`index.test.ts`](./src/index.test.ts)
-However, you're free to organise your code as you like.
+However, you're free to organise your code as you like.
diff --git a/typescript-node/package.json b/typescript-node/package.json
index 80e2558..4f925b2 100644
--- a/typescript-node/package.json
+++ b/typescript-node/package.json
@@ -1,4 +1,5 @@
{
+ "packageManager": "yarn@3.8.7",
"name": "pairing-test",
"version": "1.0.0",
"description": "NodeJS & TypeScript skeleton project for Guardian pairing test",
@@ -7,7 +8,8 @@
"scripts": {
"test": "jest",
"tsc": "tsc",
- "watch": "tsc-watch --onSuccess 'node ./dist/index.js' --onFailure 'echo Beep! Compilation Failed' --compiler typescript/bin/tsc"
+ "watch": "tsc-watch --onSuccess 'node ./dist/index.js' --onFailure 'echo Beep! Compilation Failed' --compiler typescript/bin/tsc",
+ "start": "tsc && node ./dist/index.js"
},
"devDependencies": {
"@guardian/tsconfig": "0.2.0",
diff --git a/typescript-node/script/setup b/typescript-node/script/setup
index d302646..e2cee61 100755
--- a/typescript-node/script/setup
+++ b/typescript-node/script/setup
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
yarn
diff --git a/typescript-node/script/start b/typescript-node/script/start
new file mode 100755
index 0000000..4e750b0
--- /dev/null
+++ b/typescript-node/script/start
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ yarn watch
+else
+ yarn start
+fi
diff --git a/typescript-node/script/test b/typescript-node/script/test
index ee53164..8e0454e 100755
--- a/typescript-node/script/test
+++ b/typescript-node/script/test
@@ -1,5 +1,11 @@
#!/usr/bin/env bash
-set -e
+set -euo pipefail
-yarn test --watch
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+if [[ "${1:-}" == "--watch" ]]; then
+ yarn test --watchAll
+else
+ yarn test
+fi
diff --git a/typescript-node/src/index.ts b/typescript-node/src/index.ts
index 9773d5d..99c29e8 100644
--- a/typescript-node/src/index.ts
+++ b/typescript-node/src/index.ts
@@ -1,3 +1,3 @@
-const myConst = false;
+const myConst = true;
export { myConst };
diff --git a/typescript-node/yarn.lock b/typescript-node/yarn.lock
index 7c2aaae..8b0be7c 100644
--- a/typescript-node/yarn.lock
+++ b/typescript-node/yarn.lock
@@ -1,2276 +1,3209 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@ampproject/remapping@^2.2.0":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
- integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.0"
- "@jridgewell/trace-mapping" "^0.3.9"
-
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
- integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
- dependencies:
- "@babel/highlight" "^7.23.4"
- chalk "^2.4.2"
-
-"@babel/compat-data@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
- integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
-
-"@babel/core@^7.11.6", "@babel/core@^7.12.3":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1"
- integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.23.5"
- "@babel/generator" "^7.23.6"
- "@babel/helper-compilation-targets" "^7.23.6"
- "@babel/helper-module-transforms" "^7.23.3"
- "@babel/helpers" "^7.23.9"
- "@babel/parser" "^7.23.9"
- "@babel/template" "^7.23.9"
- "@babel/traverse" "^7.23.9"
- "@babel/types" "^7.23.9"
- convert-source-map "^2.0.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.3"
- semver "^6.3.1"
-
-"@babel/generator@^7.23.6", "@babel/generator@^7.7.2":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
- integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
- dependencies:
- "@babel/types" "^7.23.6"
- "@jridgewell/gen-mapping" "^0.3.2"
- "@jridgewell/trace-mapping" "^0.3.17"
- jsesc "^2.5.1"
-
-"@babel/helper-compilation-targets@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
- integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
- dependencies:
- "@babel/compat-data" "^7.23.5"
- "@babel/helper-validator-option" "^7.23.5"
- browserslist "^4.22.2"
- lru-cache "^5.1.1"
- semver "^6.3.1"
-
-"@babel/helper-environment-visitor@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
- integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-
-"@babel/helper-function-name@^7.23.0":
- version "7.23.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
- integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
- dependencies:
- "@babel/template" "^7.22.15"
- "@babel/types" "^7.23.0"
-
-"@babel/helper-hoist-variables@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
- integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-module-imports@^7.22.15":
- version "7.22.15"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
- integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
- dependencies:
- "@babel/types" "^7.22.15"
-
-"@babel/helper-module-transforms@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
- integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
- dependencies:
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-module-imports" "^7.22.15"
- "@babel/helper-simple-access" "^7.22.5"
- "@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/helper-validator-identifier" "^7.22.20"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
- integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
-
-"@babel/helper-simple-access@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
- integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-split-export-declaration@^7.22.6":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
- integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
- integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
-
-"@babel/helper-validator-identifier@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
- integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-
-"@babel/helper-validator-option@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
- integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-
-"@babel/helpers@^7.23.9":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d"
- integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==
- dependencies:
- "@babel/template" "^7.23.9"
- "@babel/traverse" "^7.23.9"
- "@babel/types" "^7.23.9"
-
-"@babel/highlight@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
- integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
- dependencies:
- "@babel/helper-validator-identifier" "^7.22.20"
- chalk "^2.4.2"
- js-tokens "^4.0.0"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b"
- integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==
-
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-bigint@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
- integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.8.3":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
- integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-syntax-import-meta@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
- integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-jsx@^7.7.2":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473"
- integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
-
-"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
- integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
- integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-numeric-separator@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
- integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-object-rest-spread@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
- integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
- integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
- integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-top-level-await@^7.8.3":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
- integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-typescript@^7.7.2":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f"
- integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
-
-"@babel/template@^7.22.15", "@babel/template@^7.23.9", "@babel/template@^7.3.3":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a"
- integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==
- dependencies:
- "@babel/code-frame" "^7.23.5"
- "@babel/parser" "^7.23.9"
- "@babel/types" "^7.23.9"
-
-"@babel/traverse@^7.23.9":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950"
- integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==
- dependencies:
- "@babel/code-frame" "^7.23.5"
- "@babel/generator" "^7.23.6"
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-function-name" "^7.23.0"
- "@babel/helper-hoist-variables" "^7.22.5"
- "@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/parser" "^7.23.9"
- "@babel/types" "^7.23.9"
- debug "^4.3.1"
- globals "^11.1.0"
-
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.3.3":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002"
- integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==
- dependencies:
- "@babel/helper-string-parser" "^7.23.4"
- "@babel/helper-validator-identifier" "^7.22.20"
- to-fast-properties "^2.0.0"
-
-"@bcoe/v8-coverage@^0.2.3":
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
- integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-
-"@guardian/tsconfig@0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@guardian/tsconfig/-/tsconfig-0.2.0.tgz#b1dac8831d2ff7ac557229f350d4b2f8c9fc60b5"
- integrity sha512-RauppalK+cQZDRK6IssVmDSnU/VyqMNuVOxPxhmI03kVRxEdwcmBuRqexHwDbnClVUxW/N9hYLbFNuAb9V/p+A==
-
-"@istanbuljs/load-nyc-config@^1.0.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
- integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
- dependencies:
- camelcase "^5.3.1"
- find-up "^4.1.0"
- get-package-type "^0.1.0"
- js-yaml "^3.13.1"
- resolve-from "^5.0.0"
-
-"@istanbuljs/schema@^0.1.2":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
- integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-
-"@jest/console@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
- integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
-
-"@jest/core@^29.5.0", "@jest/core@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
- integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/reporters" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-changed-files "^29.7.0"
- jest-config "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-resolve-dependencies "^29.7.0"
- jest-runner "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- jest-watcher "^29.7.0"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-ansi "^6.0.0"
-
-"@jest/environment@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
- integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
- dependencies:
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
-
-"@jest/expect-utils@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
- integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
- dependencies:
- jest-get-type "^29.6.3"
-
-"@jest/expect@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
- integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
- dependencies:
- expect "^29.7.0"
- jest-snapshot "^29.7.0"
-
-"@jest/fake-timers@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
- integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
- dependencies:
- "@jest/types" "^29.6.3"
- "@sinonjs/fake-timers" "^10.0.2"
- "@types/node" "*"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-"@jest/globals@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
- integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/types" "^29.6.3"
- jest-mock "^29.7.0"
-
-"@jest/reporters@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
- integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
- dependencies:
- "@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- "@types/node" "*"
- chalk "^4.0.0"
- collect-v8-coverage "^1.0.0"
- exit "^0.1.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^6.0.0"
- istanbul-lib-report "^3.0.0"
- istanbul-lib-source-maps "^4.0.0"
- istanbul-reports "^3.1.3"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- slash "^3.0.0"
- string-length "^4.0.1"
- strip-ansi "^6.0.0"
- v8-to-istanbul "^9.0.1"
-
-"@jest/schemas@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
- integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
- dependencies:
- "@sinclair/typebox" "^0.27.8"
-
-"@jest/source-map@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
- integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.18"
- callsites "^3.0.0"
- graceful-fs "^4.2.9"
-
-"@jest/test-result@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
- integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- collect-v8-coverage "^1.0.0"
-
-"@jest/test-sequencer@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
- integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
- dependencies:
- "@jest/test-result" "^29.7.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- slash "^3.0.0"
-
-"@jest/transform@^29.7.0":
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
- integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/types" "^29.6.3"
- "@jridgewell/trace-mapping" "^0.3.18"
- babel-plugin-istanbul "^6.1.1"
- chalk "^4.0.0"
- convert-source-map "^2.0.0"
- fast-json-stable-stringify "^2.1.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- micromatch "^4.0.4"
- pirates "^4.0.4"
- slash "^3.0.0"
- write-file-atomic "^4.0.2"
-
-"@jest/types@^29.5.0", "@jest/types@^29.6.3":
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
- integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
- dependencies:
- "@jest/schemas" "^29.6.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^3.0.0"
- "@types/node" "*"
- "@types/yargs" "^17.0.8"
- chalk "^4.0.0"
-
-"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
- integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
- dependencies:
- "@jridgewell/set-array" "^1.0.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.9"
-
-"@jridgewell/resolve-uri@^3.1.0":
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
- integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
-
-"@jridgewell/set-array@^1.0.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
- integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
- version "1.4.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
- integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
-
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.22"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c"
- integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==
- dependencies:
- "@jridgewell/resolve-uri" "^3.1.0"
- "@jridgewell/sourcemap-codec" "^1.4.14"
-
-"@sinclair/typebox@^0.27.8":
- version "0.27.8"
- resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
- integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
-
-"@sinonjs/commons@^3.0.0":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
- integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
- dependencies:
- type-detect "4.0.8"
-
-"@sinonjs/fake-timers@^10.0.2":
- version "10.3.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
- integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
- dependencies:
- "@sinonjs/commons" "^3.0.0"
-
-"@types/babel__core@^7.1.14":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
- integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
- dependencies:
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.6.8"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
- integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
- integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd"
- integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==
- dependencies:
- "@babel/types" "^7.20.7"
-
-"@types/graceful-fs@^4.1.3":
- version "4.1.9"
- resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
- integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
- dependencies:
- "@types/node" "*"
-
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
- integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==
-
-"@types/istanbul-lib-report@*":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf"
- integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
-
-"@types/istanbul-reports@^3.0.0":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
- integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==
- dependencies:
- "@types/istanbul-lib-report" "*"
-
-"@types/jest@^29.5.2":
- version "29.5.12"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544"
- integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==
- dependencies:
- expect "^29.0.0"
- pretty-format "^29.0.0"
-
-"@types/node@*", "@types/node@^20.3.3":
- version "20.11.16"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708"
- integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==
- dependencies:
- undici-types "~5.26.4"
-
-"@types/stack-utils@^2.0.0":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
- integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
-
-"@types/yargs-parser@*":
- version "21.0.3"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
- integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
-
-"@types/yargs@^17.0.8":
- version "17.0.32"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229"
- integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==
- dependencies:
- "@types/yargs-parser" "*"
-
-ansi-escapes@^4.2.1:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
- dependencies:
- type-fest "^0.21.3"
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-ansi-styles@^4.0.0, ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-ansi-styles@^5.0.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
- integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
-
-anymatch@^3.0.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
- integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-babel-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
- integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
- dependencies:
- "@jest/transform" "^29.7.0"
- "@types/babel__core" "^7.1.14"
- babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.6.3"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- slash "^3.0.0"
-
-babel-plugin-istanbul@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
- integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@istanbuljs/load-nyc-config" "^1.0.0"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-instrument "^5.0.4"
- test-exclude "^6.0.0"
-
-babel-plugin-jest-hoist@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
- integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
- dependencies:
- "@babel/template" "^7.3.3"
- "@babel/types" "^7.3.3"
- "@types/babel__core" "^7.1.14"
- "@types/babel__traverse" "^7.0.6"
-
-babel-preset-current-node-syntax@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
- integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
- dependencies:
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-bigint" "^7.8.3"
- "@babel/plugin-syntax-class-properties" "^7.8.3"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.8.3"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-top-level-await" "^7.8.3"
-
-babel-preset-jest@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
- integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
- dependencies:
- babel-plugin-jest-hoist "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
- dependencies:
- fill-range "^7.0.1"
-
-browserslist@^4.22.2:
- version "4.22.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
- integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
- dependencies:
- caniuse-lite "^1.0.30001580"
- electron-to-chromium "^1.4.648"
- node-releases "^2.0.14"
- update-browserslist-db "^1.0.13"
-
-bs-logger@0.x:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
- integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
- dependencies:
- fast-json-stable-stringify "2.x"
-
-bser@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
- integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
- dependencies:
- node-int64 "^0.4.0"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.2.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-caniuse-lite@^1.0.30001580:
- version "1.0.30001584"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz#5e3ea0625d048d5467670051687655b1f7bf7dfd"
- integrity sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==
-
-chalk@^2.4.2:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-chalk@^4.0.0:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-char-regex@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
- integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
-
-ci-info@^3.2.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
- integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
-
-cjs-module-lexer@^1.0.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
- integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
-
-cliui@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
- integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.1"
- wrap-ansi "^7.0.0"
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-
-collect-v8-coverage@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9"
- integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==
-
-color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-convert-source-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
- integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-
-create-jest@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
- integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.9"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- prompts "^2.0.1"
-
-cross-spawn@^7.0.3:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
- integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
-debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
- integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
- dependencies:
- ms "2.1.2"
-
-dedent@^1.0.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff"
- integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==
-
-deepmerge@^4.2.2:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
- integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
-
-detect-newline@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
- integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
-
-diff-sequences@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
- integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
-
-duplexer@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
- integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
-
-electron-to-chromium@^1.4.648:
- version "1.4.657"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.657.tgz#8a07ee3faa552976970843a80a1c94088ea59c9a"
- integrity sha512-On2ymeleg6QbRuDk7wNgDdXtNqlJLM2w4Agx1D/RiTmItiL+a9oq5p7HUa2ZtkAtGBe/kil2dq/7rPfkbe0r5w==
-
-emittery@^0.13.1:
- version "0.13.1"
- resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
- integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-escalade@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
- integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
-
-escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-event-stream@=3.3.4:
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
- integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==
- dependencies:
- duplexer "~0.1.1"
- from "~0"
- map-stream "~0.1.0"
- pause-stream "0.0.11"
- split "0.3"
- stream-combiner "~0.0.4"
- through "~2.3.1"
-
-execa@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
- integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
- dependencies:
- cross-spawn "^7.0.3"
- get-stream "^6.0.0"
- human-signals "^2.1.0"
- is-stream "^2.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^4.0.1"
- onetime "^5.1.2"
- signal-exit "^3.0.3"
- strip-final-newline "^2.0.0"
-
-exit@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
- integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
-
-expect@^29.0.0, expect@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
- integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
- dependencies:
- "@jest/expect-utils" "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
-
-fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fb-watchman@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
- integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
- dependencies:
- bser "2.1.1"
-
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- dependencies:
- to-regex-range "^5.0.1"
-
-find-up@^4.0.0, find-up@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
- dependencies:
- locate-path "^5.0.0"
- path-exists "^4.0.0"
-
-from@~0:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
- integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@^2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
- integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-caller-file@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-package-type@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
- integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-
-get-stream@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
- integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
-glob@^7.1.3, glob@^7.1.4:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-graceful-fs@^4.2.9:
- version "4.2.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
- integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-hasown@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
- integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
- dependencies:
- function-bind "^1.1.2"
-
-html-escaper@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
- integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-
-human-signals@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
- integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-
-import-local@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
- integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
- dependencies:
- pkg-dir "^4.2.0"
- resolve-cwd "^3.0.0"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-core-module@^2.13.0:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
- integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
- dependencies:
- hasown "^2.0.0"
-
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
- integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
-is-generator-fn@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
- integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-stream@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
- integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
- integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==
-
-istanbul-lib-instrument@^5.0.4:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
- integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
- dependencies:
- "@babel/core" "^7.12.3"
- "@babel/parser" "^7.14.7"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.2.0"
- semver "^6.3.0"
-
-istanbul-lib-instrument@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf"
- integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==
- dependencies:
- "@babel/core" "^7.12.3"
- "@babel/parser" "^7.14.7"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.2.0"
- semver "^7.5.4"
-
-istanbul-lib-report@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
- integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==
- dependencies:
- istanbul-lib-coverage "^3.0.0"
- make-dir "^4.0.0"
- supports-color "^7.1.0"
-
-istanbul-lib-source-maps@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
- integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
- dependencies:
- debug "^4.1.1"
- istanbul-lib-coverage "^3.0.0"
- source-map "^0.6.1"
-
-istanbul-reports@^3.1.3:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a"
- integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==
- dependencies:
- html-escaper "^2.0.0"
- istanbul-lib-report "^3.0.0"
-
-jest-changed-files@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
- integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
- dependencies:
- execa "^5.0.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
-
-jest-circus@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
- integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/expect" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- co "^4.6.0"
- dedent "^1.0.0"
- is-generator-fn "^2.0.0"
- jest-each "^29.7.0"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-runtime "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- p-limit "^3.1.0"
- pretty-format "^29.7.0"
- pure-rand "^6.0.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-cli@^29.5.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
- integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
- dependencies:
- "@jest/core" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- create-jest "^29.7.0"
- exit "^0.1.2"
- import-local "^3.0.2"
- jest-config "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- yargs "^17.3.1"
-
-jest-config@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
- integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-jest "^29.7.0"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- deepmerge "^4.2.2"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-circus "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-get-type "^29.6.3"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-runner "^29.7.0"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- micromatch "^4.0.4"
- parse-json "^5.2.0"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- strip-json-comments "^3.1.1"
-
-jest-diff@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
- integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
- dependencies:
- chalk "^4.0.0"
- diff-sequences "^29.6.3"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-docblock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
- integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
- dependencies:
- detect-newline "^3.0.0"
-
-jest-each@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
- integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
- dependencies:
- "@jest/types" "^29.6.3"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- jest-util "^29.7.0"
- pretty-format "^29.7.0"
-
-jest-environment-node@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
- integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-mock "^29.7.0"
- jest-util "^29.7.0"
-
-jest-get-type@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
- integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
-
-jest-haste-map@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
- integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/graceful-fs" "^4.1.3"
- "@types/node" "*"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.9"
- jest-regex-util "^29.6.3"
- jest-util "^29.7.0"
- jest-worker "^29.7.0"
- micromatch "^4.0.4"
- walker "^1.0.8"
- optionalDependencies:
- fsevents "^2.3.2"
-
-jest-leak-detector@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
- integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
- dependencies:
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-matcher-utils@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
- integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
- dependencies:
- chalk "^4.0.0"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- pretty-format "^29.7.0"
-
-jest-message-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
- integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
- dependencies:
- "@babel/code-frame" "^7.12.13"
- "@jest/types" "^29.6.3"
- "@types/stack-utils" "^2.0.0"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- micromatch "^4.0.4"
- pretty-format "^29.7.0"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
-jest-mock@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
- integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- jest-util "^29.7.0"
-
-jest-pnp-resolver@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
- integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
-
-jest-regex-util@^29.6.3:
- version "29.6.3"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
- integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
-
-jest-resolve-dependencies@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
- integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
- dependencies:
- jest-regex-util "^29.6.3"
- jest-snapshot "^29.7.0"
-
-jest-resolve@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
- integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
- dependencies:
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-pnp-resolver "^1.2.2"
- jest-util "^29.7.0"
- jest-validate "^29.7.0"
- resolve "^1.20.0"
- resolve.exports "^2.0.0"
- slash "^3.0.0"
-
-jest-runner@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
- integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
- dependencies:
- "@jest/console" "^29.7.0"
- "@jest/environment" "^29.7.0"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- emittery "^0.13.1"
- graceful-fs "^4.2.9"
- jest-docblock "^29.7.0"
- jest-environment-node "^29.7.0"
- jest-haste-map "^29.7.0"
- jest-leak-detector "^29.7.0"
- jest-message-util "^29.7.0"
- jest-resolve "^29.7.0"
- jest-runtime "^29.7.0"
- jest-util "^29.7.0"
- jest-watcher "^29.7.0"
- jest-worker "^29.7.0"
- p-limit "^3.1.0"
- source-map-support "0.5.13"
-
-jest-runtime@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
- integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
- dependencies:
- "@jest/environment" "^29.7.0"
- "@jest/fake-timers" "^29.7.0"
- "@jest/globals" "^29.7.0"
- "@jest/source-map" "^29.6.3"
- "@jest/test-result" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- cjs-module-lexer "^1.0.0"
- collect-v8-coverage "^1.0.0"
- glob "^7.1.3"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.7.0"
- jest-message-util "^29.7.0"
- jest-mock "^29.7.0"
- jest-regex-util "^29.6.3"
- jest-resolve "^29.7.0"
- jest-snapshot "^29.7.0"
- jest-util "^29.7.0"
- slash "^3.0.0"
- strip-bom "^4.0.0"
-
-jest-snapshot@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
- integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
- dependencies:
- "@babel/core" "^7.11.6"
- "@babel/generator" "^7.7.2"
- "@babel/plugin-syntax-jsx" "^7.7.2"
- "@babel/plugin-syntax-typescript" "^7.7.2"
- "@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.7.0"
- "@jest/transform" "^29.7.0"
- "@jest/types" "^29.6.3"
- babel-preset-current-node-syntax "^1.0.0"
- chalk "^4.0.0"
- expect "^29.7.0"
- graceful-fs "^4.2.9"
- jest-diff "^29.7.0"
- jest-get-type "^29.6.3"
- jest-matcher-utils "^29.7.0"
- jest-message-util "^29.7.0"
- jest-util "^29.7.0"
- natural-compare "^1.4.0"
- pretty-format "^29.7.0"
- semver "^7.5.3"
-
-jest-util@^29.0.0, jest-util@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
- integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
- dependencies:
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- graceful-fs "^4.2.9"
- picomatch "^2.2.3"
-
-jest-validate@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
- integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
- dependencies:
- "@jest/types" "^29.6.3"
- camelcase "^6.2.0"
- chalk "^4.0.0"
- jest-get-type "^29.6.3"
- leven "^3.1.0"
- pretty-format "^29.7.0"
-
-jest-watcher@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
- integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
- dependencies:
- "@jest/test-result" "^29.7.0"
- "@jest/types" "^29.6.3"
- "@types/node" "*"
- ansi-escapes "^4.2.1"
- chalk "^4.0.0"
- emittery "^0.13.1"
- jest-util "^29.7.0"
- string-length "^4.0.1"
-
-jest-worker@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
- integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
- dependencies:
- "@types/node" "*"
- jest-util "^29.7.0"
- merge-stream "^2.0.0"
- supports-color "^8.0.0"
-
-jest@29.5.0:
- version "29.5.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e"
- integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==
- dependencies:
- "@jest/core" "^29.5.0"
- "@jest/types" "^29.5.0"
- import-local "^3.0.2"
- jest-cli "^29.5.0"
-
-js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.13.1:
- version "3.14.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
- integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jsesc@^2.5.1:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
- integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-
-json-parse-even-better-errors@^2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
- integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-
-json5@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-
-kleur@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
- integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-
-leven@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
- integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-
-lines-and-columns@^1.1.6:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
- integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-
-locate-path@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
- integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
- dependencies:
- p-locate "^4.1.0"
-
-lodash.memoize@4.x:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
- integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
-
-lru-cache@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
- integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
- dependencies:
- yallist "^3.0.2"
-
-lru-cache@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
- integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
- dependencies:
- yallist "^4.0.0"
-
-make-dir@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
- integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==
- dependencies:
- semver "^7.5.3"
-
-make-error@1.x:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
- integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-
-makeerror@1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
- integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
- dependencies:
- tmpl "1.0.5"
-
-map-stream@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
- integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==
-
-merge-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
- integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
-micromatch@^4.0.4:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
- integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
- dependencies:
- braces "^3.0.2"
- picomatch "^2.3.1"
-
-mimic-fn@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
- integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-minimatch@^3.0.4, minimatch@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-
-node-cleanup@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c"
- integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==
-
-node-int64@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
- integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
-
-node-releases@^2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
- integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
-
-normalize-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-npm-run-path@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
- integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
- dependencies:
- path-key "^3.0.0"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
- dependencies:
- wrappy "1"
-
-onetime@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
- integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
- dependencies:
- mimic-fn "^2.1.0"
-
-p-limit@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
-p-limit@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-locate@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
- integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
- dependencies:
- p-limit "^2.2.0"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parse-json@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^3.0.0, path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-pause-stream@0.0.11:
- version "0.0.11"
- resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
- integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==
- dependencies:
- through "~2.3"
-
-picocolors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
- integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-
-picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-pirates@^4.0.4:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
- integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
-
-pkg-dir@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
- integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
- dependencies:
- find-up "^4.0.0"
-
-pretty-format@^29.0.0, pretty-format@^29.7.0:
- version "29.7.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
- integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
- dependencies:
- "@jest/schemas" "^29.6.3"
- ansi-styles "^5.0.0"
- react-is "^18.0.0"
-
-prompts@^2.0.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
- integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
- dependencies:
- kleur "^3.0.3"
- sisteransi "^1.0.5"
-
-ps-tree@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
- integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==
- dependencies:
- event-stream "=3.3.4"
-
-pure-rand@^6.0.0:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7"
- integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==
-
-react-is@^18.0.0:
- version "18.2.0"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
- integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-resolve-cwd@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
- integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
- dependencies:
- resolve-from "^5.0.0"
-
-resolve-from@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
- integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-
-resolve.exports@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
- integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
-
-resolve@^1.20.0:
- version "1.22.8"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
- integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
- dependencies:
- is-core-module "^2.13.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-semver@^6.3.0, semver@^6.3.1:
- version "6.3.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^7.5.3, semver@^7.5.4:
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
- integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
- dependencies:
- lru-cache "^6.0.0"
-
-shebang-command@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
- integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
- dependencies:
- shebang-regex "^3.0.0"
-
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-signal-exit@^3.0.3, signal-exit@^3.0.7:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-sisteransi@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
- integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
- integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-
-source-map-support@0.5.13:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map@^0.6.0, source-map@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-split@0.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
- integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==
- dependencies:
- through "2"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-stack-utils@^2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
- integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==
- dependencies:
- escape-string-regexp "^2.0.0"
-
-stream-combiner@~0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
- integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==
- dependencies:
- duplexer "~0.1.1"
-
-string-argv@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
- integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
-
-string-length@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
- integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
- dependencies:
- char-regex "^1.0.2"
- strip-ansi "^6.0.0"
-
-string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-bom@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
- integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-
-strip-final-newline@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
- integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-
-strip-json-comments@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-supports-color@^5.3.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
-supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-supports-color@^8.0.0:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
- integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
- dependencies:
- has-flag "^4.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-test-exclude@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
- integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
- dependencies:
- "@istanbuljs/schema" "^0.1.2"
- glob "^7.1.4"
- minimatch "^3.0.4"
-
-through@2, through@~2.3, through@~2.3.1:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-
-tmpl@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
- integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
-
-to-fast-properties@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
- integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-ts-jest@^29.1.1:
- version "29.1.2"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09"
- integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==
- dependencies:
- bs-logger "0.x"
- fast-json-stable-stringify "2.x"
- jest-util "^29.0.0"
- json5 "^2.2.3"
- lodash.memoize "4.x"
- make-error "1.x"
- semver "^7.5.3"
- yargs-parser "^21.0.1"
-
-tsc-watch@^6.0.4:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-6.0.4.tgz#af15229f03cd53086771a97b10653db063bc6c59"
- integrity sha512-cHvbvhjO86w2aGlaHgSCeQRl+Aqw6X6XN4sQMPZKF88GoP30O+oTuh5lRIJr5pgFWrRpF1AgXnJJ2DoFEIPHyg==
- dependencies:
- cross-spawn "^7.0.3"
- node-cleanup "^2.1.2"
- ps-tree "^1.2.0"
- string-argv "^0.3.1"
-
-type-detect@4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-type-fest@^0.21.3:
- version "0.21.3"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-typescript@^5.1.6:
- version "5.3.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37"
- integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==
-
-undici-types@~5.26.4:
- version "5.26.5"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
- integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
-
-update-browserslist-db@^1.0.13:
- version "1.0.13"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
- integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
- dependencies:
- escalade "^3.1.1"
- picocolors "^1.0.0"
-
-v8-to-istanbul@^9.0.1:
- version "9.2.0"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad"
- integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.12"
- "@types/istanbul-lib-coverage" "^2.0.1"
- convert-source-map "^2.0.0"
-
-walker@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
- integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
- dependencies:
- makeerror "1.0.12"
-
-which@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-write-file-atomic@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
- integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
- dependencies:
- imurmurhash "^0.1.4"
- signal-exit "^3.0.7"
-
-y18n@^5.0.5:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
- integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
-yallist@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
- integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-
-yargs-parser@^21.0.1, yargs-parser@^21.1.1:
- version "21.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
- integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
-
-yargs@^17.3.1:
- version "17.7.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
- integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
- dependencies:
- cliui "^8.0.1"
- escalade "^3.1.1"
- get-caller-file "^2.0.5"
- require-directory "^2.1.1"
- string-width "^4.2.3"
- y18n "^5.0.5"
- yargs-parser "^21.1.1"
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 6
+ cacheKey: 8
+
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/code-frame@npm:7.29.7"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.29.7
+ js-tokens: ^4.0.0
+ picocolors: ^1.1.1
+ checksum: 21b12fe2356e36f6cc3cd8a3721f878bfeea80ce38356979a0518b47b3aafdcc0bd263da75ccc9d51c64d40b1b6df00e768ce2446acb0b7cbec0ae8f905663ad
+ languageName: node
+ linkType: hard
+
+"@babel/compat-data@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/compat-data@npm:7.29.7"
+ checksum: 4424f8fb72f61657c8e811bdf7e5c69af212a15fe362711162b2e00b82f0e0588fb8259ecd9a70c5490562bf51d408b0cb92f277ead71a2390ddddfe7283b35d
+ languageName: node
+ linkType: hard
+
+"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9":
+ version: 7.29.7
+ resolution: "@babel/core@npm:7.29.7"
+ dependencies:
+ "@babel/code-frame": ^7.29.7
+ "@babel/generator": ^7.29.7
+ "@babel/helper-compilation-targets": ^7.29.7
+ "@babel/helper-module-transforms": ^7.29.7
+ "@babel/helpers": ^7.29.7
+ "@babel/parser": ^7.29.7
+ "@babel/template": ^7.29.7
+ "@babel/traverse": ^7.29.7
+ "@babel/types": ^7.29.7
+ "@jridgewell/remapping": ^2.3.5
+ convert-source-map: ^2.0.0
+ debug: ^4.1.0
+ gensync: ^1.0.0-beta.2
+ json5: ^2.2.3
+ semver: ^6.3.1
+ checksum: 95149e98ffde5b9d903459c284fbcf1f9ad8b3a833d69fdfe1aa7185821a102af1925324fe2892caf4b643b151c1dc948510d1e25a5e3c6c6c6f17f6712eb38e
+ languageName: node
+ linkType: hard
+
+"@babel/generator@npm:^7.29.7, @babel/generator@npm:^7.29.8, @babel/generator@npm:^7.7.2":
+ version: 7.29.8
+ resolution: "@babel/generator@npm:7.29.8"
+ dependencies:
+ "@babel/parser": ^7.29.8
+ "@babel/types": ^7.29.8
+ "@jridgewell/gen-mapping": ^0.3.12
+ "@jridgewell/trace-mapping": ^0.3.28
+ jsesc: ^3.0.2
+ checksum: e3d80ad2ce45ca974cb14e084350d590aa62e840d5028bb7771e910b1727b6646afcc9815560e3c6e3526f115b71b18a7f7139ada76a80287d5bd25b84c17e8d
+ languageName: node
+ linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-compilation-targets@npm:7.29.7"
+ dependencies:
+ "@babel/compat-data": ^7.29.7
+ "@babel/helper-validator-option": ^7.29.7
+ browserslist: ^4.24.0
+ lru-cache: ^5.1.1
+ semver: ^6.3.1
+ checksum: f60a943937f4eba0e671aa28551cb45569fd081c1e30a52ede167860475dc0417f3dbdf2a0fa3f086965595c7070aa76308da60cc0319860de05db4ed2a431f7
+ languageName: node
+ linkType: hard
+
+"@babel/helper-globals@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-globals@npm:7.29.7"
+ checksum: 6deaf9846a415c7f110ac153e8c3d81e3543c9b685aa9fd9a59b4235f402e2b760129d3df49466daea9162f0cf73ff98a0ec7f180448a3449ca14ae5e1117b42
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-imports@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-module-imports@npm:7.29.7"
+ dependencies:
+ "@babel/traverse": ^7.29.7
+ "@babel/types": ^7.29.7
+ checksum: ad5a768fc9c162620b7f5b7645c6c2efee1e6f9df432bb79651888661a7e4cd91dac7192f3ddcfd6de4778a089e9fb30fafae768156aa73a07eeca425f64e849
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-transforms@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-module-transforms@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-imports": ^7.29.7
+ "@babel/helper-validator-identifier": ^7.29.7
+ "@babel/traverse": ^7.29.7
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 484f6d02975d304f680d44e331d4b832d67e51917483985eab7b853664452b5a627366e7a9d421200ec772a123213a591e28b40636566afeac189411ba3f45a8
+ languageName: node
+ linkType: hard
+
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.29.7, @babel/helper-plugin-utils@npm:^7.8.0":
+ version: 7.29.7
+ resolution: "@babel/helper-plugin-utils@npm:7.29.7"
+ checksum: b0a183abcc6670afa4861425fa428217d8ebadce062d5b43117919e8715f820080fd63bbfcf0e43c6e0e7d21a96b21f635c46dda80bdb0ce7e8a762ebee1d8d9
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-string-parser@npm:7.29.7"
+ checksum: 4c229d2c2296b6c94439e87ecddf3a93cee3ffd2d4cee0b4c28079275bed3de4e02cd943e4cb06036d1d9407549c4e3423006b61a46215c482fce902ee02bc0b
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-validator-identifier@npm:7.29.7"
+ checksum: cc7779e96fe9c9478c96ca4bf04fc338b95b501aa5abe78178307dea282d4a5dc23d443efb12dde8e8c5636d03dd00e443532e6ed7f15fa7977349af1f87ba4d
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-option@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-validator-option@npm:7.29.7"
+ checksum: aeb6aa966f59300d3cc2fea7c68e1dfd7ad011fc10e535c8e2b2de3094b27c859428dc7220f16420350f8b1cde99da120b673be04bcb0c2f37b56258c96bed58
+ languageName: node
+ linkType: hard
+
+"@babel/helpers@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helpers@npm:7.29.7"
+ dependencies:
+ "@babel/template": ^7.29.7
+ "@babel/types": ^7.29.7
+ checksum: b5c4ed0ce5983c5599cd01b3948444b77ba2fa47bf6282a82afdcbe45eb8cc5b7986194e3920ef2760f533c6a775504e6b00a66960c0a3bc52909920b8433908
+ languageName: node
+ linkType: hard
+
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.29.7, @babel/parser@npm:^7.29.8":
+ version: 7.29.8
+ resolution: "@babel/parser@npm:7.29.8"
+ dependencies:
+ "@babel/types": ^7.29.8
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: c8bbea3c87b8593e78e8901841b068cc004ece24bf3ee44e11b4a3e04f10dab513125ca290c2cc04ba981399b662dbebb0a675016417d600e99272e86d59b375
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-async-generators@npm:^7.8.4":
+ version: 7.8.4
+ resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-bigint@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-bigint@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-properties@npm:^7.12.13":
+ version: 7.12.13
+ resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.12.13
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-static-block@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-attributes@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.29.7
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 9f47345d09aae16b7ab52ecaf541cde3e3ae1e57e3eb2d4088e062b29dfbd67db55d42d529840557583d66121e2a98788df7a455401cc6d635c8b7700a02efc9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-meta@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-json-strings@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-jsx@npm:^7.7.2":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-jsx@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.29.7
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 84150d27c553a1d3d921354437f6725ca1d63b49514c25591bfcaaafa6ea4d6c10715b66fe7245e4ad7ab7c6cf4b6e1de7373defd3df00877ab12638170d7772
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-chaining@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-top-level-await@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-typescript@npm:^7.7.2":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-typescript@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.29.7
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: ef454d2a7a6209dd4255361c072c94ab1293e7ad4b06e7e744d08bb308065d4d6544964eae9b2357c3b33d8d939f9e32d4aa95905bc464407cd8f7101dee4443
+ languageName: node
+ linkType: hard
+
+"@babel/template@npm:^7.29.7, @babel/template@npm:^7.3.3":
+ version: 7.29.7
+ resolution: "@babel/template@npm:7.29.7"
+ dependencies:
+ "@babel/code-frame": ^7.29.7
+ "@babel/parser": ^7.29.7
+ "@babel/types": ^7.29.7
+ checksum: 521eb6a1fd4735074ca8dac0d70810860a80edf3bf78105851571993cd13701a2041987e7398ccc9376eb6235ea1258bf494ccaccf3b67fa98dbe954154a2e93
+ languageName: node
+ linkType: hard
+
+"@babel/traverse@npm:^7.29.7":
+ version: 7.29.8
+ resolution: "@babel/traverse@npm:7.29.8"
+ dependencies:
+ "@babel/code-frame": ^7.29.7
+ "@babel/generator": ^7.29.8
+ "@babel/helper-globals": ^7.29.7
+ "@babel/parser": ^7.29.8
+ "@babel/template": ^7.29.7
+ "@babel/types": ^7.29.8
+ debug: ^4.3.1
+ checksum: 7c33eb59db5c67411305ed1d29fe50dbde74b220f4500840951d776fbcc3fbddca09f57302e8961d2533871ef4719ec0f2f05969870263b180d6ff4217f7acee
+ languageName: node
+ linkType: hard
+
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.28.2, @babel/types@npm:^7.29.7, @babel/types@npm:^7.29.8, @babel/types@npm:^7.3.3":
+ version: 7.29.8
+ resolution: "@babel/types@npm:7.29.8"
+ dependencies:
+ "@babel/helper-string-parser": ^7.29.7
+ "@babel/helper-validator-identifier": ^7.29.7
+ checksum: 9ac45d1fc702bce8e51f74566c85211f4a5d06b6f921c297e07f05742ac0eb9660d4380f96ac18d882415e4e1172e92a3fc7a20b29afd2277b713efc5b3c7cf6
+ languageName: node
+ linkType: hard
+
+"@bcoe/v8-coverage@npm:^0.2.3":
+ version: 0.2.3
+ resolution: "@bcoe/v8-coverage@npm:0.2.3"
+ checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27
+ languageName: node
+ linkType: hard
+
+"@guardian/tsconfig@npm:0.2.0":
+ version: 0.2.0
+ resolution: "@guardian/tsconfig@npm:0.2.0"
+ checksum: c4f3421759d65e1b5e0c4aceb894706b878b7d3732e1e71f27962b209a2f73e525fe105ce76ea95e41d510a048f251a507c94c43c509a6800891f8481bb29d6c
+ languageName: node
+ linkType: hard
+
+"@isaacs/fs-minipass@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "@isaacs/fs-minipass@npm:4.0.1"
+ dependencies:
+ minipass: ^7.0.4
+ checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2
+ languageName: node
+ linkType: hard
+
+"@istanbuljs/load-nyc-config@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "@istanbuljs/load-nyc-config@npm:1.1.0"
+ dependencies:
+ camelcase: ^5.3.1
+ find-up: ^4.1.0
+ get-package-type: ^0.1.0
+ js-yaml: ^3.13.1
+ resolve-from: ^5.0.0
+ checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568
+ languageName: node
+ linkType: hard
+
+"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3":
+ version: 0.1.6
+ resolution: "@istanbuljs/schema@npm:0.1.6"
+ checksum: e0700df94e5eee184a64e9712d28a4aa8a0918f01e01e6fe50b93e12c2415c6930065c1622306a3bb28f8774e5aa3291671597826a71fa38f4b5667566e87bba
+ languageName: node
+ linkType: hard
+
+"@jest/console@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/console@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ jest-message-util: ^29.7.0
+ jest-util: ^29.7.0
+ slash: ^3.0.0
+ checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6
+ languageName: node
+ linkType: hard
+
+"@jest/core@npm:^29.5.0, @jest/core@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/core@npm:29.7.0"
+ dependencies:
+ "@jest/console": ^29.7.0
+ "@jest/reporters": ^29.7.0
+ "@jest/test-result": ^29.7.0
+ "@jest/transform": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ ansi-escapes: ^4.2.1
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ exit: ^0.1.2
+ graceful-fs: ^4.2.9
+ jest-changed-files: ^29.7.0
+ jest-config: ^29.7.0
+ jest-haste-map: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-regex-util: ^29.6.3
+ jest-resolve: ^29.7.0
+ jest-resolve-dependencies: ^29.7.0
+ jest-runner: ^29.7.0
+ jest-runtime: ^29.7.0
+ jest-snapshot: ^29.7.0
+ jest-util: ^29.7.0
+ jest-validate: ^29.7.0
+ jest-watcher: ^29.7.0
+ micromatch: ^4.0.4
+ pretty-format: ^29.7.0
+ slash: ^3.0.0
+ strip-ansi: ^6.0.0
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d
+ languageName: node
+ linkType: hard
+
+"@jest/environment@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/environment@npm:29.7.0"
+ dependencies:
+ "@jest/fake-timers": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ jest-mock: ^29.7.0
+ checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934
+ languageName: node
+ linkType: hard
+
+"@jest/expect-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect-utils@npm:29.7.0"
+ dependencies:
+ jest-get-type: ^29.6.3
+ checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed
+ languageName: node
+ linkType: hard
+
+"@jest/expect@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect@npm:29.7.0"
+ dependencies:
+ expect: ^29.7.0
+ jest-snapshot: ^29.7.0
+ checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e
+ languageName: node
+ linkType: hard
+
+"@jest/fake-timers@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/fake-timers@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@sinonjs/fake-timers": ^10.0.2
+ "@types/node": "*"
+ jest-message-util: ^29.7.0
+ jest-mock: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00
+ languageName: node
+ linkType: hard
+
+"@jest/globals@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/globals@npm:29.7.0"
+ dependencies:
+ "@jest/environment": ^29.7.0
+ "@jest/expect": ^29.7.0
+ "@jest/types": ^29.6.3
+ jest-mock: ^29.7.0
+ checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123
+ languageName: node
+ linkType: hard
+
+"@jest/reporters@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/reporters@npm:29.7.0"
+ dependencies:
+ "@bcoe/v8-coverage": ^0.2.3
+ "@jest/console": ^29.7.0
+ "@jest/test-result": ^29.7.0
+ "@jest/transform": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@jridgewell/trace-mapping": ^0.3.18
+ "@types/node": "*"
+ chalk: ^4.0.0
+ collect-v8-coverage: ^1.0.0
+ exit: ^0.1.2
+ glob: ^7.1.3
+ graceful-fs: ^4.2.9
+ istanbul-lib-coverage: ^3.0.0
+ istanbul-lib-instrument: ^6.0.0
+ istanbul-lib-report: ^3.0.0
+ istanbul-lib-source-maps: ^4.0.0
+ istanbul-reports: ^3.1.3
+ jest-message-util: ^29.7.0
+ jest-util: ^29.7.0
+ jest-worker: ^29.7.0
+ slash: ^3.0.0
+ string-length: ^4.0.1
+ strip-ansi: ^6.0.0
+ v8-to-istanbul: ^9.0.1
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": ^0.27.8
+ checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93
+ languageName: node
+ linkType: hard
+
+"@jest/source-map@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/source-map@npm:29.6.3"
+ dependencies:
+ "@jridgewell/trace-mapping": ^0.3.18
+ callsites: ^3.0.0
+ graceful-fs: ^4.2.9
+ checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb
+ languageName: node
+ linkType: hard
+
+"@jest/test-result@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/test-result@npm:29.7.0"
+ dependencies:
+ "@jest/console": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/istanbul-lib-coverage": ^2.0.0
+ collect-v8-coverage: ^1.0.0
+ checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa
+ languageName: node
+ linkType: hard
+
+"@jest/test-sequencer@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/test-sequencer@npm:29.7.0"
+ dependencies:
+ "@jest/test-result": ^29.7.0
+ graceful-fs: ^4.2.9
+ jest-haste-map: ^29.7.0
+ slash: ^3.0.0
+ checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd
+ languageName: node
+ linkType: hard
+
+"@jest/transform@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/transform@npm:29.7.0"
+ dependencies:
+ "@babel/core": ^7.11.6
+ "@jest/types": ^29.6.3
+ "@jridgewell/trace-mapping": ^0.3.18
+ babel-plugin-istanbul: ^6.1.1
+ chalk: ^4.0.0
+ convert-source-map: ^2.0.0
+ fast-json-stable-stringify: ^2.1.0
+ graceful-fs: ^4.2.9
+ jest-haste-map: ^29.7.0
+ jest-regex-util: ^29.6.3
+ jest-util: ^29.7.0
+ micromatch: ^4.0.4
+ pirates: ^4.0.4
+ slash: ^3.0.0
+ write-file-atomic: ^4.0.2
+ checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^29.5.0, @jest/types@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/types@npm:29.6.3"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ "@types/istanbul-lib-coverage": ^2.0.0
+ "@types/istanbul-reports": ^3.0.0
+ "@types/node": "*"
+ "@types/yargs": ^17.0.8
+ chalk: ^4.0.0
+ checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5":
+ version: 0.3.13
+ resolution: "@jridgewell/gen-mapping@npm:0.3.13"
+ dependencies:
+ "@jridgewell/sourcemap-codec": ^1.5.0
+ "@jridgewell/trace-mapping": ^0.3.24
+ checksum: f2105acefc433337145caa3c84bba286de954f61c0bc46279bbd85a9e6a02871089717fa060413cfb6a9d44189fe8313b2d1cabf3a2eb3284d208fd5f75c54ff
+ languageName: node
+ linkType: hard
+
+"@jridgewell/remapping@npm:^2.3.5":
+ version: 2.3.5
+ resolution: "@jridgewell/remapping@npm:2.3.5"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.5
+ "@jridgewell/trace-mapping": ^0.3.24
+ checksum: 4a66a7397c3dc9c6b5c14a0024b1f98c5e1d90a0dbc1e5955b5038f2db339904df2a0ee8a66559fafb4fc23ff33700a2639fd40bbdd2e9e82b58b3bdf83738e3
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.2
+ resolution: "@jridgewell/resolve-uri@npm:3.1.2"
+ checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0":
+ version: 1.5.5
+ resolution: "@jridgewell/sourcemap-codec@npm:1.5.5"
+ checksum: c2e36e67971f719a8a3a85ef5a5f580622437cc723c35d03ebd0c9c0b06418700ef006f58af742791f71f6a4fc68fcfaf1f6a74ec2f9a3332860e9373459dae7
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.28":
+ version: 0.3.31
+ resolution: "@jridgewell/trace-mapping@npm:0.3.31"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: af8fda2431348ad507fbddf8e25f5d08c79ecc94594061ce402cf41bc5aba1a7b3e59bf0fd70a619b35f33983a3f488ceeba8faf56bff784f98bb5394a8b7d47
+ languageName: node
+ linkType: hard
+
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.12
+ resolution: "@sinclair/typebox@npm:0.27.12"
+ checksum: f670bb7aeea4873ea3f0fef2004f81a22026e0e2b17634365c2a22bb61499e42bf5cf84562093819a342652f46241cbc8733c2de9d6477e387b0a4848e1de760
+ languageName: node
+ linkType: hard
+
+"@sinonjs/commons@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "@sinonjs/commons@npm:3.0.1"
+ dependencies:
+ type-detect: 4.0.8
+ checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601
+ languageName: node
+ linkType: hard
+
+"@sinonjs/fake-timers@npm:^10.0.2":
+ version: 10.3.0
+ resolution: "@sinonjs/fake-timers@npm:10.3.0"
+ dependencies:
+ "@sinonjs/commons": ^3.0.0
+ checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148
+ languageName: node
+ linkType: hard
+
+"@types/babel__core@npm:^7.1.14":
+ version: 7.20.5
+ resolution: "@types/babel__core@npm:7.20.5"
+ dependencies:
+ "@babel/parser": ^7.20.7
+ "@babel/types": ^7.20.7
+ "@types/babel__generator": "*"
+ "@types/babel__template": "*"
+ "@types/babel__traverse": "*"
+ checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845
+ languageName: node
+ linkType: hard
+
+"@types/babel__generator@npm:*":
+ version: 7.27.0
+ resolution: "@types/babel__generator@npm:7.27.0"
+ dependencies:
+ "@babel/types": ^7.0.0
+ checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260
+ languageName: node
+ linkType: hard
+
+"@types/babel__template@npm:*":
+ version: 7.4.4
+ resolution: "@types/babel__template@npm:7.4.4"
+ dependencies:
+ "@babel/parser": ^7.1.0
+ "@babel/types": ^7.0.0
+ checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29
+ languageName: node
+ linkType: hard
+
+"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6":
+ version: 7.28.0
+ resolution: "@types/babel__traverse@npm:7.28.0"
+ dependencies:
+ "@babel/types": ^7.28.2
+ checksum: e3124e6575b2f70de338eab8a9c704d315a86c46a8e395b6ec78a0157ab7b5fd877289556a57dcf28e4ff3543714e359cc1182d4afc4bcb4f3575a0bbafa0dad
+ languageName: node
+ linkType: hard
+
+"@types/graceful-fs@npm:^4.1.3":
+ version: 4.1.9
+ resolution: "@types/graceful-fs@npm:4.1.9"
+ dependencies:
+ "@types/node": "*"
+ checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1":
+ version: 2.0.6
+ resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
+ checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-report@npm:*":
+ version: 3.0.3
+ resolution: "@types/istanbul-lib-report@npm:3.0.3"
+ dependencies:
+ "@types/istanbul-lib-coverage": "*"
+ checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-reports@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "@types/istanbul-reports@npm:3.0.4"
+ dependencies:
+ "@types/istanbul-lib-report": "*"
+ checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95
+ languageName: node
+ linkType: hard
+
+"@types/jest@npm:^29.5.2":
+ version: 29.5.14
+ resolution: "@types/jest@npm:29.5.14"
+ dependencies:
+ expect: ^29.0.0
+ pretty-format: ^29.0.0
+ checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 26.1.2
+ resolution: "@types/node@npm:26.1.2"
+ dependencies:
+ undici-types: ~8.3.0
+ checksum: c77629c1e656808481bc9853cf0065d53e31dd9630d8c85b922583ada4d05e57db51c0098fd6c9056e21c8a1709294ad30f65a350028181e95220eb4e76405c8
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:^20.3.3":
+ version: 20.19.43
+ resolution: "@types/node@npm:20.19.43"
+ dependencies:
+ undici-types: ~6.21.0
+ checksum: c959b5d256b073da95aa1892acb071b487c2f652f98b2cb75e92657d51b99bd691aa811023fb13acd6752bc1bcb75dc579db02190a4da70926cf6f372011bc4e
+ languageName: node
+ linkType: hard
+
+"@types/stack-utils@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "@types/stack-utils@npm:2.0.3"
+ checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5
+ languageName: node
+ linkType: hard
+
+"@types/yargs-parser@npm:*":
+ version: 21.0.3
+ resolution: "@types/yargs-parser@npm:21.0.3"
+ checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^17.0.8":
+ version: 17.0.35
+ resolution: "@types/yargs@npm:17.0.35"
+ dependencies:
+ "@types/yargs-parser": "*"
+ checksum: ebf1f5373388cfcbf9cfb5e56ce7a77c0ba2450420f26f3701010ca92df48cce7e14e4245ed1f17178a38ff8702467a6f4047742775b8e2fd06dec8f4f3501ce
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "abbrev@npm:5.0.0"
+ checksum: 40526a57545197f1ee0a5cb369508acbd33dbb8a19967850d6d60d9bb392d4034fc56d2572ad863b6a8da810f32eb5553cd05d5af265ea829e168697d9963cde
+ languageName: node
+ linkType: hard
+
+"ansi-escapes@npm:^4.2.1":
+ version: 4.3.2
+ resolution: "ansi-escapes@npm:4.3.2"
+ dependencies:
+ type-fest: ^0.21.3
+ checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: ^2.0.1
+ checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "ansi-styles@npm:5.2.0"
+ checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:^3.0.3":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: ^3.0.0
+ picomatch: ^2.0.4
+ checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "argparse@npm:1.0.10"
+ dependencies:
+ sprintf-js: ~1.0.2
+ checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945
+ languageName: node
+ linkType: hard
+
+"babel-jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "babel-jest@npm:29.7.0"
+ dependencies:
+ "@jest/transform": ^29.7.0
+ "@types/babel__core": ^7.1.14
+ babel-plugin-istanbul: ^6.1.1
+ babel-preset-jest: ^29.6.3
+ chalk: ^4.0.0
+ graceful-fs: ^4.2.9
+ slash: ^3.0.0
+ peerDependencies:
+ "@babel/core": ^7.8.0
+ checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7
+ languageName: node
+ linkType: hard
+
+"babel-plugin-istanbul@npm:^6.1.1":
+ version: 6.1.1
+ resolution: "babel-plugin-istanbul@npm:6.1.1"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.0.0
+ "@istanbuljs/load-nyc-config": ^1.0.0
+ "@istanbuljs/schema": ^0.1.2
+ istanbul-lib-instrument: ^5.0.4
+ test-exclude: ^6.0.0
+ checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a
+ languageName: node
+ linkType: hard
+
+"babel-plugin-jest-hoist@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "babel-plugin-jest-hoist@npm:29.6.3"
+ dependencies:
+ "@babel/template": ^7.3.3
+ "@babel/types": ^7.3.3
+ "@types/babel__core": ^7.1.14
+ "@types/babel__traverse": ^7.0.6
+ checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1
+ languageName: node
+ linkType: hard
+
+"babel-preset-current-node-syntax@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "babel-preset-current-node-syntax@npm:1.2.0"
+ dependencies:
+ "@babel/plugin-syntax-async-generators": ^7.8.4
+ "@babel/plugin-syntax-bigint": ^7.8.3
+ "@babel/plugin-syntax-class-properties": ^7.12.13
+ "@babel/plugin-syntax-class-static-block": ^7.14.5
+ "@babel/plugin-syntax-import-attributes": ^7.24.7
+ "@babel/plugin-syntax-import-meta": ^7.10.4
+ "@babel/plugin-syntax-json-strings": ^7.8.3
+ "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
+ "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3
+ "@babel/plugin-syntax-numeric-separator": ^7.10.4
+ "@babel/plugin-syntax-object-rest-spread": ^7.8.3
+ "@babel/plugin-syntax-optional-catch-binding": ^7.8.3
+ "@babel/plugin-syntax-optional-chaining": ^7.8.3
+ "@babel/plugin-syntax-private-property-in-object": ^7.14.5
+ "@babel/plugin-syntax-top-level-await": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0 || ^8.0.0-0
+ checksum: 3608fa671cfa46364ea6ec704b8fcdd7514b7b70e6ec09b1199e13ae73ed346c51d5ce2cb6d4d5b295f6a3f2cad1fdeec2308aa9e037002dd7c929194cc838ea
+ languageName: node
+ linkType: hard
+
+"babel-preset-jest@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "babel-preset-jest@npm:29.6.3"
+ dependencies:
+ babel-plugin-jest-hoist: ^29.6.3
+ babel-preset-current-node-syntax: ^1.0.0
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
+ languageName: node
+ linkType: hard
+
+"baseline-browser-mapping@npm:^2.10.44":
+ version: 2.11.12
+ resolution: "baseline-browser-mapping@npm:2.11.12"
+ bin:
+ baseline-browser-mapping: dist/cli.cjs
+ checksum: e154d9b239a282018e47a059626841052ed1dd89af2d57409169cb45bffce5a3f22bba84b56a630004d59d0e71cc7460980c40ed537662415fe13b8b87bcf0cd
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.18
+ resolution: "brace-expansion@npm:1.1.18"
+ dependencies:
+ balanced-match: ^1.0.0
+ concat-map: 0.0.1
+ checksum: aa84023a4118f9185b6f8c71ca3467c945878b141ba340261de209676442f81b08db5b7c7c119707cdecb7322fcfcdb71d8ffea55db9d1aad673d7c65469211f
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
+ dependencies:
+ fill-range: ^7.1.1
+ checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^4.24.0":
+ version: 4.28.7
+ resolution: "browserslist@npm:4.28.7"
+ dependencies:
+ baseline-browser-mapping: ^2.10.44
+ caniuse-lite: ^1.0.30001806
+ electron-to-chromium: ^1.5.393
+ node-releases: ^2.0.51
+ update-browserslist-db: ^1.2.3
+ bin:
+ browserslist: cli.js
+ checksum: 81093d27f0b0c9207e42af04655607ea870d6eb9c04b38106ffcf36e05f436747caf250604abd5471eab55b16eb2be305d8e5a7c61a5636df34a7b9397737756
+ languageName: node
+ linkType: hard
+
+"bs-logger@npm:^0.2.6":
+ version: 0.2.6
+ resolution: "bs-logger@npm:0.2.6"
+ dependencies:
+ fast-json-stable-stringify: 2.x
+ checksum: d34bdaf68c64bd099ab97c3ea608c9ae7d3f5faa1178b3f3f345acd94e852e608b2d4f9103fb2e503f5e69780e98293df41691b84be909b41cf5045374d54606
+ languageName: node
+ linkType: hard
+
+"bser@npm:2.1.1":
+ version: 2.1.1
+ resolution: "bser@npm:2.1.1"
+ dependencies:
+ node-int64: ^0.4.0
+ checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449
+ languageName: node
+ linkType: hard
+
+"buffer-from@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "buffer-from@npm:1.1.2"
+ checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "callsites@npm:3.1.0"
+ checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^5.3.1":
+ version: 5.3.1
+ resolution: "camelcase@npm:5.3.1"
+ checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^6.2.0":
+ version: 6.3.0
+ resolution: "camelcase@npm:6.3.0"
+ checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001806":
+ version: 1.0.30001806
+ resolution: "caniuse-lite@npm:1.0.30001806"
+ checksum: 4b4a970fbd7cb7b8ee6b5068336f7afa7d9cc65ff444080630ab363dcb44205994f68897c7685dc3de4f04dd1f65ec395e50790a594d0470db4894bedf5cb379
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: ^4.1.0
+ supports-color: ^7.1.0
+ checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc
+ languageName: node
+ linkType: hard
+
+"char-regex@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "char-regex@npm:1.0.2"
+ checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "chownr@npm:3.0.0"
+ checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d
+ languageName: node
+ linkType: hard
+
+"ci-info@npm:^3.2.0":
+ version: 3.9.0
+ resolution: "ci-info@npm:3.9.0"
+ checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87
+ languageName: node
+ linkType: hard
+
+"cjs-module-lexer@npm:^1.0.0":
+ version: 1.4.3
+ resolution: "cjs-module-lexer@npm:1.4.3"
+ checksum: 221a1661a9ff4944b472c85ac7cd5029b2f2dc7f6c5f4ecf887f261503611110b43a48acb6c07f8f04109c772d1637fdb20b31252bf27058f35aa97bf5ad8b12
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "cliui@npm:8.0.1"
+ dependencies:
+ string-width: ^4.2.0
+ strip-ansi: ^6.0.1
+ wrap-ansi: ^7.0.0
+ checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56
+ languageName: node
+ linkType: hard
+
+"co@npm:^4.6.0":
+ version: 4.6.0
+ resolution: "co@npm:4.6.0"
+ checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510
+ languageName: node
+ linkType: hard
+
+"collect-v8-coverage@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "collect-v8-coverage@npm:1.0.3"
+ checksum: ed1d1ebc9c05e7263fffa3ad6440031db6a1fdd9f574435aa689effcdfe9f2b93aba8ec600f9c7b99124cd6ff5d9415c17961d84ae829a72251a4fe668a49b63
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: ~1.1.4
+ checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af
+ languageName: node
+ linkType: hard
+
+"convert-source-map@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "convert-source-map@npm:2.0.0"
+ checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035
+ languageName: node
+ linkType: hard
+
+"create-jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "create-jest@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ chalk: ^4.0.0
+ exit: ^0.1.2
+ graceful-fs: ^4.2.9
+ jest-config: ^29.7.0
+ jest-util: ^29.7.0
+ prompts: ^2.0.1
+ bin:
+ create-jest: bin/create-jest.js
+ checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.3":
+ version: 7.0.6
+ resolution: "cross-spawn@npm:7.0.6"
+ dependencies:
+ path-key: ^3.1.0
+ shebang-command: ^2.0.0
+ which: ^2.0.1
+ checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b
+ languageName: node
+ linkType: hard
+
+"debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1":
+ version: 4.4.3
+ resolution: "debug@npm:4.4.3"
+ dependencies:
+ ms: ^2.1.3
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 4805abd570e601acdca85b6aa3757186084a45cff9b2fa6eee1f3b173caa776b45f478b2a71a572d616d2010cea9211d0ac4a02a610e4c18ac4324bde3760834
+ languageName: node
+ linkType: hard
+
+"dedent@npm:^1.0.0":
+ version: 1.7.2
+ resolution: "dedent@npm:1.7.2"
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+ checksum: 58f46def0e0310f4c6298f648fa1b1f2de074879f9035ff08285279f91060bb9b3c83d9c918b3ef2be3e08705f8858dc9139d9931832d89788d6efd3021c535d
+ languageName: node
+ linkType: hard
+
+"deepmerge@npm:^4.2.2":
+ version: 4.3.1
+ resolution: "deepmerge@npm:4.3.1"
+ checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052
+ languageName: node
+ linkType: hard
+
+"detect-newline@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "detect-newline@npm:3.1.0"
+ checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7
+ languageName: node
+ linkType: hard
+
+"diff-sequences@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "diff-sequences@npm:29.6.3"
+ checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa
+ languageName: node
+ linkType: hard
+
+"duplexer@npm:~0.1.1":
+ version: 0.1.2
+ resolution: "duplexer@npm:0.1.2"
+ checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.5.393":
+ version: 1.5.400
+ resolution: "electron-to-chromium@npm:1.5.400"
+ checksum: 0821a8b6fb505ed54c45bcfb4f3e9e035c6192da83ee17cd9bf96e4b28ea3b73b7f88c02cc929569c3d283bf66f13be729ea4fe101a0ceb47c66cbc4ec8b38d1
+ languageName: node
+ linkType: hard
+
+"emittery@npm:^0.13.1":
+ version: 0.13.1
+ resolution: "emittery@npm:0.13.1"
+ checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e
+ languageName: node
+ linkType: hard
+
+"error-ex@npm:^1.3.1":
+ version: 1.3.4
+ resolution: "error-ex@npm:1.3.4"
+ dependencies:
+ is-arrayish: ^0.2.1
+ checksum: 25136c0984569c8d68417036a9a1624804314296f24675199a391e5d20b2e26fe6d9304d40901293fa86900603a229983c9a8921ea7f1d16f814c2db946ff4ef
+ languageName: node
+ linkType: hard
+
+"es-errors@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "es-errors@npm:1.3.0"
+ checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "escalade@npm:3.2.0"
+ checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "escape-string-regexp@npm:2.0.0"
+ checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395
+ languageName: node
+ linkType: hard
+
+"esprima@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "esprima@npm:4.0.1"
+ bin:
+ esparse: ./bin/esparse.js
+ esvalidate: ./bin/esvalidate.js
+ checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628
+ languageName: node
+ linkType: hard
+
+"event-stream@npm:=3.3.4":
+ version: 3.3.4
+ resolution: "event-stream@npm:3.3.4"
+ dependencies:
+ duplexer: ~0.1.1
+ from: ~0
+ map-stream: ~0.1.0
+ pause-stream: 0.0.11
+ split: 0.3
+ stream-combiner: ~0.0.4
+ through: ~2.3.1
+ checksum: 80b467820b6daf824d9fb4345d2daf115a056e5c104463f2e98534e92d196a27f2df5ea2aa085624db26f4c45698905499e881d13bc7c01f7a13eac85be72a22
+ languageName: node
+ linkType: hard
+
+"execa@npm:^5.0.0":
+ version: 5.1.1
+ resolution: "execa@npm:5.1.1"
+ dependencies:
+ cross-spawn: ^7.0.3
+ get-stream: ^6.0.0
+ human-signals: ^2.1.0
+ is-stream: ^2.0.0
+ merge-stream: ^2.0.0
+ npm-run-path: ^4.0.1
+ onetime: ^5.1.2
+ signal-exit: ^3.0.3
+ strip-final-newline: ^2.0.0
+ checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343
+ languageName: node
+ linkType: hard
+
+"exit@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "exit@npm:0.1.2"
+ checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3
+ languageName: node
+ linkType: hard
+
+"expect@npm:^29.0.0, expect@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "expect@npm:29.7.0"
+ dependencies:
+ "@jest/expect-utils": ^29.7.0
+ jest-get-type: ^29.6.3
+ jest-matcher-utils: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.3
+ resolution: "exponential-backoff@npm:3.1.3"
+ checksum: 471fdb70fd3d2c08a74a026973bdd4105b7832911f610ca67bbb74e39279411c1eed2f2a110c9d41c2edd89459ba58fdaba1c174beed73e7a42d773882dcff82
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb
+ languageName: node
+ linkType: hard
+
+"fb-watchman@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "fb-watchman@npm:2.0.2"
+ dependencies:
+ bser: 2.1.1
+ checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78
+ languageName: node
+ linkType: hard
+
+"fdir@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "fdir@npm:6.5.0"
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ checksum: bd537daa9d3cd53887eed35efa0eab2dbb1ca408790e10e024120e7a36c6e9ae2b33710cb8381e35def01bc9c1d7eaba746f886338413e68ff6ebaee07b9a6e8
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
+ dependencies:
+ to-regex-range: ^5.0.1
+ checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^4.0.0, find-up@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "find-up@npm:4.1.0"
+ dependencies:
+ locate-path: ^5.0.0
+ path-exists: ^4.0.0
+ checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844
+ languageName: node
+ linkType: hard
+
+"from@npm:~0":
+ version: 0.1.7
+ resolution: "from@npm:0.1.7"
+ checksum: b85125b7890489656eb2e4f208f7654a93ec26e3aefaf3bbbcc0d496fc1941e4405834fcc9fe7333192aa2187905510ace70417bbf9ac6f6f4784a731d986939
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:^2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: latest
+ checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@^2.3.2#~builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: latest
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1
+ languageName: node
+ linkType: hard
+
+"gensync@npm:^1.0.0-beta.2":
+ version: 1.0.0-beta.2
+ resolution: "gensync@npm:1.0.0-beta.2"
+ checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec
+ languageName: node
+ linkType: hard
+
+"get-caller-file@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "get-caller-file@npm:2.0.5"
+ checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9
+ languageName: node
+ linkType: hard
+
+"get-package-type@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "get-package-type@npm:0.1.0"
+ checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "get-stream@npm:6.0.1"
+ checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.3, glob@npm:^7.1.4":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: ^1.0.0
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: ^3.1.1
+ once: ^1.3.0
+ path-is-absolute: ^1.0.0
+ checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
+ languageName: node
+ linkType: hard
+
+"handlebars@npm:^4.7.9":
+ version: 4.7.9
+ resolution: "handlebars@npm:4.7.9"
+ dependencies:
+ minimist: ^1.2.5
+ neo-async: ^2.6.2
+ source-map: ^0.6.1
+ uglify-js: ^3.1.4
+ wordwrap: ^1.0.0
+ dependenciesMeta:
+ uglify-js:
+ optional: true
+ bin:
+ handlebars: bin/handlebars
+ checksum: ac39070fc1c3c76a654e4b526383eaf1601976eaa474547b263915b4806977f083600e586ca923709baeed7c82a42640bcc9cc04c37a7efd3fb444f49b8347d6
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.3":
+ version: 2.0.4
+ resolution: "hasown@npm:2.0.4"
+ dependencies:
+ function-bind: ^1.1.2
+ checksum: 4bd8f916b629e06324853593ffbdd45e200022952a85ad0c967f3bd4c2e4c7e1f9a9766fbe6186f60bd394e0afc73e719730caa1da15cd9bd832b7cdf53fd26c
+ languageName: node
+ linkType: hard
+
+"html-escaper@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "html-escaper@npm:2.0.2"
+ checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "human-signals@npm:2.1.0"
+ checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8
+ languageName: node
+ linkType: hard
+
+"import-local@npm:^3.0.2":
+ version: 3.2.0
+ resolution: "import-local@npm:3.2.0"
+ dependencies:
+ pkg-dir: ^4.2.0
+ resolve-cwd: ^3.0.0
+ bin:
+ import-local-fixture: fixtures/cli.js
+ checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: ^1.3.0
+ wrappy: 1
+ checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "is-arrayish@npm:0.2.1"
+ checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.16.1":
+ version: 2.16.2
+ resolution: "is-core-module@npm:2.16.2"
+ dependencies:
+ hasown: ^2.0.3
+ checksum: 9317844b4959f8fb268bfc1b4e24033d60058235c2e7273499c2abfd8e4510e7059b1339bd9109766293747daa3e0b5a89095fb2825a866a4093563fe8fdf16f
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
+ languageName: node
+ linkType: hard
+
+"is-generator-fn@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-generator-fn@npm:2.1.0"
+ checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-stream@npm:2.0.1"
+ checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "isexe@npm:4.0.0"
+ checksum: 2ead327ef596042ef9c9ec5f236b316acfaedb87f4bb61b3c3d574fb2e9c8a04b67305e04733bde52c24d9622fdebd3270aadb632adfbf9cadef88fe30f479e5
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
+ version: 3.2.2
+ resolution: "istanbul-lib-coverage@npm:3.2.2"
+ checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-instrument@npm:^5.0.4":
+ version: 5.2.1
+ resolution: "istanbul-lib-instrument@npm:5.2.1"
+ dependencies:
+ "@babel/core": ^7.12.3
+ "@babel/parser": ^7.14.7
+ "@istanbuljs/schema": ^0.1.2
+ istanbul-lib-coverage: ^3.2.0
+ semver: ^6.3.0
+ checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-instrument@npm:^6.0.0":
+ version: 6.0.3
+ resolution: "istanbul-lib-instrument@npm:6.0.3"
+ dependencies:
+ "@babel/core": ^7.23.9
+ "@babel/parser": ^7.23.9
+ "@istanbuljs/schema": ^0.1.3
+ istanbul-lib-coverage: ^3.2.0
+ semver: ^7.5.4
+ checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-report@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "istanbul-lib-report@npm:3.0.1"
+ dependencies:
+ istanbul-lib-coverage: ^3.0.0
+ make-dir: ^4.0.0
+ supports-color: ^7.1.0
+ checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-source-maps@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "istanbul-lib-source-maps@npm:4.0.1"
+ dependencies:
+ debug: ^4.1.1
+ istanbul-lib-coverage: ^3.0.0
+ source-map: ^0.6.1
+ checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2
+ languageName: node
+ linkType: hard
+
+"istanbul-reports@npm:^3.1.3":
+ version: 3.2.0
+ resolution: "istanbul-reports@npm:3.2.0"
+ dependencies:
+ html-escaper: ^2.0.0
+ istanbul-lib-report: ^3.0.0
+ checksum: 72b4c8525276147908d28b0917bc675b1019836b638e50875521ca3b8ec63672681aa98dbab88a6f49ef798c08fe041d428abdcf84f4f3fcff5844eee54af65a
+ languageName: node
+ linkType: hard
+
+"jest-changed-files@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-changed-files@npm:29.7.0"
+ dependencies:
+ execa: ^5.0.0
+ jest-util: ^29.7.0
+ p-limit: ^3.1.0
+ checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99
+ languageName: node
+ linkType: hard
+
+"jest-circus@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-circus@npm:29.7.0"
+ dependencies:
+ "@jest/environment": ^29.7.0
+ "@jest/expect": ^29.7.0
+ "@jest/test-result": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ co: ^4.6.0
+ dedent: ^1.0.0
+ is-generator-fn: ^2.0.0
+ jest-each: ^29.7.0
+ jest-matcher-utils: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-runtime: ^29.7.0
+ jest-snapshot: ^29.7.0
+ jest-util: ^29.7.0
+ p-limit: ^3.1.0
+ pretty-format: ^29.7.0
+ pure-rand: ^6.0.0
+ slash: ^3.0.0
+ stack-utils: ^2.0.3
+ checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7
+ languageName: node
+ linkType: hard
+
+"jest-cli@npm:^29.5.0":
+ version: 29.7.0
+ resolution: "jest-cli@npm:29.7.0"
+ dependencies:
+ "@jest/core": ^29.7.0
+ "@jest/test-result": ^29.7.0
+ "@jest/types": ^29.6.3
+ chalk: ^4.0.0
+ create-jest: ^29.7.0
+ exit: ^0.1.2
+ import-local: ^3.0.2
+ jest-config: ^29.7.0
+ jest-util: ^29.7.0
+ jest-validate: ^29.7.0
+ yargs: ^17.3.1
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ bin:
+ jest: bin/jest.js
+ checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36
+ languageName: node
+ linkType: hard
+
+"jest-config@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-config@npm:29.7.0"
+ dependencies:
+ "@babel/core": ^7.11.6
+ "@jest/test-sequencer": ^29.7.0
+ "@jest/types": ^29.6.3
+ babel-jest: ^29.7.0
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ deepmerge: ^4.2.2
+ glob: ^7.1.3
+ graceful-fs: ^4.2.9
+ jest-circus: ^29.7.0
+ jest-environment-node: ^29.7.0
+ jest-get-type: ^29.6.3
+ jest-regex-util: ^29.6.3
+ jest-resolve: ^29.7.0
+ jest-runner: ^29.7.0
+ jest-util: ^29.7.0
+ jest-validate: ^29.7.0
+ micromatch: ^4.0.4
+ parse-json: ^5.2.0
+ pretty-format: ^29.7.0
+ slash: ^3.0.0
+ strip-json-comments: ^3.1.1
+ peerDependencies:
+ "@types/node": "*"
+ ts-node: ">=9.0.0"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ ts-node:
+ optional: true
+ checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff
+ languageName: node
+ linkType: hard
+
+"jest-diff@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-diff@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ diff-sequences: ^29.6.3
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77
+ languageName: node
+ linkType: hard
+
+"jest-docblock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-docblock@npm:29.7.0"
+ dependencies:
+ detect-newline: ^3.0.0
+ checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192
+ languageName: node
+ linkType: hard
+
+"jest-each@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-each@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ chalk: ^4.0.0
+ jest-get-type: ^29.6.3
+ jest-util: ^29.7.0
+ pretty-format: ^29.7.0
+ checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c
+ languageName: node
+ linkType: hard
+
+"jest-environment-node@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-environment-node@npm:29.7.0"
+ dependencies:
+ "@jest/environment": ^29.7.0
+ "@jest/fake-timers": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ jest-mock: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646
+ languageName: node
+ linkType: hard
+
+"jest-get-type@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-get-type@npm:29.6.3"
+ checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205
+ languageName: node
+ linkType: hard
+
+"jest-haste-map@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-haste-map@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/graceful-fs": ^4.1.3
+ "@types/node": "*"
+ anymatch: ^3.0.3
+ fb-watchman: ^2.0.0
+ fsevents: ^2.3.2
+ graceful-fs: ^4.2.9
+ jest-regex-util: ^29.6.3
+ jest-util: ^29.7.0
+ jest-worker: ^29.7.0
+ micromatch: ^4.0.4
+ walker: ^1.0.8
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01
+ languageName: node
+ linkType: hard
+
+"jest-leak-detector@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-leak-detector@npm:29.7.0"
+ dependencies:
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605
+ languageName: node
+ linkType: hard
+
+"jest-matcher-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-matcher-utils@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ jest-diff: ^29.7.0
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd
+ languageName: node
+ linkType: hard
+
+"jest-message-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-message-util@npm:29.7.0"
+ dependencies:
+ "@babel/code-frame": ^7.12.13
+ "@jest/types": ^29.6.3
+ "@types/stack-utils": ^2.0.0
+ chalk: ^4.0.0
+ graceful-fs: ^4.2.9
+ micromatch: ^4.0.4
+ pretty-format: ^29.7.0
+ slash: ^3.0.0
+ stack-utils: ^2.0.3
+ checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930
+ languageName: node
+ linkType: hard
+
+"jest-mock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-mock@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ jest-util: ^29.7.0
+ checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5
+ languageName: node
+ linkType: hard
+
+"jest-pnp-resolver@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "jest-pnp-resolver@npm:1.2.3"
+ peerDependencies:
+ jest-resolve: "*"
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+ checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2
+ languageName: node
+ linkType: hard
+
+"jest-regex-util@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-regex-util@npm:29.6.3"
+ checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a
+ languageName: node
+ linkType: hard
+
+"jest-resolve-dependencies@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-resolve-dependencies@npm:29.7.0"
+ dependencies:
+ jest-regex-util: ^29.6.3
+ jest-snapshot: ^29.7.0
+ checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984
+ languageName: node
+ linkType: hard
+
+"jest-resolve@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-resolve@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ graceful-fs: ^4.2.9
+ jest-haste-map: ^29.7.0
+ jest-pnp-resolver: ^1.2.2
+ jest-util: ^29.7.0
+ jest-validate: ^29.7.0
+ resolve: ^1.20.0
+ resolve.exports: ^2.0.0
+ slash: ^3.0.0
+ checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487
+ languageName: node
+ linkType: hard
+
+"jest-runner@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-runner@npm:29.7.0"
+ dependencies:
+ "@jest/console": ^29.7.0
+ "@jest/environment": ^29.7.0
+ "@jest/test-result": ^29.7.0
+ "@jest/transform": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ emittery: ^0.13.1
+ graceful-fs: ^4.2.9
+ jest-docblock: ^29.7.0
+ jest-environment-node: ^29.7.0
+ jest-haste-map: ^29.7.0
+ jest-leak-detector: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-resolve: ^29.7.0
+ jest-runtime: ^29.7.0
+ jest-util: ^29.7.0
+ jest-watcher: ^29.7.0
+ jest-worker: ^29.7.0
+ p-limit: ^3.1.0
+ source-map-support: 0.5.13
+ checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb
+ languageName: node
+ linkType: hard
+
+"jest-runtime@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-runtime@npm:29.7.0"
+ dependencies:
+ "@jest/environment": ^29.7.0
+ "@jest/fake-timers": ^29.7.0
+ "@jest/globals": ^29.7.0
+ "@jest/source-map": ^29.6.3
+ "@jest/test-result": ^29.7.0
+ "@jest/transform": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ cjs-module-lexer: ^1.0.0
+ collect-v8-coverage: ^1.0.0
+ glob: ^7.1.3
+ graceful-fs: ^4.2.9
+ jest-haste-map: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-mock: ^29.7.0
+ jest-regex-util: ^29.6.3
+ jest-resolve: ^29.7.0
+ jest-snapshot: ^29.7.0
+ jest-util: ^29.7.0
+ slash: ^3.0.0
+ strip-bom: ^4.0.0
+ checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e
+ languageName: node
+ linkType: hard
+
+"jest-snapshot@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-snapshot@npm:29.7.0"
+ dependencies:
+ "@babel/core": ^7.11.6
+ "@babel/generator": ^7.7.2
+ "@babel/plugin-syntax-jsx": ^7.7.2
+ "@babel/plugin-syntax-typescript": ^7.7.2
+ "@babel/types": ^7.3.3
+ "@jest/expect-utils": ^29.7.0
+ "@jest/transform": ^29.7.0
+ "@jest/types": ^29.6.3
+ babel-preset-current-node-syntax: ^1.0.0
+ chalk: ^4.0.0
+ expect: ^29.7.0
+ graceful-fs: ^4.2.9
+ jest-diff: ^29.7.0
+ jest-get-type: ^29.6.3
+ jest-matcher-utils: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-util: ^29.7.0
+ natural-compare: ^1.4.0
+ pretty-format: ^29.7.0
+ semver: ^7.5.3
+ checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad
+ languageName: node
+ linkType: hard
+
+"jest-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-util@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ graceful-fs: ^4.2.9
+ picomatch: ^2.2.3
+ checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca
+ languageName: node
+ linkType: hard
+
+"jest-validate@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-validate@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ camelcase: ^6.2.0
+ chalk: ^4.0.0
+ jest-get-type: ^29.6.3
+ leven: ^3.1.0
+ pretty-format: ^29.7.0
+ checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae
+ languageName: node
+ linkType: hard
+
+"jest-watcher@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-watcher@npm:29.7.0"
+ dependencies:
+ "@jest/test-result": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ ansi-escapes: ^4.2.1
+ chalk: ^4.0.0
+ emittery: ^0.13.1
+ jest-util: ^29.7.0
+ string-length: ^4.0.1
+ checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f
+ languageName: node
+ linkType: hard
+
+"jest-worker@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-worker@npm:29.7.0"
+ dependencies:
+ "@types/node": "*"
+ jest-util: ^29.7.0
+ merge-stream: ^2.0.0
+ supports-color: ^8.0.0
+ checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13
+ languageName: node
+ linkType: hard
+
+"jest@npm:29.5.0":
+ version: 29.5.0
+ resolution: "jest@npm:29.5.0"
+ dependencies:
+ "@jest/core": ^29.5.0
+ "@jest/types": ^29.5.0
+ import-local: ^3.0.2
+ jest-cli: ^29.5.0
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ bin:
+ jest: bin/jest.js
+ checksum: a8ff2eb0f421623412236e23cbe67c638127fffde466cba9606bc0c0553b4c1e5cb116d7e0ef990b5d1712851652c8ee461373b578df50857fe635b94ff455d5
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^3.13.1":
+ version: 3.15.1
+ resolution: "js-yaml@npm:3.15.1"
+ dependencies:
+ argparse: ^1.0.7
+ esprima: ^4.0.0
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 536cfb984b61d1544dbdbe394254dd13481a94171cb3a61608572d9112a63cbace9dd900cb83a4e530ac36427fff77d9e1cb6734917c6fea951d00b4f7bbb163
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "jsesc@npm:3.1.0"
+ bin:
+ jsesc: bin/jsesc
+ checksum: 19c94095ea026725540c0d29da33ab03144f6bcf2d4159e4833d534976e99e0c09c38cefa9a575279a51fc36b31166f8d6d05c9fe2645d5f15851d690b41f17f
+ languageName: node
+ linkType: hard
+
+"json-parse-even-better-errors@npm:^2.3.0":
+ version: 2.3.1
+ resolution: "json-parse-even-better-errors@npm:2.3.1"
+ checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f
+ languageName: node
+ linkType: hard
+
+"json5@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349
+ languageName: node
+ linkType: hard
+
+"kleur@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "kleur@npm:3.0.3"
+ checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169
+ languageName: node
+ linkType: hard
+
+"leven@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "leven@npm:3.1.0"
+ checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55
+ languageName: node
+ linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+ version: 1.2.4
+ resolution: "lines-and-columns@npm:1.2.4"
+ checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "locate-path@npm:5.0.0"
+ dependencies:
+ p-locate: ^4.1.0
+ checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30
+ languageName: node
+ linkType: hard
+
+"lodash.memoize@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "lodash.memoize@npm:4.1.2"
+ checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "lru-cache@npm:5.1.1"
+ dependencies:
+ yallist: ^3.0.2
+ checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "make-dir@npm:4.0.0"
+ dependencies:
+ semver: ^7.5.3
+ checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a
+ languageName: node
+ linkType: hard
+
+"make-error@npm:^1.3.6":
+ version: 1.3.6
+ resolution: "make-error@npm:1.3.6"
+ checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402
+ languageName: node
+ linkType: hard
+
+"makeerror@npm:1.0.12":
+ version: 1.0.12
+ resolution: "makeerror@npm:1.0.12"
+ dependencies:
+ tmpl: 1.0.5
+ checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060
+ languageName: node
+ linkType: hard
+
+"map-stream@npm:~0.1.0":
+ version: 0.1.0
+ resolution: "map-stream@npm:0.1.0"
+ checksum: 38abbe4eb883888031e6b2fc0630bc583c99396be16b8ace5794b937b682a8a081f03e8b15bfd4914d1bc88318f0e9ac73ba3512ae65955cd449f63256ddb31d
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4":
+ version: 4.0.8
+ resolution: "micromatch@npm:4.0.8"
+ dependencies:
+ braces: ^3.0.3
+ picomatch: ^2.3.1
+ checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "mimic-fn@npm:2.1.0"
+ checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1":
+ version: 3.1.5
+ resolution: "minimatch@npm:3.1.5"
+ dependencies:
+ brace-expansion: ^1.1.7
+ checksum: 47ef6f412c08be045a7291d11b1c40777925accf7252dc6d3caa39b1bfbb3a7ea390ba7aba464d762d783265c644143d2c8a204e6b5763145024d52ee65a1941
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.5":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^7.0.4, minipass@npm:^7.1.2":
+ version: 7.1.3
+ resolution: "minipass@npm:7.1.3"
+ checksum: 2ede17c0bf8fec499be3360fd07f0ec7666189e3907320a9b653f1530cf84af98928c5b12d80bfb75f321833bf2e97785b940540213ebdafe97a5f10327e664d
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "minizlib@npm:3.1.0"
+ dependencies:
+ minipass: ^7.1.2
+ checksum: a15e6f0128f514b7d41a1c68ce531155447f4669e32d279bba1c1c071ef6c2abd7e4d4579bb59ccc2ed1531346749665968fdd7be8d83eb6b6ae2fe1f3d370a7
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.3":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
+ languageName: node
+ linkType: hard
+
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d
+ languageName: node
+ linkType: hard
+
+"neo-async@npm:^2.6.2":
+ version: 2.6.2
+ resolution: "neo-async@npm:2.6.2"
+ checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9
+ languageName: node
+ linkType: hard
+
+"node-cleanup@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "node-cleanup@npm:2.1.2"
+ checksum: 584cdc3e42560a998b4579f91ed8f936b27011628f3102e5a1093205f0691cdf8d899287d1f2e4d2071ea4ab1d615810bad6dbe2b988ef173a1cbaa76d8165b3
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 13.0.1
+ resolution: "node-gyp@npm:13.0.1"
+ dependencies:
+ env-paths: ^2.2.0
+ exponential-backoff: ^3.1.1
+ graceful-fs: ^4.2.6
+ nopt: ^10.0.0
+ proc-log: ^7.0.0
+ semver: ^7.3.5
+ tar: ^7.5.4
+ tinyglobby: ^0.2.12
+ undici: ^8.4.1
+ which: ^7.0.0
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 9d4e0eeaa415ca33a85278ecf2bdb61a7c32649e9423ec7743912b97e58169606ef44504f7d3a746cd9179f50c8d37d5bb70ae76fbc4803122f7747e819453f6
+ languageName: node
+ linkType: hard
+
+"node-int64@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "node-int64@npm:0.4.0"
+ checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e
+ languageName: node
+ linkType: hard
+
+"node-releases@npm:^2.0.51":
+ version: 2.0.52
+ resolution: "node-releases@npm:2.0.52"
+ checksum: fb2bf438752078c9caf4a0d5e421320b3441f07d966028f3be4a1d8605399394a810036e225175261389210720c9ed7944c3a0df2c7e22aa80e7530f2951b2ed
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^10.0.0":
+ version: 10.0.1
+ resolution: "nopt@npm:10.0.1"
+ dependencies:
+ abbrev: ^5.0.0
+ bin:
+ nopt: bin/nopt.js
+ checksum: c2903b9171a3293b731189ace4eaeacc2ed8191bb8f8f74ebfb61babc0de2ff158d97a215fd561070ed0dac567f3b8741955f81a534009e57eb37fdc419d5d4e
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "npm-run-path@npm:4.0.1"
+ dependencies:
+ path-key: ^3.0.0
+ checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: 1
+ checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "onetime@npm:5.1.2"
+ dependencies:
+ mimic-fn: ^2.1.0
+ checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^2.2.0":
+ version: 2.3.0
+ resolution: "p-limit@npm:2.3.0"
+ dependencies:
+ p-try: ^2.0.0
+ checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: ^0.1.0
+ checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "p-locate@npm:4.1.0"
+ dependencies:
+ p-limit: ^2.2.0
+ checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870
+ languageName: node
+ linkType: hard
+
+"p-try@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "p-try@npm:2.2.0"
+ checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae
+ languageName: node
+ linkType: hard
+
+"pairing-test@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "pairing-test@workspace:."
+ dependencies:
+ "@guardian/tsconfig": 0.2.0
+ "@types/jest": ^29.5.2
+ "@types/node": ^20.3.3
+ jest: 29.5.0
+ ts-jest: ^29.1.1
+ tsc-watch: ^6.0.4
+ typescript: ^5.1.6
+ languageName: unknown
+ linkType: soft
+
+"parse-json@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "parse-json@npm:5.2.0"
+ dependencies:
+ "@babel/code-frame": ^7.0.0
+ error-ex: ^1.3.1
+ json-parse-even-better-errors: ^2.3.0
+ lines-and-columns: ^1.1.6
+ checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.0.0, path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
+ languageName: node
+ linkType: hard
+
+"pause-stream@npm:0.0.11":
+ version: 0.0.11
+ resolution: "pause-stream@npm:0.0.11"
+ dependencies:
+ through: ~2.3
+ checksum: 3c4a14052a638b92e0c96eb00c0d7977df7f79ea28395250c525d197f1fc02d34ce1165d5362e2e6ebbb251524b94a76f3f0d4abc39ab8b016d97449fe15583c
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "picocolors@npm:1.1.1"
+ checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
+ version: 2.3.2
+ resolution: "picomatch@npm:2.3.2"
+ checksum: 0a3f5b9ff28faf022e1429b66e47c122e19e7b31cbd098095d29e949684e7ff1d9b83a2133d931326a53ec6ec11c7c59b1850c27fde2f26ca1d5f35861e9701a
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^4.0.4":
+ version: 4.0.5
+ resolution: "picomatch@npm:4.0.5"
+ checksum: 44f305aa44f33c15d304f2e887409961d1c14eebd465b5553d8aefddcfe7b5e40d208148adef8c21a21183dda2fdba1e83c8a56918e3b5e5d3db6bcaba5b7e12
+ languageName: node
+ linkType: hard
+
+"pirates@npm:^4.0.4":
+ version: 4.0.7
+ resolution: "pirates@npm:4.0.7"
+ checksum: 3dcbaff13c8b5bc158416feb6dc9e49e3c6be5fddc1ea078a05a73ef6b85d79324bbb1ef59b954cdeff000dbf000c1d39f32dc69310c7b78fbada5171b583e40
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "pkg-dir@npm:4.2.0"
+ dependencies:
+ find-up: ^4.0.0
+ checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ ansi-styles: ^5.0.0
+ react-is: ^18.0.0
+ checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "proc-log@npm:7.0.0"
+ checksum: ded2e976dbfa428777496158db93efdd27523ce17cf7eae0e87c6dbba0f30bb46bbe6409ccdcf5ecea7bdea864ed409afc3b5c60b79f008d42dff79fdd481c27
+ languageName: node
+ linkType: hard
+
+"prompts@npm:^2.0.1":
+ version: 2.4.2
+ resolution: "prompts@npm:2.4.2"
+ dependencies:
+ kleur: ^3.0.3
+ sisteransi: ^1.0.5
+ checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d
+ languageName: node
+ linkType: hard
+
+"ps-tree@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "ps-tree@npm:1.2.0"
+ dependencies:
+ event-stream: =3.3.4
+ bin:
+ ps-tree: ./bin/ps-tree.js
+ checksum: e635dd00f53d30d31696cf5f95b3a8dbdf9b1aeb36d4391578ce8e8cd22949b7c5536c73b0dc18c78615ea3ddd4be96101166be59ca2e3e3cb1e2f79ba3c7f98
+ languageName: node
+ linkType: hard
+
+"pure-rand@npm:^6.0.0":
+ version: 6.1.0
+ resolution: "pure-rand@npm:6.1.0"
+ checksum: 8d53bc02bed99eca0b65b505090152ee7e9bd67dd74f8ff32ba1c883b87234067c5bf68d2614759fb217d82594d7a92919e6df80f97885e7b12b42af4bd3316a
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^18.0.0":
+ version: 18.3.1
+ resolution: "react-is@npm:18.3.1"
+ checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21
+ languageName: node
+ linkType: hard
+
+"require-directory@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "require-directory@npm:2.1.1"
+ checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80
+ languageName: node
+ linkType: hard
+
+"resolve-cwd@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "resolve-cwd@npm:3.0.0"
+ dependencies:
+ resolve-from: ^5.0.0
+ checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "resolve-from@npm:5.0.0"
+ checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf
+ languageName: node
+ linkType: hard
+
+"resolve.exports@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "resolve.exports@npm:2.0.3"
+ checksum: abfb9f98278dcd0c19b8a49bb486abfafa23df4636d49128ea270dc982053c3ef230a530aecda1fae1322873fdfa6c97674fc539651ddfdb375ac58e0b8ef6df
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.20.0":
+ version: 1.22.12
+ resolution: "resolve@npm:1.22.12"
+ dependencies:
+ es-errors: ^1.3.0
+ is-core-module: ^2.16.1
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: 4dc5a614b32142ef9ab455b242ed33c472c4ea50df17dbe1e9dac5fe0eebd7d5fdb7cb9cc8ad2165e5e0f07694498a74e7fbd6cc1599e20d84682cce1b80a4dc
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@^1.20.0#~builtin":
+ version: 1.22.12
+ resolution: "resolve@patch:resolve@npm%3A1.22.12#~builtin::version=1.22.12&hash=c3c19d"
+ dependencies:
+ es-errors: ^1.3.0
+ is-core-module: ^2.16.1
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: 0cc5b060cbe081c85c331ac2eb08e8a54f0a195b899d5001822e5d3e2b335da651b1eed3d259fea904c22a0da9324a061e0e7ceab5dbeb5bcab5250b625754e1
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.0, semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.8.5":
+ version: 7.8.5
+ resolution: "semver@npm:7.8.5"
+ bin:
+ semver: bin/semver.js
+ checksum: 0c580f17e88e2b45806dc5cf3d824f719c946999d3554bf30307c2b68b3300ab3c8bfcd84d8f489b93b4cbb5362f5fc8de4d2858954f18d834253c4450fc9f6b
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: ^3.0.0
+ checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
+ languageName: node
+ linkType: hard
+
+"sisteransi@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "sisteransi@npm:1.0.5"
+ checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c
+ languageName: node
+ linkType: hard
+
+"source-map-support@npm:0.5.13":
+ version: 0.5.13
+ resolution: "source-map-support@npm:0.5.13"
+ dependencies:
+ buffer-from: ^1.0.0
+ source-map: ^0.6.0
+ checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.6.0, source-map@npm:^0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2
+ languageName: node
+ linkType: hard
+
+"split@npm:0.3":
+ version: 0.3.3
+ resolution: "split@npm:0.3.3"
+ dependencies:
+ through: 2
+ checksum: 2e076634c9637cfdc54ab4387b6a243b8c33b360874a25adf6f327a5647f07cb3bf1c755d515248eb3afee4e382278d01f62c62d87263c118f28065b86f74f02
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:~1.0.2":
+ version: 1.0.3
+ resolution: "sprintf-js@npm:1.0.3"
+ checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3
+ languageName: node
+ linkType: hard
+
+"stack-utils@npm:^2.0.3":
+ version: 2.0.6
+ resolution: "stack-utils@npm:2.0.6"
+ dependencies:
+ escape-string-regexp: ^2.0.0
+ checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7
+ languageName: node
+ linkType: hard
+
+"stream-combiner@npm:~0.0.4":
+ version: 0.0.4
+ resolution: "stream-combiner@npm:0.0.4"
+ dependencies:
+ duplexer: ~0.1.1
+ checksum: 844b622cfe8b9de45a6007404f613b60aaf85200ab9862299066204242f89a7c8033b1c356c998aa6cfc630f6cd9eba119ec1c6dc1f93e245982be4a847aee7d
+ languageName: node
+ linkType: hard
+
+"string-argv@npm:^0.3.1":
+ version: 0.3.2
+ resolution: "string-argv@npm:0.3.2"
+ checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f
+ languageName: node
+ linkType: hard
+
+"string-length@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "string-length@npm:4.0.2"
+ dependencies:
+ char-regex: ^1.0.2
+ strip-ansi: ^6.0.0
+ checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: ^8.0.0
+ is-fullwidth-code-point: ^3.0.0
+ strip-ansi: ^6.0.1
+ checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: ^5.0.1
+ checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "strip-bom@npm:4.0.0"
+ checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strip-final-newline@npm:2.0.0"
+ checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^8.0.0":
+ version: 8.1.1
+ resolution: "supports-color@npm:8.1.1"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae
+ languageName: node
+ linkType: hard
+
+"tar@npm:^7.5.4":
+ version: 7.5.22
+ resolution: "tar@npm:7.5.22"
+ dependencies:
+ "@isaacs/fs-minipass": ^4.0.0
+ chownr: ^3.0.0
+ minipass: ^7.1.2
+ minizlib: ^3.1.0
+ yallist: ^5.0.0
+ checksum: e1434f40954410d191ab6d89017bfd40c24869cfd319d19dd74f84db13cbea15370a22bc9b8ecd699d05c2777ec6297f35dac318ed4829b6e776a7cb4f1f7c68
+ languageName: node
+ linkType: hard
+
+"test-exclude@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "test-exclude@npm:6.0.0"
+ dependencies:
+ "@istanbuljs/schema": ^0.1.2
+ glob: ^7.1.4
+ minimatch: ^3.0.4
+ checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28
+ languageName: node
+ linkType: hard
+
+"through@npm:2, through@npm:~2.3, through@npm:~2.3.1":
+ version: 2.3.8
+ resolution: "through@npm:2.3.8"
+ checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd
+ languageName: node
+ linkType: hard
+
+"tinyglobby@npm:^0.2.12":
+ version: 0.2.17
+ resolution: "tinyglobby@npm:0.2.17"
+ dependencies:
+ fdir: ^6.5.0
+ picomatch: ^4.0.4
+ checksum: 041e73eae568152c376551b21b8a27909d474166a8f405cdb0345991c50cf6afd0f878d7a387645d9c05d8ea2c9a55cc2fd2cfe6c5d5a5264770972b1adcad86
+ languageName: node
+ linkType: hard
+
+"tmpl@npm:1.0.5":
+ version: 1.0.5
+ resolution: "tmpl@npm:1.0.5"
+ checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: ^7.0.0
+ checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed
+ languageName: node
+ linkType: hard
+
+"ts-jest@npm:^29.1.1":
+ version: 29.4.12
+ resolution: "ts-jest@npm:29.4.12"
+ dependencies:
+ bs-logger: ^0.2.6
+ fast-json-stable-stringify: ^2.1.0
+ handlebars: ^4.7.9
+ json5: ^2.2.3
+ lodash.memoize: ^4.1.2
+ make-error: ^1.3.6
+ semver: ^7.8.5
+ type-fest: ^4.41.0
+ yargs-parser: ^21.1.1
+ peerDependencies:
+ "@babel/core": ">=7.0.0-beta.0 <8"
+ "@jest/transform": ^29.0.0 || ^30.0.0
+ "@jest/types": ^29.0.0 || ^30.0.0
+ babel-jest: ^29.0.0 || ^30.0.0
+ jest: ^29.0.0 || ^30.0.0
+ jest-util: ^29.0.0 || ^30.0.0
+ typescript: ">=4.3 <7"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ "@jest/transform":
+ optional: true
+ "@jest/types":
+ optional: true
+ babel-jest:
+ optional: true
+ esbuild:
+ optional: true
+ jest-util:
+ optional: true
+ bin:
+ ts-jest: cli.js
+ checksum: 8efdb268e12c193f2d4e9661d886dbc82ed128b2820ada95e8416b092c7073edb09a414e5bd6f8e495989bbda8b933fe34c89b040efc2f70d75f7aa285546f3a
+ languageName: node
+ linkType: hard
+
+"tsc-watch@npm:^6.0.4":
+ version: 6.3.1
+ resolution: "tsc-watch@npm:6.3.1"
+ dependencies:
+ cross-spawn: ^7.0.3
+ node-cleanup: ^2.1.2
+ ps-tree: ^1.2.0
+ string-argv: ^0.3.1
+ peerDependencies:
+ typescript: "*"
+ bin:
+ tsc-watch: dist/lib/tsc-watch.js
+ checksum: 891b5a66c8c6e0a021e8860b398305d39e195650fd2354028e2e090a4299ee094c47186827fc3719170334cb293c336730e971d0661476b92f5defa375273fba
+ languageName: node
+ linkType: hard
+
+"type-detect@npm:4.0.8":
+ version: 4.0.8
+ resolution: "type-detect@npm:4.0.8"
+ checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.21.3":
+ version: 0.21.3
+ resolution: "type-fest@npm:0.21.3"
+ checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^4.41.0":
+ version: 4.41.0
+ resolution: "type-fest@npm:4.41.0"
+ checksum: 7055c0e3eb188425d07403f1d5dc175ca4c4f093556f26871fe22041bc93d137d54bef5851afa320638ca1379106c594f5aa153caa654ac1a7f22c71588a4e80
+ languageName: node
+ linkType: hard
+
+"typescript@npm:^5.1.6":
+ version: 5.9.3
+ resolution: "typescript@npm:5.9.3"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 0d0ffb84f2cd072c3e164c79a2e5a1a1f4f168e84cb2882ff8967b92afe1def6c2a91f6838fb58b168428f9458c57a2ba06a6737711fdd87a256bbe83e9a217f
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@^5.1.6#~builtin":
+ version: 5.9.3
+ resolution: "typescript@patch:typescript@npm%3A5.9.3#~builtin::version=5.9.3&hash=5786d5"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: a5a6dc399d3761ded54192031f11d3ad5df8001c7febe3fbbc8098efcb552cdf8f2f402b3618c56dafcd04fef63dee005f4900f608e185404caedc46480539ed
+ languageName: node
+ linkType: hard
+
+"uglify-js@npm:^3.1.4":
+ version: 3.19.3
+ resolution: "uglify-js@npm:3.19.3"
+ bin:
+ uglifyjs: bin/uglifyjs
+ checksum: 7ed6272fba562eb6a3149cfd13cda662f115847865c03099e3995a0e7a910eba37b82d4fccf9e88271bb2bcbe505bb374967450f433c17fa27aa36d94a8d0553
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~6.21.0":
+ version: 6.21.0
+ resolution: "undici-types@npm:6.21.0"
+ checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~8.3.0":
+ version: 8.3.0
+ resolution: "undici-types@npm:8.3.0"
+ checksum: bdc1d54d8b48f3f2a801f7707a2ad53b76711039dd9a276382d4bdbbded79355574309425096127a42313731bde7a76cc299855fc06872797edd0acbfcef5bc0
+ languageName: node
+ linkType: hard
+
+"undici@npm:^8.4.1":
+ version: 8.10.0
+ resolution: "undici@npm:8.10.0"
+ checksum: 6b7c5442ec67fb4048a07aba719890904be54fbcff83c58b7133011fead67877c970f8b974f5e05aa0c7f5603c726888d8b3648e891af1493e7e362d848d7e9c
+ languageName: node
+ linkType: hard
+
+"update-browserslist-db@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "update-browserslist-db@npm:1.2.3"
+ dependencies:
+ escalade: ^3.2.0
+ picocolors: ^1.1.1
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 6f209a97ae8eacdd3a1ef2eb365adf49d1e2a757e5b2dd4ac87dc8c99236cbe3e572d3e605a87dd7b538a11751b71d9f93edc47c7405262a293a493d155316cd
+ languageName: node
+ linkType: hard
+
+"v8-to-istanbul@npm:^9.0.1":
+ version: 9.3.0
+ resolution: "v8-to-istanbul@npm:9.3.0"
+ dependencies:
+ "@jridgewell/trace-mapping": ^0.3.12
+ "@types/istanbul-lib-coverage": ^2.0.1
+ convert-source-map: ^2.0.0
+ checksum: ded42cd535d92b7fd09a71c4c67fb067487ef5551cc227bfbf2a1f159a842e4e4acddaef20b955789b8d3b455b9779d036853f4a27ce15007f6364a4d30317ae
+ languageName: node
+ linkType: hard
+
+"walker@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "walker@npm:1.0.8"
+ dependencies:
+ makeerror: 1.0.12
+ checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: ^2.0.0
+ bin:
+ node-which: ./bin/node-which
+ checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1
+ languageName: node
+ linkType: hard
+
+"which@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "which@npm:7.0.0"
+ dependencies:
+ isexe: ^4.0.0
+ bin:
+ node-which: bin/which.js
+ checksum: 913a43ac10df37602ba9795a004dd7ab12ba7dd592aca1f08ec333be1fdd6a49bbf119a88c3f8d0ea70eeb6251726e77069251424d73000299a0a840ed000732
+ languageName: node
+ linkType: hard
+
+"wordwrap@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "wordwrap@npm:1.0.0"
+ checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ string-width: ^4.1.0
+ strip-ansi: ^6.0.0
+ checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5
+ languageName: node
+ linkType: hard
+
+"write-file-atomic@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "write-file-atomic@npm:4.0.2"
+ dependencies:
+ imurmurhash: ^0.1.4
+ signal-exit: ^3.0.7
+ checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^5.0.5":
+ version: 5.0.8
+ resolution: "y18n@npm:5.0.8"
+ checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^3.0.2":
+ version: 3.1.1
+ resolution: "yallist@npm:3.1.1"
+ checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "yallist@npm:5.0.0"
+ checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^21.1.1":
+ version: 21.1.1
+ resolution: "yargs-parser@npm:21.1.1"
+ checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^17.3.1":
+ version: 17.7.3
+ resolution: "yargs@npm:17.7.3"
+ dependencies:
+ cliui: ^8.0.1
+ escalade: ^3.1.1
+ get-caller-file: ^2.0.5
+ require-directory: ^2.1.1
+ string-width: ^4.2.3
+ y18n: ^5.0.5
+ yargs-parser: ^21.1.1
+ checksum: 16fb2d4866f04aaf74f206d3df843e7a80b58a26fda47af29be51b27564c19966b1674c3acf679a26fdfa8a7e4b1b442a63cdab5db8cd3c57db7912f4473e343
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700
+ languageName: node
+ linkType: hard