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 +[![CI](https://github.com/guardian/coding-exercise-project/actions/workflows/ci.yml/badge.svg)](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