diff --git a/.ci/build-platform.yml b/.ci/build-platform.yml deleted file mode 100644 index 1414c77c..00000000 --- a/.ci/build-platform.yml +++ /dev/null @@ -1,75 +0,0 @@ -parameters: - platform: "macOS" - vmImage: "macOS-10.13" - -jobs: - - job: ${{ parameters.platform }} - pool: - vmImage: ${{ parameters.vmImage }} - demands: node.js - timeoutInMinutes: 120 # This is mostly for Windows - steps: - - powershell: $Env:Path - continueOnError: true - condition: and(eq(variables['AGENT.OS'], 'Windows_NT'), and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch'])))) - displayName: "Print env in powershell" - # Needed so that the mingw tar doesn't shadow the system tar. See - # pipelines.yaml. We need windows bsdtar from system32, not the mingw - # one. Note powershell doesn't need escaping of backslashes. - - powershell: Write-Host "##vso[task.setvariable variable=PATH;]C:\Program Files\Git\bin;C:\Windows\system32;${env:PATH}" - continueOnError: true - condition: eq(variables['AGENT.OS'], 'Windows_NT') - displayName: "Make sure C:/Program Files/Git/bin and windows/system32 is at front of path if windows" - - powershell: $Env:Path - continueOnError: true - condition: and(eq(variables['AGENT.OS'], 'Windows_NT'), and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch'])))) - displayName: "Print env in powershell" - - powershell: get-command tar - continueOnError: true - condition: and(eq(variables['AGENT.OS'], 'Windows_NT'), and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch'])))) - displayName: "Print where tar is located" - - powershell: tar --help - continueOnError: true - condition: and(eq(variables['AGENT.OS'], 'Windows_NT'), and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch'])))) - displayName: "Print tar help" - # https://github.com/esy/pesy/commit/3aeaad2550edcf4ac8e259400279a564a92a194e - - powershell: Write-Host "##vso[task.setvariable variable=HOME;]D:\" - continueOnError: true - condition: eq(variables['AGENT.OS'], 'Windows_NT') - displayName: "Make sure $HOME is same is Agent.BuildDirectory" - - bash: | - # COMPUTE THE ESY INSTALL CACHE LOCATION AHEAD OF TIME - DESIRED_LEN="86" - # Note: This will need to change when upgrading esy version - # that reenables long paths on windows. - if [ "$AGENT_OS" == "Windows_NT" ]; then - DESIRED_LEN="33" - fi - HOME_ESY3="$HOME/.esy/3" - HOME_ESY3_LEN=${#HOME_ESY3} - NUM_UNDERS=$(echo "$(($DESIRED_LEN-$HOME_ESY3_LEN))") - UNDERS=$(printf "%-${NUM_UNDERS}s" "_") - UNDERS="${UNDERS// /_}" - THE_ESY__CACHE_INSTALL_PATH=${HOME_ESY3}${UNDERS}/i - if [ "$AGENT_OS" == "Windows_NT" ]; then - THE_ESY__CACHE_INSTALL_PATH=$( cygpath --mixed --absolute "$THE_ESY__CACHE_INSTALL_PATH") - fi - echo "THE_ESY__CACHE_INSTALL_PATH: $THE_ESY__CACHE_INSTALL_PATH" - # This will be exposed as an env var ESY__CACHE_INSTALL_PATH, or an - # Azure var esy__cache_install_path - echo "##vso[task.setvariable variable=esy__cache_install_path]$THE_ESY__CACHE_INSTALL_PATH" - # - bash: | - # which esy - # echo "$( which esy )" - # echo "##vso[task.setvariable variable=esy_bin_location]$(which esy)" - # displayName: "Find esy binary" - # - bash: echo ${ESY_BIN_LOCATION} - # displayName: "Print esy bin location" - - bash: env - displayName: "Print environment" - - template: esy-build-steps.yml - - task: PublishBuildArtifacts@1 - displayName: "Publish Artifact: ${{ parameters.platform }}" - inputs: - PathtoPublish: "_release" - ArtifactName: ${{ parameters.platform }} diff --git a/.ci/copy-binary-executable.js b/.ci/copy-binary-executable.js deleted file mode 100644 index c563989f..00000000 --- a/.ci/copy-binary-executable.js +++ /dev/null @@ -1,40 +0,0 @@ -const fs = require("fs"); -const path = require("path"); -const { version } = require("../package.json"); - -const platform = process.argv[2]; -const folder = process.argv[3]; - -if (!platform || !folder) { - throw new Error( - "platform & folder args are required. Pass it as `node copy-binary-executable.js MacOS ../folder`" - ); -} - -const odiffExportRegex = /odiff-(.{1,24})\.tar\.gz/; -const binaryArchivePath = path.resolve( - __dirname, - "..", - "_release", - folder, - "_export" -); - -const odiffExportTarball = fs - .readdirSync(binaryArchivePath) - .filter((file) => /odiff-/.test(file))[0]; - -if (!odiffExportTarball) { - throw new Error("Can not find the exported binaries"); -} - -const [_, hash] = path.basename(odiffExportTarball).match(odiffExportRegex); -fs.copyFileSync( - path.join(binaryArchivePath, odiffExportTarball), - path.join( - __dirname, - "..", - "_release", - `odiff-${platform}-${version}-${hash}.tar.gz` - ) -); diff --git a/.ci/cross-release.yml b/.ci/cross-release.yml deleted file mode 100644 index 648622a2..00000000 --- a/.ci/cross-release.yml +++ /dev/null @@ -1,34 +0,0 @@ -steps: - - template: utils/use-node.yml - - - script: "mkdir _release" - displayName: "Create _release dir" - - - template: release-platform-setup.yml - parameters: - platform: "Linux" - folder: "platform-linux" - - - template: release-platform-setup.yml - parameters: - platform: "MacOS" - folder: "platform-darwin" - - - template: release-platform-setup.yml - parameters: - platform: "Windows_x64" - folder: "platform-windows-x64" - - - script: "node .ci/pipelines-release.js" - displayName: "node .ci/pipelines-release.js" - continueOnError: true - - - script: "npm pack ." - displayName: "npm pack" - workingDirectory: "_release" - - - task: PublishBuildArtifacts@1 - displayName: "Publish Artifact: Release" - inputs: - PathtoPublish: "_release" - ArtifactName: Release diff --git a/.ci/esy-build-steps.yml b/.ci/esy-build-steps.yml deleted file mode 100644 index bffbc103..00000000 --- a/.ci/esy-build-steps.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Cross-platform set of build steps for building esy projects - -steps: - - template: utils/use-node.yml - - template: utils/use-esy.yml - - script: "esy install" - displayName: "esy install" - - template: utils/restore-build-cache.yml - - script: "esy build --release" - displayName: "esy build --release" - # odoc on windows in azure fails for unknown reason. Disable until figure out. - # - template: utils/create-docs.yml - - script: "esy test" - displayName: "Run tests" - - task: PublishBuildArtifacts@1 - displayName: "Publish Artifact: Tests" - condition: failed() - inputs: - PathtoPublish: "test/test-images" - ArtifactName: orange_diff_generated - - - script: "esy release" - displayName: "esy release" - - template: utils/publish-build-cache.yml - - # Run tests or any additional steps here - # - script: esy b dune runtest diff --git a/.ci/opam-build-steps.yml b/.ci/opam-build-steps.yml deleted file mode 100644 index bec854a1..00000000 --- a/.ci/opam-build-steps.yml +++ /dev/null @@ -1,38 +0,0 @@ -# Shared steps for building OPAM projects - -steps: - - task: NodeTool@0 - inputs: - versionSpec: '8.9' - - script: brew install gpatch - displayName: 'brew install gpatch' - - script: brew install opam - displayName: 'brew install opam' - - script: opam --version - displayName: 'Check opam version' - - script: opam init --auto-setup --dot-profile=~/.bash_profile - displayName: 'opam init' - - script: opam remote add ocamlorg https://opam.ocaml.org || true - displayName: 'opam remote add ocamlorg' - - script: opam remove default || true - displayName: 'opam remove default' - - script: opam update - displayName: 'opam update' - - script: opam switch create $(OCAML_VERSION) - displayName: 'Use OCaml version: $(OCAML_VERSION)' - - script: opam install -y dune - displayName: 'opam install -y dune' - - script: opam install -y menhir - displayName: 'opam install -y menhir' - - script: opam install -y utop - displayName: 'opam install -y utop' - - script: make clean-for-ci - displayName: 'make clean-for-ci' - - script: opam pin add -y reason . - displayName: "opam pin add -y reason ." - - script: opam pin add -y rtop . - displayName: "opam pin add -y rtop ." - - script: eval $(opam env); make test-ci - displayName: "make test-ci" - - script: git diff --exit-code - displayName: "Check git is clean" diff --git a/.ci/pipelines-release.js b/.ci/pipelines-release.js deleted file mode 100644 index e254e46b..00000000 --- a/.ci/pipelines-release.js +++ /dev/null @@ -1,109 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -console.log("Creating package.json"); - -const exists = fs.existsSync("package.json"); -if (!exists) { - console.error("No package.json or esy.json at " + "package.json"); - process.exit(1); -} -// Now require from this script's location. -const mainPackageJson = require(path.join("..", "package.json")); -const bins = Array.isArray(mainPackageJson.esy.release.bin) - ? mainPackageJson.esy.release.bin.reduce( - (acc, curr) => Object.assign({ [curr]: "bin/" + curr }, acc), - {} - ) - : Object.keys(mainPackageJson.esy.release.bin).reduce( - (acc, currKey) => - Object.assign( - { [currKey]: "bin/" + mainPackageJson.esy.release.bin[currKey] }, - acc - ), - {} - ); - -const packageJson = JSON.stringify( - { - name: "odiff-bin", - version: mainPackageJson.version, - license: mainPackageJson.license, - description: mainPackageJson.description, - repository: mainPackageJson.repository, - author: mainPackageJson.author, - typings: "./odiff.d.ts", - main: "./odiff.js", - scripts: { - postinstall: "node ./postinstall.js", - }, - bin: { - odiff: "bin/odiff", - }, - }, - null, - 2 -); - -fs.writeFileSync( - path.join(__dirname, "..", "_release", "package.json"), - packageJson, - { - encoding: "utf8", - } -); - -try { - console.log("Copying LICENSE"); - fs.copyFileSync( - path.join(__dirname, "..", "LICENSE"), - path.join(__dirname, "..", "_release", "LICENSE") - ); -} catch (e) { - console.warn("No LICENSE found"); -} - -console.log("Copying README.md"); -fs.copyFileSync( - path.join(__dirname, "..", "README.md"), - path.join(__dirname, "..", "_release", "README.md") -); - -console.log("Copying postinstall.js"); -fs.copyFileSync( - path.join(__dirname, "release-postinstall.js"), - path.join(__dirname, "..", "_release", "postinstall.js") -); - -console.log("Copying node bindings"); -fs.copyFileSync( - path.join(__dirname, "..", "bin", "node-bindings", "odiff.js"), - path.join(__dirname, "..", "_release", "odiff.js") -); - -fs.copyFileSync( - path.join(__dirname, "..", "bin", "node-bindings", "odiff.d.ts"), - path.join(__dirname, "..", "_release", "odiff.d.ts") -); - -if (!fs.existsSync(path.join(__dirname, "..", "_release", "bin"))) { - console.log("Creating placeholder files"); - const placeholderFile = ` -#!/bin/bash -echo "Binary was not linked. You need to have postinstall enabled, please make sure to not use --ignore-scripts when installing deps."; -exit 1; -`; - - fs.mkdirSync(path.join(__dirname, "..", "_release", "bin")); - - Object.keys(bins).forEach((name) => { - if (bins[name]) { - const binPath = path.join(__dirname, "..", "_release", "bin", name); - fs.writeFileSync(binPath, placeholderFile); - fs.chmodSync(binPath, '777'); - } else { - console.log("bins[name] name=" + name + " was empty. Weird."); - console.log(bins); - } - }); -} diff --git a/.ci/release-platform-setup.yml b/.ci/release-platform-setup.yml deleted file mode 100644 index 47c1e7bc..00000000 --- a/.ci/release-platform-setup.yml +++ /dev/null @@ -1,20 +0,0 @@ -parameters: - platform: "MacOS" - folder: "platform-darwin" - -steps: - - task: DownloadBuildArtifacts@0 - displayName: "Download ${{ parameters.platform }} Artifacts" - inputs: - artifactName: ${{ parameters.platform }} - downloadPath: $(Build.StagingDirectory) - - - script: "mkdir _release/${{ parameters.folder }}" - displayName: "Create _release/${{ parameters.folder }}" - - - script: "cp -r $(Build.StagingDirectory)/${{ parameters.platform }}/ _release/${{ parameters.folder }}" - displayName: "cp ${{ parameters.platform }}" - - - script: "node .ci/copy-binary-executable.js ${{ parameters.platform }} ${{ parameters.folder }}" - displayName: "node .ci/copy-binary-executable.js" - continueOnError: true diff --git a/.ci/release-postinstall.js b/.ci/release-postinstall.js deleted file mode 100644 index a8e31978..00000000 --- a/.ci/release-postinstall.js +++ /dev/null @@ -1,183 +0,0 @@ -/** - * release-postinstall.js - * - * This script is bundled with the `npm` package and executed on release. - * Since we have a 'fat' NPM package (with all platform binaries bundled), - * this postinstall script extracts them and puts the current platform's - * bits in the right place. - */ - -var path = require("path"); -var cp = require("child_process"); -var fs = require("fs"); -var os = require("os"); -var platform = process.platform; - -process.env["OCAML_VERSION"] = "ocaml"; -process.env["OCAML_PKG_NAME"] = "n.00.0000"; - -var packageJson = require("./package.json"); -var binariesToCopy = Object.keys(packageJson.bin) - .map(function (name) { - return packageJson.bin[name]; - }) - .concat(["esyInstallRelease.js"]); -var foldersToCopy = ["bin", "_export"]; - -function copyRecursive(srcDir, dstDir) { - var results = []; - var list = fs.readdirSync(srcDir); - var src, dst; - list.forEach(function (file) { - src = path.join(srcDir, file); - dst = path.join(dstDir, file); - - var stat = fs.statSync(src); - if (stat && stat.isDirectory()) { - try { - fs.mkdirSync(dst); - } catch (e) { - console.log("directory already exists: " + dst); - console.error(e); - } - results = results.concat(copyRecursive(src, dst)); - } else { - try { - fs.writeFileSync(dst, fs.readFileSync(src)); - } catch (e) { - console.log("could't copy file: " + dst); - console.error(e); - } - results.push(src); - } - }); - return results; -} - -/** - * Since os.arch returns node binary's target arch, not - * the system arch. - * Credits: https://github.com/feross/arch/blob/af080ff61346315559451715c5393d8e86a6d33c/index.js#L10-L58 - */ - -function arch() { - /** - * The running binary is 64-bit, so the OS is clearly 64-bit. - */ - if (process.arch === "x64") { - return "x64"; - } - - /** - * All recent versions of Mac OS are 64-bit. - */ - if (process.platform === "darwin") { - return "x64"; - } - - /** - * On Windows, the most reliable way to detect a 64-bit OS from within a 32-bit - * app is based on the presence of a WOW64 file: %SystemRoot%\SysNative. - * See: https://twitter.com/feross/status/776949077208510464 - */ - if (process.platform === "win32") { - var useEnv = false; - try { - useEnv = !!( - process.env.SYSTEMROOT && fs.statSync(process.env.SYSTEMROOT) - ); - } catch (err) {} - - var sysRoot = useEnv ? process.env.SYSTEMROOT : "C:\\Windows"; - - // If %SystemRoot%\SysNative exists, we are in a WOW64 FS Redirected application. - var isWOW64 = false; - try { - isWOW64 = !!fs.statSync(path.join(sysRoot, "sysnative")); - } catch (err) {} - - return isWOW64 ? "x64" : "x86"; - } - - /** - * On Linux, use the `getconf` command to get the architecture. - */ - if (process.platform === "linux") { - var output = cp.execSync("getconf LONG_BIT", { encoding: "utf8" }); - return output === "64\n" ? "x64" : "x86"; - } - - /** - * If none of the above, assume the architecture is 32-bit. - */ - return "x86"; -} - -// implementing it b/c we don't want to depend on fs.copyFileSync which appears -// only in node@8.x -function copyFileSync(sourcePath, destPath) { - var data; - try { - data = fs.readFileSync(sourcePath); - } catch (e) { - console.log("Couldn't find " + sourcePath + " trying with .exe"); - data = fs.readFileSync(sourcePath + ".exe"); - sourcePath = sourcePath + ".exe"; - } - var stat = fs.statSync(sourcePath); - fs.writeFileSync(destPath, data); - fs.chmodSync(destPath, stat.mode); -} - -var copyPlatformBinaries = (platformPath) => { - var platformBuildPath = path.join(__dirname, "platform-" + platformPath); - - foldersToCopy.forEach((folderPath) => { - var sourcePath = path.join(platformBuildPath, folderPath); - var destPath = path.join(__dirname, folderPath); - - copyRecursive(sourcePath, destPath); - }); - - binariesToCopy.forEach((binaryPath) => { - var sourcePath = path.join(platformBuildPath, binaryPath); - var destPath = path.join(__dirname, binaryPath); - if (fs.existsSync(destPath)) { - fs.unlinkSync(destPath); - } - copyFileSync(sourcePath, destPath); - fs.chmodSync(destPath, 0777); - }); -}; - -if (!fs.existsSync("_export")) { - try { - fs.mkdirSync("_export"); - } catch (e) { - console.log("Could not create _export folder"); - } - - switch (platform) { - case "win32": - if (arch() !== "x64") { - console.warn("error: x86 is currently not supported on Windows"); - process.exit(1); - } - - copyPlatformBinaries("windows-x64"); - break; - case "linux": - case "darwin": - copyPlatformBinaries(platform); - break; - default: - console.warn("error: no release built for the " + platform + " platform"); - process.exit(1); - } - - require("./esyInstallRelease"); -} else { - console.log( - "✨ It looks like the binary was already linked (maybe you are using node_modules cache). Skipping the installation step." - ); -} diff --git a/.ci/utils/create-docs.yml b/.ci/utils/create-docs.yml deleted file mode 100644 index 90d00971..00000000 --- a/.ci/utils/create-docs.yml +++ /dev/null @@ -1,16 +0,0 @@ -# These steps are only run on Linux -steps: - - script: "esy doc" - displayName: "Build docs" - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - - - script: echo '##vso[task.setvariable variable=docsPath]'$(esy echo '#{self.target_dir}/default/_doc/_html') - displayName: "Save docsPath in variable" - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - - - task: PublishBuildArtifacts@1 - displayName: "Publish Artifact: Docs" - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - inputs: - PathtoPublish: $(docsPath) - ArtifactName: Docs diff --git a/.ci/utils/publish-build-cache.yml b/.ci/utils/publish-build-cache.yml deleted file mode 100644 index 2b58b63c..00000000 --- a/.ci/utils/publish-build-cache.yml +++ /dev/null @@ -1,37 +0,0 @@ -# Steps for publishing project cache - -steps: - - bash: 'mkdir -p $(Build.StagingDirectory)' - condition: and(succeeded(), eq(variables['Build.Reason'], 'IndividualCI')) - displayName: '[Cache][Publish] Create cache directory' - - # continueOnError because on windows it has a permission denied error but the - # export succeeds. - - script: "esy export-dependencies" - continueOnError: true - condition: and(succeeded(), eq(variables['Build.Reason'], 'IndividualCI')) - displayName: "esy export-dependencies" - - - bash: pwd && ls _export/* && mv _export '$(Build.StagingDirectory)' && ls '$(Build.StagingDirectory)/_export/' - condition: and(succeeded(), eq(variables['Build.Reason'], 'IndividualCI')) - displayName: '[Cache][Publish] move export to staging dir' - - # - bash: cd $ESY__CACHE_INSTALL_PATH && tar -czf $(Build.StagingDirectory)/esy-cache.tar . - # workingDirectory: '' - # condition: and(succeeded(), eq(variables['Build.Reason'], 'IndividualCI')) - # displayName: '[Cache][Publish] Tar esy cache directory' - - # - bash: 'cd $(ESY__NPM_ROOT) && tar -czf $(Build.StagingDirectory)/npm-cache.tar .' - # condition: and(succeeded(), eq(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch'])) - # displayName: '[Cache][Publish] Tar npm cache directory' - - - task: PublishBuildArtifacts@1 - displayName: '[Cache][Publish] Upload tarball' - condition: and(succeeded(), eq(variables['Build.Reason'], 'IndividualCI')) - # TODO: The CI Build caches are pulled down by the last successful buildID - # for the target branch. - inputs: - pathToPublish: '$(Build.StagingDirectory)' - artifactName: 'cache-$(Agent.OS)-install-$(esy__ci_cache_version)' - parallel: true - parallelCount: 8 diff --git a/.ci/utils/restore-build-cache.yml b/.ci/utils/restore-build-cache.yml deleted file mode 100644 index da57eae7..00000000 --- a/.ci/utils/restore-build-cache.yml +++ /dev/null @@ -1,99 +0,0 @@ -# Steps for restoring project cache - -steps: - - bash: 'mkdir -p $(Build.StagingDirectory)' - condition: and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch']))) - displayName: '[Cache][Publish] Create cache directory' - - # TODO: This can be done in parallel with installing node, and esy - # (which would save a bunch of time on windows) - - task: Bash@3 - condition: and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch']))) - displayName: '[Cache][Restore] Restoring build cache using REST API' - continueOnError: true - inputs: - targetType: 'inline' # Optional. Options: filePath, inline - script: | - # If org name is reasonml then REST_BASE will be: https://dev.azure.com/reasonml/ - REST_BASE="${SYSTEM_TEAMFOUNDATIONCOLLECTIONURI}" - PROJ="$SYSTEM_TEAMPROJECT" - ART_NAME="cache-${AGENT_OS}-install-${ESY__CI_CACHE_VERSION}" - fetchLatestBuild() { - PREFIX="branchName=refs%2Fheads%2F" - BRANCH=${PREFIX}${SYSTEM_PULLREQUEST_TARGETBRANCH} - FILTER='deletedFilter=excludeDeleted&statusFilter=completed&resultFilter=succeeded' - LATEST='queryOrder=finishTimeDescending&$top=1' - REST_BUILDS="$REST_BASE/$PROJ/_apis/build/builds?${FILTER}&${BRANCH}&${LATEST}&api-version=4.1" - echo "Rest call for builds: $REST_BUILDS" - REST_BUILDS_RESP=$(curl "$REST_BUILDS") - if [[ $REST_BUILDS_RESP =~ (\"web\":\{\"href\":\")([^\"]*) ]]; then LATEST_BUILD_PAGE="${BASH_REMATCH[2]}"; else LATEST_BUILD_PAGE=""; fi - if [[ $REST_BUILDS_RESP =~ (\"badge\":\{\"href\":\")([^\"]*) ]]; then LATEST_BUILD_BADGE="${BASH_REMATCH[2]}"; else LATEST_BUILD_BADGE=""; fi - if [[ $REST_BUILDS_RESP =~ (\"id\":)([^,]*) ]]; then LATEST_BUILD_ID="${BASH_REMATCH[2]}"; else LATEST_BUILD_ID=""; fi - } - fetchLatestBuild - fetchArtifactURL() { - REST_ART="$REST_BASE/$PROJ/_apis/build/builds/$LATEST_BUILD_ID/artifacts?artifactName=$ART_NAME&api-version=4.1" - echo "Rest call for artifacts: $REST_ART" - if [[ $(curl $REST_ART) =~ (downloadUrl\":\")([^\"]*) ]]; then LATEST_ART_URL="${BASH_REMATCH[2]}"; else LATEST_ART_URL=""; fi - } - downloadArtifactAndContinue() { - if [ -z "$LATEST_ART_URL" ] - then - echo "No latest artifact for merge-target branch found at URL $REST_ART" - else - curl "$LATEST_ART_URL" > "${BUILD_STAGINGDIRECTORY}/$ART_NAME.zip" - PROJECT_DIR=$PWD - cd $BUILD_STAGINGDIRECTORY - unzip "$ART_NAME.zip" - echo "Using Dependency cache for buildID: $LATEST_BUILD_ID" - echo "Build log for build that produced the cache: $LATEST_BUILD_PAGE" - echo "Build badge for build that produced the cache: $LATEST_BUILD_BADGE" - echo "Build artifact from build that produced the cache: $LATEST_ART_URL" - echo "Restoring build cache into:" - mkdir -p $ESY__CACHE_INSTALL_PATH - echo $ESY__CACHE_INSTALL_PATH - echo "##vso[task.setvariable variable=esy_export_dir_to_import]${BUILD_STAGINGDIRECTORY}/${ART_NAME}/_export" - if [[ -d ${ART_NAME}/_export ]]; then - mv ${ART_NAME}/_export ${PROJECT_DIR}/_import - cd $PROJECT_DIR - echo "Cached builds to import" - ls ./_import - # import-build allows importing before esy install runs. - # unlike import-dependencies - echo "Going to import builds from ${PROJECT_DIR}/_import in the next build step" - if [ "$AGENT_OS" == "Windows_NT" ]; then - echo "Trying the cmd" - # Have to import the builds one by one in windows because - # there is some file locking issue in esy on windows only when - # importing many in parallel. - cd ./_import - FILES=* - for f in $FILES - do - echo "Trying to import $f" - esy.cmd import-build "$f" - done - cd $PROJECT_DIR - else - esy import-dependencies "_import" - fi - else - echo "No _export directory to import from build cache" - echo "Here's the contents of build cache:" - find ${BUILD_STAGINGDIRECTORY} - fi - fi - } - fetchArtifactURL - downloadArtifactAndContinue - - - bash: 'rm -rf _import' - continueOnError: true - condition: and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch']))) - displayName: 'Remove import directory' - - - bash: 'rm -rf *' - continueOnError: true - workingDirectory: '$(Build.StagingDirectory)' - condition: and(eq(variables['Build.Reason'], 'PullRequest'), and(succeeded(), ne(variables['Build.SourceBranch'], variables['System.PullRequest.TargetBranch']))) - displayName: '[Cache][Restore] Clean up staging dir' diff --git a/.ci/utils/use-esy.yml b/.ci/utils/use-esy.yml deleted file mode 100644 index 1f133f86..00000000 --- a/.ci/utils/use-esy.yml +++ /dev/null @@ -1,5 +0,0 @@ -# steps to install esy globally - -steps: - - script: "npm install -g esy" - displayName: "install esy" diff --git a/.ci/utils/use-node.yml b/.ci/utils/use-node.yml deleted file mode 100644 index ad0d2814..00000000 --- a/.ci/utils/use-node.yml +++ /dev/null @@ -1,7 +0,0 @@ -# steps to use node on agent - -steps: - - task: NodeTool@0 - displayName: "Use Node 20.x" - inputs: - versionSpec: 20.x diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 72287983..196106f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,91 +1,155 @@ name: Build - -on: [push] +on: + pull_request: + push: + branches: + - main + tags: + - "v*.*.*" jobs: build: runs-on: ${{ matrix.os }} + continue-on-error: true strategy: matrix: - os: [ubuntu-20.04, macos-latest] + include: + - os: ubuntu-latest + artifact: "linux-x64" + ocaml-compiler: "ocaml-variants.5.2.0+options,ocaml-option-flambda" + triplet: "x64-linux" + - os: windows-latest + artifact: "windows-x64" + ocaml-compiler: "ocaml-variants.5.2.0+options,ocaml-option-flambda" + triplet: "x64-mingw-static" + - os: macos-latest + artifact: "macos-arm64" + ocaml-compiler: "ocaml-variants.5.2.0+options,ocaml-option-flambda" + triplet: "arm64-osx" + - os: macos-13 + artifact: "macos-x64" + ocaml-compiler: "ocaml-variants.5.2.0+options,ocaml-option-flambda" + triplet: "x64-osx" + defaults: + run: + shell: bash steps: - - uses: actions/setup-node@v2 + - uses: actions/checkout@v2.3.2 + + - if: runner.os == 'Windows' + run: | + rm -rf $(which pkg-config) + choco install pkgconfiglite + + - run: gcc --version + + - uses: lukka/get-cmake@latest + - name: Setup anew (or from cache) vcpkg (and does not build any package) + uses: lukka/run-vcpkg@v11 + env: + VCPKG_DEFAULT_TRIPLET: ${{ matrix.triplet }} + VCPKG_DEFAULT_HOST_TRIPLET: ${{ matrix.triplet }} with: - node-version: '18' - - uses: actions/checkout@v2.3.2 + runVcpkgInstall: true + runVcpkgFormatString: '["install", "--clean-after-build"]' + + - name: Set pkg-config path on Unix + if: runner.os != 'Windows' + run: | + ls "${GITHUB_WORKSPACE}/vcpkg_installed/${VCPKG_DEFAULT_TRIPLET}/lib/pkgconfig" + echo "PKG_CONFIG_PATH=${GITHUB_WORKSPACE}/vcpkg_installed/${VCPKG_DEFAULT_TRIPLET}/lib/pkgconfig" >> $GITHUB_ENV + + - name: Set pkg-config path on Unix + shell: bash + if: runner.os == 'Windows' + run: | + echo "PKG_CONFIG_PATH=${GITHUB_WORKSPACE}\vcpkg_installed\\${VCPKG_DEFAULT_TRIPLET}\lib\pkgconfig" >> $GITHUB_ENV + + - shell: bash + run: | + echo "LIBPNG_CFLAGS=$(pkg-config --cflags libspng_static)" >> $GITHUB_ENV + echo "LIBPNG_LIBS=$(pkg-config --libs libspng_static)" >> $GITHUB_ENV + echo "LIBTIFF_LIBS=$(pkg-config --libs libtiff-4)" >> $GITHUB_ENV + echo "LIBTIFF_CFLAGS=$(pkg-config --cflags libtiff-4)" >> $GITHUB_ENV + echo "LIBJPEG_CFLAGS=$(pkg-config --cflags libturbojpeg)" >> $GITHUB_ENV + echo "LIBJPEG_LIBS=$(pkg-config --libs libturbojpeg)" >> $GITHUB_ENV + + - uses: ocaml/setup-ocaml@v3 + with: + ocaml-compiler: ${{ matrix.ocaml-compiler }} + opam-disable-sandboxing: true + dune-cache: false + + - run: opam exec -- opam install . --deps-only --with-test + - run: opam exec -- dune build --verbose + + - name: Give binary system-specific name + run: cp "_build/default/bin/ODiffBin.exe" "odiff-${{ matrix.artifact }}.exe" - - name: Install esy - run: npm install -g esy + - run: opam exec -- dune exec ODiffBin -- --version + - run: opam exec -- dune runtest - - name: Try to restore install cache - uses: actions/cache@v2.1.1 + - if: failure() + uses: actions/upload-artifact@v4 with: - path: ~/.esy/source - key: source-${{ hashFiles('**/index.json') }} + name: test_images + path: _build/default/test/test_images - - name: Install - run: esy install + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + cache-dependency-path: 'package-lock.json' + + - name: Install node deps + run: npm ci + - name: e2e test + run: npm test - - name: Print esy cache - uses: actions/github-script@v3.0.0 - id: print_esy_cache + - if: always() + uses: actions/upload-artifact@v4 with: - script: | - const path = require('path') - const scriptPath = path.resolve('.github/workflows/print_esy_cache.js') - require(scriptPath)(core) - - - name: Try to restore build cache - id: deps-cache - uses: actions/cache@v2.1.1 + if-no-files-found: ignore + name: odiff-${{ matrix.artifact }}.exe + path: odiff-${{ matrix.artifact }}.exe + retention-days: 14 + + publish: + name: Publish release + needs: [build] + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Download built binaries + uses: actions/download-artifact@v4 with: - path: ${{ steps.print_esy_cache.outputs.esy_cache }} - key: build-odiff-${{ matrix.os }}-${{ hashFiles('**/index.json') }} - restore-keys: build-odiff-${{ matrix.os }} - - # Here we use a low-level command. In real situation you don't have to - # but it is useful in CI as it split the log in GitHub UI. - # You can see at a glance if it is your project or your deps that break. - # - # We also use --release flag to build less. - # This allow us to spot syntax/type error more quickly. - - name: Build release dependencies - - if: steps.deps-cache.outputs.cache-hit != 'true' - run: esy build-dependencies --release - - - name: Build project in release - run: esy build --release - - # Now that our core project build let builds others deps - - name: Build dependencies - if: steps.deps-cache.outputs.cache-hit != 'true' - run: esy build-dependencies - - - name: Build project - run: esy build - - - name: Ensure readme is up-to-date - run: node scripts/process-readme.js verify - - # Here we cleanup if we have a cache fail because we use restore-keys. - # restore-keys take the old store even on cache fail. - # So, we have deps we don't care anymore. We prune them. - - name: Clean global store - if: steps.deps-cache.outputs.cache-hit != 'true' - run: esy cleanup . - - - name: Test - run: esy test - - - name: Test node bindings - run: esy test-js - - - name: Test ts declaration - run: esy test-ts - - - uses: actions/upload-artifact@v2 - if: failure() + pattern: odiff-*.exe + merge-multiple: true + path: npm_package/raw_binaries + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + always-auth: true + registry-url: 'https://registry.npmjs.org' + cache-dependency-path: 'package-lock.json' + + - name: Publish npm package + working-directory: npm_package + run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Create github release + uses: softprops/action-gh-release@v1 with: - name: orange_diff_generated - path: test/test-images + files: "npm_package/raw_binaries/*" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + diff --git a/.github/workflows/print_esy_cache.js b/.github/workflows/print_esy_cache.js deleted file mode 100644 index a1498fe5..00000000 --- a/.github/workflows/print_esy_cache.js +++ /dev/null @@ -1,14 +0,0 @@ -const fs = require("fs"); -const os = require("os"); -const path = require("path"); - -const ESY_FOLDER = process.env.ESY__PREFIX - ? process.env.ESY__PREFIX - : path.join(os.homedir(), ".esy"); -const esy3 = fs - .readdirSync(ESY_FOLDER) - .filter(name => name.length > 0 && name[0] === "3") - .sort() - .pop(); -module.exports = exports = core => - core.setOutput('esy_cache', path.join(ESY_FOLDER, esy3, "i")); diff --git a/.gitignore b/.gitignore index 8b76fc71..635d699e 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ _release *.install images/diff.png test/test-images/_*.png - +vcpkg_installed/* +_opam/ diff --git a/.spr.yml b/.spr.yml new file mode 100644 index 00000000..bf333885 --- /dev/null +++ b/.spr.yml @@ -0,0 +1,12 @@ +githubRepoOwner: dmtrKovalenko +githubRepoName: odiff +githubHost: github.com +githubRemote: origin/chore +githubBranch: esy-nightly +requireChecks: true +requireApproval: true +mergeMethod: rebase +mergeQueue: false +forceFetchTags: false +showPrTitlesInStack: false +branchPushIndividually: false diff --git a/.vscode/settings.json b/.vscode/settings.json index df2cf8c2..e454acb4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,10 +2,6 @@ "cSpell.words": [ "Odiff" ], - "ocaml.sandbox": { - "kind": "esy", - "root": "${workspaceFolder:odiff}" - }, "files.associations": { "*.prisma": "graphql", "__bit_reference": "c", @@ -30,4 +26,4 @@ "ios": "c", "cstddef": "c" } -} \ No newline at end of file +} diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 4b11a5e4..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Build npm release - -variables: - esy__ci_cache_version: v3 # this is available to all jobs in env as $ESY__CI_CACHE_VERSION or in azure config as $(esy__ci_cache_version) - -trigger: - - main - - global - - release-* - - releases-* - - feature-* - -jobs: - - template: .ci/build-platform.yml - parameters: - platform: Linux - vmImage: ubuntu-20.04 - - - template: .ci/build-platform.yml - parameters: - platform: MacOS - vmImage: macOS-latest - - # Need windows-2019 to do esy import/export-dependencies - # which assumes you have bsdtar (tar.exe) in your system - # otherwise it will end up using the esy-bash tar which doesn't - # understand drives like D:/ (thinks it's an scp path). - - template: .ci/build-platform.yml - parameters: - platform: Windows_x64 - vmImage: windows-latest - - # This job is kept here as we want to have the platform names in the same file - - job: Release - displayName: Release - dependsOn: - - Linux - - MacOS - - Windows_x64 - pool: - vmImage: macOS-latest - demands: node.js - steps: - - template: .ci/cross-release.yml diff --git a/bin/Main.ml b/bin/Main.ml index 59bf290f..2fc64e26 100644 --- a/bin/Main.ml +++ b/bin/Main.ml @@ -7,6 +7,10 @@ let getIOModule filename = | ".jpg" | ".jpeg" -> (module ODiffIO.Jpg.IO : ImageIO) | ".bmp" -> (module ODiffIO.Bmp.IO : ImageIO) | ".tiff" -> (module ODiffIO.Tiff.IO : ImageIO) + | "" -> + failwith + ("Usage: " ^ Sys.argv.(0) + ^ " ") | f -> failwith ("This format is not supported: " ^ f) type 'output diffResult = { exitCode : int; diff : 'output option } diff --git a/bin/ODiffBin.ml b/bin/ODiffBin.ml index f497176d..c364346c 100644 --- a/bin/ODiffBin.ml +++ b/bin/ODiffBin.ml @@ -74,22 +74,31 @@ let ignoreRegions = \"x1:y1-x2:y2\". Multiple regions are separated with a ','." let cmd = + const Main.main $ base $ comp $ diffPath $ threshold $ diffMask $ failOnLayout + $ diffColor $ parsableOutput $ antialiasing $ ignoreRegions $ diffLines + $ disableGcOptimizations + +let version = + match Build_info.V1.version () with + | None -> "dev" + | Some v -> Build_info.V1.Version.to_string v + +let info = let man = [ `S Manpage.s_description; `P "$(tname) is the fastest pixel-by-pixel image comparison tool."; - `P "Supported image types: .png, .jpg, .jpeg, .bitmap"; + `P "Supported image types: .png, .jpg, .jpeg, .tiff"; ] in - ( const Main.main $ base $ comp $ diffPath $ threshold $ diffMask - $ failOnLayout $ diffColor $ parsableOutput $ antialiasing $ ignoreRegions - $ diffLines $ disableGcOptimizations, - Term.info "odiff" ~version:"3.0.1" ~doc:"Find difference between 2 images." - ~exits: - (Term.exit_info 0 ~doc:"on image match" - :: Term.exit_info 21 ~doc:"on layout diff when --fail-on-layout" - :: Term.exit_info 22 ~doc:"on image pixel difference" - :: Term.default_error_exits) - ~man ) - -let () = Term.eval cmd |> Term.exit + Cmd.info "odiff" ~version ~doc:"Find difference between 2 images." + ~exits: + [ + Cmd.Exit.info 0 ~doc:"on image match"; + Cmd.Exit.info 21 ~doc:"on layout diff when --fail-on-layout"; + Cmd.Exit.info 22 ~doc:"on image pixel difference"; + ] + ~man + +let cmd = Cmd.v info cmd +let () = Cmd.eval cmd |> Stdlib.exit diff --git a/bin/Print.ml b/bin/Print.ml index 239c37c9..aec5e3fe 100644 --- a/bin/Print.ml +++ b/bin/Print.ml @@ -1,32 +1,18 @@ open Odiff.Diff +let esc = "\027[" +let red = esc ^ "31m" +let green = esc ^ "32m" +let bold = esc ^ "1m" +let dim = esc ^ "2m" +let reset = esc ^ "0m" + let printDiffResult makeParsableOutput result = (match (result, makeParsableOutput) with - | Layout, true -> "" + | Layout, true -> () | Layout, false -> - Pastel.createElement - ~children: - [ - (Pastel.createElement ~color:Red ~bold:true ~children:[ "Failure!" ] - () [@JSX]); - " Images have different layout.\n"; - ] - () [@JSX] - | Pixel (_output, diffCount, _percentage, _lines), true when diffCount == 0 -> - "" - | Pixel (_output, diffCount, _percentage, _lines), false when diffCount == 0 - -> - Pastel.createElement - ~children: - [ - (Pastel.createElement ~color:Green ~bold:true - ~children:[ "Success!" ] () [@JSX]); - " Images are equal.\n"; - (Pastel.createElement ~dim:true - ~children:[ "No diff output created." ] - () [@JSX]); - ] - () [@JSX] + Format.printf "%s%sFailure!%s Images have different layout.\n" red bold + reset | Pixel (_output, diffCount, diffPercentage, stack), true when not (Stack.is_empty stack) -> Int.to_string diffCount ^ ";" @@ -34,20 +20,19 @@ let printDiffResult makeParsableOutput result = ^ ";" ^ (stack |> Stack.fold (fun acc line -> (line |> Int.to_string) ^ "," ^ acc) "") + |> print_endline | Pixel (_output, diffCount, diffPercentage, _), true -> Int.to_string diffCount ^ ";" ^ Float.to_string diffPercentage + |> print_endline + | Pixel (_output, diffCount, _percentage, _lines), false when diffCount == 0 + -> + Format.printf + "%s%sSuccess!%s Images are equal.\n%sNo diff output created.%s\n" green + bold reset dim reset | Pixel (_output, diffCount, diffPercentage, _lines), false -> - Pastel.createElement - ~children: - [ - (Pastel.createElement ~color:Red ~bold:true ~children:[ "Failure!" ] - () [@JSX]); - " Images are different.\n"; - "Different pixels: "; - (Pastel.createElement ~color:Red ~bold:true - ~children:[ Printf.sprintf "%i (%f%%)" diffCount diffPercentage ] - () [@JSX]); - ] - () [@JSX]) - |> Console.log; + Format.printf + "%s%sFailure!%s Images are different.\n\ + Different pixels: %s%s%i (%f%%)%s\n" + red bold reset red bold diffCount diffPercentage reset); + result diff --git a/bin/dune b/bin/dune index 78ee6dc9..5c8dfeec 100644 --- a/bin/dune +++ b/bin/dune @@ -4,4 +4,12 @@ (package odiff) (flags (:standard -w -27)) - (libraries console.lib pastel.lib odiff-core odiff-io cmdliner)) + (libraries odiff-core odiff-io cmdliner dune-build-info)) + +(env + (dev + (flags (:standard -w +42)) + (ocamlopt_flags (:standard -S))) + (release + (ocamlopt_flags (:standard -no-g -O3 -rounds 5 -unbox-closures -inline 200 -inline-max-depth 7 -unbox-closures-factor 50)))) + diff --git a/dune-project b/dune-project index 162f4838..880abdf0 100644 --- a/dune-project +++ b/dune-project @@ -1,4 +1,5 @@ (lang dune 2.8) +(name odiff) ; Warning: The flag set for these foreign sources overrides the `:standard` set ; of flags. However the flags in this standard set are still added to the @@ -18,9 +19,13 @@ (package (name odiff) + (version 0.3.1-rc.3) + (synopsis "CLI for comparing images pixel-by-pixel") (depends odiff-core odiff-io + (dune-build-info (>= 3.16.0)) + (cmdliner (= 1.3.0)) ) ) @@ -29,8 +34,7 @@ (synopsis "Pixel-by-pixel image difference algorithm") (depends dune - (reason (and (>= 3.6.0) (< 4.0.0))) - (ocaml (and (>= 4.10.0) (< 5.0.0))) + (ocaml (= 5.2.0)) ) ) @@ -39,9 +43,17 @@ (synopsis "Ready to use io for odiff-core") (depends dune - conf-libpng odiff-core - (reason (and (>= 3.6.0) (< 4.0.0))) - (ocaml (and (>= 4.10.0) (< 4.11.0))) + (ocaml (= 5.2.0)) + (dune-configurator (>= 3.16.0)) ) ) + +(package + (name odiff-tests) + (synopsis "Internal package for integration tests of odiff") + (depends + (alcotest (= 1.8.0)) + odiff-core + ) +) diff --git a/esy.lock/.gitattributes b/esy.lock/.gitattributes deleted file mode 100644 index e0b4e26c..00000000 --- a/esy.lock/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ - -# Set eol to LF so files aren't converted to CRLF-eol on Windows. -* text eol=lf linguist-generated diff --git a/esy.lock/.gitignore b/esy.lock/.gitignore deleted file mode 100644 index a221be22..00000000 --- a/esy.lock/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ - -# Reset any possible .gitignore, we want all esy.lock to be un-ignored. -!* diff --git a/esy.lock/index.json b/esy.lock/index.json deleted file mode 100644 index 794a02fa..00000000 --- a/esy.lock/index.json +++ /dev/null @@ -1,5755 +0,0 @@ -{ - "checksum": "48f8d023a1fcb81ab8e7da19d976f1d4", - "root": "odiff@link-dev:./package.json", - "node": { - "yargs-parser@20.2.9@d41d8cd9": { - "id": "yargs-parser@20.2.9@d41d8cd9", - "name": "yargs-parser", - "version": "20.2.9", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#sha1:2eb7dc3b0289718fc295f362753845c41a0c94ee" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "yargs@16.2.0@d41d8cd9": { - "id": "yargs@16.2.0@d41d8cd9", - "name": "yargs", - "version": "16.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#sha1:1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - ] - }, - "overrides": [], - "dependencies": [ - "yargs-parser@20.2.9@d41d8cd9", "y18n@5.0.8@d41d8cd9", - "string-width@4.2.3@d41d8cd9", "require-directory@2.1.1@d41d8cd9", - "get-caller-file@2.0.5@d41d8cd9", "escalade@3.1.2@d41d8cd9", - "cliui@7.0.4@d41d8cd9" - ], - "devDependencies": [] - }, - "yallist@4.0.0@d41d8cd9": { - "id": "yallist@4.0.0@d41d8cd9", - "name": "yallist", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#sha1:9bb92790d9c0effec63be73519e11a35019a3a72" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "y18n@5.0.8@d41d8cd9": { - "id": "y18n@5.0.8@d41d8cd9", - "name": "y18n", - "version": "5.0.8", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#sha1:7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "xdg-basedir@4.0.0@d41d8cd9": { - "id": "xdg-basedir@4.0.0@d41d8cd9", - "name": "xdg-basedir", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz#sha1:4bc8d9984403696225ef83a1573cbbcb4e79db13" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "write-file-atomic@3.0.3@d41d8cd9": { - "id": "write-file-atomic@3.0.3@d41d8cd9", - "name": "write-file-atomic", - "version": "3.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#sha1:56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - ] - }, - "overrides": [], - "dependencies": [ - "typedarray-to-buffer@3.1.5@d41d8cd9", "signal-exit@3.0.7@d41d8cd9", - "is-typedarray@1.0.0@d41d8cd9", "imurmurhash@0.1.4@d41d8cd9" - ], - "devDependencies": [] - }, - "wrappy@1.0.2@d41d8cd9": { - "id": "wrappy@1.0.2@d41d8cd9", - "name": "wrappy", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#sha1:b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "wrap-ansi@7.0.0@d41d8cd9": { - "id": "wrap-ansi@7.0.0@d41d8cd9", - "name": "wrap-ansi", - "version": "7.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#sha1:67e145cff510a6a6984bdf1152911d69d2eb9e43" - ] - }, - "overrides": [], - "dependencies": [ - "strip-ansi@6.0.1@d41d8cd9", "string-width@4.2.3@d41d8cd9", - "ansi-styles@4.3.0@d41d8cd9" - ], - "devDependencies": [] - }, - "widest-line@3.1.0@d41d8cd9": { - "id": "widest-line@3.1.0@d41d8cd9", - "name": "widest-line", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz#sha1:8292333bbf66cb45ff0de1603b136b7ae1496eca" - ] - }, - "overrides": [], - "dependencies": [ "string-width@4.2.3@d41d8cd9" ], - "devDependencies": [] - }, - "well-known-symbols@2.0.0@d41d8cd9": { - "id": "well-known-symbols@2.0.0@d41d8cd9", - "name": "well-known-symbols", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz#sha1:e9c7c07dbd132b7b84212c8174391ec1f9871ba5" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "wcwidth@1.0.1@d41d8cd9": { - "id": "wcwidth@1.0.1@d41d8cd9", - "name": "wcwidth", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#sha1:f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - ] - }, - "overrides": [], - "dependencies": [ "defaults@1.0.4@d41d8cd9" ], - "devDependencies": [] - }, - "validate-npm-package-license@3.0.4@d41d8cd9": { - "id": "validate-npm-package-license@3.0.4@d41d8cd9", - "name": "validate-npm-package-license", - "version": "3.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#sha1:fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - ] - }, - "overrides": [], - "dependencies": [ - "spdx-expression-parse@3.0.1@d41d8cd9", "spdx-correct@3.2.0@d41d8cd9" - ], - "devDependencies": [] - }, - "util-deprecate@1.0.2@d41d8cd9": { - "id": "util-deprecate@1.0.2@d41d8cd9", - "name": "util-deprecate", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#sha1:450d4dc9fa70de732762fbd2d4a28981419a0ccf" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "url-parse-lax@3.0.0@d41d8cd9": { - "id": "url-parse-lax@3.0.0@d41d8cd9", - "name": "url-parse-lax", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#sha1:16b5cafc07dbe3676c1b1999177823d6503acb0c" - ] - }, - "overrides": [], - "dependencies": [ "prepend-http@2.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "update-notifier@5.1.0@d41d8cd9": { - "id": "update-notifier@5.1.0@d41d8cd9", - "name": "update-notifier", - "version": "5.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz#sha1:4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - ] - }, - "overrides": [], - "dependencies": [ - "xdg-basedir@4.0.0@d41d8cd9", "semver-diff@3.1.1@d41d8cd9", - "semver@7.6.0@d41d8cd9", "pupa@2.1.1@d41d8cd9", - "latest-version@5.1.0@d41d8cd9", "is-yarn-global@0.3.0@d41d8cd9", - "is-npm@5.0.0@d41d8cd9", "is-installed-globally@0.4.0@d41d8cd9", - "is-ci@2.0.0@d41d8cd9", "import-lazy@2.1.0@d41d8cd9", - "has-yarn@2.1.0@d41d8cd9", "configstore@5.0.1@d41d8cd9", - "chalk@4.1.2@d41d8cd9", "boxen@5.1.2@d41d8cd9" - ], - "devDependencies": [] - }, - "unique-string@2.0.0@d41d8cd9": { - "id": "unique-string@2.0.0@d41d8cd9", - "name": "unique-string", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz#sha1:39c6451f81afb2749de2b233e3f7c5e8843bd89d" - ] - }, - "overrides": [], - "dependencies": [ "crypto-random-string@2.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "typescript@4.9.5@d41d8cd9": { - "id": "typescript@4.9.5@d41d8cd9", - "name": "typescript", - "version": "4.9.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz#sha1:095979f9bcc0d09da324d58d03ce8f8374cbe65a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "typedarray-to-buffer@3.1.5@d41d8cd9": { - "id": "typedarray-to-buffer@3.1.5@d41d8cd9", - "name": "typedarray-to-buffer", - "version": "3.1.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#sha1:a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - ] - }, - "overrides": [], - "dependencies": [ "is-typedarray@1.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "type-fest@0.20.2@d41d8cd9": { - "id": "type-fest@0.20.2@d41d8cd9", - "name": "type-fest", - "version": "0.20.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#sha1:1bf207f4b28f91583666cb5fbd327887301cd5f4" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "type-fest@0.13.1@d41d8cd9": { - "id": "type-fest@0.13.1@d41d8cd9", - "name": "type-fest", - "version": "0.13.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz#sha1:0172cb5bce80b0bd542ea348db50c7e21834d934" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "type-fest@0.6.0@d41d8cd9": { - "id": "type-fest@0.6.0@d41d8cd9", - "name": "type-fest", - "version": "0.6.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#sha1:8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "type-fest@0.3.1@d41d8cd9": { - "id": "type-fest@0.3.1@d41d8cd9", - "name": "type-fest", - "version": "0.3.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#sha1:63d00d204e059474fe5e1b7c011112bbd1dc29e1" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "trim-off-newlines@1.0.3@d41d8cd9": { - "id": "trim-off-newlines@1.0.3@d41d8cd9", - "name": "trim-off-newlines", - "version": "1.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz#sha1:8df24847fcb821b0ab27d58ab6efec9f2fe961a1" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "to-regex-range@5.0.1@d41d8cd9": { - "id": "to-regex-range@5.0.1@d41d8cd9", - "name": "to-regex-range", - "version": "5.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#sha1:1648c44aae7c8d988a326018ed72f5b4dd0392e4" - ] - }, - "overrides": [], - "dependencies": [ "is-number@7.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "to-readable-stream@1.0.0@d41d8cd9": { - "id": "to-readable-stream@1.0.0@d41d8cd9", - "name": "to-readable-stream", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz#sha1:ce0aa0c2f3df6adf852efb404a783e77c0475771" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "time-zone@1.0.0@d41d8cd9": { - "id": "time-zone@1.0.0@d41d8cd9", - "name": "time-zone", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz#sha1:99c5bf55958966af6d06d83bdf3800dc82faec5d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "temp-dir@2.0.0@d41d8cd9": { - "id": "temp-dir@2.0.0@d41d8cd9", - "name": "temp-dir", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz#sha1:bde92b05bdfeb1516e804c9c00ad45177f31321e" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "supports-preserve-symlinks-flag@1.0.0@d41d8cd9": { - "id": "supports-preserve-symlinks-flag@1.0.0@d41d8cd9", - "name": "supports-preserve-symlinks-flag", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#sha1:6eda4bd344a3c94aea376d4cc31bc77311039e09" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "supports-color@7.2.0@d41d8cd9": { - "id": "supports-color@7.2.0@d41d8cd9", - "name": "supports-color", - "version": "7.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#sha1:1b7dcdcb32b8138801b3e478ba6a51caa89648da" - ] - }, - "overrides": [], - "dependencies": [ "has-flag@4.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "supports-color@5.5.0@d41d8cd9": { - "id": "supports-color@5.5.0@d41d8cd9", - "name": "supports-color", - "version": "5.5.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#sha1:e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - ] - }, - "overrides": [], - "dependencies": [ "has-flag@3.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "supertap@2.0.0@d41d8cd9": { - "id": "supertap@2.0.0@d41d8cd9", - "name": "supertap", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz#sha1:8b587d6e14b8e885fa5183a9c45abf429feb9f7f" - ] - }, - "overrides": [], - "dependencies": [ - "strip-ansi@6.0.1@d41d8cd9", "serialize-error@7.0.1@d41d8cd9", - "js-yaml@3.14.1@d41d8cd9", "indent-string@4.0.0@d41d8cd9", - "arrify@2.0.1@d41d8cd9" - ], - "devDependencies": [] - }, - "strip-json-comments@2.0.1@d41d8cd9": { - "id": "strip-json-comments@2.0.1@d41d8cd9", - "name": "strip-json-comments", - "version": "2.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#sha1:3c531942e908c2697c0ec344858c286c7ca0a60a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "strip-bom@3.0.0@d41d8cd9": { - "id": "strip-bom@3.0.0@d41d8cd9", - "name": "strip-bom", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#sha1:2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "strip-ansi@6.0.1@d41d8cd9": { - "id": "strip-ansi@6.0.1@d41d8cd9", - "name": "strip-ansi", - "version": "6.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#sha1:9e26c63d30f53443e9489495b2105d37b67a85d9" - ] - }, - "overrides": [], - "dependencies": [ "ansi-regex@5.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "string_decoder@1.3.0@d41d8cd9": { - "id": "string_decoder@1.3.0@d41d8cd9", - "name": "string_decoder", - "version": "1.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#sha1:42f114594a46cf1a8e30b0a84f56c78c3edac21e" - ] - }, - "overrides": [], - "dependencies": [ "safe-buffer@5.2.1@d41d8cd9" ], - "devDependencies": [] - }, - "string-width@4.2.3@d41d8cd9": { - "id": "string-width@4.2.3@d41d8cd9", - "name": "string-width", - "version": "4.2.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#sha1:269c7117d27b05ad2e536830a8ec895ef9c6d010" - ] - }, - "overrides": [], - "dependencies": [ - "strip-ansi@6.0.1@d41d8cd9", - "is-fullwidth-code-point@3.0.0@d41d8cd9", - "emoji-regex@8.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "stack-utils@2.0.6@d41d8cd9": { - "id": "stack-utils@2.0.6@d41d8cd9", - "name": "stack-utils", - "version": "2.0.6", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz#sha1:aaf0748169c02fc33c8232abccf933f54a1cc34f" - ] - }, - "overrides": [], - "dependencies": [ "escape-string-regexp@2.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "sprintf-js@1.0.3@d41d8cd9": { - "id": "sprintf-js@1.0.3@d41d8cd9", - "name": "sprintf-js", - "version": "1.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#sha1:04e6926f662895354f3dd015203633b857297e2c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "spdx-license-ids@3.0.17@d41d8cd9": { - "id": "spdx-license-ids@3.0.17@d41d8cd9", - "name": "spdx-license-ids", - "version": "3.0.17", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#sha1:887da8aa73218e51a1d917502d79863161a93f9c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "spdx-expression-parse@3.0.1@d41d8cd9": { - "id": "spdx-expression-parse@3.0.1@d41d8cd9", - "name": "spdx-expression-parse", - "version": "3.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#sha1:cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - ] - }, - "overrides": [], - "dependencies": [ - "spdx-license-ids@3.0.17@d41d8cd9", "spdx-exceptions@2.5.0@d41d8cd9" - ], - "devDependencies": [] - }, - "spdx-exceptions@2.5.0@d41d8cd9": { - "id": "spdx-exceptions@2.5.0@d41d8cd9", - "name": "spdx-exceptions", - "version": "2.5.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#sha1:5d607d27fc806f66d7b64a766650fa890f04ed66" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "spdx-correct@3.2.0@d41d8cd9": { - "id": "spdx-correct@3.2.0@d41d8cd9", - "name": "spdx-correct", - "version": "3.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz#sha1:4f5ab0668f0059e34f9c00dce331784a12de4e9c" - ] - }, - "overrides": [], - "dependencies": [ - "spdx-license-ids@3.0.17@d41d8cd9", - "spdx-expression-parse@3.0.1@d41d8cd9" - ], - "devDependencies": [] - }, - "source-map-support@0.5.21@d41d8cd9": { - "id": "source-map-support@0.5.21@d41d8cd9", - "name": "source-map-support", - "version": "0.5.21", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#sha1:04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - ] - }, - "overrides": [], - "dependencies": [ - "source-map@0.6.1@d41d8cd9", "buffer-from@1.1.2@d41d8cd9" - ], - "devDependencies": [] - }, - "source-map@0.6.1@d41d8cd9": { - "id": "source-map@0.6.1@d41d8cd9", - "name": "source-map", - "version": "0.6.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#sha1:74722af32e9614e9c287a8d0bbde48b5e2f1a263" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "slice-ansi@3.0.0@d41d8cd9": { - "id": "slice-ansi@3.0.0@d41d8cd9", - "name": "slice-ansi", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz#sha1:31ddc10930a1b7e0b67b08c96c2f49b77a789787" - ] - }, - "overrides": [], - "dependencies": [ - "is-fullwidth-code-point@3.0.0@d41d8cd9", - "astral-regex@2.0.0@d41d8cd9", "ansi-styles@4.3.0@d41d8cd9" - ], - "devDependencies": [] - }, - "slash@3.0.0@d41d8cd9": { - "id": "slash@3.0.0@d41d8cd9", - "name": "slash", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#sha1:6539be870c165adbd5240220dbe361f1bc4d4634" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "signal-exit@3.0.7@d41d8cd9": { - "id": "signal-exit@3.0.7@d41d8cd9", - "name": "signal-exit", - "version": "3.0.7", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#sha1:a9a1767f8af84155114eaabd73f99273c8f59ad9" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "serialize-error@7.0.1@d41d8cd9": { - "id": "serialize-error@7.0.1@d41d8cd9", - "name": "serialize-error", - "version": "7.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz#sha1:f1360b0447f61ffb483ec4157c737fab7d778e18" - ] - }, - "overrides": [], - "dependencies": [ "type-fest@0.13.1@d41d8cd9" ], - "devDependencies": [] - }, - "semver-diff@3.1.1@d41d8cd9": { - "id": "semver-diff@3.1.1@d41d8cd9", - "name": "semver-diff", - "version": "3.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz#sha1:05f77ce59f325e00e2706afd67bb506ddb1ca32b" - ] - }, - "overrides": [], - "dependencies": [ "semver@6.3.1@d41d8cd9" ], - "devDependencies": [] - }, - "semver@7.6.0@d41d8cd9": { - "id": "semver@7.6.0@d41d8cd9", - "name": "semver", - "version": "7.6.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/semver/-/semver-7.6.0.tgz#sha1:1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - ] - }, - "overrides": [], - "dependencies": [ "lru-cache@6.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "semver@6.3.1@d41d8cd9": { - "id": "semver@6.3.1@d41d8cd9", - "name": "semver", - "version": "6.3.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#sha1:556d2ef8689146e46dcea4bfdd095f3434dffcb4" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "semver@5.7.2@d41d8cd9": { - "id": "semver@5.7.2@d41d8cd9", - "name": "semver", - "version": "5.7.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#sha1:48d55db737c3287cd4835e17fa13feace1c41ef8" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "safe-buffer@5.2.1@d41d8cd9": { - "id": "safe-buffer@5.2.1@d41d8cd9", - "name": "safe-buffer", - "version": "5.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#sha1:1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "run-parallel@1.2.0@d41d8cd9": { - "id": "run-parallel@1.2.0@d41d8cd9", - "name": "run-parallel", - "version": "1.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#sha1:66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - ] - }, - "overrides": [], - "dependencies": [ "queue-microtask@1.2.3@d41d8cd9" ], - "devDependencies": [] - }, - "rimraf@3.0.2@d41d8cd9": { - "id": "rimraf@3.0.2@d41d8cd9", - "name": "rimraf", - "version": "3.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#sha1:f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - ] - }, - "overrides": [], - "dependencies": [ "glob@7.2.3@d41d8cd9" ], - "devDependencies": [] - }, - "reusify@1.0.4@d41d8cd9": { - "id": "reusify@1.0.4@d41d8cd9", - "name": "reusify", - "version": "1.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#sha1:90da382b1e126efc02146e90845a88db12925d76" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "restore-cursor@3.1.0@d41d8cd9": { - "id": "restore-cursor@3.1.0@d41d8cd9", - "name": "restore-cursor", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#sha1:39f67c54b3a7a58cea5236d95cf0034239631f7e" - ] - }, - "overrides": [], - "dependencies": [ - "signal-exit@3.0.7@d41d8cd9", "onetime@5.1.2@d41d8cd9" - ], - "devDependencies": [] - }, - "responselike@1.0.2@d41d8cd9": { - "id": "responselike@1.0.2@d41d8cd9", - "name": "responselike", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#sha1:918720ef3b631c5642be068f15ade5a46f4ba1e7" - ] - }, - "overrides": [], - "dependencies": [ "lowercase-keys@1.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "resolve-from@5.0.0@d41d8cd9": { - "id": "resolve-from@5.0.0@d41d8cd9", - "name": "resolve-from", - "version": "5.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#sha1:c35225843df8f776df21c57557bc087e9dfdfc69" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "resolve-cwd@3.0.0@d41d8cd9": { - "id": "resolve-cwd@3.0.0@d41d8cd9", - "name": "resolve-cwd", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz#sha1:0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - ] - }, - "overrides": [], - "dependencies": [ "resolve-from@5.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "resolve@1.22.8@d41d8cd9": { - "id": "resolve@1.22.8@d41d8cd9", - "name": "resolve", - "version": "1.22.8", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz#sha1:b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - ] - }, - "overrides": [], - "dependencies": [ - "supports-preserve-symlinks-flag@1.0.0@d41d8cd9", - "path-parse@1.0.7@d41d8cd9", "is-core-module@2.13.1@d41d8cd9" - ], - "devDependencies": [] - }, - "require-directory@2.1.1@d41d8cd9": { - "id": "require-directory@2.1.1@d41d8cd9", - "name": "require-directory", - "version": "2.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#sha1:8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "registry-url@5.1.0@d41d8cd9": { - "id": "registry-url@5.1.0@d41d8cd9", - "name": "registry-url", - "version": "5.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz#sha1:e98334b50d5434b81136b44ec638d9c2009c5009" - ] - }, - "overrides": [], - "dependencies": [ "rc@1.2.8@d41d8cd9" ], - "devDependencies": [] - }, - "registry-auth-token@4.2.2@d41d8cd9": { - "id": "registry-auth-token@4.2.2@d41d8cd9", - "name": "registry-auth-token", - "version": "4.2.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz#sha1:f02d49c3668884612ca031419491a13539e21fac" - ] - }, - "overrides": [], - "dependencies": [ "rc@1.2.8@d41d8cd9" ], - "devDependencies": [] - }, - "refmterr@github:reasonml/reason-native:refmterr.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9": { - "id": "refmterr@github:reasonml/reason-native:refmterr.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "name": "refmterr", - "version": "github:reasonml/reason-native:refmterr.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "source": { - "type": "install", - "source": [ - "github:reasonml/reason-native:refmterr.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@reason-native/console@github:reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@opam/reason@opam:3.9.0@2a7c0e6f", "@opam/re@opam:1.11.0@87deb463", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/atdgen@opam:2.12.0@205ff7f3" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/reason@opam:3.9.0@2a7c0e6f" - ] - }, - "readdirp@3.6.0@d41d8cd9": { - "id": "readdirp@3.6.0@d41d8cd9", - "name": "readdirp", - "version": "3.6.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#sha1:74a370bd857116e245b29cc97340cd431a02a6c7" - ] - }, - "overrides": [], - "dependencies": [ "picomatch@2.3.1@d41d8cd9" ], - "devDependencies": [] - }, - "readable-stream@3.6.2@d41d8cd9": { - "id": "readable-stream@3.6.2@d41d8cd9", - "name": "readable-stream", - "version": "3.6.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#sha1:56a9b36ea965c00c5a93ef31eb111a0f11056967" - ] - }, - "overrides": [], - "dependencies": [ - "util-deprecate@1.0.2@d41d8cd9", "string_decoder@1.3.0@d41d8cd9", - "inherits@2.0.4@d41d8cd9" - ], - "devDependencies": [] - }, - "read-pkg@5.2.0@d41d8cd9": { - "id": "read-pkg@5.2.0@d41d8cd9", - "name": "read-pkg", - "version": "5.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#sha1:7bf295438ca5a33e56cd30e053b34ee7250c93cc" - ] - }, - "overrides": [], - "dependencies": [ - "type-fest@0.6.0@d41d8cd9", "parse-json@5.2.0@d41d8cd9", - "normalize-package-data@2.5.0@d41d8cd9", - "@types/normalize-package-data@2.4.4@d41d8cd9" - ], - "devDependencies": [] - }, - "rc@1.2.8@d41d8cd9": { - "id": "rc@1.2.8@d41d8cd9", - "name": "rc", - "version": "1.2.8", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#sha1:cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - ] - }, - "overrides": [], - "dependencies": [ - "strip-json-comments@2.0.1@d41d8cd9", "minimist@1.2.8@d41d8cd9", - "ini@1.3.8@d41d8cd9", "deep-extend@0.6.0@d41d8cd9" - ], - "devDependencies": [] - }, - "queue-microtask@1.2.3@d41d8cd9": { - "id": "queue-microtask@1.2.3@d41d8cd9", - "name": "queue-microtask", - "version": "1.2.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#sha1:4929228bbc724dfac43e0efb058caf7b6cfb6243" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "pupa@2.1.1@d41d8cd9": { - "id": "pupa@2.1.1@d41d8cd9", - "name": "pupa", - "version": "2.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz#sha1:f5e8fd4afc2c5d97828faa523549ed8744a20d62" - ] - }, - "overrides": [], - "dependencies": [ "escape-goat@2.1.1@d41d8cd9" ], - "devDependencies": [] - }, - "pump@3.0.0@d41d8cd9": { - "id": "pump@3.0.0@d41d8cd9", - "name": "pump", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#sha1:b4a2116815bde2f4e1ea602354e8c75565107a64" - ] - }, - "overrides": [], - "dependencies": [ - "once@1.4.0@d41d8cd9", "end-of-stream@1.4.4@d41d8cd9" - ], - "devDependencies": [] - }, - "pretty-ms@7.0.1@d41d8cd9": { - "id": "pretty-ms@7.0.1@d41d8cd9", - "name": "pretty-ms", - "version": "7.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz#sha1:7d903eaab281f7d8e03c66f867e239dc32fb73e8" - ] - }, - "overrides": [], - "dependencies": [ "parse-ms@2.1.0@d41d8cd9" ], - "devDependencies": [] - }, - "prepend-http@2.0.0@d41d8cd9": { - "id": "prepend-http@2.0.0@d41d8cd9", - "name": "prepend-http", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#sha1:e92434bfa5ea8c19f41cdfd401d741a3c819d897" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "plur@4.0.0@d41d8cd9": { - "id": "plur@4.0.0@d41d8cd9", - "name": "plur", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/plur/-/plur-4.0.0.tgz#sha1:729aedb08f452645fe8c58ef115bf16b0a73ef84" - ] - }, - "overrides": [], - "dependencies": [ "irregular-plurals@3.5.0@d41d8cd9" ], - "devDependencies": [] - }, - "pkg-dir@4.2.0@d41d8cd9": { - "id": "pkg-dir@4.2.0@d41d8cd9", - "name": "pkg-dir", - "version": "4.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#sha1:f099133df7ede422e81d1d8448270eeb3e4261f3" - ] - }, - "overrides": [], - "dependencies": [ "find-up@4.1.0@d41d8cd9" ], - "devDependencies": [] - }, - "pkg-conf@3.1.0@d41d8cd9": { - "id": "pkg-conf@3.1.0@d41d8cd9", - "name": "pkg-conf", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz#sha1:d9f9c75ea1bae0e77938cde045b276dac7cc69ae" - ] - }, - "overrides": [], - "dependencies": [ - "load-json-file@5.3.0@d41d8cd9", "find-up@3.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "pify@4.0.1@d41d8cd9": { - "id": "pify@4.0.1@d41d8cd9", - "name": "pify", - "version": "4.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#sha1:4b2cd25c50d598735c50292224fd8c6df41e3231" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "picomatch@2.3.1@d41d8cd9": { - "id": "picomatch@2.3.1@d41d8cd9", - "name": "picomatch", - "version": "2.3.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#sha1:3ba3833733646d9d3e4995946c1365a67fb07a42" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "picocolors@1.0.0@d41d8cd9": { - "id": "picocolors@1.0.0@d41d8cd9", - "name": "picocolors", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#sha1:cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "path-type@4.0.0@d41d8cd9": { - "id": "path-type@4.0.0@d41d8cd9", - "name": "path-type", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#sha1:84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "path-parse@1.0.7@d41d8cd9": { - "id": "path-parse@1.0.7@d41d8cd9", - "name": "path-parse", - "version": "1.0.7", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#sha1:fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "path-is-absolute@1.0.1@d41d8cd9": { - "id": "path-is-absolute@1.0.1@d41d8cd9", - "name": "path-is-absolute", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#sha1:174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "path-exists@4.0.0@d41d8cd9": { - "id": "path-exists@4.0.0@d41d8cd9", - "name": "path-exists", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#sha1:513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "path-exists@3.0.0@d41d8cd9": { - "id": "path-exists@3.0.0@d41d8cd9", - "name": "path-exists", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#sha1:ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "parse-ms@2.1.0@d41d8cd9": { - "id": "parse-ms@2.1.0@d41d8cd9", - "name": "parse-ms", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz#sha1:348565a753d4391fa524029956b172cb7753097d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "parse-json@5.2.0@d41d8cd9": { - "id": "parse-json@5.2.0@d41d8cd9", - "name": "parse-json", - "version": "5.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#sha1:c76fc66dee54231c962b22bcc8a72cf2f99753cd" - ] - }, - "overrides": [], - "dependencies": [ - "lines-and-columns@1.2.4@d41d8cd9", - "json-parse-even-better-errors@2.3.1@d41d8cd9", - "error-ex@1.3.2@d41d8cd9", "@babel/code-frame@7.24.2@d41d8cd9" - ], - "devDependencies": [] - }, - "parse-json@4.0.0@d41d8cd9": { - "id": "parse-json@4.0.0@d41d8cd9", - "name": "parse-json", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#sha1:be35f5425be1f7f6c747184f98a788cb99477ee0" - ] - }, - "overrides": [], - "dependencies": [ - "json-parse-better-errors@1.0.2@d41d8cd9", "error-ex@1.3.2@d41d8cd9" - ], - "devDependencies": [] - }, - "package-json@6.5.0@d41d8cd9": { - "id": "package-json@6.5.0@d41d8cd9", - "name": "package-json", - "version": "6.5.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz#sha1:6feedaca35e75725876d0b0e64974697fed145b0" - ] - }, - "overrides": [], - "dependencies": [ - "semver@6.3.1@d41d8cd9", "registry-url@5.1.0@d41d8cd9", - "registry-auth-token@4.2.2@d41d8cd9", "got@9.6.0@d41d8cd9" - ], - "devDependencies": [] - }, - "p-try@2.2.0@d41d8cd9": { - "id": "p-try@2.2.0@d41d8cd9", - "name": "p-try", - "version": "2.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#sha1:cb2868540e313d61de58fafbe35ce9004d5540e6" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "p-timeout@3.2.0@d41d8cd9": { - "id": "p-timeout@3.2.0@d41d8cd9", - "name": "p-timeout", - "version": "3.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz#sha1:c7e17abc971d2a7962ef83626b35d635acf23dfe" - ] - }, - "overrides": [], - "dependencies": [ "p-finally@1.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "p-map@4.0.0@d41d8cd9": { - "id": "p-map@4.0.0@d41d8cd9", - "name": "p-map", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#sha1:bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - ] - }, - "overrides": [], - "dependencies": [ "aggregate-error@3.1.0@d41d8cd9" ], - "devDependencies": [] - }, - "p-locate@4.1.0@d41d8cd9": { - "id": "p-locate@4.1.0@d41d8cd9", - "name": "p-locate", - "version": "4.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#sha1:a3428bb7088b3a60292f66919278b7c297ad4f07" - ] - }, - "overrides": [], - "dependencies": [ "p-limit@2.3.0@d41d8cd9" ], - "devDependencies": [] - }, - "p-locate@3.0.0@d41d8cd9": { - "id": "p-locate@3.0.0@d41d8cd9", - "name": "p-locate", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#sha1:322d69a05c0264b25997d9f40cd8a891ab0064a4" - ] - }, - "overrides": [], - "dependencies": [ "p-limit@2.3.0@d41d8cd9" ], - "devDependencies": [] - }, - "p-limit@2.3.0@d41d8cd9": { - "id": "p-limit@2.3.0@d41d8cd9", - "name": "p-limit", - "version": "2.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#sha1:3dd33c647a214fdfffd835933eb086da0dc21db1" - ] - }, - "overrides": [], - "dependencies": [ "p-try@2.2.0@d41d8cd9" ], - "devDependencies": [] - }, - "p-finally@1.0.0@d41d8cd9": { - "id": "p-finally@1.0.0@d41d8cd9", - "name": "p-finally", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#sha1:3fbcfb15b899a44123b34b6dcc18b724336a2cae" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "p-event@4.2.0@d41d8cd9": { - "id": "p-event@4.2.0@d41d8cd9", - "name": "p-event", - "version": "4.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz#sha1:af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - ] - }, - "overrides": [], - "dependencies": [ "p-timeout@3.2.0@d41d8cd9" ], - "devDependencies": [] - }, - "p-defer@1.0.0@d41d8cd9": { - "id": "p-defer@1.0.0@d41d8cd9", - "name": "p-defer", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#sha1:9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "p-cancelable@1.1.0@d41d8cd9": { - "id": "p-cancelable@1.1.0@d41d8cd9", - "name": "p-cancelable", - "version": "1.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#sha1:d078d15a3af409220c886f1d9a0ca2e441ab26cc" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ora@5.4.1@d41d8cd9": { - "id": "ora@5.4.1@d41d8cd9", - "name": "ora", - "version": "5.4.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ora/-/ora-5.4.1.tgz#sha1:1b2678426af4ac4a509008e5e4ac9e9959db9e18" - ] - }, - "overrides": [], - "dependencies": [ - "wcwidth@1.0.1@d41d8cd9", "strip-ansi@6.0.1@d41d8cd9", - "log-symbols@4.1.0@d41d8cd9", "is-unicode-supported@0.1.0@d41d8cd9", - "is-interactive@1.0.0@d41d8cd9", "cli-spinners@2.9.2@d41d8cd9", - "cli-cursor@3.1.0@d41d8cd9", "chalk@4.1.2@d41d8cd9", - "bl@4.1.0@d41d8cd9" - ], - "devDependencies": [] - }, - "onetime@5.1.2@d41d8cd9": { - "id": "onetime@5.1.2@d41d8cd9", - "name": "onetime", - "version": "5.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#sha1:d0e96ebb56b07476df1dd9c4806e5237985ca45e" - ] - }, - "overrides": [], - "dependencies": [ "mimic-fn@2.1.0@d41d8cd9" ], - "devDependencies": [] - }, - "once@1.4.0@d41d8cd9": { - "id": "once@1.4.0@d41d8cd9", - "name": "once", - "version": "1.4.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/once/-/once-1.4.0.tgz#sha1:583b1aa775961d4b113ac17d9c50baef9dd76bd1" - ] - }, - "overrides": [], - "dependencies": [ "wrappy@1.0.2@d41d8cd9" ], - "devDependencies": [] - }, - "odiff@link-dev:./package.json": { - "id": "odiff@link-dev:./package.json", - "name": "odiff", - "version": "link-dev:./package.json", - "source": { - "type": "link-dev", - "path": ".", - "manifest": "package.json" - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "esy-zlib@github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f@d41d8cd9", - "esy-libtiff@github:esy-packages/esy-libtiff#83b1f5c8f76ad42acb5c008f537b5b3f0902c066@d41d8cd9", - "esy-libspng@archive:https://github.com/randy408/libspng/archive/refs/tags/v0.7.4.tar.gz#sha256:47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487@a7ae8ae9", - "esy-libjpeg@github:eWert-Online/esy-libjpeg#76b287add2732e191a2c4a1c14a34bab63c4f74d@d41d8cd9", - "@reason-native/rely@github:reasonml/reason-native:rely.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@reason-native/console@github:reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@opam/reason@opam:3.9.0@2a7c0e6f", - "@opam/dune-configurator@opam:3.15.0@9e147c2c", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/cmdliner@opam:1.0.4@93208aac" - ], - "devDependencies": [ - "typescript@4.9.5@d41d8cd9", - "refmterr@github:reasonml/reason-native:refmterr.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "ava@3.15.0@d41d8cd9", "@opam/ocaml-lsp-server@opam:1.17.0@12f65153", - "@opam/merlin@opam:4.14-414@6c5e0b0b" - ] - }, - "ocaml@4.14.1000@d41d8cd9": { - "id": "ocaml@4.14.1000@d41d8cd9", - "name": "ocaml", - "version": "4.14.1000", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ocaml/-/ocaml-4.14.1000.tgz#sha1:e38fabe6bcf42774bd2340e67a8803ee7cebdb9f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "normalize-url@4.5.1@d41d8cd9": { - "id": "normalize-url@4.5.1@d41d8cd9", - "name": "normalize-url", - "version": "4.5.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz#sha1:0dd90cf1288ee1d1313b87081c9a5932ee48518a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "normalize-path@3.0.0@d41d8cd9": { - "id": "normalize-path@3.0.0@d41d8cd9", - "name": "normalize-path", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#sha1:0dcd69ff23a1c9b11fd0978316644a0388216a65" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "normalize-package-data@2.5.0@d41d8cd9": { - "id": "normalize-package-data@2.5.0@d41d8cd9", - "name": "normalize-package-data", - "version": "2.5.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#sha1:e66db1838b200c1dfc233225d12cb36520e234a8" - ] - }, - "overrides": [], - "dependencies": [ - "validate-npm-package-license@3.0.4@d41d8cd9", - "semver@5.7.2@d41d8cd9", "resolve@1.22.8@d41d8cd9", - "hosted-git-info@2.8.9@d41d8cd9" - ], - "devDependencies": [] - }, - "ms@2.1.3@d41d8cd9": { - "id": "ms@2.1.3@d41d8cd9", - "name": "ms", - "version": "2.1.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#sha1:574c8138ce1d2b5861f0b44579dbadd60c6615b2" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ms@2.1.2@d41d8cd9": { - "id": "ms@2.1.2@d41d8cd9", - "name": "ms", - "version": "2.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#sha1:d09d1f357b443f493382a8eb3ccd183872ae6009" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "minimist@1.2.8@d41d8cd9": { - "id": "minimist@1.2.8@d41d8cd9", - "name": "minimist", - "version": "1.2.8", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#sha1:c1a464e7693302e082a075cee0c057741ac4772c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "minimatch@3.1.2@d41d8cd9": { - "id": "minimatch@3.1.2@d41d8cd9", - "name": "minimatch", - "version": "3.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#sha1:19cd194bfd3e428f049a70817c038d89ab4be35b" - ] - }, - "overrides": [], - "dependencies": [ "brace-expansion@1.1.11@d41d8cd9" ], - "devDependencies": [] - }, - "mimic-response@1.0.1@d41d8cd9": { - "id": "mimic-response@1.0.1@d41d8cd9", - "name": "mimic-response", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#sha1:4923538878eef42063cb8a3e3b0798781487ab1b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "mimic-fn@3.1.0@d41d8cd9": { - "id": "mimic-fn@3.1.0@d41d8cd9", - "name": "mimic-fn", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz#sha1:65755145bbf3e36954b949c16450427451d5ca74" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "mimic-fn@2.1.0@d41d8cd9": { - "id": "mimic-fn@2.1.0@d41d8cd9", - "name": "mimic-fn", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#sha1:7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "micromatch@4.0.5@d41d8cd9": { - "id": "micromatch@4.0.5@d41d8cd9", - "name": "micromatch", - "version": "4.0.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#sha1:bc8999a7cbbf77cdc89f132f6e467051b49090c6" - ] - }, - "overrides": [], - "dependencies": [ "picomatch@2.3.1@d41d8cd9", "braces@3.0.2@d41d8cd9" ], - "devDependencies": [] - }, - "merge2@1.4.1@d41d8cd9": { - "id": "merge2@1.4.1@d41d8cd9", - "name": "merge2", - "version": "1.4.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#sha1:4368892f885e907455a6fd7dc55c0c9d404990ae" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "mem@8.1.1@d41d8cd9": { - "id": "mem@8.1.1@d41d8cd9", - "name": "mem", - "version": "8.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/mem/-/mem-8.1.1.tgz#sha1:cf118b357c65ab7b7e0817bdf00c8062297c0122" - ] - }, - "overrides": [], - "dependencies": [ - "mimic-fn@3.1.0@d41d8cd9", "map-age-cleaner@0.1.3@d41d8cd9" - ], - "devDependencies": [] - }, - "md5-hex@3.0.1@d41d8cd9": { - "id": "md5-hex@3.0.1@d41d8cd9", - "name": "md5-hex", - "version": "3.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz#sha1:be3741b510591434b2784d79e556eefc2c9a8e5c" - ] - }, - "overrides": [], - "dependencies": [ "blueimp-md5@2.19.0@d41d8cd9" ], - "devDependencies": [] - }, - "matcher@3.0.0@d41d8cd9": { - "id": "matcher@3.0.0@d41d8cd9", - "name": "matcher", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz#sha1:bd9060f4c5b70aa8041ccc6f80368760994f30ca" - ] - }, - "overrides": [], - "dependencies": [ "escape-string-regexp@4.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "map-age-cleaner@0.1.3@d41d8cd9": { - "id": "map-age-cleaner@0.1.3@d41d8cd9", - "name": "map-age-cleaner", - "version": "0.1.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#sha1:7d583a7306434c055fe474b0f45078e6e1b4b92a" - ] - }, - "overrides": [], - "dependencies": [ "p-defer@1.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "make-dir@3.1.0@d41d8cd9": { - "id": "make-dir@3.1.0@d41d8cd9", - "name": "make-dir", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#sha1:415e967046b3a7f1d185277d84aa58203726a13f" - ] - }, - "overrides": [], - "dependencies": [ "semver@6.3.1@d41d8cd9" ], - "devDependencies": [] - }, - "lru-cache@6.0.0@d41d8cd9": { - "id": "lru-cache@6.0.0@d41d8cd9", - "name": "lru-cache", - "version": "6.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#sha1:6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - ] - }, - "overrides": [], - "dependencies": [ "yallist@4.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "lowercase-keys@2.0.0@d41d8cd9": { - "id": "lowercase-keys@2.0.0@d41d8cd9", - "name": "lowercase-keys", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#sha1:2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "lowercase-keys@1.0.1@d41d8cd9": { - "id": "lowercase-keys@1.0.1@d41d8cd9", - "name": "lowercase-keys", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#sha1:6f9e30b47084d971a7c820ff15a6c5167b74c26f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "log-symbols@4.1.0@d41d8cd9": { - "id": "log-symbols@4.1.0@d41d8cd9", - "name": "log-symbols", - "version": "4.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz#sha1:3fbdbb95b4683ac9fc785111e792e558d4abd503" - ] - }, - "overrides": [], - "dependencies": [ - "is-unicode-supported@0.1.0@d41d8cd9", "chalk@4.1.2@d41d8cd9" - ], - "devDependencies": [] - }, - "lodash@4.17.21@d41d8cd9": { - "id": "lodash@4.17.21@d41d8cd9", - "name": "lodash", - "version": "4.17.21", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#sha1:679591c564c3bffaae8454cf0b3df370c3d6911c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "locate-path@5.0.0@d41d8cd9": { - "id": "locate-path@5.0.0@d41d8cd9", - "name": "locate-path", - "version": "5.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#sha1:1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - ] - }, - "overrides": [], - "dependencies": [ "p-locate@4.1.0@d41d8cd9" ], - "devDependencies": [] - }, - "locate-path@3.0.0@d41d8cd9": { - "id": "locate-path@3.0.0@d41d8cd9", - "name": "locate-path", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#sha1:dbec3b3ab759758071b58fe59fc41871af21400e" - ] - }, - "overrides": [], - "dependencies": [ - "path-exists@3.0.0@d41d8cd9", "p-locate@3.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "load-json-file@5.3.0@d41d8cd9": { - "id": "load-json-file@5.3.0@d41d8cd9", - "name": "load-json-file", - "version": "5.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz#sha1:4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - ] - }, - "overrides": [], - "dependencies": [ - "type-fest@0.3.1@d41d8cd9", "strip-bom@3.0.0@d41d8cd9", - "pify@4.0.1@d41d8cd9", "parse-json@4.0.0@d41d8cd9", - "graceful-fs@4.2.11@d41d8cd9" - ], - "devDependencies": [] - }, - "lines-and-columns@1.2.4@d41d8cd9": { - "id": "lines-and-columns@1.2.4@d41d8cd9", - "name": "lines-and-columns", - "version": "1.2.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#sha1:eca284f75d2965079309dc0ad9255abb2ebc1632" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "latest-version@5.1.0@d41d8cd9": { - "id": "latest-version@5.1.0@d41d8cd9", - "name": "latest-version", - "version": "5.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz#sha1:119dfe908fe38d15dfa43ecd13fa12ec8832face" - ] - }, - "overrides": [], - "dependencies": [ "package-json@6.5.0@d41d8cd9" ], - "devDependencies": [] - }, - "keyv@3.1.0@d41d8cd9": { - "id": "keyv@3.1.0@d41d8cd9", - "name": "keyv", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz#sha1:ecc228486f69991e49e9476485a5be1e8fc5c4d9" - ] - }, - "overrides": [], - "dependencies": [ "json-buffer@3.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "json-parse-even-better-errors@2.3.1@d41d8cd9": { - "id": "json-parse-even-better-errors@2.3.1@d41d8cd9", - "name": "json-parse-even-better-errors", - "version": "2.3.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#sha1:7c47805a94319928e05777405dc12e1f7a4ee02d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "json-parse-better-errors@1.0.2@d41d8cd9": { - "id": "json-parse-better-errors@1.0.2@d41d8cd9", - "name": "json-parse-better-errors", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#sha1:bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "json-buffer@3.0.0@d41d8cd9": { - "id": "json-buffer@3.0.0@d41d8cd9", - "name": "json-buffer", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#sha1:5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "js-yaml@3.14.1@d41d8cd9": { - "id": "js-yaml@3.14.1@d41d8cd9", - "name": "js-yaml", - "version": "3.14.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#sha1:dae812fdb3825fa306609a8717383c50c36a0537" - ] - }, - "overrides": [], - "dependencies": [ - "esprima@4.0.1@d41d8cd9", "argparse@1.0.10@d41d8cd9" - ], - "devDependencies": [] - }, - "js-tokens@4.0.0@d41d8cd9": { - "id": "js-tokens@4.0.0@d41d8cd9", - "name": "js-tokens", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#sha1:19203fb59991df98e3a287050d4647cdeaf32499" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "js-string-escape@1.0.1@d41d8cd9": { - "id": "js-string-escape@1.0.1@d41d8cd9", - "name": "js-string-escape", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz#sha1:e2625badbc0d67c7533e9edc1068c587ae4137ef" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-yarn-global@0.3.0@d41d8cd9": { - "id": "is-yarn-global@0.3.0@d41d8cd9", - "name": "is-yarn-global", - "version": "0.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#sha1:d502d3382590ea3004893746754c89139973e232" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-unicode-supported@0.1.0@d41d8cd9": { - "id": "is-unicode-supported@0.1.0@d41d8cd9", - "name": "is-unicode-supported", - "version": "0.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#sha1:3f26c76a809593b52bfa2ecb5710ed2779b522a7" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-typedarray@1.0.0@d41d8cd9": { - "id": "is-typedarray@1.0.0@d41d8cd9", - "name": "is-typedarray", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#sha1:e479c80858df0c1b11ddda6940f96011fcda4a9a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-promise@4.0.0@d41d8cd9": { - "id": "is-promise@4.0.0@d41d8cd9", - "name": "is-promise", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#sha1:42ff9f84206c1991d26debf520dd5c01042dd2f3" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-plain-object@5.0.0@d41d8cd9": { - "id": "is-plain-object@5.0.0@d41d8cd9", - "name": "is-plain-object", - "version": "5.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#sha1:4427f50ab3429e9025ea7d52e9043a9ef4159344" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-path-inside@3.0.3@d41d8cd9": { - "id": "is-path-inside@3.0.3@d41d8cd9", - "name": "is-path-inside", - "version": "3.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#sha1:d231362e53a07ff2b0e0ea7fed049161ffd16283" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-path-cwd@2.2.0@d41d8cd9": { - "id": "is-path-cwd@2.2.0@d41d8cd9", - "name": "is-path-cwd", - "version": "2.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz#sha1:67d43b82664a7b5191fd9119127eb300048a9fdb" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-obj@2.0.0@d41d8cd9": { - "id": "is-obj@2.0.0@d41d8cd9", - "name": "is-obj", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#sha1:473fb05d973705e3fd9620545018ca8e22ef4982" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-number@7.0.0@d41d8cd9": { - "id": "is-number@7.0.0@d41d8cd9", - "name": "is-number", - "version": "7.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#sha1:7535345b896734d5f80c4d06c50955527a14f12b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-npm@5.0.0@d41d8cd9": { - "id": "is-npm@5.0.0@d41d8cd9", - "name": "is-npm", - "version": "5.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz#sha1:43e8d65cc56e1b67f8d47262cf667099193f45a8" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-interactive@1.0.0@d41d8cd9": { - "id": "is-interactive@1.0.0@d41d8cd9", - "name": "is-interactive", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz#sha1:cea6e6ae5c870a7b0a0004070b7b587e0252912e" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-installed-globally@0.4.0@d41d8cd9": { - "id": "is-installed-globally@0.4.0@d41d8cd9", - "name": "is-installed-globally", - "version": "0.4.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz#sha1:9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - ] - }, - "overrides": [], - "dependencies": [ - "is-path-inside@3.0.3@d41d8cd9", "global-dirs@3.0.1@d41d8cd9" - ], - "devDependencies": [] - }, - "is-glob@4.0.3@d41d8cd9": { - "id": "is-glob@4.0.3@d41d8cd9", - "name": "is-glob", - "version": "4.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#sha1:64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - ] - }, - "overrides": [], - "dependencies": [ "is-extglob@2.1.1@d41d8cd9" ], - "devDependencies": [] - }, - "is-fullwidth-code-point@3.0.0@d41d8cd9": { - "id": "is-fullwidth-code-point@3.0.0@d41d8cd9", - "name": "is-fullwidth-code-point", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#sha1:f116f8064fe90b3f7844a38997c0b75051269f1d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-extglob@2.1.1@d41d8cd9": { - "id": "is-extglob@2.1.1@d41d8cd9", - "name": "is-extglob", - "version": "2.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#sha1:a88c02535791f02ed37c76a1b9ea9773c833f8c2" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-error@2.2.2@d41d8cd9": { - "id": "is-error@2.2.2@d41d8cd9", - "name": "is-error", - "version": "2.2.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz#sha1:c10ade187b3c93510c5470a5567833ee25649843" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "is-core-module@2.13.1@d41d8cd9": { - "id": "is-core-module@2.13.1@d41d8cd9", - "name": "is-core-module", - "version": "2.13.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz#sha1:ad0d7532c6fea9da1ebdc82742d74525c6273384" - ] - }, - "overrides": [], - "dependencies": [ "hasown@2.0.2@d41d8cd9" ], - "devDependencies": [] - }, - "is-ci@2.0.0@d41d8cd9": { - "id": "is-ci@2.0.0@d41d8cd9", - "name": "is-ci", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#sha1:6bc6334181810e04b5c22b3d589fdca55026404c" - ] - }, - "overrides": [], - "dependencies": [ "ci-info@2.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "is-binary-path@2.1.0@d41d8cd9": { - "id": "is-binary-path@2.1.0@d41d8cd9", - "name": "is-binary-path", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#sha1:ea1f7f3b80f064236e83470f86c09c254fb45b09" - ] - }, - "overrides": [], - "dependencies": [ "binary-extensions@2.3.0@d41d8cd9" ], - "devDependencies": [] - }, - "is-arrayish@0.2.1@d41d8cd9": { - "id": "is-arrayish@0.2.1@d41d8cd9", - "name": "is-arrayish", - "version": "0.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#sha1:77c99840527aa8ecb1a8ba697b80645a7a926a9d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "irregular-plurals@3.5.0@d41d8cd9": { - "id": "irregular-plurals@3.5.0@d41d8cd9", - "name": "irregular-plurals", - "version": "3.5.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz#sha1:0835e6639aa8425bdc8b0d33d0dc4e89d9c01d2b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ini@2.0.0@d41d8cd9": { - "id": "ini@2.0.0@d41d8cd9", - "name": "ini", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ini/-/ini-2.0.0.tgz#sha1:e5fd556ecdd5726be978fa1001862eacb0a94bc5" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ini@1.3.8@d41d8cd9": { - "id": "ini@1.3.8@d41d8cd9", - "name": "ini", - "version": "1.3.8", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#sha1:a29da425b48806f34767a4efce397269af28432c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "inherits@2.0.4@d41d8cd9": { - "id": "inherits@2.0.4@d41d8cd9", - "name": "inherits", - "version": "2.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#sha1:0fa2c64f932917c3433a0ded55363aae37416b7c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "inflight@1.0.6@d41d8cd9": { - "id": "inflight@1.0.6@d41d8cd9", - "name": "inflight", - "version": "1.0.6", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#sha1:49bd6331d7d02d0c09bc910a1075ba8165b56df9" - ] - }, - "overrides": [], - "dependencies": [ "wrappy@1.0.2@d41d8cd9", "once@1.4.0@d41d8cd9" ], - "devDependencies": [] - }, - "indent-string@4.0.0@d41d8cd9": { - "id": "indent-string@4.0.0@d41d8cd9", - "name": "indent-string", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#sha1:624f8f4497d619b2d9768531d58f4122854d7251" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "imurmurhash@0.1.4@d41d8cd9": { - "id": "imurmurhash@0.1.4@d41d8cd9", - "name": "imurmurhash", - "version": "0.1.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#sha1:9218b9b2b928a238b13dc4fb6b6d576f231453ea" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "import-local@3.1.0@d41d8cd9": { - "id": "import-local@3.1.0@d41d8cd9", - "name": "import-local", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz#sha1:b4479df8a5fd44f6cdce24070675676063c95cb4" - ] - }, - "overrides": [], - "dependencies": [ - "resolve-cwd@3.0.0@d41d8cd9", "pkg-dir@4.2.0@d41d8cd9" - ], - "devDependencies": [] - }, - "import-lazy@2.1.0@d41d8cd9": { - "id": "import-lazy@2.1.0@d41d8cd9", - "name": "import-lazy", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz#sha1:05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ignore-by-default@2.1.0@d41d8cd9": { - "id": "ignore-by-default@2.1.0@d41d8cd9", - "name": "ignore-by-default", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz#sha1:c0e0de1a99b6065bdc93315a6f728867981464db" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ignore@5.3.1@d41d8cd9": { - "id": "ignore@5.3.1@d41d8cd9", - "name": "ignore", - "version": "5.3.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz#sha1:5073e554cd42c5b33b394375f538b8593e34d4ef" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ieee754@1.2.1@d41d8cd9": { - "id": "ieee754@1.2.1@d41d8cd9", - "name": "ieee754", - "version": "1.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#sha1:8eb7a10a63fff25d15a57b001586d177d1b0d352" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "http-cache-semantics@4.1.1@d41d8cd9": { - "id": "http-cache-semantics@4.1.1@d41d8cd9", - "name": "http-cache-semantics", - "version": "4.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#sha1:abe02fcb2985460bf0323be664436ec3476a6d5a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "hosted-git-info@2.8.9@d41d8cd9": { - "id": "hosted-git-info@2.8.9@d41d8cd9", - "name": "hosted-git-info", - "version": "2.8.9", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#sha1:dffc0bf9a21c02209090f2aa69429e1414daf3f9" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "hasown@2.0.2@d41d8cd9": { - "id": "hasown@2.0.2@d41d8cd9", - "name": "hasown", - "version": "2.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz#sha1:003eaf91be7adc372e84ec59dc37252cedb80003" - ] - }, - "overrides": [], - "dependencies": [ "function-bind@1.1.2@d41d8cd9" ], - "devDependencies": [] - }, - "has-yarn@2.1.0@d41d8cd9": { - "id": "has-yarn@2.1.0@d41d8cd9", - "name": "has-yarn", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz#sha1:137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "has-flag@4.0.0@d41d8cd9": { - "id": "has-flag@4.0.0@d41d8cd9", - "name": "has-flag", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#sha1:944771fd9c81c81265c4d6941860da06bb59479b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "has-flag@3.0.0@d41d8cd9": { - "id": "has-flag@3.0.0@d41d8cd9", - "name": "has-flag", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#sha1:b5d454dc2199ae225699f3467e5a07f3b955bafd" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "graceful-fs@4.2.11@d41d8cd9": { - "id": "graceful-fs@4.2.11@d41d8cd9", - "name": "graceful-fs", - "version": "4.2.11", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#sha1:4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "got@9.6.0@d41d8cd9": { - "id": "got@9.6.0@d41d8cd9", - "name": "got", - "version": "9.6.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/got/-/got-9.6.0.tgz#sha1:edf45e7d67f99545705de1f7bbeeeb121765ed85" - ] - }, - "overrides": [], - "dependencies": [ - "url-parse-lax@3.0.0@d41d8cd9", "to-readable-stream@1.0.0@d41d8cd9", - "p-cancelable@1.1.0@d41d8cd9", "mimic-response@1.0.1@d41d8cd9", - "lowercase-keys@1.0.1@d41d8cd9", "get-stream@4.1.0@d41d8cd9", - "duplexer3@0.1.5@d41d8cd9", "decompress-response@3.3.0@d41d8cd9", - "cacheable-request@6.1.0@d41d8cd9", - "@szmarczak/http-timer@1.1.2@d41d8cd9", - "@sindresorhus/is@0.14.0@d41d8cd9" - ], - "devDependencies": [] - }, - "globby@11.1.0@d41d8cd9": { - "id": "globby@11.1.0@d41d8cd9", - "name": "globby", - "version": "11.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#sha1:bd4be98bb042f83d796f7e3811991fbe82a0d34b" - ] - }, - "overrides": [], - "dependencies": [ - "slash@3.0.0@d41d8cd9", "merge2@1.4.1@d41d8cd9", - "ignore@5.3.1@d41d8cd9", "fast-glob@3.3.2@d41d8cd9", - "dir-glob@3.0.1@d41d8cd9", "array-union@2.1.0@d41d8cd9" - ], - "devDependencies": [] - }, - "global-dirs@3.0.1@d41d8cd9": { - "id": "global-dirs@3.0.1@d41d8cd9", - "name": "global-dirs", - "version": "3.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz#sha1:0c488971f066baceda21447aecb1a8b911d22485" - ] - }, - "overrides": [], - "dependencies": [ "ini@2.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "glob-parent@5.1.2@d41d8cd9": { - "id": "glob-parent@5.1.2@d41d8cd9", - "name": "glob-parent", - "version": "5.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#sha1:869832c58034fe68a4093c17dc15e8340d8401c4" - ] - }, - "overrides": [], - "dependencies": [ "is-glob@4.0.3@d41d8cd9" ], - "devDependencies": [] - }, - "glob@7.2.3@d41d8cd9": { - "id": "glob@7.2.3@d41d8cd9", - "name": "glob", - "version": "7.2.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#sha1:b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - ] - }, - "overrides": [], - "dependencies": [ - "path-is-absolute@1.0.1@d41d8cd9", "once@1.4.0@d41d8cd9", - "minimatch@3.1.2@d41d8cd9", "inherits@2.0.4@d41d8cd9", - "inflight@1.0.6@d41d8cd9", "fs.realpath@1.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "get-stream@5.2.0@d41d8cd9": { - "id": "get-stream@5.2.0@d41d8cd9", - "name": "get-stream", - "version": "5.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#sha1:4966a1795ee5ace65e706c4b7beb71257d6e22d3" - ] - }, - "overrides": [], - "dependencies": [ "pump@3.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "get-stream@4.1.0@d41d8cd9": { - "id": "get-stream@4.1.0@d41d8cd9", - "name": "get-stream", - "version": "4.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#sha1:c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - ] - }, - "overrides": [], - "dependencies": [ "pump@3.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "get-caller-file@2.0.5@d41d8cd9": { - "id": "get-caller-file@2.0.5@d41d8cd9", - "name": "get-caller-file", - "version": "2.0.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#sha1:4f94412a82db32f36e3b0b9741f8a97feb031f7e" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "function-bind@1.1.2@d41d8cd9": { - "id": "function-bind@1.1.2@d41d8cd9", - "name": "function-bind", - "version": "1.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz#sha1:2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "fs.realpath@1.0.0@d41d8cd9": { - "id": "fs.realpath@1.0.0@d41d8cd9", - "name": "fs.realpath", - "version": "1.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#sha1:1504ad2523158caa40db4a2787cb01411994ea4f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "find-up@4.1.0@d41d8cd9": { - "id": "find-up@4.1.0@d41d8cd9", - "name": "find-up", - "version": "4.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#sha1:97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - ] - }, - "overrides": [], - "dependencies": [ - "path-exists@4.0.0@d41d8cd9", "locate-path@5.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "find-up@3.0.0@d41d8cd9": { - "id": "find-up@3.0.0@d41d8cd9", - "name": "find-up", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#sha1:49169f1d7993430646da61ecc5ae355c21c97b73" - ] - }, - "overrides": [], - "dependencies": [ "locate-path@3.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "fill-range@7.0.1@d41d8cd9": { - "id": "fill-range@7.0.1@d41d8cd9", - "name": "fill-range", - "version": "7.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#sha1:1919a6a7c75fe38b2c7c77e5198535da9acdda40" - ] - }, - "overrides": [], - "dependencies": [ "to-regex-range@5.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "figures@3.2.0@d41d8cd9": { - "id": "figures@3.2.0@d41d8cd9", - "name": "figures", - "version": "3.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#sha1:625c18bd293c604dc4a8ddb2febf0c88341746af" - ] - }, - "overrides": [], - "dependencies": [ "escape-string-regexp@1.0.5@d41d8cd9" ], - "devDependencies": [] - }, - "fastq@1.17.1@d41d8cd9": { - "id": "fastq@1.17.1@d41d8cd9", - "name": "fastq", - "version": "1.17.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz#sha1:2a523f07a4e7b1e81a42b91b8bf2254107753b47" - ] - }, - "overrides": [], - "dependencies": [ "reusify@1.0.4@d41d8cd9" ], - "devDependencies": [] - }, - "fast-glob@3.3.2@d41d8cd9": { - "id": "fast-glob@3.3.2@d41d8cd9", - "name": "fast-glob", - "version": "3.3.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz#sha1:a904501e57cfdd2ffcded45e99a54fef55e46129" - ] - }, - "overrides": [], - "dependencies": [ - "micromatch@4.0.5@d41d8cd9", "merge2@1.4.1@d41d8cd9", - "glob-parent@5.1.2@d41d8cd9", "@nodelib/fs.walk@1.2.8@d41d8cd9", - "@nodelib/fs.stat@2.0.5@d41d8cd9" - ], - "devDependencies": [] - }, - "fast-diff@1.3.0@d41d8cd9": { - "id": "fast-diff@1.3.0@d41d8cd9", - "name": "fast-diff", - "version": "1.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#sha1:ece407fa550a64d638536cd727e129c61616e0f0" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "esy-zlib@github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f@d41d8cd9": { - "id": "esy-zlib@github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f@d41d8cd9", - "name": "esy-zlib", - "version": "github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f", - "source": { - "type": "install", - "source": [ - "github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "esy-libtiff@github:esy-packages/esy-libtiff#83b1f5c8f76ad42acb5c008f537b5b3f0902c066@d41d8cd9": { - "id": "esy-libtiff@github:esy-packages/esy-libtiff#83b1f5c8f76ad42acb5c008f537b5b3f0902c066@d41d8cd9", - "name": "esy-libtiff", - "version": "github:esy-packages/esy-libtiff#83b1f5c8f76ad42acb5c008f537b5b3f0902c066", - "source": { - "type": "install", - "source": [ - "github:esy-packages/esy-libtiff#83b1f5c8f76ad42acb5c008f537b5b3f0902c066" - ] - }, - "overrides": [], - "dependencies": [ - "esy-zlib@github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f@d41d8cd9" - ], - "devDependencies": [] - }, - "esy-libspng@archive:https://github.com/randy408/libspng/archive/refs/tags/v0.7.4.tar.gz#sha256:47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487@a7ae8ae9": { - "id": "esy-libspng@archive:https://github.com/randy408/libspng/archive/refs/tags/v0.7.4.tar.gz#sha256:47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487@a7ae8ae9", - "name": "esy-libspng", - "version": "archive:https://github.com/randy408/libspng/archive/refs/tags/v0.7.4.tar.gz#sha256:47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487", - "source": { - "type": "install", - "source": [ - "archive:https://github.com/randy408/libspng/archive/refs/tags/v0.7.4.tar.gz#sha256:47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487" - ] - }, - "overrides": [ - "esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy.json" - ], - "dependencies": [ - "esy-zlib@github:esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f@d41d8cd9", - "esy-cmake@archive:https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#sha256:bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659@af44a93b" - ], - "devDependencies": [] - }, - "esy-libjpeg@github:eWert-Online/esy-libjpeg#76b287add2732e191a2c4a1c14a34bab63c4f74d@d41d8cd9": { - "id": "esy-libjpeg@github:eWert-Online/esy-libjpeg#76b287add2732e191a2c4a1c14a34bab63c4f74d@d41d8cd9", - "name": "esy-libjpeg", - "version": "github:eWert-Online/esy-libjpeg#76b287add2732e191a2c4a1c14a34bab63c4f74d", - "source": { - "type": "install", - "source": [ - "github:eWert-Online/esy-libjpeg#76b287add2732e191a2c4a1c14a34bab63c4f74d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "esy-cmake@archive:https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#sha256:bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659@af44a93b": { - "id": "esy-cmake@archive:https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#sha256:bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659@af44a93b", - "name": "esy-cmake", - "version": "archive:https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#sha256:bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659", - "source": { - "type": "install", - "source": [ - "archive:https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#sha256:bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659" - ] - }, - "overrides": [ - "esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy.json" - ], - "dependencies": [], - "devDependencies": [] - }, - "esutils@2.0.3@d41d8cd9": { - "id": "esutils@2.0.3@d41d8cd9", - "name": "esutils", - "version": "2.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#sha1:74d2eb4de0b8da1293711910d50775b9b710ef64" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "esprima@4.0.1@d41d8cd9": { - "id": "esprima@4.0.1@d41d8cd9", - "name": "esprima", - "version": "4.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#sha1:13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "escape-string-regexp@4.0.0@d41d8cd9": { - "id": "escape-string-regexp@4.0.0@d41d8cd9", - "name": "escape-string-regexp", - "version": "4.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#sha1:14ba83a5d373e3d311e5afca29cf5bfad965bf34" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "escape-string-regexp@2.0.0@d41d8cd9": { - "id": "escape-string-regexp@2.0.0@d41d8cd9", - "name": "escape-string-regexp", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#sha1:a30304e99daa32e23b2fd20f51babd07cffca344" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "escape-string-regexp@1.0.5@d41d8cd9": { - "id": "escape-string-regexp@1.0.5@d41d8cd9", - "name": "escape-string-regexp", - "version": "1.0.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#sha1:1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "escape-goat@2.1.1@d41d8cd9": { - "id": "escape-goat@2.1.1@d41d8cd9", - "name": "escape-goat", - "version": "2.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz#sha1:1b2dc77003676c457ec760b2dc68edb648188675" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "escalade@3.1.2@d41d8cd9": { - "id": "escalade@3.1.2@d41d8cd9", - "name": "escalade", - "version": "3.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz#sha1:54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "error-ex@1.3.2@d41d8cd9": { - "id": "error-ex@1.3.2@d41d8cd9", - "name": "error-ex", - "version": "1.3.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#sha1:b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - ] - }, - "overrides": [], - "dependencies": [ "is-arrayish@0.2.1@d41d8cd9" ], - "devDependencies": [] - }, - "equal-length@1.0.1@d41d8cd9": { - "id": "equal-length@1.0.1@d41d8cd9", - "name": "equal-length", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz#sha1:21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "end-of-stream@1.4.4@d41d8cd9": { - "id": "end-of-stream@1.4.4@d41d8cd9", - "name": "end-of-stream", - "version": "1.4.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#sha1:5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - ] - }, - "overrides": [], - "dependencies": [ "once@1.4.0@d41d8cd9" ], - "devDependencies": [] - }, - "emoji-regex@8.0.0@d41d8cd9": { - "id": "emoji-regex@8.0.0@d41d8cd9", - "name": "emoji-regex", - "version": "8.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#sha1:e818fd69ce5ccfcb404594f842963bf53164cc37" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "emittery@0.8.1@d41d8cd9": { - "id": "emittery@0.8.1@d41d8cd9", - "name": "emittery", - "version": "0.8.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz#sha1:bb23cc86d03b30aa75a7f734819dee2e1ba70860" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "duplexer3@0.1.5@d41d8cd9": { - "id": "duplexer3@0.1.5@d41d8cd9", - "name": "duplexer3", - "version": "0.1.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz#sha1:0b5e4d7bad5de8901ea4440624c8e1d20099217e" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "dot-prop@5.3.0@d41d8cd9": { - "id": "dot-prop@5.3.0@d41d8cd9", - "name": "dot-prop", - "version": "5.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#sha1:90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - ] - }, - "overrides": [], - "dependencies": [ "is-obj@2.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "dir-glob@3.0.1@d41d8cd9": { - "id": "dir-glob@3.0.1@d41d8cd9", - "name": "dir-glob", - "version": "3.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#sha1:56dbf73d992a4a93ba1584f4534063fd2e41717f" - ] - }, - "overrides": [], - "dependencies": [ "path-type@4.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "del@6.1.1@d41d8cd9": { - "id": "del@6.1.1@d41d8cd9", - "name": "del", - "version": "6.1.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/del/-/del-6.1.1.tgz#sha1:3b70314f1ec0aa325c6b14eb36b95786671edb7a" - ] - }, - "overrides": [], - "dependencies": [ - "slash@3.0.0@d41d8cd9", "rimraf@3.0.2@d41d8cd9", - "p-map@4.0.0@d41d8cd9", "is-path-inside@3.0.3@d41d8cd9", - "is-path-cwd@2.2.0@d41d8cd9", "is-glob@4.0.3@d41d8cd9", - "graceful-fs@4.2.11@d41d8cd9", "globby@11.1.0@d41d8cd9" - ], - "devDependencies": [] - }, - "defer-to-connect@1.1.3@d41d8cd9": { - "id": "defer-to-connect@1.1.3@d41d8cd9", - "name": "defer-to-connect", - "version": "1.1.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#sha1:331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "defaults@1.0.4@d41d8cd9": { - "id": "defaults@1.0.4@d41d8cd9", - "name": "defaults", - "version": "1.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz#sha1:b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - ] - }, - "overrides": [], - "dependencies": [ "clone@1.0.4@d41d8cd9" ], - "devDependencies": [] - }, - "deep-extend@0.6.0@d41d8cd9": { - "id": "deep-extend@0.6.0@d41d8cd9", - "name": "deep-extend", - "version": "0.6.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#sha1:c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "decompress-response@3.3.0@d41d8cd9": { - "id": "decompress-response@3.3.0@d41d8cd9", - "name": "decompress-response", - "version": "3.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#sha1:80a4dd323748384bfa248083622aedec982adff3" - ] - }, - "overrides": [], - "dependencies": [ "mimic-response@1.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "debug@4.3.4@d41d8cd9": { - "id": "debug@4.3.4@d41d8cd9", - "name": "debug", - "version": "4.3.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#sha1:1319f6579357f2338d3337d2cdd4914bb5dcc865" - ] - }, - "overrides": [], - "dependencies": [ "ms@2.1.2@d41d8cd9" ], - "devDependencies": [] - }, - "date-time@3.1.0@d41d8cd9": { - "id": "date-time@3.1.0@d41d8cd9", - "name": "date-time", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz#sha1:0d1e934d170579f481ed8df1e2b8ff70ee845e1e" - ] - }, - "overrides": [], - "dependencies": [ "time-zone@1.0.0@d41d8cd9" ], - "devDependencies": [] - }, - "currently-unhandled@0.4.1@d41d8cd9": { - "id": "currently-unhandled@0.4.1@d41d8cd9", - "name": "currently-unhandled", - "version": "0.4.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#sha1:988df33feab191ef799a61369dd76c17adf957ea" - ] - }, - "overrides": [], - "dependencies": [ "array-find-index@1.0.2@d41d8cd9" ], - "devDependencies": [] - }, - "crypto-random-string@2.0.0@d41d8cd9": { - "id": "crypto-random-string@2.0.0@d41d8cd9", - "name": "crypto-random-string", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz#sha1:ef2a7a966ec11083388369baa02ebead229b30d5" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "convert-to-spaces@1.0.2@d41d8cd9": { - "id": "convert-to-spaces@1.0.2@d41d8cd9", - "name": "convert-to-spaces", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#sha1:7e3e48bbe6d997b1417ddca2868204b4d3d85715" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "convert-source-map@1.9.0@d41d8cd9": { - "id": "convert-source-map@1.9.0@d41d8cd9", - "name": "convert-source-map", - "version": "1.9.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#sha1:7faae62353fb4213366d0ca98358d22e8368b05f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "configstore@5.0.1@d41d8cd9": { - "id": "configstore@5.0.1@d41d8cd9", - "name": "configstore", - "version": "5.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz#sha1:d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - ] - }, - "overrides": [], - "dependencies": [ - "xdg-basedir@4.0.0@d41d8cd9", "write-file-atomic@3.0.3@d41d8cd9", - "unique-string@2.0.0@d41d8cd9", "make-dir@3.1.0@d41d8cd9", - "graceful-fs@4.2.11@d41d8cd9", "dot-prop@5.3.0@d41d8cd9" - ], - "devDependencies": [] - }, - "concordance@5.0.4@d41d8cd9": { - "id": "concordance@5.0.4@d41d8cd9", - "name": "concordance", - "version": "5.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz#sha1:9896073261adced72f88d60e4d56f8efc4bbbbd2" - ] - }, - "overrides": [], - "dependencies": [ - "well-known-symbols@2.0.0@d41d8cd9", "semver@7.6.0@d41d8cd9", - "md5-hex@3.0.1@d41d8cd9", "lodash@4.17.21@d41d8cd9", - "js-string-escape@1.0.1@d41d8cd9", "fast-diff@1.3.0@d41d8cd9", - "esutils@2.0.3@d41d8cd9", "date-time@3.1.0@d41d8cd9" - ], - "devDependencies": [] - }, - "concat-map@0.0.1@d41d8cd9": { - "id": "concat-map@0.0.1@d41d8cd9", - "name": "concat-map", - "version": "0.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#sha1:d8a96bd77fd68df7793a73036a3ba0d5405d477b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "common-path-prefix@3.0.0@d41d8cd9": { - "id": "common-path-prefix@3.0.0@d41d8cd9", - "name": "common-path-prefix", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz#sha1:7d007a7e07c58c4b4d5f433131a19141b29f11e0" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "color-name@1.1.4@d41d8cd9": { - "id": "color-name@1.1.4@d41d8cd9", - "name": "color-name", - "version": "1.1.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#sha1:c2a09a87acbde69543de6f63fa3995c826c536a2" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "color-name@1.1.3@d41d8cd9": { - "id": "color-name@1.1.3@d41d8cd9", - "name": "color-name", - "version": "1.1.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#sha1:a7d0558bd89c42f795dd42328f740831ca53bc25" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "color-convert@2.0.1@d41d8cd9": { - "id": "color-convert@2.0.1@d41d8cd9", - "name": "color-convert", - "version": "2.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#sha1:72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - ] - }, - "overrides": [], - "dependencies": [ "color-name@1.1.4@d41d8cd9" ], - "devDependencies": [] - }, - "color-convert@1.9.3@d41d8cd9": { - "id": "color-convert@1.9.3@d41d8cd9", - "name": "color-convert", - "version": "1.9.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#sha1:bb71850690e1f136567de629d2d5471deda4c1e8" - ] - }, - "overrides": [], - "dependencies": [ "color-name@1.1.3@d41d8cd9" ], - "devDependencies": [] - }, - "code-excerpt@3.0.0@d41d8cd9": { - "id": "code-excerpt@3.0.0@d41d8cd9", - "name": "code-excerpt", - "version": "3.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz#sha1:fcfb6748c03dba8431c19f5474747fad3f250f10" - ] - }, - "overrides": [], - "dependencies": [ "convert-to-spaces@1.0.2@d41d8cd9" ], - "devDependencies": [] - }, - "clone-response@1.0.3@d41d8cd9": { - "id": "clone-response@1.0.3@d41d8cd9", - "name": "clone-response", - "version": "1.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz#sha1:af2032aa47816399cf5f0a1d0db902f517abb8c3" - ] - }, - "overrides": [], - "dependencies": [ "mimic-response@1.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "clone@1.0.4@d41d8cd9": { - "id": "clone@1.0.4@d41d8cd9", - "name": "clone", - "version": "1.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#sha1:da309cc263df15994c688ca902179ca3c7cd7c7e" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "cliui@7.0.4@d41d8cd9": { - "id": "cliui@7.0.4@d41d8cd9", - "name": "cliui", - "version": "7.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz#sha1:a0265ee655476fc807aea9df3df8df7783808b4f" - ] - }, - "overrides": [], - "dependencies": [ - "wrap-ansi@7.0.0@d41d8cd9", "strip-ansi@6.0.1@d41d8cd9", - "string-width@4.2.3@d41d8cd9" - ], - "devDependencies": [] - }, - "cli-truncate@2.1.0@d41d8cd9": { - "id": "cli-truncate@2.1.0@d41d8cd9", - "name": "cli-truncate", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#sha1:c39e28bf05edcde5be3b98992a22deed5a2b93c7" - ] - }, - "overrides": [], - "dependencies": [ - "string-width@4.2.3@d41d8cd9", "slice-ansi@3.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "cli-spinners@2.9.2@d41d8cd9": { - "id": "cli-spinners@2.9.2@d41d8cd9", - "name": "cli-spinners", - "version": "2.9.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz#sha1:1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "cli-cursor@3.1.0@d41d8cd9": { - "id": "cli-cursor@3.1.0@d41d8cd9", - "name": "cli-cursor", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#sha1:264305a7ae490d1d03bf0c9ba7c925d1753af307" - ] - }, - "overrides": [], - "dependencies": [ "restore-cursor@3.1.0@d41d8cd9" ], - "devDependencies": [] - }, - "cli-boxes@2.2.1@d41d8cd9": { - "id": "cli-boxes@2.2.1@d41d8cd9", - "name": "cli-boxes", - "version": "2.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz#sha1:ddd5035d25094fce220e9cab40a45840a440318f" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "clean-yaml-object@0.1.0@d41d8cd9": { - "id": "clean-yaml-object@0.1.0@d41d8cd9", - "name": "clean-yaml-object", - "version": "0.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#sha1:63fb110dc2ce1a84dc21f6d9334876d010ae8b68" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "clean-stack@2.2.0@d41d8cd9": { - "id": "clean-stack@2.2.0@d41d8cd9", - "name": "clean-stack", - "version": "2.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#sha1:ee8472dbb129e727b31e8a10a427dee9dfe4008b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ci-parallel-vars@1.0.1@d41d8cd9": { - "id": "ci-parallel-vars@1.0.1@d41d8cd9", - "name": "ci-parallel-vars", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz#sha1:e87ff0625ccf9d286985b29b4ada8485ca9ffbc2" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ci-info@2.0.0@d41d8cd9": { - "id": "ci-info@2.0.0@d41d8cd9", - "name": "ci-info", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#sha1:67a9e964be31a51e15e5010d58e6f12834002f46" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "chunkd@2.0.1@d41d8cd9": { - "id": "chunkd@2.0.1@d41d8cd9", - "name": "chunkd", - "version": "2.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz#sha1:49cd1d7b06992dc4f7fccd962fe2a101ee7da920" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "chokidar@3.6.0@d41d8cd9": { - "id": "chokidar@3.6.0@d41d8cd9", - "name": "chokidar", - "version": "3.6.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz#sha1:197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - ] - }, - "overrides": [], - "dependencies": [ - "readdirp@3.6.0@d41d8cd9", "normalize-path@3.0.0@d41d8cd9", - "is-glob@4.0.3@d41d8cd9", "is-binary-path@2.1.0@d41d8cd9", - "glob-parent@5.1.2@d41d8cd9", "braces@3.0.2@d41d8cd9", - "anymatch@3.1.3@d41d8cd9" - ], - "devDependencies": [] - }, - "chalk@4.1.2@d41d8cd9": { - "id": "chalk@4.1.2@d41d8cd9", - "name": "chalk", - "version": "4.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#sha1:aac4e2b7734a740867aeb16bf02aad556a1e7a01" - ] - }, - "overrides": [], - "dependencies": [ - "supports-color@7.2.0@d41d8cd9", "ansi-styles@4.3.0@d41d8cd9" - ], - "devDependencies": [] - }, - "chalk@2.4.2@d41d8cd9": { - "id": "chalk@2.4.2@d41d8cd9", - "name": "chalk", - "version": "2.4.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#sha1:cd42541677a54333cf541a49108c1432b44c9424" - ] - }, - "overrides": [], - "dependencies": [ - "supports-color@5.5.0@d41d8cd9", - "escape-string-regexp@1.0.5@d41d8cd9", "ansi-styles@3.2.1@d41d8cd9" - ], - "devDependencies": [] - }, - "camelcase@6.3.0@d41d8cd9": { - "id": "camelcase@6.3.0@d41d8cd9", - "name": "camelcase", - "version": "6.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#sha1:5685b95eb209ac9c0c177467778c9c84df58ba9a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "callsites@3.1.0@d41d8cd9": { - "id": "callsites@3.1.0@d41d8cd9", - "name": "callsites", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#sha1:b3630abd8943432f54b3f0519238e33cd7df2f73" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "cacheable-request@6.1.0@d41d8cd9": { - "id": "cacheable-request@6.1.0@d41d8cd9", - "name": "cacheable-request", - "version": "6.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz#sha1:20ffb8bd162ba4be11e9567d823db651052ca912" - ] - }, - "overrides": [], - "dependencies": [ - "responselike@1.0.2@d41d8cd9", "normalize-url@4.5.1@d41d8cd9", - "lowercase-keys@2.0.0@d41d8cd9", "keyv@3.1.0@d41d8cd9", - "http-cache-semantics@4.1.1@d41d8cd9", "get-stream@5.2.0@d41d8cd9", - "clone-response@1.0.3@d41d8cd9" - ], - "devDependencies": [] - }, - "buffer-from@1.1.2@d41d8cd9": { - "id": "buffer-from@1.1.2@d41d8cd9", - "name": "buffer-from", - "version": "1.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#sha1:2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "buffer@5.7.1@d41d8cd9": { - "id": "buffer@5.7.1@d41d8cd9", - "name": "buffer", - "version": "5.7.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#sha1:ba62e7c13133053582197160851a8f648e99eed0" - ] - }, - "overrides": [], - "dependencies": [ - "ieee754@1.2.1@d41d8cd9", "base64-js@1.5.1@d41d8cd9" - ], - "devDependencies": [] - }, - "braces@3.0.2@d41d8cd9": { - "id": "braces@3.0.2@d41d8cd9", - "name": "braces", - "version": "3.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#sha1:3454e1a462ee8d599e236df336cd9ea4f8afe107" - ] - }, - "overrides": [], - "dependencies": [ "fill-range@7.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "brace-expansion@1.1.11@d41d8cd9": { - "id": "brace-expansion@1.1.11@d41d8cd9", - "name": "brace-expansion", - "version": "1.1.11", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#sha1:3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - ] - }, - "overrides": [], - "dependencies": [ - "concat-map@0.0.1@d41d8cd9", "balanced-match@1.0.2@d41d8cd9" - ], - "devDependencies": [] - }, - "boxen@5.1.2@d41d8cd9": { - "id": "boxen@5.1.2@d41d8cd9", - "name": "boxen", - "version": "5.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz#sha1:788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - ] - }, - "overrides": [], - "dependencies": [ - "wrap-ansi@7.0.0@d41d8cd9", "widest-line@3.1.0@d41d8cd9", - "type-fest@0.20.2@d41d8cd9", "string-width@4.2.3@d41d8cd9", - "cli-boxes@2.2.1@d41d8cd9", "chalk@4.1.2@d41d8cd9", - "camelcase@6.3.0@d41d8cd9", "ansi-align@3.0.1@d41d8cd9" - ], - "devDependencies": [] - }, - "blueimp-md5@2.19.0@d41d8cd9": { - "id": "blueimp-md5@2.19.0@d41d8cd9", - "name": "blueimp-md5", - "version": "2.19.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz#sha1:b53feea5498dcb53dc6ec4b823adb84b729c4af0" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "bl@4.1.0@d41d8cd9": { - "id": "bl@4.1.0@d41d8cd9", - "name": "bl", - "version": "4.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/bl/-/bl-4.1.0.tgz#sha1:451535264182bec2fbbc83a62ab98cf11d9f7b3a" - ] - }, - "overrides": [], - "dependencies": [ - "readable-stream@3.6.2@d41d8cd9", "inherits@2.0.4@d41d8cd9", - "buffer@5.7.1@d41d8cd9" - ], - "devDependencies": [] - }, - "binary-extensions@2.3.0@d41d8cd9": { - "id": "binary-extensions@2.3.0@d41d8cd9", - "name": "binary-extensions", - "version": "2.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz#sha1:f6e14a97858d327252200242d4ccfe522c445522" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "base64-js@1.5.1@d41d8cd9": { - "id": "base64-js@1.5.1@d41d8cd9", - "name": "base64-js", - "version": "1.5.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#sha1:1b1b440160a5bf7ad40b650f095963481903930a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "balanced-match@1.0.2@d41d8cd9": { - "id": "balanced-match@1.0.2@d41d8cd9", - "name": "balanced-match", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#sha1:e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ava@3.15.0@d41d8cd9": { - "id": "ava@3.15.0@d41d8cd9", - "name": "ava", - "version": "3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ava/-/ava-3.15.0.tgz#sha1:a239658ab1de8a29a243cc902e6b42e4574de2f0" - ] - }, - "overrides": [], - "dependencies": [ - "yargs@16.2.0@d41d8cd9", "write-file-atomic@3.0.3@d41d8cd9", - "update-notifier@5.1.0@d41d8cd9", "trim-off-newlines@1.0.3@d41d8cd9", - "temp-dir@2.0.0@d41d8cd9", "supertap@2.0.0@d41d8cd9", - "strip-ansi@6.0.1@d41d8cd9", "stack-utils@2.0.6@d41d8cd9", - "source-map-support@0.5.21@d41d8cd9", "slash@3.0.0@d41d8cd9", - "resolve-cwd@3.0.0@d41d8cd9", "read-pkg@5.2.0@d41d8cd9", - "pretty-ms@7.0.1@d41d8cd9", "plur@4.0.0@d41d8cd9", - "pkg-conf@3.1.0@d41d8cd9", "picomatch@2.3.1@d41d8cd9", - "p-map@4.0.0@d41d8cd9", "p-event@4.2.0@d41d8cd9", - "ora@5.4.1@d41d8cd9", "ms@2.1.3@d41d8cd9", "mem@8.1.1@d41d8cd9", - "md5-hex@3.0.1@d41d8cd9", "matcher@3.0.0@d41d8cd9", - "lodash@4.17.21@d41d8cd9", "is-promise@4.0.0@d41d8cd9", - "is-plain-object@5.0.0@d41d8cd9", "is-error@2.2.2@d41d8cd9", - "indent-string@4.0.0@d41d8cd9", "import-local@3.1.0@d41d8cd9", - "ignore-by-default@2.1.0@d41d8cd9", "globby@11.1.0@d41d8cd9", - "figures@3.2.0@d41d8cd9", "equal-length@1.0.1@d41d8cd9", - "emittery@0.8.1@d41d8cd9", "del@6.1.1@d41d8cd9", - "debug@4.3.4@d41d8cd9", "currently-unhandled@0.4.1@d41d8cd9", - "convert-source-map@1.9.0@d41d8cd9", "concordance@5.0.4@d41d8cd9", - "common-path-prefix@3.0.0@d41d8cd9", "code-excerpt@3.0.0@d41d8cd9", - "cli-truncate@2.1.0@d41d8cd9", "cli-cursor@3.1.0@d41d8cd9", - "clean-yaml-object@0.1.0@d41d8cd9", - "ci-parallel-vars@1.0.1@d41d8cd9", "ci-info@2.0.0@d41d8cd9", - "chunkd@2.0.1@d41d8cd9", "chokidar@3.6.0@d41d8cd9", - "chalk@4.1.2@d41d8cd9", "callsites@3.1.0@d41d8cd9", - "arrify@2.0.1@d41d8cd9", "arrgv@1.0.2@d41d8cd9", - "ansi-styles@5.2.0@d41d8cd9", "acorn-walk@8.3.2@d41d8cd9", - "acorn@8.11.3@d41d8cd9", "@concordance/react@2.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "astral-regex@2.0.0@d41d8cd9": { - "id": "astral-regex@2.0.0@d41d8cd9", - "name": "astral-regex", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#sha1:483143c567aeed4785759c0865786dc77d7d2e31" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "arrify@2.0.1@d41d8cd9": { - "id": "arrify@2.0.1@d41d8cd9", - "name": "arrify", - "version": "2.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz#sha1:c9655e9331e0abcd588d2a7cad7e9956f66701fa" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "arrify@1.0.1@d41d8cd9": { - "id": "arrify@1.0.1@d41d8cd9", - "name": "arrify", - "version": "1.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#sha1:898508da2226f380df904728456849c1501a4b0d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "arrgv@1.0.2@d41d8cd9": { - "id": "arrgv@1.0.2@d41d8cd9", - "name": "arrgv", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz#sha1:025ed55a6a433cad9b604f8112fc4292715a6ec0" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "array-union@2.1.0@d41d8cd9": { - "id": "array-union@2.1.0@d41d8cd9", - "name": "array-union", - "version": "2.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#sha1:b798420adbeb1de828d84acd8a2e23d3efe85e8d" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "array-find-index@1.0.2@d41d8cd9": { - "id": "array-find-index@1.0.2@d41d8cd9", - "name": "array-find-index", - "version": "1.0.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz#sha1:df010aa1287e164bbda6f9723b0a96a1ec4187a1" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "argparse@1.0.10@d41d8cd9": { - "id": "argparse@1.0.10@d41d8cd9", - "name": "argparse", - "version": "1.0.10", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#sha1:bcd6791ea5ae09725e17e5ad988134cd40b3d911" - ] - }, - "overrides": [], - "dependencies": [ "sprintf-js@1.0.3@d41d8cd9" ], - "devDependencies": [] - }, - "anymatch@3.1.3@d41d8cd9": { - "id": "anymatch@3.1.3@d41d8cd9", - "name": "anymatch", - "version": "3.1.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#sha1:790c58b19ba1720a84205b57c618d5ad8524973e" - ] - }, - "overrides": [], - "dependencies": [ - "picomatch@2.3.1@d41d8cd9", "normalize-path@3.0.0@d41d8cd9" - ], - "devDependencies": [] - }, - "ansi-styles@5.2.0@d41d8cd9": { - "id": "ansi-styles@5.2.0@d41d8cd9", - "name": "ansi-styles", - "version": "5.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#sha1:07449690ad45777d1924ac2abb2fc8895dba836b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ansi-styles@4.3.0@d41d8cd9": { - "id": "ansi-styles@4.3.0@d41d8cd9", - "name": "ansi-styles", - "version": "4.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#sha1:edd803628ae71c04c85ae7a0906edad34b648937" - ] - }, - "overrides": [], - "dependencies": [ "color-convert@2.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "ansi-styles@3.2.1@d41d8cd9": { - "id": "ansi-styles@3.2.1@d41d8cd9", - "name": "ansi-styles", - "version": "3.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#sha1:41fbb20243e50b12be0f04b8dedbf07520ce841d" - ] - }, - "overrides": [], - "dependencies": [ "color-convert@1.9.3@d41d8cd9" ], - "devDependencies": [] - }, - "ansi-regex@5.0.1@d41d8cd9": { - "id": "ansi-regex@5.0.1@d41d8cd9", - "name": "ansi-regex", - "version": "5.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#sha1:082cb2c89c9fe8659a311a53bd6a4dc5301db304" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "ansi-align@3.0.1@d41d8cd9": { - "id": "ansi-align@3.0.1@d41d8cd9", - "name": "ansi-align", - "version": "3.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz#sha1:0cdf12e111ace773a86e9a1fad1225c43cb19a59" - ] - }, - "overrides": [], - "dependencies": [ "string-width@4.2.3@d41d8cd9" ], - "devDependencies": [] - }, - "aggregate-error@3.1.0@d41d8cd9": { - "id": "aggregate-error@3.1.0@d41d8cd9", - "name": "aggregate-error", - "version": "3.1.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#sha1:92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - ] - }, - "overrides": [], - "dependencies": [ - "indent-string@4.0.0@d41d8cd9", "clean-stack@2.2.0@d41d8cd9" - ], - "devDependencies": [] - }, - "acorn-walk@8.3.2@d41d8cd9": { - "id": "acorn-walk@8.3.2@d41d8cd9", - "name": "acorn-walk", - "version": "8.3.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz#sha1:7703af9415f1b6db9315d6895503862e231d34aa" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "acorn@8.11.3@d41d8cd9": { - "id": "acorn@8.11.3@d41d8cd9", - "name": "acorn", - "version": "8.11.3", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz#sha1:71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "@types/normalize-package-data@2.4.4@d41d8cd9": { - "id": "@types/normalize-package-data@2.4.4@d41d8cd9", - "name": "@types/normalize-package-data", - "version": "2.4.4", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#sha1:56e2cc26c397c038fab0e3a917a12d5c5909e901" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "@szmarczak/http-timer@1.1.2@d41d8cd9": { - "id": "@szmarczak/http-timer@1.1.2@d41d8cd9", - "name": "@szmarczak/http-timer", - "version": "1.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#sha1:b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - ] - }, - "overrides": [], - "dependencies": [ "defer-to-connect@1.1.3@d41d8cd9" ], - "devDependencies": [] - }, - "@sindresorhus/is@0.14.0@d41d8cd9": { - "id": "@sindresorhus/is@0.14.0@d41d8cd9", - "name": "@sindresorhus/is", - "version": "0.14.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#sha1:9fb3a3cf3132328151f353de4632e01e52102bea" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "@reason-native/rely@github:reasonml/reason-native:rely.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9": { - "id": "@reason-native/rely@github:reasonml/reason-native:rely.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "name": "@reason-native/rely", - "version": "github:reasonml/reason-native:rely.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "source": { - "type": "install", - "source": [ - "github:reasonml/reason-native:rely.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@reason-native/file-context-printer@github:reasonml/reason-native:file-context-printer.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@reason-native/cli@github:reasonml/reason-native:cli.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@opam/stdlib-shims@opam:0.3.0@72c7bc98", - "@opam/reason@opam:3.9.0@2a7c0e6f", "@opam/re@opam:1.11.0@87deb463", - "@opam/dune@opam:3.15.0@8ee5bd50" - ], - "devDependencies": [] - }, - "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9": { - "id": "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "name": "@reason-native/pastel", - "version": "github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "source": { - "type": "install", - "source": [ - "github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/reason@opam:3.9.0@2a7c0e6f", - "@opam/re@opam:1.11.0@87deb463", "@opam/dune@opam:3.15.0@8ee5bd50" - ], - "devDependencies": [] - }, - "@reason-native/file-context-printer@github:reasonml/reason-native:file-context-printer.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9": { - "id": "@reason-native/file-context-printer@github:reasonml/reason-native:file-context-printer.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "name": "@reason-native/file-context-printer", - "version": "github:reasonml/reason-native:file-context-printer.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "source": { - "type": "install", - "source": [ - "github:reasonml/reason-native:file-context-printer.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@opam/reason@opam:3.9.0@2a7c0e6f", "@opam/re@opam:1.11.0@87deb463", - "@opam/dune@opam:3.15.0@8ee5bd50" - ], - "devDependencies": [] - }, - "@reason-native/console@github:reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9": { - "id": "@reason-native/console@github:reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "name": "@reason-native/console", - "version": "github:reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "source": { - "type": "install", - "source": [ - "github:reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/reason@opam:3.9.0@2a7c0e6f", - "@opam/dune@opam:3.15.0@8ee5bd50" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@reason-native/cli@github:reasonml/reason-native:cli.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9": { - "id": "@reason-native/cli@github:reasonml/reason-native:cli.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "name": "@reason-native/cli", - "version": "github:reasonml/reason-native:cli.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "source": { - "type": "install", - "source": [ - "github:reasonml/reason-native:cli.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a" - ] - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "@reason-native/pastel@github:reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a@d41d8cd9", - "@opam/reason@opam:3.9.0@2a7c0e6f", "@opam/re@opam:1.11.0@87deb463", - "@opam/dune@opam:3.15.0@8ee5bd50" - ], - "devDependencies": [] - }, - "@opam/yojson@opam:2.1.2@9fd14300": { - "id": "@opam/yojson@opam:2.1.2@9fd14300", - "name": "@opam/yojson", - "version": "opam:2.1.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/59/59f2f1abbfc8a7ccbdbf608894e5c75e8a76006e34899254446f83e200dfb4f9#sha256:59f2f1abbfc8a7ccbdbf608894e5c75e8a76006e34899254446f83e200dfb4f9", - "archive:https://github.com/ocaml-community/yojson/releases/download/2.1.2/yojson-2.1.2.tbz#sha256:59f2f1abbfc8a7ccbdbf608894e5c75e8a76006e34899254446f83e200dfb4f9" - ], - "opam": { - "name": "yojson", - "version": "2.1.2", - "path": "esy.lock/opam/yojson.2.1.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:3.15.0@8ee5bd50", "@opam/cppo@opam:1.6.9@db929a12", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/xdg@opam:3.15.0@f838e3fe": { - "id": "@opam/xdg@opam:3.15.0@f838e3fe", - "name": "@opam/xdg", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "xdg", - "version": "3.15.0", - "path": "esy.lock/opam/xdg.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/uutf@opam:1.0.3@47c95a18": { - "id": "@opam/uutf@opam:1.0.3@47c95a18", - "name": "@opam/uutf", - "version": "opam:1.0.3", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha512/50/50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8#sha512:50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8", - "archive:https://erratique.ch/software/uutf/releases/uutf-1.0.3.tbz#sha512:50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8" - ], - "opam": { - "name": "uutf", - "version": "1.0.3", - "path": "esy.lock/opam/uutf.1.0.3" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@7ee47d76", - "@opam/ocamlfind@opam:1.9.6@da5169c7", - "@opam/ocamlbuild@opam:0.14.3@6ab20ab3", - "@opam/cmdliner@opam:1.0.4@93208aac", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@opam/topkg@opam:1.0.7@7ee47d76": { - "id": "@opam/topkg@opam:1.0.7@7ee47d76", - "name": "@opam/topkg", - "version": "opam:1.0.7", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha512/09/09e59f1759bf4db8471f02d0aefd8db602b44932a291c05c312b1423796e7a15d1598d3c62a0cec7f083eff8e410fac09363533dc4bd2120914bb9664efea535#sha512:09e59f1759bf4db8471f02d0aefd8db602b44932a291c05c312b1423796e7a15d1598d3c62a0cec7f083eff8e410fac09363533dc4bd2120914bb9664efea535", - "archive:https://erratique.ch/software/topkg/releases/topkg-1.0.7.tbz#sha512:09e59f1759bf4db8471f02d0aefd8db602b44932a291c05c312b1423796e7a15d1598d3c62a0cec7f083eff8e410fac09363533dc4bd2120914bb9664efea535" - ], - "opam": { - "name": "topkg", - "version": "1.0.7", - "path": "esy.lock/opam/topkg.1.0.7" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7", - "@opam/ocamlbuild@opam:0.14.3@6ab20ab3", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlbuild@opam:0.14.3@6ab20ab3" - ] - }, - "@opam/stdune@opam:3.15.0@0a2eb384": { - "id": "@opam/stdune@opam:3.15.0@0a2eb384", - "name": "@opam/stdune", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "stdune", - "version": "3.15.0", - "path": "esy.lock/opam/stdune.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/dyn@opam:3.15.0@42b23be2", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", - "@opam/base-unix@opam:base@87d0b2eb", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/dyn@opam:3.15.0@42b23be2", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", - "@opam/base-unix@opam:base@87d0b2eb" - ] - }, - "@opam/stdlib-shims@opam:0.3.0@72c7bc98": { - "id": "@opam/stdlib-shims@opam:0.3.0@72c7bc98", - "name": "@opam/stdlib-shims", - "version": "opam:0.3.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/ba/babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a#sha256:babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a", - "archive:https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz#sha256:babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a" - ], - "opam": { - "name": "stdlib-shims", - "version": "0.3.0", - "path": "esy.lock/opam/stdlib-shims.0.3.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/spawn@opam:v0.15.1@85e9d6f1": { - "id": "@opam/spawn@opam:v0.15.1@85e9d6f1", - "name": "@opam/spawn", - "version": "opam:v0.15.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/9a/9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50#sha256:9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50", - "archive:https://github.com/janestreet/spawn/archive/v0.15.1.tar.gz#sha256:9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50" - ], - "opam": { - "name": "spawn", - "version": "v0.15.1", - "path": "esy.lock/opam/spawn.v0.15.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/sexplib0@opam:v0.16.0@c0ffad0c": { - "id": "@opam/sexplib0@opam:v0.16.0@c0ffad0c", - "name": "@opam/sexplib0", - "version": "opam:v0.16.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/86/86dba26468194512f789f2fb709063515a9cb4e5c4461c021c239a369590701d#sha256:86dba26468194512f789f2fb709063515a9cb4e5c4461c021c239a369590701d", - "archive:https://ocaml.janestreet.com/ocaml-core/v0.16/files/sexplib0-v0.16.0.tar.gz#sha256:86dba26468194512f789f2fb709063515a9cb4e5c4461c021c239a369590701d" - ], - "opam": { - "name": "sexplib0", - "version": "v0.16.0", - "path": "esy.lock/opam/sexplib0.v0.16.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/seq@opam:base@d8d7de1d": { - "id": "@opam/seq@opam:base@d8d7de1d", - "name": "@opam/seq", - "version": "opam:base", - "source": { - "type": "install", - "source": [ "no-source:" ], - "opam": { - "name": "seq", - "version": "base", - "path": "esy.lock/opam/seq.base" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@opam/reason@opam:3.9.0@2a7c0e6f": { - "id": "@opam/reason@opam:3.9.0@2a7c0e6f", - "name": "@opam/reason", - "version": "opam:3.9.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/bc/bcf0081ecf3d05ce68e82876a1bc2a48497c78225b8b310f2cf24b33f3568416#sha256:bcf0081ecf3d05ce68e82876a1bc2a48497c78225b8b310f2cf24b33f3568416", - "archive:https://github.com/reasonml/reason/releases/download/3.9.0/reason-3.9.0.tbz#sha256:bcf0081ecf3d05ce68e82876a1bc2a48497c78225b8b310f2cf24b33f3568416" - ], - "opam": { - "name": "reason", - "version": "3.9.0", - "path": "esy.lock/opam/reason.3.9.0" - } - }, - "overrides": [ - { - "opamoverride": "esy.lock/overrides/opam__s__reason_opam__c__3.9.0_opam_override" - } - ], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "@opam/ppxlib@opam:0.32.1~5.2preview@34932981", - "@opam/ppx_derivers@opam:1.2.1@e2cbad12", - "@opam/ocamlfind@opam:1.9.6@da5169c7", - "@opam/merlin-extend@opam:0.6.1@7d979feb", - "@opam/menhir@opam:20231231@f35eae6a", - "@opam/fix@opam:20230505@941a65ff", - "@opam/dune-build-info@opam:3.15.0@0023c4b3", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", - "@opam/ppxlib@opam:0.32.1~5.2preview@34932981", - "@opam/ppx_derivers@opam:1.2.1@e2cbad12", - "@opam/merlin-extend@opam:0.6.1@7d979feb", - "@opam/menhir@opam:20231231@f35eae6a", - "@opam/fix@opam:20230505@941a65ff", - "@opam/dune-build-info@opam:3.15.0@0023c4b3", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/re@opam:1.11.0@87deb463": { - "id": "@opam/re@opam:1.11.0@87deb463", - "name": "@opam/re", - "version": "opam:1.11.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/01/01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f#sha256:01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f", - "archive:https://github.com/ocaml/ocaml-re/releases/download/1.11.0/re-1.11.0.tbz#sha256:01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f" - ], - "opam": { - "name": "re", - "version": "1.11.0", - "path": "esy.lock/opam/re.1.11.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/ppxlib@opam:0.32.1~5.2preview@34932981": { - "id": "@opam/ppxlib@opam:0.32.1~5.2preview@34932981", - "name": "@opam/ppxlib", - "version": "opam:0.32.1~5.2preview", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/f0/f0e61123b33b2acca23a388a367226674a7bccdedbaa41b0fd62fa42344dccd9#sha256:f0e61123b33b2acca23a388a367226674a7bccdedbaa41b0fd62fa42344dccd9", - "archive:https://github.com/ocaml-ppx/ppxlib/archive/04e050cbe2cf3e5cdb4441c480e4f472a5033941.tar.gz#sha256:f0e61123b33b2acca23a388a367226674a7bccdedbaa41b0fd62fa42344dccd9" - ], - "opam": { - "name": "ppxlib", - "version": "0.32.1~5.2preview", - "path": "esy.lock/opam/ppxlib.0.32.1~5.2preview" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/stdlib-shims@opam:0.3.0@72c7bc98", - "@opam/sexplib0@opam:v0.16.0@c0ffad0c", - "@opam/ppx_derivers@opam:1.2.1@e2cbad12", - "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/stdlib-shims@opam:0.3.0@72c7bc98", - "@opam/sexplib0@opam:v0.16.0@c0ffad0c", - "@opam/ppx_derivers@opam:1.2.1@e2cbad12", - "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/ppx_yojson_conv_lib@opam:v0.16.0@33740c3c": { - "id": "@opam/ppx_yojson_conv_lib@opam:v0.16.0@33740c3c", - "name": "@opam/ppx_yojson_conv_lib", - "version": "opam:v0.16.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/55/557c43c88d365b4cbb514d809f1eecc54d7b9976b0669bc55b02169e6c86ec7d#sha256:557c43c88d365b4cbb514d809f1eecc54d7b9976b0669bc55b02169e6c86ec7d", - "archive:https://ocaml.janestreet.com/ocaml-core/v0.16/files/ppx_yojson_conv_lib-v0.16.0.tar.gz#sha256:557c43c88d365b4cbb514d809f1eecc54d7b9976b0669bc55b02169e6c86ec7d" - ], - "opam": { - "name": "ppx_yojson_conv_lib", - "version": "v0.16.0", - "path": "esy.lock/opam/ppx_yojson_conv_lib.v0.16.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/ppx_derivers@opam:1.2.1@e2cbad12": { - "id": "@opam/ppx_derivers@opam:1.2.1@e2cbad12", - "name": "@opam/ppx_derivers", - "version": "opam:1.2.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/5d/5dc2bf130c1db3c731fe0fffc5648b41#md5:5dc2bf130c1db3c731fe0fffc5648b41", - "archive:https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz#md5:5dc2bf130c1db3c731fe0fffc5648b41" - ], - "opam": { - "name": "ppx_derivers", - "version": "1.2.1", - "path": "esy.lock/opam/ppx_derivers.1.2.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/pp@opam:1.2.0@16430027": { - "id": "@opam/pp@opam:1.2.0@16430027", - "name": "@opam/pp", - "version": "opam:1.2.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/a5/a5e822573c55afb42db29ec56eacd1f2acd8f65cf2df2878e291de374ce6909c#sha256:a5e822573c55afb42db29ec56eacd1f2acd8f65cf2df2878e291de374ce6909c", - "archive:https://github.com/ocaml-dune/pp/releases/download/1.2.0/pp-1.2.0.tbz#sha256:a5e822573c55afb42db29ec56eacd1f2acd8f65cf2df2878e291de374ce6909c" - ], - "opam": { - "name": "pp", - "version": "1.2.0", - "path": "esy.lock/opam/pp.1.2.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/ordering@opam:3.15.0@edf262a1": { - "id": "@opam/ordering@opam:3.15.0@edf262a1", - "name": "@opam/ordering", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "ordering", - "version": "3.15.0", - "path": "esy.lock/opam/ordering.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/ocamlformat-rpc-lib@opam:0.26.2@f94d170f": { - "id": "@opam/ocamlformat-rpc-lib@opam:0.26.2@f94d170f", - "name": "@opam/ocamlformat-rpc-lib", - "version": "opam:0.26.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/2e/2e4f596bf7aa367a844fe83ba0f6b0bf14b2a65179ddc082363fe9793d0375c5#sha256:2e4f596bf7aa367a844fe83ba0f6b0bf14b2a65179ddc082363fe9793d0375c5", - "archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.26.2/ocamlformat-0.26.2.tbz#sha256:2e4f596bf7aa367a844fe83ba0f6b0bf14b2a65179ddc082363fe9793d0375c5" - ], - "opam": { - "name": "ocamlformat-rpc-lib", - "version": "0.26.2", - "path": "esy.lock/opam/ocamlformat-rpc-lib.0.26.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4" - ] - }, - "@opam/ocamlfind@opam:1.9.6@da5169c7": { - "id": "@opam/ocamlfind@opam:1.9.6@da5169c7", - "name": "@opam/ocamlfind", - "version": "opam:1.9.6", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/96/96c6ee50a32cca9ca277321262dbec57#md5:96c6ee50a32cca9ca277321262dbec57", - "archive:http://download.camlcity.org/download/findlib-1.9.6.tar.gz#md5:96c6ee50a32cca9ca277321262dbec57" - ], - "opam": { - "name": "ocamlfind", - "version": "1.9.6", - "path": "esy.lock/opam/ocamlfind.1.9.6" - } - }, - "overrides": [ - { - "opamoverride": "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override" - } - ], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@opam/ocamlc-loc@opam:3.15.0@5c2e9f97": { - "id": "@opam/ocamlc-loc@opam:3.15.0@5c2e9f97", - "name": "@opam/ocamlc-loc", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "ocamlc-loc", - "version": "3.15.0", - "path": "esy.lock/opam/ocamlc-loc.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dyn@opam:3.15.0@42b23be2", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dyn@opam:3.15.0@42b23be2", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/ocamlbuild@opam:0.14.3@6ab20ab3": { - "id": "@opam/ocamlbuild@opam:0.14.3@6ab20ab3", - "name": "@opam/ocamlbuild", - "version": "opam:0.14.3", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/22/220df59060c916e8aac2eb471c870485#md5:220df59060c916e8aac2eb471c870485", - "archive:https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.14.3.tar.gz#md5:220df59060c916e8aac2eb471c870485" - ], - "opam": { - "name": "ocamlbuild", - "version": "0.14.3", - "path": "esy.lock/opam/ocamlbuild.0.14.3" - } - }, - "overrides": [ - { - "opamoverride": "esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override" - } - ], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@opam/ocaml-lsp-server@opam:1.17.0@12f65153": { - "id": "@opam/ocaml-lsp-server@opam:1.17.0@12f65153", - "name": "@opam/ocaml-lsp-server", - "version": "opam:1.17.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/8f/8fb8bbd717eefd2608b4d83458105b660e0de3a1134dc8fc216ae659d4d19600#sha256:8fb8bbd717eefd2608b4d83458105b660e0de3a1134dc8fc216ae659d4d19600", - "archive:https://github.com/ocaml/ocaml-lsp/releases/download/1.17.0/lsp-1.17.0.tbz#sha256:8fb8bbd717eefd2608b4d83458105b660e0de3a1134dc8fc216ae659d4d19600" - ], - "opam": { - "name": "ocaml-lsp-server", - "version": "1.17.0", - "path": "esy.lock/opam/ocaml-lsp-server.1.17.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/xdg@opam:3.15.0@f838e3fe", "@opam/uutf@opam:1.0.3@47c95a18", - "@opam/stdune@opam:3.15.0@0a2eb384", - "@opam/spawn@opam:v0.15.1@85e9d6f1", "@opam/re@opam:1.11.0@87deb463", - "@opam/ppx_yojson_conv_lib@opam:v0.16.0@33740c3c", - "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/ocamlformat-rpc-lib@opam:0.26.2@f94d170f", - "@opam/ocamlc-loc@opam:3.15.0@5c2e9f97", - "@opam/merlin-lib@opam:4.14-414@98d147ee", - "@opam/fiber@opam:3.7.0@d70e2471", "@opam/dyn@opam:3.15.0@42b23be2", - "@opam/dune-rpc@opam:3.15.0@c20f1f52", - "@opam/dune-build-info@opam:3.15.0@0023c4b3", - "@opam/dune@opam:3.15.0@8ee5bd50", "@opam/csexp@opam:1.5.2@46614bf4", - "@opam/chrome-trace@opam:3.15.0@2a658f0c", - "@opam/camlp-streams@opam:5.0.1@daaa0f94", - "@opam/astring@opam:0.8.5@1300cee8", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/xdg@opam:3.15.0@f838e3fe", "@opam/uutf@opam:1.0.3@47c95a18", - "@opam/stdune@opam:3.15.0@0a2eb384", - "@opam/spawn@opam:v0.15.1@85e9d6f1", "@opam/re@opam:1.11.0@87deb463", - "@opam/ppx_yojson_conv_lib@opam:v0.16.0@33740c3c", - "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/ocamlformat-rpc-lib@opam:0.26.2@f94d170f", - "@opam/ocamlc-loc@opam:3.15.0@5c2e9f97", - "@opam/merlin-lib@opam:4.14-414@98d147ee", - "@opam/fiber@opam:3.7.0@d70e2471", "@opam/dyn@opam:3.15.0@42b23be2", - "@opam/dune-rpc@opam:3.15.0@c20f1f52", - "@opam/dune-build-info@opam:3.15.0@0023c4b3", - "@opam/dune@opam:3.15.0@8ee5bd50", "@opam/csexp@opam:1.5.2@46614bf4", - "@opam/chrome-trace@opam:3.15.0@2a658f0c", - "@opam/camlp-streams@opam:5.0.1@daaa0f94", - "@opam/astring@opam:0.8.5@1300cee8" - ] - }, - "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1": { - "id": "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1", - "name": "@opam/ocaml-compiler-libs", - "version": "opam:v0.12.4", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/4e/4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760#sha256:4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760", - "archive:https://github.com/janestreet/ocaml-compiler-libs/releases/download/v0.12.4/ocaml-compiler-libs-v0.12.4.tbz#sha256:4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760" - ], - "opam": { - "name": "ocaml-compiler-libs", - "version": "v0.12.4", - "path": "esy.lock/opam/ocaml-compiler-libs.v0.12.4" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/merlin-lib@opam:4.14-414@98d147ee": { - "id": "@opam/merlin-lib@opam:4.14-414@98d147ee", - "name": "@opam/merlin-lib", - "version": "opam:4.14-414", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/79/79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d#sha256:79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d", - "archive:https://github.com/ocaml/merlin/releases/download/v4.14-414/merlin-4.14-414.tbz#sha256:79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d" - ], - "opam": { - "name": "merlin-lib", - "version": "4.14-414", - "path": "esy.lock/opam/merlin-lib.4.14-414" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4" - ] - }, - "@opam/merlin-extend@opam:0.6.1@7d979feb": { - "id": "@opam/merlin-extend@opam:0.6.1@7d979feb", - "name": "@opam/merlin-extend", - "version": "opam:0.6.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/5e/5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7#sha256:5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7", - "archive:https://github.com/let-def/merlin-extend/releases/download/v0.6.1/merlin-extend-0.6.1.tbz#sha256:5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7" - ], - "opam": { - "name": "merlin-extend", - "version": "0.6.1", - "path": "esy.lock/opam/merlin-extend.0.6.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/cppo@opam:1.6.9@db929a12", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/merlin@opam:4.14-414@6c5e0b0b": { - "id": "@opam/merlin@opam:4.14-414@6c5e0b0b", - "name": "@opam/merlin", - "version": "opam:4.14-414", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/79/79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d#sha256:79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d", - "archive:https://github.com/ocaml/merlin/releases/download/v4.14-414/merlin-4.14-414.tbz#sha256:79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d" - ], - "opam": { - "name": "merlin", - "version": "4.14-414", - "path": "esy.lock/opam/merlin.4.14-414" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/merlin-lib@opam:4.14-414@98d147ee", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/dot-merlin-reader@opam:4.9@5671df8d", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/merlin-lib@opam:4.14-414@98d147ee", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/dot-merlin-reader@opam:4.9@5671df8d" - ] - }, - "@opam/menhirSdk@opam:20231231@b20b8a51": { - "id": "@opam/menhirSdk@opam:20231231@b20b8a51", - "name": "@opam/menhirSdk", - "version": "opam:20231231", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/79/799748bc3b7a542798a85956c7863865#md5:799748bc3b7a542798a85956c7863865", - "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz#md5:799748bc3b7a542798a85956c7863865" - ], - "opam": { - "name": "menhirSdk", - "version": "20231231", - "path": "esy.lock/opam/menhirSdk.20231231" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/menhirLib@opam:20231231@14d79986": { - "id": "@opam/menhirLib@opam:20231231@14d79986", - "name": "@opam/menhirLib", - "version": "opam:20231231", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/79/799748bc3b7a542798a85956c7863865#md5:799748bc3b7a542798a85956c7863865", - "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz#md5:799748bc3b7a542798a85956c7863865" - ], - "opam": { - "name": "menhirLib", - "version": "20231231", - "path": "esy.lock/opam/menhirLib.20231231" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/menhirCST@opam:20231231@0f42b5d1": { - "id": "@opam/menhirCST@opam:20231231@0f42b5d1", - "name": "@opam/menhirCST", - "version": "opam:20231231", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/79/799748bc3b7a542798a85956c7863865#md5:799748bc3b7a542798a85956c7863865", - "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz#md5:799748bc3b7a542798a85956c7863865" - ], - "opam": { - "name": "menhirCST", - "version": "20231231", - "path": "esy.lock/opam/menhirCST.20231231" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/menhir@opam:20231231@f35eae6a": { - "id": "@opam/menhir@opam:20231231@f35eae6a", - "name": "@opam/menhir", - "version": "opam:20231231", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/79/799748bc3b7a542798a85956c7863865#md5:799748bc3b7a542798a85956c7863865", - "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz#md5:799748bc3b7a542798a85956c7863865" - ], - "opam": { - "name": "menhir", - "version": "20231231", - "path": "esy.lock/opam/menhir.20231231" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/menhirSdk@opam:20231231@b20b8a51", - "@opam/menhirLib@opam:20231231@14d79986", - "@opam/menhirCST@opam:20231231@0f42b5d1", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/menhirSdk@opam:20231231@b20b8a51", - "@opam/menhirLib@opam:20231231@14d79986", - "@opam/menhirCST@opam:20231231@0f42b5d1", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/fix@opam:20230505@941a65ff": { - "id": "@opam/fix@opam:20230505@941a65ff", - "name": "@opam/fix", - "version": "opam:20230505", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/2a/2a4afa633128c5010677222f7b3c9451#md5:2a4afa633128c5010677222f7b3c9451", - "archive:https://gitlab.inria.fr/fpottier/fix/-/archive/20230505/archive.tar.gz#md5:2a4afa633128c5010677222f7b3c9451" - ], - "opam": { - "name": "fix", - "version": "20230505", - "path": "esy.lock/opam/fix.20230505" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/fiber@opam:3.7.0@d70e2471": { - "id": "@opam/fiber@opam:3.7.0@d70e2471", - "name": "@opam/fiber", - "version": "opam:3.7.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/86/8648a15ae93fe6942999ce36887429a3913b62829c4714e520cc0e7a1c3b9682#sha256:8648a15ae93fe6942999ce36887429a3913b62829c4714e520cc0e7a1c3b9682", - "archive:https://github.com/ocaml-dune/fiber/releases/download/3.7.0/fiber-lwt-3.7.0.tbz#sha256:8648a15ae93fe6942999ce36887429a3913b62829c4714e520cc0e7a1c3b9682" - ], - "opam": { - "name": "fiber", - "version": "3.7.0", - "path": "esy.lock/opam/fiber.3.7.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/stdune@opam:3.15.0@0a2eb384", - "@opam/dyn@opam:3.15.0@42b23be2", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/stdune@opam:3.15.0@0a2eb384", - "@opam/dyn@opam:3.15.0@42b23be2", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/easy-format@opam:1.3.4@21f6fe23": { - "id": "@opam/easy-format@opam:1.3.4@21f6fe23", - "name": "@opam/easy-format", - "version": "opam:1.3.4", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/1d/1dbf051e9f68574dde6e2e254a66b9c524ca425e80b36e99af96ed964ab610c3#sha256:1dbf051e9f68574dde6e2e254a66b9c524ca425e80b36e99af96ed964ab610c3", - "archive:https://github.com/ocaml-community/easy-format/releases/download/1.3.4/easy-format-1.3.4.tbz#sha256:1dbf051e9f68574dde6e2e254a66b9c524ca425e80b36e99af96ed964ab610c3" - ], - "opam": { - "name": "easy-format", - "version": "1.3.4", - "path": "esy.lock/opam/easy-format.1.3.4" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/dyn@opam:3.15.0@42b23be2": { - "id": "@opam/dyn@opam:3.15.0@42b23be2", - "name": "@opam/dyn", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "dyn", - "version": "3.15.0", - "path": "esy.lock/opam/dyn.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/dune-rpc@opam:3.15.0@c20f1f52": { - "id": "@opam/dune-rpc@opam:3.15.0@c20f1f52", - "name": "@opam/dune-rpc", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "dune-rpc", - "version": "3.15.0", - "path": "esy.lock/opam/dune-rpc.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "@opam/xdg@opam:3.15.0@f838e3fe", - "@opam/stdune@opam:3.15.0@0a2eb384", "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/dyn@opam:3.15.0@42b23be2", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "@opam/xdg@opam:3.15.0@f838e3fe", - "@opam/stdune@opam:3.15.0@0a2eb384", "@opam/pp@opam:1.2.0@16430027", - "@opam/ordering@opam:3.15.0@edf262a1", - "@opam/dyn@opam:3.15.0@42b23be2", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4" - ] - }, - "@opam/dune-configurator@opam:3.15.0@9e147c2c": { - "id": "@opam/dune-configurator@opam:3.15.0@9e147c2c", - "name": "@opam/dune-configurator", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "dune-configurator", - "version": "3.15.0", - "path": "esy.lock/opam/dune-configurator.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", - "@opam/base-unix@opam:base@87d0b2eb", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/csexp@opam:1.5.2@46614bf4", - "@opam/base-unix@opam:base@87d0b2eb" - ] - }, - "@opam/dune-build-info@opam:3.15.0@0023c4b3": { - "id": "@opam/dune-build-info@opam:3.15.0@0023c4b3", - "name": "@opam/dune-build-info", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "dune-build-info", - "version": "3.15.0", - "path": "esy.lock/opam/dune-build-info.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/dune@opam:3.15.0@8ee5bd50": { - "id": "@opam/dune@opam:3.15.0@8ee5bd50", - "name": "@opam/dune", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "dune", - "version": "3.15.0", - "path": "esy.lock/opam/dune.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", - "@opam/base-threads@opam:base@36803084", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/base-unix@opam:base@87d0b2eb", - "@opam/base-threads@opam:base@36803084" - ] - }, - "@opam/dot-merlin-reader@opam:4.9@5671df8d": { - "id": "@opam/dot-merlin-reader@opam:4.9@5671df8d", - "name": "@opam/dot-merlin-reader", - "version": "opam:4.9", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/e2/e23fc47813591269ff9d27c820988e520a662c89dd0af7ea652b21517499cbfd#sha256:e23fc47813591269ff9d27c820988e520a662c89dd0af7ea652b21517499cbfd", - "archive:https://github.com/ocaml/merlin/releases/download/v4.9-414/merlin-4.9-414.tbz#sha256:e23fc47813591269ff9d27c820988e520a662c89dd0af7ea652b21517499cbfd" - ], - "opam": { - "name": "dot-merlin-reader", - "version": "4.9", - "path": "esy.lock/opam/dot-merlin-reader.4.9" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7", - "@opam/merlin-lib@opam:4.14-414@98d147ee", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7", - "@opam/merlin-lib@opam:4.14-414@98d147ee", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/csexp@opam:1.5.2@46614bf4": { - "id": "@opam/csexp@opam:1.5.2@46614bf4", - "name": "@opam/csexp", - "version": "opam:1.5.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/1a/1a14dd04bb4379a41990248550628c77913a9c07f3c35c1370b6960e697787ff#sha256:1a14dd04bb4379a41990248550628c77913a9c07f3c35c1370b6960e697787ff", - "archive:https://github.com/ocaml-dune/csexp/releases/download/1.5.2/csexp-1.5.2.tbz#sha256:1a14dd04bb4379a41990248550628c77913a9c07f3c35c1370b6960e697787ff" - ], - "opam": { - "name": "csexp", - "version": "1.5.2", - "path": "esy.lock/opam/csexp.1.5.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/cppo@opam:1.6.9@db929a12": { - "id": "@opam/cppo@opam:1.6.9@db929a12", - "name": "@opam/cppo", - "version": "opam:1.6.9", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/d2/d23ffe85ac7dc8f0afd1ddf622770d09#md5:d23ffe85ac7dc8f0afd1ddf622770d09", - "archive:https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz#md5:d23ffe85ac7dc8f0afd1ddf622770d09" - ], - "opam": { - "name": "cppo", - "version": "1.6.9", - "path": "esy.lock/opam/cppo.1.6.9" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/base-unix@opam:base@87d0b2eb", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/base-unix@opam:base@87d0b2eb" - ] - }, - "@opam/cmdliner@opam:1.0.4@93208aac": { - "id": "@opam/cmdliner@opam:1.0.4@93208aac", - "name": "@opam/cmdliner", - "version": "opam:1.0.4", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/fe/fe2213d0bc63b1e10a2d0aa66d2fc8d9#md5:fe2213d0bc63b1e10a2d0aa66d2fc8d9", - "archive:http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz#md5:fe2213d0bc63b1e10a2d0aa66d2fc8d9" - ], - "opam": { - "name": "cmdliner", - "version": "1.0.4", - "path": "esy.lock/opam/cmdliner.1.0.4" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@opam/chrome-trace@opam:3.15.0@2a658f0c": { - "id": "@opam/chrome-trace@opam:3.15.0@2a658f0c", - "name": "@opam/chrome-trace", - "version": "opam:3.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/b5/b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7", - "archive:https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz#sha256:b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - ], - "opam": { - "name": "chrome-trace", - "version": "3.15.0", - "path": "esy.lock/opam/chrome-trace.3.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/camlp-streams@opam:5.0.1@daaa0f94": { - "id": "@opam/camlp-streams@opam:5.0.1@daaa0f94", - "name": "@opam/camlp-streams", - "version": "opam:5.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/af/afc874b25f7a1f13e8f5cfc1182b51a7#md5:afc874b25f7a1f13e8f5cfc1182b51a7", - "archive:https://github.com/ocaml/camlp-streams/archive/v5.0.1.tar.gz#md5:afc874b25f7a1f13e8f5cfc1182b51a7" - ], - "opam": { - "name": "camlp-streams", - "version": "5.0.1", - "path": "esy.lock/opam/camlp-streams.5.0.1" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/biniou@opam:1.2.2@c7862a8d": { - "id": "@opam/biniou@opam:1.2.2@c7862a8d", - "name": "@opam/biniou", - "version": "opam:1.2.2", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/8b/8bf3ff17cd0ecb2d6b6d1d94cb08ef089d44caef96e9bae6be6839d428fa318f#sha256:8bf3ff17cd0ecb2d6b6d1d94cb08ef089d44caef96e9bae6be6839d428fa318f", - "archive:https://github.com/mjambon/biniou/releases/download/1.2.2/biniou-1.2.2.tbz#sha256:8bf3ff17cd0ecb2d6b6d1d94cb08ef089d44caef96e9bae6be6839d428fa318f" - ], - "opam": { - "name": "biniou", - "version": "1.2.2", - "path": "esy.lock/opam/biniou.1.2.2" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/easy-format@opam:1.3.4@21f6fe23", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/camlp-streams@opam:5.0.1@daaa0f94", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/easy-format@opam:1.3.4@21f6fe23", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/camlp-streams@opam:5.0.1@daaa0f94" - ] - }, - "@opam/base-unix@opam:base@87d0b2eb": { - "id": "@opam/base-unix@opam:base@87d0b2eb", - "name": "@opam/base-unix", - "version": "opam:base", - "source": { - "type": "install", - "source": [ "no-source:" ], - "opam": { - "name": "base-unix", - "version": "base", - "path": "esy.lock/opam/base-unix.base" - } - }, - "overrides": [], - "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "@opam/base-threads@opam:base@36803084": { - "id": "@opam/base-threads@opam:base@36803084", - "name": "@opam/base-threads", - "version": "opam:base", - "source": { - "type": "install", - "source": [ "no-source:" ], - "opam": { - "name": "base-threads", - "version": "base", - "path": "esy.lock/opam/base-threads.base" - } - }, - "overrides": [], - "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "@opam/atdgen-runtime@opam:2.15.0@05de7755": { - "id": "@opam/atdgen-runtime@opam:2.15.0@05de7755", - "name": "@opam/atdgen-runtime", - "version": "opam:2.15.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/ba/ba4279bed54d13dcf3f6703a4b31744db815df22c0502d9965d6c674ce083933#sha256:ba4279bed54d13dcf3f6703a4b31744db815df22c0502d9965d6c674ce083933", - "archive:https://github.com/ahrefs/atd/releases/download/2.15.0/atd-2.15.0.tbz#sha256:ba4279bed54d13dcf3f6703a4b31744db815df22c0502d9965d6c674ce083933" - ], - "opam": { - "name": "atdgen-runtime", - "version": "2.15.0", - "path": "esy.lock/opam/atdgen-runtime.2.15.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/biniou@opam:1.2.2@c7862a8d", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/dune@opam:3.15.0@8ee5bd50", "@opam/biniou@opam:1.2.2@c7862a8d" - ] - }, - "@opam/atdgen@opam:2.12.0@205ff7f3": { - "id": "@opam/atdgen@opam:2.12.0@205ff7f3", - "name": "@opam/atdgen", - "version": "opam:2.12.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/02/02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0#sha256:02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0", - "archive:https://github.com/ahrefs/atd/releases/download/2.12.0/atdts-2.12.0.tbz#sha256:02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0" - ], - "opam": { - "name": "atdgen", - "version": "2.12.0", - "path": "esy.lock/opam/atdgen.2.12.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/re@opam:1.11.0@87deb463", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/biniou@opam:1.2.2@c7862a8d", - "@opam/atdgen-runtime@opam:2.15.0@05de7755", - "@opam/atd@opam:2.12.0@d1e656e5", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/re@opam:1.11.0@87deb463", "@opam/dune@opam:3.15.0@8ee5bd50", - "@opam/biniou@opam:1.2.2@c7862a8d", - "@opam/atdgen-runtime@opam:2.15.0@05de7755", - "@opam/atd@opam:2.12.0@d1e656e5" - ] - }, - "@opam/atd@opam:2.12.0@d1e656e5": { - "id": "@opam/atd@opam:2.12.0@d1e656e5", - "name": "@opam/atd", - "version": "opam:2.12.0", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/sha256/02/02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0#sha256:02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0", - "archive:https://github.com/ahrefs/atd/releases/download/2.12.0/atdts-2.12.0.tbz#sha256:02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0" - ], - "opam": { - "name": "atd", - "version": "2.12.0", - "path": "esy.lock/opam/atd.2.12.0" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/re@opam:1.11.0@87deb463", - "@opam/menhir@opam:20231231@f35eae6a", - "@opam/easy-format@opam:1.3.4@21f6fe23", - "@opam/dune@opam:3.15.0@8ee5bd50", "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.2@9fd14300", - "@opam/re@opam:1.11.0@87deb463", - "@opam/menhir@opam:20231231@f35eae6a", - "@opam/easy-format@opam:1.3.4@21f6fe23", - "@opam/dune@opam:3.15.0@8ee5bd50" - ] - }, - "@opam/astring@opam:0.8.5@1300cee8": { - "id": "@opam/astring@opam:0.8.5@1300cee8", - "name": "@opam/astring", - "version": "opam:0.8.5", - "source": { - "type": "install", - "source": [ - "archive:https://opam.ocaml.org/cache/md5/e1/e148907c24157d1df43bec89b58b3ec8#md5:e148907c24157d1df43bec89b58b3ec8", - "archive:https://erratique.ch/software/astring/releases/astring-0.8.5.tbz#md5:e148907c24157d1df43bec89b58b3ec8" - ], - "opam": { - "name": "astring", - "version": "0.8.5", - "path": "esy.lock/opam/astring.0.8.5" - } - }, - "overrides": [], - "dependencies": [ - "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@7ee47d76", - "@opam/ocamlfind@opam:1.9.6@da5169c7", - "@opam/ocamlbuild@opam:0.14.3@6ab20ab3", - "@esy-ocaml/substs@0.0.1@d41d8cd9" - ], - "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ] - }, - "@nodelib/fs.walk@1.2.8@d41d8cd9": { - "id": "@nodelib/fs.walk@1.2.8@d41d8cd9", - "name": "@nodelib/fs.walk", - "version": "1.2.8", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#sha1:e95737e8bb6746ddedf69c556953494f196fe69a" - ] - }, - "overrides": [], - "dependencies": [ - "fastq@1.17.1@d41d8cd9", "@nodelib/fs.scandir@2.1.5@d41d8cd9" - ], - "devDependencies": [] - }, - "@nodelib/fs.stat@2.0.5@d41d8cd9": { - "id": "@nodelib/fs.stat@2.0.5@d41d8cd9", - "name": "@nodelib/fs.stat", - "version": "2.0.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#sha1:5bd262af94e9d25bd1e71b05deed44876a222e8b" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "@nodelib/fs.scandir@2.1.5@d41d8cd9": { - "id": "@nodelib/fs.scandir@2.1.5@d41d8cd9", - "name": "@nodelib/fs.scandir", - "version": "2.1.5", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#sha1:7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - ] - }, - "overrides": [], - "dependencies": [ - "run-parallel@1.2.0@d41d8cd9", "@nodelib/fs.stat@2.0.5@d41d8cd9" - ], - "devDependencies": [] - }, - "@esy-ocaml/substs@0.0.1@d41d8cd9": { - "id": "@esy-ocaml/substs@0.0.1@d41d8cd9", - "name": "@esy-ocaml/substs", - "version": "0.0.1", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@esy-ocaml/substs/-/substs-0.0.1.tgz#sha1:59ebdbbaedcda123fc7ed8fb2b302b7d819e9a46" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "@concordance/react@2.0.0@d41d8cd9": { - "id": "@concordance/react@2.0.0@d41d8cd9", - "name": "@concordance/react", - "version": "2.0.0", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@concordance/react/-/react-2.0.0.tgz#sha1:aef913f27474c53731f4fd79cc2f54897de90fde" - ] - }, - "overrides": [], - "dependencies": [ "arrify@1.0.1@d41d8cd9" ], - "devDependencies": [] - }, - "@babel/highlight@7.24.2@d41d8cd9": { - "id": "@babel/highlight@7.24.2@d41d8cd9", - "name": "@babel/highlight", - "version": "7.24.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz#sha1:3f539503efc83d3c59080a10e6634306e0370d26" - ] - }, - "overrides": [], - "dependencies": [ - "picocolors@1.0.0@d41d8cd9", "js-tokens@4.0.0@d41d8cd9", - "chalk@2.4.2@d41d8cd9", - "@babel/helper-validator-identifier@7.22.20@d41d8cd9" - ], - "devDependencies": [] - }, - "@babel/helper-validator-identifier@7.22.20@d41d8cd9": { - "id": "@babel/helper-validator-identifier@7.22.20@d41d8cd9", - "name": "@babel/helper-validator-identifier", - "version": "7.22.20", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#sha1:c4ae002c61d2879e724581d96665583dbc1dc0e0" - ] - }, - "overrides": [], - "dependencies": [], - "devDependencies": [] - }, - "@babel/code-frame@7.24.2@d41d8cd9": { - "id": "@babel/code-frame@7.24.2@d41d8cd9", - "name": "@babel/code-frame", - "version": "7.24.2", - "source": { - "type": "install", - "source": [ - "archive:https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz#sha1:718b4b19841809a58b29b68cde80bc5e1aa6d9ae" - ] - }, - "overrides": [], - "dependencies": [ - "picocolors@1.0.0@d41d8cd9", "@babel/highlight@7.24.2@d41d8cd9" - ], - "devDependencies": [] - } - } -} \ No newline at end of file diff --git a/esy.lock/opam/astring.0.8.5/opam b/esy.lock/opam/astring.0.8.5/opam deleted file mode 100644 index 338a06a3..00000000 --- a/esy.lock/opam/astring.0.8.5/opam +++ /dev/null @@ -1,37 +0,0 @@ -opam-version: "2.0" -maintainer: "Daniel Bünzli " -authors: ["The astring programmers"] -homepage: "https://erratique.ch/software/astring" -doc: "https://erratique.ch/software/astring/doc" -dev-repo: "git+http://erratique.ch/repos/astring.git" -bug-reports: "https://github.com/dbuenzli/astring/issues" -tags: [ "string" "org:erratique" ] -license: "ISC" -depends: [ - "ocaml" {>= "4.05.0"} - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build} ] -build: [[ "ocaml" "pkg/pkg.ml" "build" "--pinned" "%{pinned}%" ]] - -synopsis: """Alternative String module for OCaml""" -description: """\ - -Astring exposes an alternative `String` module for OCaml. This module -tries to balance minimality and expressiveness for basic, index-free, -string processing and provides types and functions for substrings, -string sets and string maps. - -Remaining compatible with the OCaml `String` module is a non-goal. The -`String` module exposed by Astring has exception safe functions, -removes deprecated and rarely used functions, alters some signatures -and names, adds a few missing functions and fully exploits OCaml's -newfound string immutability. - -Astring depends only on the OCaml standard library. It is distributed -under the ISC license. -""" -url { -archive: "https://erratique.ch/software/astring/releases/astring-0.8.5.tbz" -checksum: "e148907c24157d1df43bec89b58b3ec8" -} diff --git a/esy.lock/opam/atd.2.12.0/opam b/esy.lock/opam/atd.2.12.0/opam deleted file mode 100644 index 04cfdde9..00000000 --- a/esy.lock/opam/atd.2.12.0/opam +++ /dev/null @@ -1,98 +0,0 @@ -opam-version: "2.0" -synopsis: "Parser for the ATD data format description language" -description: """ -ATD is the OCaml library providing a parser for the ATD language and various -utilities. ATD stands for Adjustable Type Definitions in reference to its main -property of supporting annotations that allow a good fit with a variety of data -formats. """ -maintainer: [ - "Louis Roché " - "Martin Jambon " - "Rudi Grinberg " -] -authors: [ - "Martin Jambon " - "Rudi Grinberg " - "Martin Jambon " - "Martin Jambon " - "Ivan Jager " - "oleksiy " - "David Sheets " - "Rudi Grinberg " - "Martin Jambon " - "Jeff Meister " - "Caio Wakamatsu " - "Carmelo Piccione " - "Daniel Weil " - "Egor Chemokhonenko " - "Gabriel Scherer " - "Raman Varabets " - "tzm " - "Mathieu Baudet " - "Oleksiy Golovko " - "Rauan Mayemir " - "Carmelo Piccione " - "John Billings " - "Louis Roché " - "Brendan Long " - "Chris Yocum " - "Louis Roché (Ahrefs) " - "Louis Roché " - "Pavel Antoshkin " - "Pierre Boutillier " - "Shon Feder " - "Anurag Soni " - "Arjun Ravi Narayan " - "Asya-kawai " - "Christophe Troestler " - "Damien Doligez " - "Daniel M " - "Ding Xiang Fei " - "François Pottier " - "Javier Chavarri " - "Kate " - "Louis " - "Louis Roché " - "Raman Varabets " - "Stephane Legrand " - "Vincent Bernardoff " - "haoyang " - "pmundkur " - "ygrek " -] -license: "MIT" -homepage: "https://github.com/ahrefs/atd" -bug-reports: "https://github.com/ahrefs/atd/issues" -depends: [ - "dune" {>= "2.8"} - "ocaml" {>= "4.08"} - "menhir" {>= "20180523" & != "20211230"} - "easy-format" - "alcotest" {with-test} - "odoc" {with-doc} - "re" {>= "1.9.0"} - "yojson" {>= "1.6.0"} -] -dev-repo: "git+https://github.com/ahrefs/atd.git" -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ahrefs/atd/releases/download/2.12.0/atdts-2.12.0.tbz" - checksum: [ - "sha256=02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0" - "sha512=43cbbc4fd9491fcc0e543a488940f17468f5b31e263c7322bad1cc497fb4662a2d7e6aa219377a7105bd31ba80ec69b214247b63406a335ce2fdee886195bae9" - ] -} -x-commit-hash: "652a65aa7635cd44afd0669ebec7af87bf894a45" diff --git a/esy.lock/opam/atdgen-runtime.2.15.0/opam b/esy.lock/opam/atdgen-runtime.2.15.0/opam deleted file mode 100644 index 979437c3..00000000 --- a/esy.lock/opam/atdgen-runtime.2.15.0/opam +++ /dev/null @@ -1,93 +0,0 @@ -opam-version: "2.0" -synopsis: "Runtime library for code generated by atdgen" -description: """ -This package should be used only in conjunction with the atdgen code -generator""" -maintainer: [ - "Louis Roché " - "Martin Jambon " - "Rudi Grinberg " -] -authors: [ - "Martin Jambon " - "Rudi Grinberg " - "Martin Jambon " - "Martin Jambon " - "Ivan Jager " - "oleksiy " - "David Sheets " - "Rudi Grinberg " - "Martin Jambon " - "Jeff Meister " - "Caio Wakamatsu " - "Carmelo Piccione " - "Daniel Weil " - "Egor Chemokhonenko " - "Gabriel Scherer " - "Raman Varabets " - "tzm " - "Mathieu Baudet " - "Oleksiy Golovko " - "Rauan Mayemir " - "Carmelo Piccione " - "John Billings " - "Louis Roché " - "Brendan Long " - "Chris Yocum " - "Louis Roché (Ahrefs) " - "Louis Roché " - "Pavel Antoshkin " - "Pierre Boutillier " - "Shon Feder " - "Anurag Soni " - "Arjun Ravi Narayan " - "Asya-kawai " - "Christophe Troestler " - "Damien Doligez " - "Daniel M " - "Ding Xiang Fei " - "François Pottier " - "Javier Chavarri " - "Kate " - "Louis " - "Louis Roché " - "Raman Varabets " - "Stephane Legrand " - "Vincent Bernardoff " - "haoyang " - "pmundkur " - "ygrek " -] -license: "MIT" -homepage: "https://github.com/ahrefs/atd" -bug-reports: "https://github.com/ahrefs/atd/issues" -depends: [ - "dune" {>= "2.8"} - "ocaml" {>= "4.08"} - "yojson" {>= "2.0.2"} - "biniou" {>= "1.0.6"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ahrefs/atd.git" -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ahrefs/atd/releases/download/2.15.0/atd-2.15.0.tbz" - checksum: [ - "sha256=ba4279bed54d13dcf3f6703a4b31744db815df22c0502d9965d6c674ce083933" - "sha512=33b7943ae6afd14e5a0709d9131d288e663d3f2b962caa065f1b11db8f6adfe081becba7968c8596b3ff2420577295ac248d521858cb0748e95971390eb29829" - ] -} -x-commit-hash: "91a5e6165d4741e19451c41189328f52d33e5c7d" diff --git a/esy.lock/opam/atdgen.2.12.0/opam b/esy.lock/opam/atdgen.2.12.0/opam deleted file mode 100644 index 8aed89e1..00000000 --- a/esy.lock/opam/atdgen.2.12.0/opam +++ /dev/null @@ -1,106 +0,0 @@ -opam-version: "2.0" -synopsis: - "Generates efficient JSON serializers, deserializers and validators" -description: """ -Atdgen is a command-line program that takes as input type definitions in the ATD -syntax and produces OCaml code suitable for data serialization and -deserialization. -Two data formats are currently supported, these are biniou and JSON. -Atdgen-biniou and Atdgen-json will refer to Atdgen used in one context or the -other. -Atdgen was designed with efficiency and durability in mind. Software authors are -encouraged to use Atdgen directly and to write tools that may reuse part of -Atdgen’s source code.""" -maintainer: [ - "Louis Roché " - "Martin Jambon " - "Rudi Grinberg " -] -authors: [ - "Martin Jambon " - "Rudi Grinberg " - "Martin Jambon " - "Martin Jambon " - "Ivan Jager " - "oleksiy " - "David Sheets " - "Rudi Grinberg " - "Martin Jambon " - "Jeff Meister " - "Caio Wakamatsu " - "Carmelo Piccione " - "Daniel Weil " - "Egor Chemokhonenko " - "Gabriel Scherer " - "Raman Varabets " - "tzm " - "Mathieu Baudet " - "Oleksiy Golovko " - "Rauan Mayemir " - "Carmelo Piccione " - "John Billings " - "Louis Roché " - "Brendan Long " - "Chris Yocum " - "Louis Roché (Ahrefs) " - "Louis Roché " - "Pavel Antoshkin " - "Pierre Boutillier " - "Shon Feder " - "Anurag Soni " - "Arjun Ravi Narayan " - "Asya-kawai " - "Christophe Troestler " - "Damien Doligez " - "Daniel M " - "Ding Xiang Fei " - "François Pottier " - "Javier Chavarri " - "Kate " - "Louis " - "Louis Roché " - "Raman Varabets " - "Stephane Legrand " - "Vincent Bernardoff " - "haoyang " - "pmundkur " - "ygrek " -] -license: "MIT" -homepage: "https://github.com/ahrefs/atd" -bug-reports: "https://github.com/ahrefs/atd/issues" -depends: [ - "dune" {>= "2.8"} - "ocaml" {>= "4.08"} - "alcotest" {with-test} - "atd" {>= "2.12.0" & < "2.14.0"} - "atdgen-runtime" {>= "2.1.0"} - "atdgen-codec-runtime" {with-test} - "biniou" {>= "1.0.6"} - "yojson" {>= "2.0.1"} - "odoc" {with-doc} - "re" -] -dev-repo: "git+https://github.com/ahrefs/atd.git" -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ahrefs/atd/releases/download/2.12.0/atdts-2.12.0.tbz" - checksum: [ - "sha256=02530cbc92ddb1cb6021951af4f62f95c2f39abf091a996c5e44ecadb20a4fc0" - "sha512=43cbbc4fd9491fcc0e543a488940f17468f5b31e263c7322bad1cc497fb4662a2d7e6aa219377a7105bd31ba80ec69b214247b63406a335ce2fdee886195bae9" - ] -} -x-commit-hash: "652a65aa7635cd44afd0669ebec7af87bf894a45" diff --git a/esy.lock/opam/base-threads.base/opam b/esy.lock/opam/base-threads.base/opam deleted file mode 100644 index 914ff50c..00000000 --- a/esy.lock/opam/base-threads.base/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "2.0" -maintainer: "https://github.com/ocaml/opam-repository/issues" -description: """ -Threads library distributed with the OCaml compiler -""" - diff --git a/esy.lock/opam/base-unix.base/opam b/esy.lock/opam/base-unix.base/opam deleted file mode 100644 index b973540b..00000000 --- a/esy.lock/opam/base-unix.base/opam +++ /dev/null @@ -1,6 +0,0 @@ -opam-version: "2.0" -maintainer: "https://github.com/ocaml/opam-repository/issues" -description: """ -Unix library distributed with the OCaml compiler -""" - diff --git a/esy.lock/opam/biniou.1.2.2/opam b/esy.lock/opam/biniou.1.2.2/opam deleted file mode 100644 index 26c4cf6c..00000000 --- a/esy.lock/opam/biniou.1.2.2/opam +++ /dev/null @@ -1,47 +0,0 @@ -opam-version: "2.0" -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} - ["dune" "build" "-p" name "@doc"] {with-doc} -] -maintainer: ["martin@mjambon.com"] -authors: ["Martin Jambon"] -bug-reports: "https://github.com/mjambon/biniou/issues" -homepage: "https://github.com/mjambon/biniou" -doc: "https://mjambon.github.io/biniou/" -license: "BSD-3-Clause" -dev-repo: "git+https://github.com/mjambon/biniou.git" -synopsis: - "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve" -description: """ - -Biniou (pronounced "be new") is a binary data format designed for speed, safety, -ease of use and backward compatibility as protocols evolve. Biniou is vastly -equivalent to JSON in terms of functionality but allows implementations several -times faster (4 times faster than yojson), with 25-35% space savings. - -Biniou data can be decoded into human-readable form without knowledge of type -definitions except for field and variant names which are represented by 31-bit -hashes. A program named bdump is provided for routine visualization of biniou -data files. - -The program atdgen is used to derive OCaml-Biniou serializers and deserializers -from type definitions. - -Biniou format specification: mjambon.github.io/atdgen-doc/biniou-format.txt""" -depends: [ - "easy-format" - "camlp-streams" - "dune" {>= "1.10"} - "ocaml" {>= "4.02.3"} -] -url { - src: - "https://github.com/mjambon/biniou/releases/download/1.2.2/biniou-1.2.2.tbz" - checksum: [ - "sha256=8bf3ff17cd0ecb2d6b6d1d94cb08ef089d44caef96e9bae6be6839d428fa318f" - "sha512=7d03b3759a3a2e1c77713aa1b8375a1f1917f49d14fe5e3cb01d5e53a12e6385b7a3b0f4827f3be71182c31c416d780e1f9ef011dc205cb8f9b0ab2d8fc23cfd" - ] -} -x-commit-hash: "b434dd9ad488e042cf71554af7296b7bd98c9a6a" diff --git a/esy.lock/opam/camlp-streams.5.0.1/opam b/esy.lock/opam/camlp-streams.5.0.1/opam deleted file mode 100644 index 60e51311..00000000 --- a/esy.lock/opam/camlp-streams.5.0.1/opam +++ /dev/null @@ -1,59 +0,0 @@ -opam-version: "2.0" -synopsis: "The Stream and Genlex libraries for use with Camlp4 and Camlp5" -description: """ - -This package provides two library modules: -- Stream: imperative streams, with in-place update and memoization - of the latest element produced. -- Genlex: a small parameterized lexical analyzer producing streams - of tokens from streams of characters. - -The two modules are designed for use with Camlp4 and Camlp5: -- The stream patterns and stream expressions of Camlp4/Camlp5 consume - and produce data of type 'a Stream.t. -- The Genlex tokenizer can be used as a simple lexical analyzer for - Camlp4/Camlp5-generated parsers. - -The Stream module can also be used by hand-written recursive-descent -parsers, but is not very convenient for this purpose. - -The Stream and Genlex modules have been part of the OCaml standard library -for a long time, and have been distributed as part of the core OCaml system. -They will be removed from the OCaml standard library at some future point, -but will be maintained and distributed separately in this camlpstreams package. -""" -maintainer: [ - "Florian Angeletti " - "Xavier Leroy " -] -authors: ["Daniel de Rauglaudre" "Xavier Leroy"] -license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" -homepage: "https://github.com/ocaml/camlp-streams" -bug-reports: "https://github.com/ocaml/camlp-streams/issues" -depends: [ - "dune" {>= "2.7"} - "ocaml" {>= "4.02.3"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml/camlp-streams.git" -url { - src: "https://github.com/ocaml/camlp-streams/archive/v5.0.1.tar.gz" - checksum: [ - "md5=afc874b25f7a1f13e8f5cfc1182b51a7" - "sha512=2efa8dd4a636217c8d49bac1e4e7e5558fc2f45cfea66514140a59fd99dd08d61fb9f1e17804997ff648b71b13820a5d4a1eb70fed9d848aa2abd6e41f853c86" - ] -} diff --git a/esy.lock/opam/chrome-trace.3.15.0/opam b/esy.lock/opam/chrome-trace.3.15.0/opam deleted file mode 100644 index b76faa48..00000000 --- a/esy.lock/opam/chrome-trace.3.15.0/opam +++ /dev/null @@ -1,40 +0,0 @@ -opam-version: "2.0" -synopsis: "Chrome trace event generation library" -description: - "This library offers no backwards compatibility guarantees. Use at your own risk." -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/cmdliner.1.0.4/opam b/esy.lock/opam/cmdliner.1.0.4/opam deleted file mode 100644 index b2187dc5..00000000 --- a/esy.lock/opam/cmdliner.1.0.4/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "2.0" -maintainer: "Daniel Bünzli " -authors: ["Daniel Bünzli "] -homepage: "http://erratique.ch/software/cmdliner" -doc: "http://erratique.ch/software/cmdliner/doc/Cmdliner" -dev-repo: "git+http://erratique.ch/repos/cmdliner.git" -bug-reports: "https://github.com/dbuenzli/cmdliner/issues" -tags: [ "cli" "system" "declarative" "org:erratique" ] -license: "ISC" -depends:[ "ocaml" {>= "4.03.0"} ] -build: [[ make "all" "PREFIX=%{prefix}%" ]] -install: -[[make "install" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%" ] - [make "install-doc" "LIBDIR=%{_:lib}%" "DOCDIR=%{_:doc}%" ]] - -synopsis: """Declarative definition of command line interfaces for OCaml""" -description: """\ - -Cmdliner allows the declarative definition of command line interfaces -for OCaml. - -It provides a simple and compositional mechanism to convert command -line arguments to OCaml values and pass them to your functions. The -module automatically handles syntax errors, help messages and UNIX man -page generation. It supports programs with single or multiple commands -and respects most of the [POSIX][1] and [GNU][2] conventions. - -Cmdliner has no dependencies and is distributed under the ISC license. - -[1]: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html -[2]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html -""" -url { -archive: "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz" -checksum: "fe2213d0bc63b1e10a2d0aa66d2fc8d9" -} diff --git a/esy.lock/opam/cppo.1.6.9/opam b/esy.lock/opam/cppo.1.6.9/opam deleted file mode 100644 index 9c51ec6d..00000000 --- a/esy.lock/opam/cppo.1.6.9/opam +++ /dev/null @@ -1,39 +0,0 @@ -opam-version: "2.0" -synopsis: "Code preprocessor like cpp for OCaml" -description: """\ -Cppo is an equivalent of the C preprocessor for OCaml programs. -It allows the definition of simple macros and file inclusion. - -Cppo is: - -* more OCaml-friendly than cpp -* easy to learn without consulting a manual -* reasonably fast -* simple to install and to maintain""" -maintainer: [ - "Martin Jambon " "Yishuai Li " -] -authors: "Martin Jambon" -license: "BSD-3-Clause" -homepage: "https://github.com/ocaml-community/cppo" -doc: "https://ocaml-community.github.io/cppo" -bug-reports: "https://github.com/ocaml-community/cppo/issues" -depends: [ - "ocaml" {>= "4.02.3"} - "dune" {>= "1.10"} - "base-unix" -] -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} - ["dune" "build" "-p" name "@doc"] {with-doc} -] -dev-repo: "git+https://github.com/ocaml-community/cppo.git" -url { - src: "https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz" - checksum: [ - "md5=d23ffe85ac7dc8f0afd1ddf622770d09" - "sha512=26ff5a7b7f38c460661974b23ca190f0feae3a99f1974e0fd12ccf08745bd7d91b7bc168c70a5385b837bfff9530e0e4e41cf269f23dd8cf16ca658008244b44" - ] -} \ No newline at end of file diff --git a/esy.lock/opam/csexp.1.5.2/opam b/esy.lock/opam/csexp.1.5.2/opam deleted file mode 100644 index 7d511ab8..00000000 --- a/esy.lock/opam/csexp.1.5.2/opam +++ /dev/null @@ -1,58 +0,0 @@ -opam-version: "2.0" -synopsis: "Parsing and printing of S-expressions in Canonical form" -description: """ - -This library provides minimal support for Canonical S-expressions -[1]. Canonical S-expressions are a binary encoding of S-expressions -that is super simple and well suited for communication between -programs. - -This library only provides a few helpers for simple applications. If -you need more advanced support, such as parsing from more fancy input -sources, you should consider copying the code of this library given -how simple parsing S-expressions in canonical form is. - -To avoid a dependency on a particular S-expression library, the only -module of this library is parameterised by the type of S-expressions. - -[1] https://en.wikipedia.org/wiki/Canonical_S-expressions -""" -maintainer: ["Jeremie Dimino "] -authors: [ - "Quentin Hocquet " - "Jane Street Group, LLC " - "Jeremie Dimino " -] -license: "MIT" -homepage: "https://github.com/ocaml-dune/csexp" -doc: "https://ocaml-dune.github.io/csexp/" -bug-reports: "https://github.com/ocaml-dune/csexp/issues" -depends: [ - "dune" {>= "3.4"} - "ocaml" {>= "4.03.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml-dune/csexp.git" -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" -# "@runtest" {with-test & ocaml:version >= "4.04"} - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml-dune/csexp/releases/download/1.5.2/csexp-1.5.2.tbz" - checksum: [ - "sha256=1a14dd04bb4379a41990248550628c77913a9c07f3c35c1370b6960e697787ff" - "sha512=be281018bcfc20d4db14894ef51c4b836d6338d2fdfe22e63d46f405f8dea7349e16f1c0ecd65f73d4c85a2a80e618cdbb8c9dafcbb9f229f04f1adca5b1973c" - ] -} -x-commit-hash: "e6c4768e10c61bcb04d09748744dad55602149c6" diff --git a/esy.lock/opam/dot-merlin-reader.4.9/opam b/esy.lock/opam/dot-merlin-reader.4.9/opam deleted file mode 100644 index e2d4bf7b..00000000 --- a/esy.lock/opam/dot-merlin-reader.4.9/opam +++ /dev/null @@ -1,30 +0,0 @@ -opam-version: "2.0" -maintainer: "defree@gmail.com" -authors: "The Merlin team" -synopsis: "Reads config files for merlin" -homepage: "https://github.com/ocaml/merlin" -bug-reports: "https://github.com/ocaml/merlin/issues" -dev-repo: "git+https://github.com/ocaml/merlin.git" -license: "MIT" -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.08" & < "6.0"} - "dune" {>= "2.9.0"} - "merlin-lib" {>= "4.9" & < "4.14-502"} - "ocamlfind" {>= "1.6.0"} -] -description: - "Helper process: reads .merlin files and outputs the normalized content to - stdout." -url { - src: - "https://github.com/ocaml/merlin/releases/download/v4.9-414/merlin-4.9-414.tbz" - checksum: [ - "sha256=e23fc47813591269ff9d27c820988e520a662c89dd0af7ea652b21517499cbfd" - "sha512=2199f963368597d10cc197e41ebb883f6a166018c9da3fe259c354550df41b713781003598a2fe5956b0a4ae96f8c07ba33831d3cf6f9d494b731944f87e491e" - ] -} -x-commit-hash: "df75a4550704c113ac29505fd68ef9b7893d4bf5" diff --git a/esy.lock/opam/dune-build-info.3.15.0/opam b/esy.lock/opam/dune-build-info.3.15.0/opam deleted file mode 100644 index bba77ca9..00000000 --- a/esy.lock/opam/dune-build-info.3.15.0/opam +++ /dev/null @@ -1,46 +0,0 @@ -opam-version: "2.0" -synopsis: "Embed build information inside executable" -description: """ -The build-info library allows to access information about how the -executable was built, such as the version of the project at which it -was built or the list of statically linked libraries with their -versions. It supports reporting the version from the version control -system during development to get an precise reference of when the -executable was built. -""" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/dune-configurator.3.15.0/opam b/esy.lock/opam/dune-configurator.3.15.0/opam deleted file mode 100644 index f454950f..00000000 --- a/esy.lock/opam/dune-configurator.3.15.0/opam +++ /dev/null @@ -1,50 +0,0 @@ -opam-version: "2.0" -synopsis: "Helper library for gathering system configuration" -description: """ -dune-configurator is a small library that helps writing OCaml scripts that -test features available on the system, in order to generate config.h -files for instance. -Among other things, dune-configurator allows one to: -- test if a C program compiles -- query pkg-config -- import #define from OCaml header files -- generate config.h file -""" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.04.0"} - "base-unix" - "csexp" {>= "1.5.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/dune-rpc.3.15.0/opam b/esy.lock/opam/dune-rpc.3.15.0/opam deleted file mode 100644 index 27b2493d..00000000 --- a/esy.lock/opam/dune-rpc.3.15.0/opam +++ /dev/null @@ -1,44 +0,0 @@ -opam-version: "2.0" -synopsis: "Communicate with dune using rpc" -description: "Library to connect and control a running dune instance" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "csexp" - "ordering" - "dyn" - "xdg" - "stdune" {= version} - "pp" {>= "1.1.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/dune.3.15.0/opam b/esy.lock/opam/dune.3.15.0/opam deleted file mode 100644 index 703753c4..00000000 --- a/esy.lock/opam/dune.3.15.0/opam +++ /dev/null @@ -1,57 +0,0 @@ -opam-version: "2.0" -synopsis: "Fast, portable, and opinionated build system" -description: """ - -Dune is a build system that was designed to simplify the release of -Jane Street packages. It reads metadata from "dune" files following a -very simple s-expression syntax. - -Dune is fast, has very low-overhead, and supports parallel builds on -all platforms. It has no system dependencies; all you need to build -dune or packages using dune is OCaml. You don't need make or bash -as long as the packages themselves don't use bash explicitly. - -Dune is composable; supporting multi-package development by simply -dropping multiple repositories into the same directory. - -Dune also supports multi-context builds, such as building against -several opam roots/switches simultaneously. This helps maintaining -packages across several versions of OCaml and gives cross-compilation -for free. -""" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -conflicts: [ - "merlin" {< "3.4.0"} - "ocaml-lsp-server" {< "1.3.0"} - "dune-configurator" {< "2.3.0"} - "odoc" {< "2.0.1"} - "dune-release" {< "1.3.0"} - "js_of_ocaml-compiler" {< "3.6.0"} - "jbuilder" {= "transition"} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["ocaml" "boot/bootstrap.ml" "-j" jobs] - ["./_boot/dune.exe" "build" "dune.install" "--release" "--profile" "dune-bootstrap" "-j" jobs] -] -depends: [ - # Please keep the lower bound in sync with .github/workflows/workflow.yml, - # dune-project and min_ocaml_version in bootstrap.ml - ("ocaml" {>= "4.08"} | ("ocaml" {>= "4.02" & < "4.08~~"} & "ocamlfind-secondary")) - "base-unix" - "base-threads" -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/dyn.3.15.0/opam b/esy.lock/opam/dyn.3.15.0/opam deleted file mode 100644 index 3faa7c9a..00000000 --- a/esy.lock/opam/dyn.3.15.0/opam +++ /dev/null @@ -1,41 +0,0 @@ -opam-version: "2.0" -synopsis: "Dynamic type" -description: "Dynamic type" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08.0"} - "ordering" {= version} - "pp" {>= "1.1.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/easy-format.1.3.4/opam b/esy.lock/opam/easy-format.1.3.4/opam deleted file mode 100644 index 5d5f62ee..00000000 --- a/esy.lock/opam/easy-format.1.3.4/opam +++ /dev/null @@ -1,56 +0,0 @@ -opam-version: "2.0" -synopsis: - "High-level and functional interface to the Format module of the OCaml standard library" -description: """ - -This module offers a high-level and functional interface to the Format module of -the OCaml standard library. It is a pretty-printing facility, i.e. it takes as -input some code represented as a tree and formats this code into the most -visually satisfying result, breaking and indenting lines of code where -appropriate. - -Input data must be first modelled and converted into a tree using 3 kinds of -nodes: - -* atoms -* lists -* labelled nodes - -Atoms represent any text that is guaranteed to be printed as-is. Lists can model -any sequence of items such as arrays of data or lists of definitions that are -labelled with something like "int main", "let x =" or "x:".""" -maintainer: ["martin@mjambon.com" "rudi.grinberg@gmail.com"] -authors: ["Martin Jambon"] -license: "BSD-3-Clause" -homepage: "https://github.com/ocaml-community/easy-format" -doc: "https://mjambon.github.io/mjambon2016/easy-format.html" -bug-reports: "https://github.com/ocaml-community/easy-format/issues" -depends: [ - "dune" {>= "3.2" & >= "1.10"} - "ocaml" {>= "4.08"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml-community/easy-format.git" -url { - src: - "https://github.com/ocaml-community/easy-format/releases/download/1.3.4/easy-format-1.3.4.tbz" - checksum: [ - "sha256=1dbf051e9f68574dde6e2e254a66b9c524ca425e80b36e99af96ed964ab610c3" - "sha512=90264864dde4cbf51f60fb5c21cf033e11bdeb662e76b62ce27b496c298ca9102174885ed7a6d29a6b8e43089e27d5bb5be247f88d9739c15cfd8470fec29d33" - ] -} -x-commit-hash: "ba4962884509ceec63905dd6e0ccb429be4f9f66" diff --git a/esy.lock/opam/fiber.3.7.0/opam b/esy.lock/opam/fiber.3.7.0/opam deleted file mode 100644 index 6a402766..00000000 --- a/esy.lock/opam/fiber.3.7.0/opam +++ /dev/null @@ -1,39 +0,0 @@ -opam-version: "2.0" -synopsis: "Dune's monadic structured concurrency library" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml-dune/fiber" -bug-reports: "https://github.com/ocaml-dune/fiber/issues" -depends: [ - "dune" {>= "3.6"} - "ocaml" {>= "4.08"} - "ppx_expect" {with-test} - "dyn" - "stdune" - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test & ocaml:version >= "4.13"} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml-dune/fiber.git" -url { - src: - "https://github.com/ocaml-dune/fiber/releases/download/3.7.0/fiber-lwt-3.7.0.tbz" - checksum: [ - "sha256=8648a15ae93fe6942999ce36887429a3913b62829c4714e520cc0e7a1c3b9682" - "sha512=348b28b28ffd87de035e90753f677658e8ad58421caf3ac086e4c0bbab8508fa5fe2f55d137c425afaf790ebcf45291e16d70eac5cb766b6d9786f042b58b19b" - ] -} -x-commit-hash: "dd66893a530759da26b66bd1c8939fd77f369afb" diff --git a/esy.lock/opam/fix.20230505/opam b/esy.lock/opam/fix.20230505/opam deleted file mode 100644 index 6278f49e..00000000 --- a/esy.lock/opam/fix.20230505/opam +++ /dev/null @@ -1,26 +0,0 @@ - -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " -] -homepage: "https://gitlab.inria.fr/fpottier/fix" -dev-repo: "git+https://gitlab.inria.fr/fpottier/fix.git" -bug-reports: "francois.pottier@inria.fr" -license: "LGPL-2.0-only" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" { >= "4.03" } - "dune" { >= "1.3" } -] -synopsis: "Algorithmic building blocks for memoization, recursion, and more" -url { - src: - "https://gitlab.inria.fr/fpottier/fix/-/archive/20230505/archive.tar.gz" - checksum: [ - "md5=2a4afa633128c5010677222f7b3c9451" - "sha512=30d446ba6c19aef78b52d9831eb26f8f6ac10e88bd1eff36d16fbbfb32278b2637e31e63a160aec4abbbfdb1e7612ed25d68c936f4cbf2073e51d713ff3a8adf" - ] -} diff --git a/esy.lock/opam/menhir.20231231/opam b/esy.lock/opam/menhir.20231231/opam deleted file mode 100644 index adf52bf1..00000000 --- a/esy.lock/opam/menhir.20231231/opam +++ /dev/null @@ -1,30 +0,0 @@ - -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " - "Yann Régis-Gianas " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues" -license: "GPL-2.0-only" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.03.0"} - "dune" {>= "2.8.0"} - "menhirLib" {= version} - "menhirSdk" {= version} - "menhirCST" {= version} -] -synopsis: "An LR(1) parser generator" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz" - checksum: [ - "md5=799748bc3b7a542798a85956c7863865" - "sha512=620ff3443143535e03ac98c5e8ee2ddf9ba48f8cfe441302118def1da3e03ffac7f48d4d4cb129766b625ecad0fb341da1baa0169dee8b6d07a5b0bbb735cf2f" - ] -} diff --git a/esy.lock/opam/menhirCST.20231231/opam b/esy.lock/opam/menhirCST.20231231/opam deleted file mode 100644 index 9a49a859..00000000 --- a/esy.lock/opam/menhirCST.20231231/opam +++ /dev/null @@ -1,29 +0,0 @@ - -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues" -license: "LGPL-2.0-only with OCaml-LGPL-linking-exception" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" { >= "4.08" } - "dune" { >= "2.8.0" } -] -conflicts: [ - "menhir" { != version } -] -synopsis: "Runtime support library for parsers generated by Menhir" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz" - checksum: [ - "md5=799748bc3b7a542798a85956c7863865" - "sha512=620ff3443143535e03ac98c5e8ee2ddf9ba48f8cfe441302118def1da3e03ffac7f48d4d4cb129766b625ecad0fb341da1baa0169dee8b6d07a5b0bbb735cf2f" - ] -} diff --git a/esy.lock/opam/menhirLib.20231231/opam b/esy.lock/opam/menhirLib.20231231/opam deleted file mode 100644 index 1f321b18..00000000 --- a/esy.lock/opam/menhirLib.20231231/opam +++ /dev/null @@ -1,30 +0,0 @@ - -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " - "Yann Régis-Gianas " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues" -license: "LGPL-2.0-only with OCaml-LGPL-linking-exception" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" { >= "4.03.0" } - "dune" { >= "2.8.0" } -] -conflicts: [ - "menhir" { != version } -] -synopsis: "Runtime support library for parsers generated by Menhir" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz" - checksum: [ - "md5=799748bc3b7a542798a85956c7863865" - "sha512=620ff3443143535e03ac98c5e8ee2ddf9ba48f8cfe441302118def1da3e03ffac7f48d4d4cb129766b625ecad0fb341da1baa0169dee8b6d07a5b0bbb735cf2f" - ] -} diff --git a/esy.lock/opam/menhirSdk.20231231/opam b/esy.lock/opam/menhirSdk.20231231/opam deleted file mode 100644 index 0e2649fc..00000000 --- a/esy.lock/opam/menhirSdk.20231231/opam +++ /dev/null @@ -1,30 +0,0 @@ - -opam-version: "2.0" -maintainer: "francois.pottier@inria.fr" -authors: [ - "François Pottier " - "Yann Régis-Gianas " -] -homepage: "http://gitlab.inria.fr/fpottier/menhir" -dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git" -bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues" -license: "LGPL-2.0-only with OCaml-LGPL-linking-exception" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" { >= "4.03.0" } - "dune" { >= "2.8.0" } -] -conflicts: [ - "menhir" { != version } -] -synopsis: "Compile-time library for auxiliary tools related to Menhir" -url { - src: - "https://gitlab.inria.fr/fpottier/menhir/-/archive/20231231/archive.tar.gz" - checksum: [ - "md5=799748bc3b7a542798a85956c7863865" - "sha512=620ff3443143535e03ac98c5e8ee2ddf9ba48f8cfe441302118def1da3e03ffac7f48d4d4cb129766b625ecad0fb341da1baa0169dee8b6d07a5b0bbb735cf2f" - ] -} diff --git a/esy.lock/opam/merlin-extend.0.6.1/opam b/esy.lock/opam/merlin-extend.0.6.1/opam deleted file mode 100644 index 9f993650..00000000 --- a/esy.lock/opam/merlin-extend.0.6.1/opam +++ /dev/null @@ -1,30 +0,0 @@ -opam-version: "2.0" -maintainer: "Frederic Bour " -authors: "Frederic Bour " -homepage: "https://github.com/let-def/merlin-extend" -bug-reports: "https://github.com/let-def/merlin-extend" -license: "MIT" -dev-repo: "git+https://github.com/let-def/merlin-extend.git" -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "dune" {>= "1.0"} - "cppo" {build & >= "1.1.0"} - "ocaml" {>= "4.02.3"} -] -synopsis: "A protocol to provide custom frontend to Merlin" -description: """ -This protocol allows to replace the OCaml frontend of Merlin. -It extends what used to be done with the `-pp' flag to handle a few more cases.""" -doc: "https://let-def.github.io/merlin-extend" -url { - src: - "https://github.com/let-def/merlin-extend/releases/download/v0.6.1/merlin-extend-0.6.1.tbz" - checksum: [ - "sha256=5ec84b355ddb2d129a5948b132bfacc93adcbde2158c7de695f7bfc3650bead7" - "sha512=631fc96aab2f35e12a078c9b4907ca7b0db9f1e3a4026040e6c23b82e0171c256a89fb5d4c887f1d156eb9e3152783cdf7a546b2496051007a1bcf5777417396" - ] -} -x-commit-hash: "cf2707bbe8e034c6ecf5d0fecd3fd889f6ab14bf" diff --git a/esy.lock/opam/merlin-lib.4.14-414/opam b/esy.lock/opam/merlin-lib.4.14-414/opam deleted file mode 100644 index fb56d31d..00000000 --- a/esy.lock/opam/merlin-lib.4.14-414/opam +++ /dev/null @@ -1,34 +0,0 @@ -opam-version: "2.0" -maintainer: "defree@gmail.com" -authors: "The Merlin team" -homepage: "https://github.com/ocaml/merlin" -bug-reports: "https://github.com/ocaml/merlin/issues" -dev-repo: "git+https://github.com/ocaml/merlin.git" -license: "MIT" -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.14" & < "4.15"} - "dune" {>= "2.9.0"} - "csexp" {>= "1.5.1"} - "menhir" {dev & >= "20201216"} - "menhirLib" {dev & >= "20201216"} - "menhirSdk" {dev & >= "20201216"} -] -synopsis: - "Merlin's libraries" -description: - "These libraries provides access to low-level compiler interfaces and the - standard higher-level merlin protocol. The library is provided as-is, is not - thoroughly documented, and its public API might break with any new release." -url { - src: - "https://github.com/ocaml/merlin/releases/download/v4.14-414/merlin-4.14-414.tbz" - checksum: [ - "sha256=79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d" - "sha512=ebefec44c7f54b10aa85895baacecf778930ee0c4cd5a257836755ccadd9018c20379511e254efa98ed7d48fff9ba9eeb93b45a722cc1d2d61f51570cc57985d" - ] -} -x-commit-hash: "7017cc271403487756e412349f3718a8ba2e6a36" diff --git a/esy.lock/opam/merlin.4.14-414/opam b/esy.lock/opam/merlin.4.14-414/opam deleted file mode 100644 index 7b88621e..00000000 --- a/esy.lock/opam/merlin.4.14-414/opam +++ /dev/null @@ -1,81 +0,0 @@ -opam-version: "2.0" -maintainer: "defree@gmail.com" -authors: "The Merlin team" -homepage: "https://github.com/ocaml/merlin" -bug-reports: "https://github.com/ocaml/merlin/issues" -dev-repo: "git+https://github.com/ocaml/merlin.git" -license: "MIT" -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} -] -depends: [ - "ocaml" {>= "4.14" & < "4.15"} - "dune" {>= "2.9.0"} - "merlin-lib" {= version} - "dot-merlin-reader" {>= "4.9"} - "yojson" {>= "2.0.0"} - "conf-jq" {with-test} - "ppxlib" {with-test} -] -conflicts: [ - "seq" {!= "base"} - "base-effects" -] -synopsis: - "Editor helper, provides completion, typing and source browsing in Vim and Emacs" -description: - "Merlin is an assistant for editing OCaml code. It aims to provide the features available in modern IDEs: error reporting, auto completion, source browsing and much more." -post-messages: [ - "merlin installed. - -Quick setup for VIM -------------------- -Append this to your .vimrc to add merlin to vim's runtime-path: - let g:opamshare = substitute(system('opam var share'),'\\n$','','''') - execute \"set rtp+=\" . g:opamshare . \"/merlin/vim\" - -Also run the following line in vim to index the documentation: - :execute \"helptags \" . g:opamshare . \"/merlin/vim/doc\" - -Quick setup for EMACS -------------------- -Add opam emacs directory to your load-path by appending this to your .emacs: - (let ((opam-share (ignore-errors (car (process-lines \"opam\" \"var\" \"share\"))))) - (when (and opam-share (file-directory-p opam-share)) - ;; Register Merlin - (add-to-list 'load-path (expand-file-name \"emacs/site-lisp\" opam-share)) - (autoload 'merlin-mode \"merlin\" nil t nil) - ;; Automatically start it in OCaml buffers - (add-hook 'tuareg-mode-hook 'merlin-mode t) - (add-hook 'caml-mode-hook 'merlin-mode t) - ;; Use opam switch to lookup ocamlmerlin binary - (setq merlin-command 'opam) - ;; To easily change opam switches within a given Emacs session, you can - ;; install the minor mode https://github.com/ProofGeneral/opam-switch-mode - ;; and use one of its \"OPSW\" menus. - )) -Take a look at https://github.com/ocaml/merlin for more information - -Quick setup with opam-user-setup --------------------------------- - -Opam-user-setup support Merlin. - - $ opam user-setup install - -should take care of basic setup. -See https://github.com/OCamlPro/opam-user-setup -" - {success & !user-setup:installed} -] -url { - src: - "https://github.com/ocaml/merlin/releases/download/v4.14-414/merlin-4.14-414.tbz" - checksum: [ - "sha256=79018ccaa37c1501dd5c4d5cf78bc3420d641b1e82443662981c5472d973993d" - "sha512=ebefec44c7f54b10aa85895baacecf778930ee0c4cd5a257836755ccadd9018c20379511e254efa98ed7d48fff9ba9eeb93b45a722cc1d2d61f51570cc57985d" - ] -} -x-commit-hash: "7017cc271403487756e412349f3718a8ba2e6a36" diff --git a/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam b/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam deleted file mode 100644 index a2df8c61..00000000 --- a/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam +++ /dev/null @@ -1,39 +0,0 @@ -opam-version: "2.0" -synopsis: "OCaml compiler libraries repackaged" -description: """ -This packages exposes the OCaml compiler libraries repackages under -the toplevel names Ocaml_common, Ocaml_bytecomp, Ocaml_optcomp, ...""" -maintainer: ["Jane Street developers"] -authors: ["Jane Street Group, LLC"] -license: "MIT" -homepage: "https://github.com/janestreet/ocaml-compiler-libs" -bug-reports: "https://github.com/janestreet/ocaml-compiler-libs/issues" -depends: [ - "dune" {>= "2.8"} - "ocaml" {>= "4.04.1" & < "5.2.0"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/janestreet/ocaml-compiler-libs.git" -url { - src: - "https://github.com/janestreet/ocaml-compiler-libs/releases/download/v0.12.4/ocaml-compiler-libs-v0.12.4.tbz" - checksum: [ - "sha256=4ec9c9ec35cc45c18c7a143761154ef1d7663036a29297f80381f47981a07760" - "sha512=978dba8dfa61f98fa24fda7a9c26c2e837081f37d1685fe636dc19cfc3278a940cf01a10293504b185c406706bc1008bc54313d50f023bcdea6d5ac6c0788b35" - ] -} -x-commit-hash: "8cd12f18bb7171c2b67d661868c4271fae528d93" diff --git a/esy.lock/opam/ocaml-lsp-server.1.17.0/opam b/esy.lock/opam/ocaml-lsp-server.1.17.0/opam deleted file mode 100644 index e3a53b04..00000000 --- a/esy.lock/opam/ocaml-lsp-server.1.17.0/opam +++ /dev/null @@ -1,67 +0,0 @@ -opam-version: "2.0" -synopsis: "LSP Server for OCaml" -description: "An LSP server for OCaml." -maintainer: ["Rudi Grinberg "] -authors: [ - "Andrey Popp <8mayday@gmail.com>" - "Rusty Key " - "Louis Roché " - "Oleksiy Golovko " - "Rudi Grinberg " - "Sacha Ayoun " - "cannorin " - "Ulugbek Abdullaev " - "Thibaut Mattio " - "Max Lantas " -] -license: "ISC" -homepage: "https://github.com/ocaml/ocaml-lsp" -bug-reports: "https://github.com/ocaml/ocaml-lsp/issues" -depends: [ - "dune" {>= "3.0"} - "yojson" - "re" {>= "1.5.0"} - "ppx_yojson_conv_lib" {>= "v0.14"} - "dune-rpc" {>= "3.4.0"} - "chrome-trace" {>= "3.3.0"} - "dyn" - "stdune" - "fiber" {>= "3.1.1" & < "4.0.0"} - "xdg" - "ordering" - "dune-build-info" - "spawn" - "astring" - "camlp-streams" - "ppx_expect" {>= "v0.15.0" & with-test} - "ocamlformat" {with-test & = "0.24.1"} - "ocamlc-loc" {>= "3.7.0"} - "uutf" {>= "1.0.2"} - "pp" {>= "1.1.2"} - "csexp" {>= "1.5"} - "ocamlformat-rpc-lib" {>= "0.21.0"} - "odoc" {with-doc} - "ocaml" {>= "4.14" & < "5.2"} - "merlin-lib" {>= "4.9" & < "5.0"} -] -dev-repo: "git+https://github.com/ocaml/ocaml-lsp.git" -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-j" - jobs - "ocaml-lsp-server.install" - "--release" - ] -] -url { - src: - "https://github.com/ocaml/ocaml-lsp/releases/download/1.17.0/lsp-1.17.0.tbz" - checksum: [ - "sha256=8fb8bbd717eefd2608b4d83458105b660e0de3a1134dc8fc216ae659d4d19600" - "sha512=6876df760dbcb51f85e7fd9d08cc8498c69ede38a52f4e12407187da3fbd9657c71f3223f9490ad97edd5259cfdeb2819d943db65bb9ce3c2a18dace3b65ffa8" - ] -} -x-commit-hash: "d3d8de5a4213c2a16e43ac4f87cbbe88a894d05f" diff --git a/esy.lock/opam/ocamlbuild.0.14.3/opam b/esy.lock/opam/ocamlbuild.0.14.3/opam deleted file mode 100644 index d1c725b3..00000000 --- a/esy.lock/opam/ocamlbuild.0.14.3/opam +++ /dev/null @@ -1,40 +0,0 @@ -opam-version: "2.0" -synopsis: - "OCamlbuild is a build system with builtin rules to easily build most OCaml projects" -maintainer: "Gabriel Scherer " -authors: ["Nicolas Pouillard" "Berke Durak"] -license: "LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception" -homepage: "https://github.com/ocaml/ocamlbuild/" -doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc" -bug-reports: "https://github.com/ocaml/ocamlbuild/issues" -depends: [ - "ocaml" {>= "4.03"} -] -conflicts: [ - "base-ocamlbuild" - "ocamlfind" {< "1.6.2"} -] -build: [ - [ - make - "-f" - "configure.make" - "all" - "OCAMLBUILD_PREFIX=%{prefix}%" - "OCAMLBUILD_BINDIR=%{bin}%" - "OCAMLBUILD_LIBDIR=%{lib}%" - "OCAMLBUILD_MANDIR=%{man}%" - "OCAML_NATIVE=%{ocaml:native}%" - "OCAML_NATIVE_TOOLS=%{ocaml:native}%" - ] - [make "check-if-preinstalled" "all" "opam-install"] -] -dev-repo: "git+https://github.com/ocaml/ocamlbuild.git" -available: os != "win32" -url { - src: "https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.14.3.tar.gz" - checksum: [ - "md5=220df59060c916e8aac2eb471c870485" - "sha512=def8fa1d5488905fda31f72b7f6f0ebdccefa55a8e984a6ea4a7c1e0856e8ea1f7814410202e0f7f7d5e72aca7e8ae0d6623f7f2bade78b0dd82155de76ec4e5" - ] -} \ No newline at end of file diff --git a/esy.lock/opam/ocamlc-loc.3.15.0/opam b/esy.lock/opam/ocamlc-loc.3.15.0/opam deleted file mode 100644 index 85550b0c..00000000 --- a/esy.lock/opam/ocamlc-loc.3.15.0/opam +++ /dev/null @@ -1,44 +0,0 @@ -opam-version: "2.0" -synopsis: "Parse ocaml compiler output into structured form" -description: - "This library offers no backwards compatibility guarantees. Use at your own risk." -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08.0"} - "dyn" {= version} - "odoc" {with-doc} -] -conflicts: [ - "ocaml-lsp-server" {< "1.15.0"} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch b/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch deleted file mode 100644 index 8011238c..00000000 --- a/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff a/configure b/configure ---- a/configure -+++ b/configure -@@ -294,7 +294,7 @@ - # If findlib has been configured -sitelib $(ocamlc -where) then there's - # nothing to do, but otherwise we need to put OCaml's Standard Library - # into the path setting. -- if [ ! -e "${ocaml_sitelib}/stdlib/META" ]; then -+ if [ ! -e "${ocaml_sitelib}/stdlib.cmi" ]; then - ocamlpath="${ocaml_core_stdlib}${path_sep}${ocamlpath}" - fi - fi diff --git a/esy.lock/opam/ocamlfind.1.9.6/opam b/esy.lock/opam/ocamlfind.1.9.6/opam deleted file mode 100644 index a81f0c50..00000000 --- a/esy.lock/opam/ocamlfind.1.9.6/opam +++ /dev/null @@ -1,48 +0,0 @@ -opam-version: "2.0" -synopsis: "A library manager for OCaml" -description: """ -Findlib is a library manager for OCaml. It provides a convention how -to store libraries, and a file format ("META") to describe the -properties of libraries. There is also a tool (ocamlfind) for -interpreting the META files, so that it is very easy to use libraries -in programs and scripts. -""" -license: "MIT" -maintainer: "Thomas Gazagnaire " -authors: "Gerd Stolpmann " -homepage: "http://projects.camlcity.org/projects/findlib.html" -bug-reports: "https://github.com/ocaml/ocamlfind/issues" -depends: [ - "ocaml" {>= "3.08.0"} -] -depopts: ["graphics"] -build: [ - [ - "./configure" - "-bindir" bin - "-sitelib" lib - "-mandir" man - "-config" "%{lib}%/findlib.conf" - "-no-custom" - "-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"} - "-no-topfind" {ocaml:preinstalled} - ] - [make "all"] - [make "opt"] {ocaml:native} -] -install: [ - [make "install"] - ["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled} -] -extra-files: ["0001-Harden-test-for-OCaml-5.patch" "md5=3cddbf72164c29d4e50e077a92a37c6c"] -# See https://github.com/ocaml/ocamlfind/pull/61 -patches: ["0001-Harden-test-for-OCaml-5.patch"] -dev-repo: "git+https://github.com/ocaml/ocamlfind.git" -url { - src: "http://download.camlcity.org/download/findlib-1.9.6.tar.gz" - checksum: [ - "md5=96c6ee50a32cca9ca277321262dbec57" - "sha512=cfaf1872d6ccda548f07d32cc6b90c3aafe136d2aa6539e03143702171ee0199add55269bba894c77115535dc46a5835901a5d7c75768999e72db503bfd83027" - ] -} -available: os != "win32" diff --git a/esy.lock/opam/ocamlformat-rpc-lib.0.26.2/opam b/esy.lock/opam/ocamlformat-rpc-lib.0.26.2/opam deleted file mode 100644 index df66873a..00000000 --- a/esy.lock/opam/ocamlformat-rpc-lib.0.26.2/opam +++ /dev/null @@ -1,49 +0,0 @@ -opam-version: "2.0" -synopsis: "Auto-formatter for OCaml code (RPC mode)" -description: - "OCamlFormat is a tool to automatically format OCaml code in a uniform style. This package defines a RPC interface to OCamlFormat" -maintainer: [ - "Guillaume Petiot " - "Jules Aguillon " - "Emile Trotignon " -] -authors: [ - "Josh Berdine " - "Hugo Heuzard " - "Etienne Millon " - "Guillaume Petiot " - "Jules Aguillon " -] -license: "MIT" -homepage: "https://github.com/ocaml-ppx/ocamlformat" -bug-reports: "https://github.com/ocaml-ppx/ocamlformat/issues" -depends: [ - "dune" {>= "2.8"} - "ocaml" {>= "4.08"} - "csexp" {>= "1.4.0"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml-ppx/ocamlformat.git" -url { - src: - "https://github.com/ocaml-ppx/ocamlformat/releases/download/0.26.2/ocamlformat-0.26.2.tbz" - checksum: [ - "sha256=2e4f596bf7aa367a844fe83ba0f6b0bf14b2a65179ddc082363fe9793d0375c5" - "sha512=b03d57462e65b11aa9f78dd5c4548251e8d1c5a1c9662f7502bdb10472aeb9df33c1d407350767a5223fbff9c01d53de85bafacd0274b49abc4b43701b159bee" - ] -} -x-commit-hash: "f5727b32127730a2722f86c7119eb6d8f884e26d" diff --git a/esy.lock/opam/ordering.3.15.0/opam b/esy.lock/opam/ordering.3.15.0/opam deleted file mode 100644 index fe5c5fac..00000000 --- a/esy.lock/opam/ordering.3.15.0/opam +++ /dev/null @@ -1,39 +0,0 @@ -opam-version: "2.0" -synopsis: "Element ordering" -description: "Element ordering" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/pp.1.2.0/opam b/esy.lock/opam/pp.1.2.0/opam deleted file mode 100644 index 9f4fad20..00000000 --- a/esy.lock/opam/pp.1.2.0/opam +++ /dev/null @@ -1,59 +0,0 @@ -opam-version: "2.0" -synopsis: "Pretty-printing library" -description: """ - -This library provides a lean alternative to the Format [1] module of -the OCaml standard library. It aims to make it easy for users to do -the right thing. If you have tried Format before but find its API -complicated and difficult to use, then Pp might be a good choice for -you. - -Pp uses the same concepts of boxes and break hints, and the final -rendering is done to formatter from the Format module. However it -defines its own algebra which some might find easier to work with and -reason about. No previous knowledge is required to start using this -library, however the various guides for the Format module such as this -one [2] should be applicable to Pp as well. - -[1]: https://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html -[2]: http://caml.inria.fr/resources/doc/guides/format.en.html -""" -maintainer: ["Jeremie Dimino "] -authors: [ - "Jane Street Group, LLC " - "Jeremie Dimino " -] -license: "MIT" -homepage: "https://github.com/ocaml-dune/pp" -doc: "https://ocaml-dune.github.io/pp/" -bug-reports: "https://github.com/ocaml-dune/pp/issues" -depends: [ - "dune" {>= "2.8"} - "ocaml" {>= "4.08.0"} - "ppx_expect" {with-test} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml-dune/pp.git" -url { - src: - "https://github.com/ocaml-dune/pp/releases/download/1.2.0/pp-1.2.0.tbz" - checksum: [ - "sha256=a5e822573c55afb42db29ec56eacd1f2acd8f65cf2df2878e291de374ce6909c" - "sha512=912164c2aa7241d73f735dadfbefe8ed0138d241579d2e885440e068fac78eb9f0b3d782c2420e757e313168c1725daff6ab91800dd315b1e05288456998b40a" - ] -} -x-commit-hash: "83b68c740f21acdcfe54436355ab328372871357" diff --git a/esy.lock/opam/ppx_derivers.1.2.1/opam b/esy.lock/opam/ppx_derivers.1.2.1/opam deleted file mode 100644 index 484b2654..00000000 --- a/esy.lock/opam/ppx_derivers.1.2.1/opam +++ /dev/null @@ -1,23 +0,0 @@ -opam-version: "2.0" -maintainer: "jeremie@dimino.org" -authors: ["Jérémie Dimino"] -license: "BSD-3-Clause" -homepage: "https://github.com/ocaml-ppx/ppx_derivers" -bug-reports: "https://github.com/ocaml-ppx/ppx_derivers/issues" -dev-repo: "git+https://github.com/ocaml-ppx/ppx_derivers.git" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" - "dune" -] -synopsis: "Shared [@@deriving] plugin registry" -description: """ -Ppx_derivers is a tiny package whose sole purpose is to allow -ppx_deriving and ppx_type_conv to inter-operate gracefully when linked -as part of the same ocaml-migrate-parsetree driver.""" -url { - src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz" - checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41" -} diff --git a/esy.lock/opam/ppx_yojson_conv_lib.v0.16.0/opam b/esy.lock/opam/ppx_yojson_conv_lib.v0.16.0/opam deleted file mode 100644 index c3e72b43..00000000 --- a/esy.lock/opam/ppx_yojson_conv_lib.v0.16.0/opam +++ /dev/null @@ -1,24 +0,0 @@ -opam-version: "2.0" -maintainer: "Jane Street developers" -authors: ["Jane Street Group, LLC"] -homepage: "https://github.com/janestreet/ppx_yojson_conv_lib" -bug-reports: "https://github.com/janestreet/ppx_yojson_conv_lib/issues" -dev-repo: "git+https://github.com/janestreet/ppx_yojson_conv_lib.git" -doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/ppx_yojson_conv_lib/index.html" -license: "MIT" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.14.0"} - "dune" {>= "2.0.0"} - "yojson" {>= "1.7.0"} -] -synopsis: "Runtime lib for ppx_yojson_conv" -description: " -Part of the Jane Street's PPX rewriters collection. -" -url { -src: "https://ocaml.janestreet.com/ocaml-core/v0.16/files/ppx_yojson_conv_lib-v0.16.0.tar.gz" -checksum: "sha256=557c43c88d365b4cbb514d809f1eecc54d7b9976b0669bc55b02169e6c86ec7d" -} diff --git a/esy.lock/opam/ppxlib.0.32.1~5.2preview/opam b/esy.lock/opam/ppxlib.0.32.1~5.2preview/opam deleted file mode 100644 index 7933aefa..00000000 --- a/esy.lock/opam/ppxlib.0.32.1~5.2preview/opam +++ /dev/null @@ -1,63 +0,0 @@ -opam-version: "2.0" -synopsis: "Standard infrastructure for ppx rewriters" -description: """ -Ppxlib is the standard infrastructure for ppx rewriters -and other programs that manipulate the in-memory representation of -OCaml programs, a.k.a the "Parsetree". - -It also comes bundled with two ppx rewriters that are commonly used to -write tools that manipulate and/or generate Parsetree values; -`ppxlib.metaquot` which allows to construct Parsetree values using the -OCaml syntax directly and `ppxlib.traverse` which provides various -ways of automatically traversing values of a given type, in particular -allowing to inject a complex structured value into generated code. -""" -maintainer: ["opensource@janestreet.com"] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml-ppx/ppxlib" -doc: "https://ocaml-ppx.github.io/ppxlib/" -bug-reports: "https://github.com/ocaml-ppx/ppxlib/issues" -depends: [ - "dune" {>= "2.7"} - "ocaml" {>= "4.04.1" & < "5.3.0"} - "ocaml-compiler-libs" {>= "v0.11.0"} - "ppx_derivers" {>= "1.0"} - "sexplib0" {>= "v0.12"} - "sexplib0" {with-test & >= "v0.15"} - "stdlib-shims" - "ocamlfind" {with-test} - "re" {with-test & >= "1.9.0"} - "cinaps" {with-test & >= "v0.12.1"} - "odoc" {with-doc} -] -conflicts: [ - "ocaml-migrate-parsetree" {< "2.0.0"} - "base-effects" - "ocaml-base-compiler" {= "5.1.0~alpha1"} - "ocaml-variants" {= "5.1.0~alpha1+options"} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml-ppx/ppxlib.git" -flags: avoid-version -available: opam-version >= "2.1.0" -url { - src: "https://github.com/ocaml-ppx/ppxlib/archive/04e050cbe2cf3e5cdb4441c480e4f472a5033941.tar.gz" - checksum: [ - "sha256=f0e61123b33b2acca23a388a367226674a7bccdedbaa41b0fd62fa42344dccd9" - "sha512=1a192695ac3a7d587a49f3025239557a998febe72d3b469d3c69b5c32643cc91c55fb72703f8197e1395c02bfabacf17ce5f7ee2bdc367e15f9086e489082a9b" - ] -} diff --git a/esy.lock/opam/re.1.11.0/opam b/esy.lock/opam/re.1.11.0/opam deleted file mode 100644 index 303af008..00000000 --- a/esy.lock/opam/re.1.11.0/opam +++ /dev/null @@ -1,46 +0,0 @@ -opam-version: "2.0" - -maintainer: "rudi.grinberg@gmail.com" -authors: [ - "Jerome Vouillon" - "Thomas Gazagnaire" - "Anil Madhavapeddy" - "Rudi Grinberg" - "Gabriel Radanne" -] -license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception" -homepage: "https://github.com/ocaml/ocaml-re" -bug-reports: "https://github.com/ocaml/ocaml-re/issues" -dev-repo: "git+https://github.com/ocaml/ocaml-re.git" - -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} -] - -depends: [ - "ocaml" {>= "4.03"} - "dune" {>= "2.0"} - "ounit" {with-test} - "seq" -] - -synopsis: "RE is a regular expression library for OCaml" -description: """ -Pure OCaml regular expressions with: -* Perl-style regular expressions (module Re.Perl) -* Posix extended regular expressions (module Re.Posix) -* Emacs-style regular expressions (module Re.Emacs) -* Shell-style file globbing (module Re.Glob) -* Compatibility layer for OCaml's built-in Str module (module Re.Str) -""" -url { - src: - "https://github.com/ocaml/ocaml-re/releases/download/1.11.0/re-1.11.0.tbz" - checksum: [ - "sha256=01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f" - "sha512=3e3712cc1266ec1f27620f3508ea2ebba338f4083b07d8a69dccee1facfdc1971a6c39f9deea664d2a62fd7f2cfd2eae816ca4c274acfadaee992a3befc4b757" - ] -} -x-commit-hash: "2dd38515c76c40299596d39f18d9b9a20f00d788" diff --git a/esy.lock/opam/reason.3.9.0/opam b/esy.lock/opam/reason.3.9.0/opam deleted file mode 100644 index af958026..00000000 --- a/esy.lock/opam/reason.3.9.0/opam +++ /dev/null @@ -1,51 +0,0 @@ -opam-version: "2.0" -synopsis: "Reason: Syntax & Toolchain for OCaml" -description: """ -Reason gives OCaml a new syntax that is remniscient of languages like -JavaScript. It's also the umbrella project for a set of tools for the OCaml & -JavaScript ecosystem.""" -maintainer: [ - "Jordan Walke " - "Antonio Nuno Monteiro " -] -authors: ["Jordan Walke "] -license: "MIT" -homepage: "https://reasonml.github.io/" -bug-reports: "https://github.com/reasonml/reason/issues" -depends: [ - "dune" {>= "2.9"} - "ocaml" {>= "4.03" & < "5.2"} - "ocamlfind" {build} - "dune-build-info" {>= "2.9.3"} - "menhir" {>= "20180523"} - "merlin-extend" {>= "0.6"} - "fix" - "ppx_derivers" - "ppxlib" {>= "0.28.0"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "--promote-install-files=false" - "@install" - "@doc" {with-doc} - ] - ["dune" "install" "-p" name "--create-install-files" name] -] -dev-repo: "git+https://github.com/reasonml/reason.git" -url { - src: - "https://github.com/reasonml/reason/releases/download/3.9.0/reason-3.9.0.tbz" - checksum: [ - "sha256=bcf0081ecf3d05ce68e82876a1bc2a48497c78225b8b310f2cf24b33f3568416" - "sha512=388a0d8970b83423bb79978e4df3a558c27e043fc216a8d288ca7aab9babd8a3db45219ba53c9db09d791c07017f26ceba3a7d714c8ce9bf369d2e8b796d6d81" - ] -} -x-commit-hash: "0da0be2a8c44a0dd492a4a6b47601cdad1da4194" diff --git a/esy.lock/opam/seq.base/files/META.seq b/esy.lock/opam/seq.base/files/META.seq deleted file mode 100644 index 06b95eff..00000000 --- a/esy.lock/opam/seq.base/files/META.seq +++ /dev/null @@ -1,4 +0,0 @@ -name="seq" -version="[distributed with OCaml 4.07 or above]" -description="dummy backward-compatibility package for iterators" -requires="" diff --git a/esy.lock/opam/seq.base/files/seq.install b/esy.lock/opam/seq.base/files/seq.install deleted file mode 100644 index c4d70206..00000000 --- a/esy.lock/opam/seq.base/files/seq.install +++ /dev/null @@ -1,3 +0,0 @@ -lib:[ - "META.seq" {"META"} -] diff --git a/esy.lock/opam/seq.base/opam b/esy.lock/opam/seq.base/opam deleted file mode 100644 index b33d8c7d..00000000 --- a/esy.lock/opam/seq.base/opam +++ /dev/null @@ -1,15 +0,0 @@ -opam-version: "2.0" -maintainer: " " -authors: " " -homepage: " " -depends: [ - "ocaml" {>= "4.07.0"} -] -dev-repo: "git+https://github.com/ocaml/ocaml.git" -bug-reports: "https://caml.inria.fr/mantis/main_page.php" -synopsis: - "Compatibility package for OCaml's standard iterator type starting from 4.07." -extra-files: [ - ["seq.install" "md5=026b31e1df290373198373d5aaa26e42"] - ["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"] -] diff --git a/esy.lock/opam/sexplib0.v0.16.0/opam b/esy.lock/opam/sexplib0.v0.16.0/opam deleted file mode 100644 index d9c5f049..00000000 --- a/esy.lock/opam/sexplib0.v0.16.0/opam +++ /dev/null @@ -1,26 +0,0 @@ -opam-version: "2.0" -maintainer: "Jane Street developers" -authors: ["Jane Street Group, LLC"] -homepage: "https://github.com/janestreet/sexplib0" -bug-reports: "https://github.com/janestreet/sexplib0/issues" -dev-repo: "git+https://github.com/janestreet/sexplib0.git" -doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/sexplib0/index.html" -license: "MIT" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.08.0"} - "dune" {>= "2.0.0"} -] -synopsis: "Library containing the definition of S-expressions and some base converters" -description: " -Part of Jane Street's Core library -The Core suite of libraries is an industrial strength alternative to -OCaml's standard library that was developed by Jane Street, the -largest industrial user of OCaml. -" -url { -src: "https://ocaml.janestreet.com/ocaml-core/v0.16/files/sexplib0-v0.16.0.tar.gz" -checksum: "sha256=86dba26468194512f789f2fb709063515a9cb4e5c4461c021c239a369590701d" -} diff --git a/esy.lock/opam/spawn.v0.15.1/opam b/esy.lock/opam/spawn.v0.15.1/opam deleted file mode 100644 index 5be3a994..00000000 --- a/esy.lock/opam/spawn.v0.15.1/opam +++ /dev/null @@ -1,56 +0,0 @@ -opam-version: "2.0" -synopsis: "Spawning sub-processes" -description: """ -Spawn is a small library exposing only one functionality: spawning sub-process. - -It has three main goals: - -1. provide missing features of Unix.create_process such as providing a -working directory - -2. provide better errors when a system call fails in the -sub-process. For instance if a command is not found, you get a proper -[Unix.Unix_error] exception - -3. improve performance by using vfork when available. It is often -claimed that nowadays fork is as fast as vfork, however in practice -fork takes time proportional to the process memory while vfork is -constant time. In application using a lot of memory, vfork can be -thousands of times faster than fork. -""" -maintainer: ["Jane Street developers"] -authors: ["Jane Street Group, LLC"] -license: "MIT" -homepage: "https://github.com/janestreet/spawn" -doc: "https://janestreet.github.io/spawn/" -bug-reports: "https://github.com/janestreet/spawn/issues" -depends: [ - "dune" {>= "2.8"} - "ppx_expect" {with-test} - "ocaml" {>= "4.05"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/janestreet/spawn.git" -x-commit-hash: "13d279ebfa8c40d4bafe18cddfdff0de54b4eaff" -url { - src: - "https://github.com/janestreet/spawn/archive/v0.15.1.tar.gz" - checksum: [ - "sha256=9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50" - "sha512=efdb31d5ec5ea36d0bc80224d4ee04e46ce3428d1662870e6cebece92bc313d6eebee378802c0c059dd6e0cafea515308c31b7dfaf04a098eb4566583c1e9ed4" - ] -} diff --git a/esy.lock/opam/stdlib-shims.0.3.0/opam b/esy.lock/opam/stdlib-shims.0.3.0/opam deleted file mode 100644 index 8c969571..00000000 --- a/esy.lock/opam/stdlib-shims.0.3.0/opam +++ /dev/null @@ -1,31 +0,0 @@ -opam-version: "2.0" -maintainer: "The stdlib-shims programmers" -authors: "The stdlib-shims programmers" -homepage: "https://github.com/ocaml/stdlib-shims" -doc: "https://ocaml.github.io/stdlib-shims/" -dev-repo: "git+https://github.com/ocaml/stdlib-shims.git" -bug-reports: "https://github.com/ocaml/stdlib-shims/issues" -tags: ["stdlib" "compatibility" "org:ocaml"] -license: ["LGPL-2.1-only WITH OCaml-LGPL-linking-exception"] -depends: [ - "dune" - "ocaml" {>= "4.02.3"} -] -build: [ "dune" "build" "-p" name "-j" jobs ] -synopsis: "Backport some of the new stdlib features to older compiler" -description: """ -Backport some of the new stdlib features to older compiler, -such as the Stdlib module. - -This allows projects that require compatibility with older compiler to -use these new features in their code. -""" -x-commit-hash: "fb6815e5d745f07fd567c11671149de6ef2e74c8" -url { - src: - "https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz" - checksum: [ - "sha256=babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a" - "sha512=1151d7edc8923516e9a36995a3f8938d323aaade759ad349ed15d6d8501db61ffbe63277e97c4d86149cf371306ac23df0f581ec7e02611f58335126e1870980" - ] -} diff --git a/esy.lock/opam/stdune.3.15.0/opam b/esy.lock/opam/stdune.3.15.0/opam deleted file mode 100644 index 7957f10d..00000000 --- a/esy.lock/opam/stdune.3.15.0/opam +++ /dev/null @@ -1,45 +0,0 @@ -opam-version: "2.0" -synopsis: "Dune's unstable standard library" -description: - "This library offers no backwards compatibility guarantees. Use at your own risk." -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08.0"} - "base-unix" - "dyn" {= version} - "ordering" {= version} - "pp" {>= "1.2.0"} - "csexp" {>= "1.5.0"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/topkg.1.0.7/opam b/esy.lock/opam/topkg.1.0.7/opam deleted file mode 100644 index 83fc06f4..00000000 --- a/esy.lock/opam/topkg.1.0.7/opam +++ /dev/null @@ -1,47 +0,0 @@ -opam-version: "2.0" -synopsis: "The transitory OCaml software packager" -description: """\ -Topkg is a packager for distributing OCaml software. It provides an -API to describe the files a package installs in a given build -configuration and to specify information about the package's -distribution, creation and publication procedures. - -The optional topkg-care package provides the `topkg` command line tool -which helps with various aspects of a package's life cycle: creating -and linting a distribution, releasing it on the WWW, publish its -documentation, add it to the OCaml opam repository, etc. - -Topkg is distributed under the ISC license and has **no** -dependencies. This is what your packages will need as a *build* -dependency. - -Topkg-care is distributed under the ISC license it depends on -[fmt][fmt], [logs][logs], [bos][bos], [cmdliner][cmdliner], -[webbrowser][webbrowser] and `opam-format`. - -[fmt]: http://erratique.ch/software/fmt -[logs]: http://erratique.ch/software/logs -[bos]: http://erratique.ch/software/bos -[cmdliner]: http://erratique.ch/software/cmdliner -[webbrowser]: http://erratique.ch/software/webbrowser - -Home page: http://erratique.ch/software/topkg""" -maintainer: "Daniel Bünzli " -authors: "The topkg programmers" -license: "ISC" -tags: ["packaging" "ocamlbuild" "org:erratique"] -homepage: "https://erratique.ch/software/topkg" -doc: "https://erratique.ch/software/topkg/doc" -bug-reports: "https://github.com/dbuenzli/topkg/issues" -depends: [ - "ocaml" {>= "4.05.0"} - "ocamlfind" {build & >= "1.6.1"} - "ocamlbuild" -] -build: ["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name "--dev-pkg" "%{dev}%"] -dev-repo: "git+https://erratique.ch/repos/topkg.git" -url { - src: "https://erratique.ch/software/topkg/releases/topkg-1.0.7.tbz" - checksum: - "sha512=09e59f1759bf4db8471f02d0aefd8db602b44932a291c05c312b1423796e7a15d1598d3c62a0cec7f083eff8e410fac09363533dc4bd2120914bb9664efea535" -} \ No newline at end of file diff --git a/esy.lock/opam/uutf.1.0.3/opam b/esy.lock/opam/uutf.1.0.3/opam deleted file mode 100644 index e96cc4a4..00000000 --- a/esy.lock/opam/uutf.1.0.3/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "2.0" -synopsis: """Non-blocking streaming Unicode codec for OCaml""" -maintainer: ["Daniel Bünzli "] -authors: ["The uutf programmers"] -homepage: "https://erratique.ch/software/uutf" -doc: "https://erratique.ch/software/uutf/doc/" -dev-repo: "git+https://erratique.ch/repos/uutf.git" -bug-reports: "https://github.com/dbuenzli/uutf/issues" -license: ["ISC"] -tags: ["unicode" "text" "utf-8" "utf-16" "codec" "org:erratique"] -depends: ["ocaml" {>= "4.03.0"} - "ocamlfind" {build} - "ocamlbuild" {build} - "topkg" {build & >= "1.0.3"}] -depopts: ["cmdliner"] -conflicts: ["cmdliner" {< "0.9.8"}] -build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%" - "--with-cmdliner" "%{cmdliner:installed}%"]] -url { - src: "https://erratique.ch/software/uutf/releases/uutf-1.0.3.tbz" - checksum: "sha512=50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8"} -description: """ -Uutf is a non-blocking streaming codec to decode and encode the UTF-8, -UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficiently -work character by character without blocking on IO. Decoders perform -character position tracking and support newline normalization. - -Functions are also provided to fold over the characters of UTF encoded -OCaml string values and to directly encode characters in OCaml -Buffer.t values. **Note** that since OCaml 4.14, that functionality -can be found in the Stdlib and you are encouraged to migrate to it. - -Uutf has no dependency and is distributed under the ISC license. - -Home page: http://erratique.ch/software/uutf -Contact: Daniel Bünzli ``""" \ No newline at end of file diff --git a/esy.lock/opam/xdg.3.15.0/opam b/esy.lock/opam/xdg.3.15.0/opam deleted file mode 100644 index 4a858d69..00000000 --- a/esy.lock/opam/xdg.3.15.0/opam +++ /dev/null @@ -1,40 +0,0 @@ -opam-version: "2.0" -synopsis: "XDG Base Directory Specification" -description: - "https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html" -maintainer: ["Jane Street Group, LLC "] -authors: ["Jane Street Group, LLC "] -license: "MIT" -homepage: "https://github.com/ocaml/dune" -doc: "https://dune.readthedocs.io/" -bug-reports: "https://github.com/ocaml/dune/issues" -depends: [ - "dune" {>= "3.12"} - "ocaml" {>= "4.08"} - "odoc" {with-doc} -] -dev-repo: "git+https://github.com/ocaml/dune.git" -build: [ - ["dune" "subst"] {dev} - ["rm" "-rf" "vendor/csexp"] - ["rm" "-rf" "vendor/pp"] - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@doc" {with-doc} - ] -] -url { - src: - "https://github.com/ocaml/dune/releases/download/3.15.0/dune-3.15.0.tbz" - checksum: [ - "sha256=b5c3d10f6f6048bfaf56fc4f0942d56381b55af4287caf8251487d4c4e7920d7" - "sha512=b3944b47c7ab1b2109aabc73dab7b9227765168bdcaddda875f3ee3c8277825f4a2672fbba903bf54ea507d00c7649c7dfc3c3bb156365d3052e570cf02caa82" - ] -} -x-commit-hash: "8118ddbd012bd871b75df41c971be904e16b45ca" diff --git a/esy.lock/opam/yojson.2.1.2/opam b/esy.lock/opam/yojson.2.1.2/opam deleted file mode 100644 index df37a739..00000000 --- a/esy.lock/opam/yojson.2.1.2/opam +++ /dev/null @@ -1,48 +0,0 @@ -opam-version: "2.0" -synopsis: - "Yojson is an optimized parsing and printing library for the JSON format" -description: """ -Yojson is an optimized parsing and printing library for the JSON format. - -ydump is a pretty-printing command-line program provided with the -yojson package.""" -maintainer: [ - "paul-elliot@tarides.com" "nathan@tarides.com" "marek@tarides.com" -] -authors: ["Martin Jambon"] -license: "BSD-3-Clause" -homepage: "https://github.com/ocaml-community/yojson" -doc: "https://ocaml-community.github.io/yojson" -bug-reports: "https://github.com/ocaml-community/yojson/issues" -depends: [ - "dune" {>= "2.7"} - "ocaml" {>= "4.02.3"} - "cppo" {build} - "alcotest" {with-test & >= "0.8.5"} - "seq" {>= "0.2.2"} - "odoc" {with-doc} -] -build: [ - ["dune" "subst"] {dev} - [ - "dune" - "build" - "-p" - name - "-j" - jobs - "@install" - "@runtest" {with-test} - "@doc" {with-doc} - ] -] -dev-repo: "git+https://github.com/ocaml-community/yojson.git" -url { - src: - "https://github.com/ocaml-community/yojson/releases/download/2.1.2/yojson-2.1.2.tbz" - checksum: [ - "sha256=59f2f1abbfc8a7ccbdbf608894e5c75e8a76006e34899254446f83e200dfb4f9" - "sha512=309cba7568dec51de20c7ab8df033258c275b8d58b0a36a66b26e673a3bc050cbd7e39ff8fe4796e89263e125bcc21e04dc36a394f3cc201956887eee1fb281a" - ] -} -x-commit-hash: "e51163ee04ad79408975545ec5fc3b7dc41f68eb" diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.github/workflows/workflow.yml b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.github/workflows/workflow.yml deleted file mode 100644 index c5b65d16..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.github/workflows/workflow.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Build and test the esy package - -on: - - push - -jobs: - build: - strategy: - fail-fast: false - matrix: - os: - - macos-latest - - ubuntu-latest - - windows-latest - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Use Node.js 14.x - uses: actions/setup-node@v3 - with: - node-version: 14.x - - - name: Install esy, verdaccio and esy-package - run: npm install -g @esy-nightly/esy verdaccio esy-package@dev - - - name: Run end-to-end tests on the package - run: DEBUG=bale*,verdaccio* esy-package - shell: bash - env: - SHELL: "bash.exe" # HACK!! For some weird reason, $SHELL in Github actions' Windows' bash shell doesn't set this environment variable. We rely on it to figure if path normalisation is necessary on Gitbash Windows - - - uses: actions/upload-artifact@v3 - with: - name: release - path: package.tar.gz diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.gitignore b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.gitignore deleted file mode 100644 index 1c99af74..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*~ -node_modules -_esy -_esy-package -.log -package.tar.gz -package.tgz -verdaccio-storage \ No newline at end of file diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.npmrc b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.npmrc deleted file mode 100644 index 79a5aba1..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/.npmrc +++ /dev/null @@ -1 +0,0 @@ -//localhost:4873/:_authToken="+vVrDzq8gudTDDEoQOS+PQ==" \ No newline at end of file diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/Readme.md b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/Readme.md deleted file mode 100644 index 7e87b0cf..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/Readme.md +++ /dev/null @@ -1,141 +0,0 @@ -![Build and test the esy -package]() - -# esy-libspng - -`esy-libspng` is sample package, [`libspng`](https://github.com/randy408/libspng), packaged for [`esy`](https://esy.sh/). - -## Why -`esy` can not only fetch and install Reason and OCaml libraries and tools, -but also those written in C. This extends reproducibility benefits to -packages written in C, like `skia`, `libffi`, `pkg-config` -etc. Users don't have to install them separately, nor have to worry if -they have installed the correct version. Read more at the docs about -[benefits for opting for esy packages](https://esy.sh#TODO). - -## How to use `esy-libspng`? - -`esy-libspng` can be used from both NPM and directly from Github. - -### From NPM - -`esy-libspng` is deployed on NPM can be found -[here](https://www.npmjs.com/package/TODO). - -You can simply run `esy add esy-libspng` to install it, or specify it in -`package.json` and run `esy`. - -```diff -{ - "dependencies": { -+ "esy-libspng": "*" - } -} -``` - -### Directly from Github - -```json -{ - "dependencies": { - "esy-libspng": "esy-packages/esy-libspng" - } -} -``` - -i.e. `/` - -To use a specific commit, - -```diff - "dependencies": { -+ "esy-libspng": "esy-packages/esy-libspng#" - } -``` - -## How to package for esy? - -### For the experienced - -**The gist** -Specify the configure and build commands in `esy.build` property of -`esy.json` and the install step in `esy.install`. If the package -builds "in source", set `esy.buildsInSource` property to `true`. Use -`$cur__install` environment variable to set the install location. - -See [docs](TODO) for reference. - -The CI will take care of fetching the sources and creating an NPM -package for you. See [script.js](TODO) to see how it works. - -You can download it or auto publish via CI. - -### For beginners - -> Note: you'll need Node.js for this tutorial. If you're experienced -> with bash, you can use it instead. - -Fundamentally, packaging for esy works like in other Linux distros, -except ofcourse, such that packages become available on MacOS and -Windows too. - -You would typically have to specify the instructions to build the -package in the `esy.json`. For example, everyone's favourite http -tool, [curl](https://curl.se/), needs the following instructions ([as -described on their website](https://curl.se/docs/install.html)) - -```sh -./configure -make -make install -``` - -Many packages have similar instructions! - -Configure and build steps are specified in the `esy.build` property in -the `esy.json` and install steps in `esy.install`. Example, - -```json -{ - "esy": { - "build": [ - "./configure", - "make" - ], - "install": [ - "make install" - ] - } -} -``` - - -## Testing and making sure the package works as expected - -To test if the package works, we recommend an end-to-end test by -publishing it to local -[`verdaccio`](https://github.com/verdaccio/verdaccio), and using the -package with a `package.json` or `esy.json` depends on it. - -```json -{ - "dependencies": { - esy-libspng": "*" - } -} -``` - -And pointing `esy` to the local npm registry - -```sh -esy i --npm-registry http://localhost:4873 -esy b -``` - -If the package is a library, it's a good idea to write a small program -to actually check if the library works. Referring how the -corresponding package is being tested in Homebrew or Arch Linux. - -# Credits - -This package borrow its manifest heavily from https://github.com/eWert-Online/esy-libspng diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/.gitignore b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/.gitignore deleted file mode 100644 index 9edff422..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -esy.lock -_esy -node_modules \ No newline at end of file diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/Readme.md b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/Readme.md deleted file mode 100644 index cd9c728e..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/Readme.md +++ /dev/null @@ -1 +0,0 @@ -See [Readme in the root][../Readme.md#testing-and-making-sure-package-works-as-expected] diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/package.json b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/package.json deleted file mode 100644 index ee26734b..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy-test/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "esy": { - "build": "ls #{esy-libspng.lib}/pkgconfig/libspng.pc" - }, - "dependencies": { - "esy-libspng": "*" - }, - "resolutions": { - "esy-cmake": "ManasJayanth/esy-cmake:esy.json#dcc7909f7ea0604f1d644b14a3e83d7ebaf64272", - "esy-zlib": "esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f" - } -} diff --git a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy.json b/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy.json deleted file mode 100644 index 0f2f6da2..00000000 --- a/esy.lock/overrides/a7ae8ae924c8aa35057b80966b510cb1/esy.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "esy-libspng", - "version": "0.7.4000", - "description": "libspng packaged for esy", - "source": "https://github.com/randy408/libspng/archive/refs/tags/v0.7.4.tar.gz#sha256:47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487", - "override": { - "buildEnv": { - "PATH": "#{$PATH:'/usr/x86_64-w64-mingw32/sys-root/mingw/bin'}", - "CFLAGS": "-O3 -fPIC $CFLAGS", - "CPPFLAGS": "$CFLAGS", - "CC": "#{os == 'windows' ? 'x86_64-w64-mingw32-gcc' : ''}", - "CXX": "#{os == 'windows' ? 'x86_64-w64-mingw32-g++' : ''}", - "CXXFLAGS": "#{os == 'windows' ? '--std c++11' : ''}" - }, - "build": [ - [ - "cmake", - "#{os == 'windows' ? '-DCMAKE_MAKE_PROGRAM=make' : ''}", - "#{os == 'windows' ? '-GUnix Makefiles' : ''}", - "#{os == 'windows' ? '-DCMAKE_HOST_WIN32=true' : ''}", - "-DZLIB_LIBRARY=#{esy-zlib.lib / 'libz.a'}", - "-DZLIB_INCLUDE_DIR=#{esy-zlib.install / 'include'}", - "-DCMAKE_BUILD_TYPE=RELEASE", - "-DCMAKE_INSTALL_PREFIX=#{self.install}", - "-S #{self.root}", - "-B #{self.target_dir}" - ], - "make -j4" - ], - "install": ["make install"], - "buildsInSource": true, - "exportedEnv": { - "CFLAGS": { - "scope": "global", - "val": "-I#{self.install / 'include'} $CFLAGS" - }, - "LDFLAGS": { - "scope": "global", - "val": "-L#{self.lib} -lspng $LDFLAGS" - }, - "PKG_CONFIG_PATH": { - "scope": "global", - "val": "#{self.lib / 'pkgconfig' : $PKG_CONFIG_PATH }" - }, - "SPNG_INCLUDE_PATH": { - "val": "#{self.install / 'include' }", - "scope": "global" - }, - "SPNG_LIB_PATH": { - "val": "#{self.lib}", - "scope": "global" - } - }, - "dependencies": { - "esy-cmake": "*", - "esy-zlib": "*" - } - } -} diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.github/workflows/workflow.yml b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.github/workflows/workflow.yml deleted file mode 100644 index 53164feb..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.github/workflows/workflow.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build and test the esy package - -on: - - push - -jobs: - build: - strategy: - fail-fast: false - matrix: - os: - - macos-latest - - ubuntu-latest - - windows-latest - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Use Node.js 14.x - uses: actions/setup-node@v3 - with: - node-version: 14.x - - - name: Install esy, verdaccio and esy-package - run: npm install -g @esy-nightly/esy verdaccio esy-package@dev - - - name: Run end-to-end tests on the package - run: DEBUG=bale*,verdaccio* esy-package - shell: bash - - - uses: actions/upload-artifact@v3 - with: - name: release - path: package.tar.gz diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.gitignore b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.gitignore deleted file mode 100644 index 1c99af74..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*~ -node_modules -_esy -_esy-package -.log -package.tar.gz -package.tgz -verdaccio-storage \ No newline at end of file diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.npmrc b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.npmrc deleted file mode 100644 index 79a5aba1..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/.npmrc +++ /dev/null @@ -1 +0,0 @@ -//localhost:4873/:_authToken="+vVrDzq8gudTDDEoQOS+PQ==" \ No newline at end of file diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/Readme.md b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/Readme.md deleted file mode 100644 index 57515c9f..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/Readme.md +++ /dev/null @@ -1,138 +0,0 @@ -[![Build and test the esy package](https://github.com/ManasJayanth/esy-cmake/actions/workflows/workflow.yml/badge.svg)](https://github.com/ManasJayanth/esy-cmake/actions/workflows/workflow.yml) - -# esy-cmake - -`esy-cmake` is sample package, [`hello`](https://github.com/esy/test-hello-c), packaged for [`esy`](https://esy.sh/). - -## Why -`esy` can not only fetch and install Reason and OCaml libraries and tools, -but also those written in C. This extends reproducibility benefits to -packages written in C, like `skia`, `libffi`, `pkg-config` -etc. Users don't have to install them separately, nor have to worry if -they have installed the correct version. Read more at the docs about -[benefits for opting for esy packages](https://esy.sh#TODO). - -## How to use `esy-cmake`? - -`esy-cmake` can be used from both NPM and directly from Github. - -### From NPM - -`esy-cmake` is deployed on NPM can be found -[here](https://www.npmjs.com/package/TODO). - -You can simply run `esy add esy-cmake` to install it, or specify it in -`package.json` and run `esy`. - -```diff -{ - "dependencies": { -+ "esy-cmake": "*" - } -} -``` - -### Directly from Github - -```json -{ - "dependencies": { - "esy-cmake": "esy-packages/esy-cmake" - } -} -``` - -i.e. `/` - -To use a specific commit, - -```diff - "dependencies": { -+ "esy-cmake": "esy-packages/esy-cmake#" - } -``` - -## How to package for esy? - -### For the experienced - -**The gist** -Specify the configure and build commands in `esy.build` property of -`esy.json` and the install step in `esy.install`. If the package -builds "in source", set `esy.buildsInSource` property to `true`. Use -`$cur__install` environment variable to set the install location. - -See [docs](TODO) for reference. - -The CI will take care of fetching the sources and creating an NPM -package for you. See [script.js](TODO) to see how it works. - -You can download it or auto publish via CI. - -### For beginners - -> Note: you'll need Node.js for this tutorial. If you're experienced -> with bash, you can use it instead. - -Fundamentally, packaging for esy works like in other Linux distros, -except ofcourse, such that packages become available on MacOS and -Windows too. - -You would typically have to specify the instructions to build the -package in the `esy.json`. For example, everyone's favourite http -tool, [curl](https://curl.se/), needs the following instructions ([as -described on their website](https://curl.se/docs/install.html)) - -```sh -./configure -make -make install -``` - -Many packages have similar instructions! - -Configure and build steps are specified in the `esy.build` property in -the `esy.json` and install steps in `esy.install`. Example, - -```json -{ - "esy": { - "build": [ - "./configure", - "make" - ], - "install": [ - "make install" - ] - } -} -``` - - -## Testing and making sure the package works as expected - -To test if the package works, we recommend an end-to-end test by -publishing it to local -[`verdaccio`](https://github.com/verdaccio/verdaccio), and using the -package with a `package.json` or `esy.json` depends on it. - -```json -{ - "dependencies": { - "esy-cmake": "*" - } -} -``` - -And pointing `esy` to the local npm registry - -```sh -esy i --npm-registry http://localhost:4873 -esy b -``` - -If the package is a library, it's a good idea to write a small program -to actually check if the library works. Referring how the -corresponding package is being tested in Homebrew or Arch Linux. - -Checkout [ci-test.sh](./ci-test.sh) for reference, used on the CI. diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/.gitignore b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/.gitignore deleted file mode 100644 index 9edff422..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -esy.lock -_esy -node_modules \ No newline at end of file diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/Readme.md b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/Readme.md deleted file mode 100644 index cd9c728e..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/Readme.md +++ /dev/null @@ -1 +0,0 @@ -See [Readme in the root][../Readme.md#testing-and-making-sure-package-works-as-expected] diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/package.json b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/package.json deleted file mode 100644 index 44fc4c4b..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy-test/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "esy": { - "build": "which cmake" - }, - "dependencies": { - "esy-cmake": "3.26.3000" - } -} diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy.json b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy.json deleted file mode 100644 index 17eac645..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/esy.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "esy-cmake", - "version": "3.26.3000", - "description": "CMake packaged for esy", - "source": "https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz#sha256:bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659", - "override": { - "buildEnv": { - "CXX": "#{os == 'windows' ? 'x86_64-w64-mingw32-g++': 'c++'}", - "PATH": "#{$PATH:'/usr/x86_64-w64-mingw32/sys-root/mingw/bin'}", - "CC": "#{os == 'windows' ? 'x86_64-w64-mingw32-gcc' : 'cc'}" - }, - "build": [ - "bash -c '#{os == 'windows' ? 'patch -p1 < ./windows.patch' : 'true'}'", - "./bootstrap --prefix=#{self.install} --no-system-libs --parallel=8 -- -DCMake_INSTALL_BASH_COMP_DIR=#{self.etc} -DCMake_INSTALL_EMACS_DIR=#{self.etc / 'elisp'} -DCMake_BUILD_LTO=OFF", - "make" - ], - "install": "make install", - "buildsInSource": true, - "exportedEnv": { - "PKG_CONFIG_PATH": { - "val": "#{self.lib / 'pkgconfig'}", - "scope": "global" - } - }, - "dependencies": {} - } -} diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/files/windows.patch b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/files/windows.patch deleted file mode 100644 index dc8d86f8..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/files/windows.patch +++ /dev/null @@ -1,193 +0,0 @@ ---- ./bootstrap -+++ ./bootstrap -@@ -501,13 +501,11 @@ - cmcmd \ - " - --if ${cmake_system_mingw}; then - CMAKE_CXX_SOURCES="${CMAKE_CXX_SOURCES}\ - cmGlobalMSYSMakefileGenerator \ - cmGlobalMinGWMakefileGenerator \ - cmVSSetupHelper \ - " --fi - - CMAKE_STD_CXX_HEADERS="\ - filesystem \ -@@ -534,21 +532,12 @@ - cmListFileLexer \ - " - --if ${cmake_system_mingw}; then -- KWSYS_C_SOURCES="\ -- EncodingC \ -- ProcessWin32 \ -- String \ -- System \ -- Terminal" --else -- KWSYS_C_SOURCES="\ -- EncodingC \ -- ProcessUNIX \ -- String \ -- System \ -- Terminal" --fi -+KWSYS_C_SOURCES="\ -+ EncodingC \ -+ ProcessWin32 \ -+ String \ -+ System \ -+ Terminal" - - KWSYS_CXX_SOURCES="\ - Directory \ -@@ -586,7 +575,6 @@ - librhash/sha512.c \ - " - --if ${cmake_system_mingw}; then - LIBUV_C_SOURCES="\ - src/fs-poll.c \ - src/idna.c -@@ -621,29 +609,6 @@ - src/win/winapi.c \ - src/win/winsock.c \ - " --else -- LIBUV_C_SOURCES="\ -- src/strscpy.c \ -- src/strtok.c \ -- src/timer.c \ -- src/uv-common.c \ -- src/unix/cmake-bootstrap.c \ -- src/unix/core.c \ -- src/unix/fs.c \ -- src/unix/loop.c \ -- src/unix/loop-watcher.c \ -- src/unix/no-fsevents.c \ -- src/unix/pipe.c \ -- src/unix/poll.c \ -- src/unix/posix-hrtime.c \ -- src/unix/posix-poll.c \ -- src/unix/process.c \ -- src/unix/signal.c \ -- src/unix/stream.c \ -- src/unix/tcp.c \ -- src/unix/tty.c \ -- " --fi - - # Display CMake bootstrap usage - cmake_usage() -@@ -1594,8 +1559,8 @@ - CMAKE_BOOTSTRAP_SOURCE_DIR=`cd "${cmake_source_dir}"; pwd -W` - CMAKE_BOOTSTRAP_BINARY_DIR=`cd "${cmake_binary_dir}"; pwd -W` - else -- CMAKE_BOOTSTRAP_SOURCE_DIR="${cmake_source_dir}" -- CMAKE_BOOTSTRAP_BINARY_DIR="${cmake_binary_dir}" -+ CMAKE_BOOTSTRAP_SOURCE_DIR=$(cygpath -w $cmake_source_dir | sed 's/\\/\//g') -+ CMAKE_BOOTSTRAP_BINARY_DIR=$(cygpath -w $cmake_binary_dir | sed 's/\\/\//g') - fi - - # Write CMake version -@@ -1616,14 +1581,12 @@ - cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP_MAKEFILES" - fi - --if ${cmake_system_mingw}; then - cmake_report cmConfigure.h${_tmp} "#if defined(_WIN32) && !defined(NOMINMAX)" - cmake_report cmConfigure.h${_tmp} "# define NOMINMAX" - cmake_report cmConfigure.h${_tmp} "#endif" - cmake_report cmConfigure.h${_tmp} "#if defined(_WIN32) && !defined(KWSYS_ENCODING_DEFAULT_CODEPAGE)" - cmake_report cmConfigure.h${_tmp} "# define KWSYS_ENCODING_DEFAULT_CODEPAGE CP_UTF8" - cmake_report cmConfigure.h${_tmp} "#endif" --fi - - # Regenerate configured headers - for h in Configure VersionConfig; do -@@ -1699,50 +1662,12 @@ - libs="" - - uv_c_flags="" --if ${cmake_system_mingw}; then -- uv_c_flags="${uv_c_flags} -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600" -- libs="${libs} -lws2_32 -lpsapi -liphlpapi -lshell32 -luserenv -lole32 -loleaut32" --else -- case "${cmake_system}" in -- *AIX*) -- uv_c_flags="${uv_c_flags} -D_ALL_SOURCE -D_XOPEN_SOURCE=500 -D_LINUX_SOURCE_COMPAT" -- libs="${libs} -lperfstat" -- ;; -- *Darwin*) -- uv_c_flags="${uv_c_flags} -D_DARWIN_USE_64_BIT_INODE=1 -D_DARWIN_UNLIMITED_SELECT=1" -- ;; -- *HP-UX*) -- uv_c_flags="${uv_c_flags} -D_XOPEN_SOURCE_EXTENDED" -- ;; -- *Linux*) -- uv_c_flags="${uv_c_flags} -D_GNU_SOURCE" -- libs="${libs} -ldl -lrt" -- ;; -- *kFreeBSD*) -- libs="${libs} -lkvm -lfreebsd-glue" -- ;; -- *BSD*) -- libs="${libs} -lkvm" -- ;; -- *SunOS*) -- # Normally libuv uses '-D_XOPEN_SOURCE=500 -std=c90' on Solaris 5.10, -- # but we do not need to do that because we bootstrap using POSIX APIs. -- uv_c_flags="${uv_c_flags} -D__EXTENSIONS__ -D_XOPEN_SOURCE=600" -- libs="${libs} -lkstat -lnsl -lsendfile -lsocket -lrt" -- ;; -- *QNX*) -- uv_c_flags="${uv_c_flags} -D_XOPEN_SOURCE=700" -- libs="${libs} -lsocket" -- ;; -- esac --fi -+uv_c_flags="${uv_c_flags} -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600" -+libs="${libs} -lws2_32 -lpsapi -liphlpapi -lshell32 -luserenv -lole32 -loleaut32" -+ - if test "x${bootstrap_system_libuv}" = "x"; then - uv_c_flags="${uv_c_flags} `cmake_escape_shell "-I${cmake_source_dir}/Utilities/cmlibuv/include"`" -- if ${cmake_system_mingw}; then -- uv_c_flags="${uv_c_flags} `cmake_escape_shell "-I${cmake_source_dir}/Utilities/cmlibuv/src/win"`" -- else -- uv_c_flags="${uv_c_flags} `cmake_escape_shell "-I${cmake_source_dir}/Utilities/cmlibuv/src/unix"`" -- fi -+ uv_c_flags="${uv_c_flags} `cmake_escape_shell "-I${cmake_source_dir}/Utilities/cmlibuv/src/win"`" - uv_c_flags="${uv_c_flags} `cmake_escape_shell "-I${cmake_source_dir}/Utilities/cmlibuv/src"`" - else - if test `which pkg-config`; then -@@ -1823,11 +1748,10 @@ - } - - cmake_c_flags_String="-DKWSYS_STRING_C" --if ${cmake_system_mingw}; then -- cmake_c_flags_EncodingC="-DKWSYS_ENCODING_DEFAULT_CODEPAGE=CP_ACP" -- cmake_cxx_flags_EncodingCXX="${cmake_c_flags_EncodingC}" -- cmake_cxx_flags_cmProcessOutput="${cmake_c_flags_EncodingC}" --fi -+cmake_c_flags_EncodingC="-DKWSYS_ENCODING_DEFAULT_CODEPAGE=CP_ACP" -+cmake_cxx_flags_EncodingCXX="${cmake_c_flags_EncodingC}" -+cmake_cxx_flags_cmProcessOutput="${cmake_c_flags_EncodingC}" -+ - cmake_cxx_flags_SystemTools=" - -DKWSYS_CXX_HAS_SETENV=${KWSYS_CXX_HAS_SETENV} - -DKWSYS_CXX_HAS_UNSETENV=${KWSYS_CXX_HAS_UNSETENV} -@@ -2039,6 +1963,11 @@ - if test -n "${cmake_verbose}"; then - cmake_options="${cmake_options} -DCMAKE_VERBOSE_MAKEFILE=1" - fi -+cmake_bootstrap_dir=`cygpath -w $cmake_bootstrap_dir` -+cmake_source_dir=`cygpath -w $cmake_source_dir` -+echo "${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_options} ${cmake_bootstrap_system_libs} "$@" -+# read -p "Press any key to continue" -+# export PWD=`cygpath -w $PWD` - "${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_options} ${cmake_bootstrap_system_libs} "$@" - RES=$? - if test "${RES}" -ne "0"; then - -Diff finished. Fri May 19 12:52:59 2023 diff --git a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/scripts/package.js b/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/scripts/package.js deleted file mode 100644 index f3945cf7..00000000 --- a/esy.lock/overrides/af44a93b27c41eb22ba05b3b0cb686a5/scripts/package.js +++ /dev/null @@ -1,240 +0,0 @@ -/* - * For transparency reasons, this is a script and not a native executable - */ - -const fs = require("fs"); -const path = require("path"); -const os = require("os"); -const crypto = require("crypto"); -const url = require("url"); -const cp = require("child_process"); - -function mkdirpSync(pathStr) { - if (fs.existsSync(pathStr)) { - return; - } else { - mkdirpSync(path.dirname(pathStr)); - fs.mkdirSync(pathStr); - } -} - -function copy(src, dest) { - let srcStat = fs.statSync(src); - if (srcStat.isDirectory()) { - if (!fs.existsSync(dest)) { - mkdirpSync(dest); - } - let srcEntries = fs.readdirSync(src); - for (srcEntry of srcEntries) { - copy(path.join(src, srcEntry), path.join(dest, srcEntry)); - } - } else { - fs.writeFileSync(dest, fs.readFileSync(src)); - } -} - -function fetch(urlStr, urlObj, pathStr, callback) { - let httpm; - switch (urlObj.protocol) { - case "http:": - httpm = require("http"); - break; - case "https:": - httpm = require("https"); - break; - default: - throw `Unrecognised protocol in provided url: ${urlStr}`; - } - httpm.get(urlObj, function (response) { - if (response.statusCode == 302) { - let urlStr = response.headers.location; - fetch(urlStr, url.parse(urlStr), pathStr, callback); - } else { - response.pipe(fs.createWriteStream(pathStr)).on("finish", function () { - callback(pathStr); - }); - } - }); -} - -function uncompress(pathStr, pkgPath) { - pathStr = normalisePath(pathStr); - switch (path.extname(pathStr)) { - case ".tgz": - case ".gz": - tar(pathStr, pkgPath, true); - break; - case ".xz": - tar(pathStr, pkgPath); - break; - case ".zip": - unzip(pathStr, pkgPath); - break; - } -} - -function computeChecksum(filePath, algo) { - return new Promise((resolve, reject) => { - let stream = fs.createReadStream(filePath).pipe(crypto.createHash(algo)); - let buf = ""; - stream.on("data", (chunk) => { - buf += chunk.toString("hex"); - }); - stream.on("end", () => { - resolve(buf); - }); - }); -} - -function normalisePath(path) { - let platform; - try { - platform = cp.execSync("uname").toString().trim(); - } catch (e) { - console.log(e); - platform = "Windows"; - } - - if (/cygwin/i.test(platform) || /mingw/i.test(platform)) { - path = cp.execSync(`cygpath -u ${path}`).toString().trim(); - } - - return path; -} - -function download(urlStrWithChecksum, pkgPath) { - return new Promise(function (resolve, reject) { - let [urlStr, checksum] = urlStrWithChecksum.split("#"); - if (!urlStr) { - reject(`No url in ${urlStr}`); - } else if (!checksum) { - reject(`No checksum in ${urlStr}`); - } - - let urlObj = url.parse(urlStr); - let filename = path.basename(urlObj.path); - let tmpDownloadedPath = path.join(os.tmpdir(), "esy-package-" + filename); - - let protoParts = urlObj.protocol.split("+"); - - if (protoParts.length > 2) { - reject("Unrecognised protocol " + urlObj.protocol); - } else if (protoParts.length === 2) { - let [a, b] = protoParts; - if (a === "git") { - let gitUrl = url.format({ ...urlObj, protocol: b }); - - if (fs.existsSync(tmpDownloadedPath)) { - reject("TODO: run rm -rf"); - } else { - let destDir = path.join(pkgPath, "git-source"); // TODO: not network resilient. Any interruptions will corrupt the path - cp.execSync(`git clone ${gitUrl} ${destDir}`); - let commitHash = checksum; - cp.execSync(`git -C ${destDir} checkout ${commitHash}`); - resolve(destDir); - } - } else { - reject("Unrecognised protocol " + urlObj.protocol); - } - } else { - let [algo, hashStr] = checksum.split(":"); - if (!hashStr) { - hashStr = algo; - algo = "sha1"; - } - - if (fs.existsSync(tmpDownloadedPath)) { - computeChecksum(tmpDownloadedPath, algo).then((checksum) => { - if (hashStr == checksum) { - uncompress(tmpDownloadedPath, pkgPath); - resolve(tmpDownloadedPath); - } else { - fetch(urlStr, urlObj, tmpDownloadedPath, () => - computeChecksum(tmpDownloadedPath, algo).then((checksum) => { - if (hashStr == checksum) { - uncompress(tmpDownloadedPath, pkgPath); - resolve(tmpDownloadedPath); - } else { - reject(`Checksum error: expected ${hashStr} got ${checksum}`); - } - }) - ); - } - }); - } else { - fetch(urlStr, urlObj, tmpDownloadedPath, () => - computeChecksum(tmpDownloadedPath, algo).then((checksum) => { - if (hashStr == checksum) { - uncompress(tmpDownloadedPath, pkgPath); - resolve(tmpDownloadedPath); - } else { - reject(`Checksum error: expected ${hashStr} got ${checksum}`); - } - }) - ); - } - } - }); -} - -let cwd = process.argv[2] || process.cwd(); -let manifest = require(path.join(cwd, "esy.json")); - -let { - source, - name, - version, - description, - override: { build, install, buildsInSource, dependencies }, -} = manifest; - -function tar(filePath, destDir, gzip) { - cp.execSync(`tar -x${gzip ? "z" : ""}f ${filePath} -C ${destDir}`, { - stdio: "inherit", - }); -} - -function unzip(filePath, destDir) { - cp.execSync(`unzip -o ${filePath} -d ${destDir}`); -} - -let esyPackageDir = path.join(cwd, "_esy-package"); -mkdirpSync(esyPackageDir); -let pkgPath = esyPackageDir; -download(source, pkgPath) - .then(() => { - let entries = fs.readdirSync(pkgPath); - if (entries.length > 1) { - // Extracted tarball is not wrapped by a single root directory. The entire `pkgPath` must be considered as package root - return pkgPath; - } else { - return path.join(pkgPath, entries[0]); - } - }) - .then((pkgPath) => { - function filterComments(o = {}) { - return Object.keys(o) - .filter((k) => !k.startsWith("//")) - .reduce((acc, k) => { - acc[k] = o[k]; - return acc; - }, {}); - } - let buildEnv = filterComments(manifest.override.buildEnv); - let exportedEnv = filterComments(manifest.override.exportedEnv); - let esy = { buildsInSource, build, install, buildEnv, exportedEnv }; - let patchFilesPath = path.join(cwd, "files"); - if (fs.existsSync(patchFilesPath)) { - copy(patchFilesPath, pkgPath); - } - fs.writeFileSync( - path.join(pkgPath, "package.json"), - JSON.stringify({ name, version, description, esy, dependencies }, null, 2) - ); - fs.writeFileSync( - path.join(pkgPath, ".npmignore"), - ` -_esy -` - ); - }); diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/files/winpatch.patch b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/files/winpatch.patch deleted file mode 100644 index bba9929f..00000000 --- a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/files/winpatch.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./Makefile -+++ ./Makefile -@@ -271,7 +271,7 @@ - echo ' "ocamlbuild.byte" {"ocamlbuild.byte"}' >> ocamlbuild.install - ifeq ($(OCAML_NATIVE), true) - echo ' "ocamlbuild.native" {"ocamlbuild.native"}' >> ocamlbuild.install -- echo ' "ocamlbuild.native" {"ocamlbuild"}' >> ocamlbuild.install -+ echo " \"ocamlbuild.native\" {\"ocamlbuild${EXE}\"}" >> ocamlbuild.install - else - echo ' "ocamlbuild.byte" {"ocamlbuild"}' >> ocamlbuild.install - endif diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/package.json deleted file mode 100644 index b57a42cc..00000000 --- a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "build": [ - [ - "bash", - "-c", - "#{os == 'windows' ? 'patch -p1 < winpatch.patch' : 'true'}" - ], - [ - "make", - "-f", - "configure.make", - "all", - "OCAMLBUILD_PREFIX=#{self.install}", - "OCAMLBUILD_BINDIR=#{self.bin}", - "OCAMLBUILD_LIBDIR=#{self.lib}", - "OCAMLBUILD_MANDIR=#{self.man}", - "OCAMLBUILD_NATIVE=true", - "OCAMLBUILD_NATIVE_TOOLS=true", - "EXE=#{os == 'windows' ? '.exe': ''}" - ], - [ - "make", - "check-if-preinstalled", - "all", - "EXE=#{os == 'windows' ? '.exe': ''}", - "opam-install" - ] - ] -} diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/files/findlib.patch b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/files/findlib.patch deleted file mode 100644 index d545632a..00000000 --- a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/files/findlib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./Makefile -+++ ./Makefile -@@ -55,7 +55,7 @@ - export USE_CYGPATH; \ - cat findlib.conf.in | \ - $(SH) tools/patch '@SITELIB@' '$(OCAML_SITELIB)' | \ -- $(SH) tools/patch '@FINDLIB_PATH@' '$(FINDLIB_PATH)' -p >findlib.conf -+ $(SH) tools/patch '@FINDLIB_PATH@' '$(FINDLIB_PATH)' >findlib.conf - if ./tools/cmd_from_same_dir ocamlc; then \ - echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \ - fi diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/package.json deleted file mode 100644 index bf169e50..00000000 --- a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "build": [ - [ - "bash", - "-c", - "#{os == 'windows' ? 'patch -p1 < findlib.patch' : 'true'}" - ], - [ - "./configure", - "-bindir", - "#{self.bin}", - "-sitelib", - "#{self.lib}", - "-mandir", - "#{self.man}", - "-config", - "#{self.lib}/findlib.conf", - "-no-custom", - "-no-topfind" - ], - [ - "make", - "all" - ], - [ - "make", - "opt" - ] - ], - "install": [ - [ - "make", - "install" - ], - [ - "install", - "-m", - "0755", - "ocaml-stub", - "#{self.bin}/ocaml" - ], - [ - "mkdir", - "-p", - "#{self.toplevel}" - ], - [ - "install", - "-m", - "0644", - "src/findlib/topfind", - "#{self.toplevel}/topfind" - ] - ], - "exportedEnv": { - "OCAML_TOPLEVEL_PATH": { - "val": "#{self.toplevel}", - "scope": "global" - } - } -} diff --git a/esy.lock/overrides/opam__s__reason_opam__c__3.9.0_opam_override/package.json b/esy.lock/overrides/opam__s__reason_opam__c__3.9.0_opam_override/package.json deleted file mode 100644 index 72b2408e..00000000 --- a/esy.lock/overrides/opam__s__reason_opam__c__3.9.0_opam_override/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "build": "dune build -p reason" -} diff --git a/images/out.png b/images/out.png new file mode 100644 index 00000000..5ec21163 Binary files /dev/null and b/images/out.png differ diff --git a/io/config/discover.ml b/io/config/discover.ml index da8da519..caf3232e 100644 --- a/io/config/discover.ml +++ b/io/config/discover.ml @@ -1,27 +1,143 @@ module C = Configurator.V1 -let _ = - C.main ~name:"odiff-c-lib-package-resolver" (fun _c -> - let spng_include_path = Sys.getenv "SPNG_INCLUDE_PATH" |> String.trim in - let spng_lib_path = Sys.getenv "SPNG_LIB_PATH" |> String.trim in - let libspng = spng_lib_path ^ "/libspng_static.a" in - let jpeg_include_path = Sys.getenv "JPEG_INCLUDE_PATH" |> String.trim in - let jpeg_lib_path = Sys.getenv "JPEG_LIB_PATH" |> String.trim in - let libjpeg = jpeg_lib_path ^ "/libjpeg.a" in - let tiff_include_path = Sys.getenv "TIFF_INCLUDE_PATH" |> String.trim in - let tiff_lib_path = Sys.getenv "TIFF_LIB_PATH" |> String.trim in - let libtiff = tiff_lib_path ^ "/libtiff.a" in - let z_lib_path = Sys.getenv "Z_LIB_PATH" |> String.trim in - let zlib = z_lib_path ^ "/libz.a" in - C.Flags.write_sexp "png_write_c_flags.sexp" [ "-I" ^ spng_include_path ]; - C.Flags.write_sexp "png_write_c_library_flags.sexp" [ libspng; zlib ]; - C.Flags.write_sexp "png_write_flags.sexp" [ "-cclib"; libspng ]; - C.Flags.write_sexp "png_c_flags.sexp" [ "-I" ^ spng_include_path ]; - C.Flags.write_sexp "png_c_library_flags.sexp" [ libspng; zlib ]; - C.Flags.write_sexp "png_flags.sexp" [ "-cclib"; libspng ]; - C.Flags.write_sexp "jpg_c_flags.sexp" [ "-I" ^ jpeg_include_path ]; - C.Flags.write_sexp "jpg_c_library_flags.sexp" [ libjpeg ]; - C.Flags.write_sexp "jpg_flags.sexp" [ "-cclib"; libjpeg ]; - C.Flags.write_sexp "tiff_c_flags.sexp" [ "-I" ^ tiff_include_path ]; - C.Flags.write_sexp "tiff_c_library_flags.sexp" [ libtiff; zlib ]; - C.Flags.write_sexp "tiff_flags.sexp" [ "-cclib"; libtiff ]) +exception Pkg_Config_Resolution_Failed of string + +type pkg_config_result = { cflags : string list; libs : string list } +type process_result = { exit_code : int; stdout : string; stderr : string } + +let run_process ~env prog args = + let stdout_fn = Filename.temp_file "stdout" ".tmp" in + let stderr_fn = Filename.temp_file "stderr" ".tmp" in + let openfile f = + Unix.openfile f [ Unix.O_WRONLY; Unix.O_CREAT; Unix.O_TRUNC ] 0o666 + in + let stdout = openfile stdout_fn in + let stderr = openfile stderr_fn in + let stdin, stdin_w = Unix.pipe () in + Unix.close stdin_w; + + let pid = + match env with + | [] -> + Unix.create_process prog + (Array.of_list (prog :: args)) + stdin stdout stderr + | _ -> + let env_array = Array.of_list env in + Unix.create_process_env prog + (Array.of_list (prog :: args)) + env_array stdin stdout stderr + in + + Unix.close stdin; + Unix.close stdout; + Unix.close stderr; + + let _, status = Unix.waitpid [] pid in + + let read_file filename = + try + let ic = open_in filename in + let n = in_channel_length ic in + let s = really_input_string ic n in + close_in ic; + s + with + | Sys_error msg -> Printf.sprintf "Error reading file %s: %s" filename msg + | End_of_file -> + Printf.sprintf "Unexpected end of file while reading %s" filename + in + + let stdout_content = read_file stdout_fn in + let stderr_content = read_file stderr_fn in + + Sys.remove stdout_fn; + Sys.remove stderr_fn; + + let exit_code = + match status with + | Unix.WEXITED code -> code + | Unix.WSIGNALED signal -> + raise + (Pkg_Config_Resolution_Failed + (Printf.sprintf "Process killed by signal %d" signal)) + | Unix.WSTOPPED signal -> + raise + (Pkg_Config_Resolution_Failed + (Printf.sprintf "Process stopped by signal %d" signal)) + in + + { exit_code; stdout = stdout_content; stderr = stderr_content } + +let run_pkg_config _c lib = + let pkg_config_path = Sys.getenv "PKG_CONFIG_PATH" in + Printf.printf "Use PKG_CONFIG_PATH: %s\n" pkg_config_path; + + let env = [ "PKG_CONFIG_PATH=" ^ pkg_config_path ] in + let c_flags_result = run_process ~env "pkg-config" [ "--cflags"; lib ] in + let libs_result = run_process ~env "pkg-config" [ "--libs"; lib ] in + + if c_flags_result.exit_code = 0 && libs_result.exit_code == 0 then + { + cflags = c_flags_result.stdout |> C.Flags.extract_blank_separated_words; + libs = libs_result.stdout |> C.Flags.extract_blank_separated_words; + } + else + let std_errors = + String.concat "\n" [ c_flags_result.stderr; libs_result.stderr ] + in + + raise (Pkg_Config_Resolution_Failed std_errors) + +let get_flags_from_env_or_run_pkg_conifg c ~env ~lib = + match (Sys.getenv_opt (env ^ "_CFLAGS"), Sys.getenv_opt (env ^ "_LIBS")) with + | Some cflags, Some lib -> + { + cflags = String.trim cflags |> C.Flags.extract_blank_separated_words; + libs = lib |> C.Flags.extract_blank_separated_words; + } + | None, None -> run_pkg_config c lib + | _ -> + let err = "Missing CFLAGS or LIB env vars for " ^ env in + raise (Pkg_Config_Resolution_Failed err) + +let c_flags_to_ocaml_opt_flags flags = + flags + |> List.filter_map (function + | opt when String.starts_with opt ~prefix:"-l" -> Some [ "-cclib"; opt ] + | _ -> None) + |> List.flatten + +let () = + C.main ~name:"odiff-c-lib-packae-resolver" (fun c -> + let png_config = + get_flags_from_env_or_run_pkg_conifg c ~env:"LIBPNG" + ~lib:"libspng_static" + in + let tiff_config = + get_flags_from_env_or_run_pkg_conifg c ~lib:"libtiff-4" ~env:"LIBTIFF" + in + let jpeg_config = + get_flags_from_env_or_run_pkg_conifg c ~lib:"libturbojpeg" + ~env:"LIBJPEG" + in + + C.Flags.write_sexp "png_c_flags.sexp" png_config.cflags; + C.Flags.write_sexp "png_c_library_flags.sexp" png_config.libs; + C.Flags.write_sexp "png_write_c_flags.sexp" png_config.cflags; + C.Flags.write_sexp "png_write_c_library_flags.sexp" png_config.libs; + C.Flags.write_sexp "png_c_flags.sexp" png_config.cflags; + C.Flags.write_sexp "jpg_c_flags.sexp" jpeg_config.cflags; + C.Flags.write_sexp "jpg_c_library_flags.sexp" jpeg_config.libs; + C.Flags.write_sexp "tiff_c_flags.sexp" tiff_config.cflags; + C.Flags.write_sexp "tiff_c_library_flags.sexp" tiff_config.libs; + + (* this are ocamlopt flags that need to link c libs to ocaml compiler *) + let png_ocamlopt_flags = png_config.libs |> c_flags_to_ocaml_opt_flags in + C.Flags.write_sexp "png_write_flags.sexp" png_ocamlopt_flags; + C.Flags.write_sexp "png_flags.sexp" png_ocamlopt_flags; + + jpeg_config.libs |> c_flags_to_ocaml_opt_flags + |> C.Flags.write_sexp "jpg_flags.sexp"; + tiff_config.libs |> c_flags_to_ocaml_opt_flags + |> C.Flags.write_sexp "tiff_flags.sexp") diff --git a/io/config/dune b/io/config/dune index bc2970ff..187bd5e1 100644 --- a/io/config/dune +++ b/io/config/dune @@ -1,5 +1,3 @@ (executable (name discover) - (ocamlc_flags str.cma) - (ocamlopt_flags str.cmxa) (libraries dune-configurator)) diff --git a/io/tiff/ReadTiff.c b/io/tiff/ReadTiff.c index 4c9b6460..58b60b52 100644 --- a/io/tiff/ReadTiff.c +++ b/io/tiff/ReadTiff.c @@ -1,13 +1,12 @@ #define CAML_NAME_SPACE - -#include - #include #include #include #include #include +#include +#ifndef _WIN32 #include CAMLprim value read_tiff_file_to_tuple(value file) { @@ -30,9 +29,11 @@ CAMLprim value read_tiff_file_to_tuple(value file) { int buffer_size = width * height; intnat dims[1] = {buffer_size}; - ba = caml_ba_alloc(CAML_BA_INT32 | CAML_BA_C_LAYOUT | CAML_BA_MANAGED, 1, NULL, dims); + ba = caml_ba_alloc(CAML_BA_INT32 | CAML_BA_C_LAYOUT | CAML_BA_MANAGED, 1, + NULL, dims); uint32_t *buffer = (uint32_t *)Caml_ba_data_val(ba); + if (!(TIFFReadRGBAImageOriented(image, width, height, buffer, ORIENTATION_TOPLEFT, 0))) { TIFFClose(image); @@ -48,3 +49,8 @@ CAMLprim value read_tiff_file_to_tuple(value file) { CAMLreturn(res); } +#else +CAMLprim value read_tiff_file_to_tuple(value file) { + caml_failwith("Tiff files are not supported on Windows platform"); +} +#endif diff --git a/npm_package/bin/odiff.exe b/npm_package/bin/odiff.exe new file mode 100755 index 00000000..3e889c09 --- /dev/null +++ b/npm_package/bin/odiff.exe @@ -0,0 +1,4 @@ +#!/usr/bin/env node + +console.error("odiff: seems like a binary executable for your OS wasn't linked. Please verify that postinstsall script run successfully") +process.exit(1); diff --git a/bin/node-bindings/odiff.d.ts b/npm_package/odiff.d.ts similarity index 100% rename from bin/node-bindings/odiff.d.ts rename to npm_package/odiff.d.ts diff --git a/bin/node-bindings/odiff.js b/npm_package/odiff.js similarity index 97% rename from bin/node-bindings/odiff.js rename to npm_package/odiff.js index 4efe3706..94cf137c 100644 --- a/bin/node-bindings/odiff.js +++ b/npm_package/odiff.js @@ -110,6 +110,8 @@ function parsePixelDiffStdout(stdout) { const CMD_BIN_HELPER_MSG = "Usage: odiff [OPTION]... [BASE] [COMPARING] [DIFF]\nTry `odiff --help' for more information.\n"; +const NO_FILE_ODIFF_ERROR_REGEX = /no\s+'([^']+)'\s+file\s+or\s+directory/; + async function compare(basePath, comparePath, diffOutput, options = {}) { return new Promise((resolve, reject) => { let producedStdout, producedStdError; @@ -148,7 +150,7 @@ async function compare(basePath, comparePath, diffOutput, options = {}) { ).replace(CMD_BIN_HELPER_MSG, ""); const noFileOrDirectoryMatches = originalErrorMessage.match( - /no\n\s*`(.*)'\sfile or\n\s*directory/ + NO_FILE_ODIFF_ERROR_REGEX ); if (options.noFailOnFsErrors && noFileOrDirectoryMatches?.[1]) { diff --git a/npm_package/package.json b/npm_package/package.json new file mode 100644 index 00000000..c2ee4be6 --- /dev/null +++ b/npm_package/package.json @@ -0,0 +1,22 @@ +{ + "name": "odiff-bin", + "version": "0.3.1-rc.3", + "author": "Dmitriy Kovalenko ", + "license": "MIT", + "description": "The fastest image difference tool in the world", + "scripts": { + "postinstall": "node ./post_install.js" + }, + "bin": { + "odiff": "bin/odiff.exe" + }, + "types": "odiff.d.ts", + "main": "odiff.js", + "keywords": [ + "visual-regression", + "pixelmatch", + "image", + "comparison", + "diff" + ] +} diff --git a/npm_package/post_install.js b/npm_package/post_install.js new file mode 100644 index 00000000..a6030981 --- /dev/null +++ b/npm_package/post_install.js @@ -0,0 +1,36 @@ +const fs = require('fs'); +const path = require('path'); +const os = require('os'); + +const binaries = { + 'linux-x64': 'odiff-linux-x64.exe', + 'darwin-arm64': 'odiff-macos-arm64.exe', + 'darwin-x64': 'odiff-macos-x64.exe', + 'win32-x64': 'odiff-windows-x64.exe', +}; + +const platform = os.platform(); +const arch = os.arch(); + +let binaryKey = `${platform}-${arch}`; +if (platform === 'win32' && arch === 'x64') { + binaryKey = 'win32-x64'; +} + +const binaryFile = binaries[binaryKey]; + +if (!binaryFile) { + console.error(`odiff: Sorry your platform or architecture is not supported. Here is a list of supported binaries: ${Object.keys(binaries).join(', ')}`); + process.exit(1); +} + +const sourcePath = path.join(__dirname, 'raw_binaries', binaryFile); +const destPath = path.join(__dirname, 'bin', 'odiff.exe'); + +try { + fs.copyFileSync(sourcePath, destPath); + fs.chmodSync(destPath, 0o755); +} catch (err) { + console.error(`odiff: failed to copy and link the binary file: ${err}`); + process.exit(1); +} diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/files/ocamlbuild-0.14.2.patch b/npm_package/raw_binaries/.gitkeep similarity index 100% rename from esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.3_opam_override/files/ocamlbuild-0.14.2.patch rename to npm_package/raw_binaries/.gitkeep diff --git a/odiff-core.opam b/odiff-core.opam index 1abe43d4..f5cd5069 100644 --- a/odiff-core.opam +++ b/odiff-core.opam @@ -8,8 +8,7 @@ homepage: "https://github.com/dmtrKovalenko/odiff" bug-reports: "https://github.com/dmtrKovalenko/odiff/issues" depends: [ "dune" {>= "2.8"} - "reason" {>= "3.6.0" & < "4.0.0"} - "ocaml" {>= "4.10.0" & < "5.0.0"} + "ocaml" {= "5.2.0"} "odoc" {with-doc} ] build: [ diff --git a/odiff-io.opam b/odiff-io.opam index 79d1d3d0..477b0ad0 100644 --- a/odiff-io.opam +++ b/odiff-io.opam @@ -8,10 +8,9 @@ homepage: "https://github.com/dmtrKovalenko/odiff" bug-reports: "https://github.com/dmtrKovalenko/odiff/issues" depends: [ "dune" {>= "2.8"} - "conf-libpng" "odiff-core" - "reason" {>= "3.6.0" & < "4.0.0"} - "ocaml" {>= "4.10.0" & < "4.11.0"} + "ocaml" {= "5.2.0"} + "dune-configurator" {>= "3.16.0"} "odoc" {with-doc} ] build: [ diff --git a/odiff-tests.opam b/odiff-tests.opam new file mode 100644 index 00000000..693b2b65 --- /dev/null +++ b/odiff-tests.opam @@ -0,0 +1,29 @@ +# This file is generated by dune, edit dune-project instead +opam-version: "2.0" +synopsis: "Internal package for integration tests of odiff" +maintainer: ["https://dmtrkovalenko.dev" "dmtr.kovalenko@outlook.com"] +authors: ["Dmitriy Kovalenko"] +license: "MIT" +homepage: "https://github.com/dmtrKovalenko/odiff" +bug-reports: "https://github.com/dmtrKovalenko/odiff/issues" +depends: [ + "dune" {>= "2.8"} + "alcotest" {= "1.8.0"} + "odiff-core" + "odoc" {with-doc} +] +build: [ + ["dune" "subst"] {dev} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] +] +dev-repo: "git+https://github.com/dmtrKovalenko/odiff.git" diff --git a/odiff.opam b/odiff.opam index 1de5daad..68571e75 100644 --- a/odiff.opam +++ b/odiff.opam @@ -1,5 +1,7 @@ # This file is generated by dune, edit dune-project instead opam-version: "2.0" +version: "0.3.1-rc.3" +synopsis: "CLI for comparing images pixel-by-pixel" maintainer: ["https://dmtrkovalenko.dev" "dmtr.kovalenko@outlook.com"] authors: ["Dmitriy Kovalenko"] license: "MIT" @@ -9,6 +11,8 @@ depends: [ "dune" {>= "2.8"} "odiff-core" "odiff-io" + "dune-build-info" {>= "3.16.0"} + "cmdliner" {= "1.3.0"} "odoc" {with-doc} ] build: [ diff --git a/out.png b/out.png new file mode 100644 index 00000000..5ec21163 Binary files /dev/null and b/out.png differ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..1cbdad44 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3785 @@ +{ + "name": "odiff-bin", + "version": "0.3.1-rc.3", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "odiff-bin", + "version": "0.3.1-rc.3", + "license": "MIT", + "devDependencies": { + "ava": "^6.1.3" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vercel/nft": { + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.5.tgz", + "integrity": "sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==", + "dev": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.5", + "@rollup/pluginutils": "^4.0.0", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.2", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.2", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true + }, + "node_modules/ava": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/ava/-/ava-6.1.3.tgz", + "integrity": "sha512-tkKbpF1pIiC+q09wNU9OfyTDYZa8yuWvU2up3+lFJ3lr1RmnYh2GBpPwzYUEB0wvTPIUysGjcZLNZr7STDviRA==", + "dev": true, + "dependencies": { + "@vercel/nft": "^0.26.2", + "acorn": "^8.11.3", + "acorn-walk": "^8.3.2", + "ansi-styles": "^6.2.1", + "arrgv": "^1.0.2", + "arrify": "^3.0.0", + "callsites": "^4.1.0", + "cbor": "^9.0.1", + "chalk": "^5.3.0", + "chunkd": "^2.0.1", + "ci-info": "^4.0.0", + "ci-parallel-vars": "^1.0.1", + "cli-truncate": "^4.0.0", + "code-excerpt": "^4.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.4", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.4", + "emittery": "^1.0.1", + "figures": "^6.0.1", + "globby": "^14.0.0", + "ignore-by-default": "^2.1.0", + "indent-string": "^5.0.0", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "memoize": "^10.0.0", + "ms": "^2.1.3", + "p-map": "^7.0.1", + "package-config": "^5.0.0", + "picomatch": "^3.0.1", + "plur": "^5.1.0", + "pretty-ms": "^9.0.0", + "resolve-cwd": "^3.0.0", + "stack-utils": "^2.0.6", + "strip-ansi": "^7.1.0", + "supertap": "^3.0.1", + "temp-dir": "^3.0.0", + "write-file-atomic": "^5.0.1", + "yargs": "^17.7.2" + }, + "bin": { + "ava": "entrypoints/cli.mjs" + }, + "engines": { + "node": "^18.18 || ^20.8 || ^21 || ^22" + }, + "peerDependencies": { + "@ava/typescript": "*" + }, + "peerDependenciesMeta": { + "@ava/typescript": { + "optional": true + } + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz", + "integrity": "sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "node_modules/ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "dev": true, + "dependencies": { + "convert-to-spaces": "^2.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/emittery": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", + "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz", + "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", + "dev": true, + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/load-json-file": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", + "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz", + "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/memoize": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.0.0.tgz", + "integrity": "sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==", + "dev": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/memoize?sponsor=1" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "dev": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-map": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-config": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/package-config/-/package-config-5.0.0.tgz", + "integrity": "sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==", + "dev": true, + "dependencies": { + "find-up-simple": "^1.0.0", + "load-json-file": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-ms": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "dev": true, + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/supertap": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz", + "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "js-yaml": "^3.14.1", + "serialize-error": "^7.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + }, + "dependencies": { + "@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dev": true, + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + } + } + }, + "@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true + }, + "@vercel/nft": { + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.5.tgz", + "integrity": "sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==", + "dev": true, + "requires": { + "@mapbox/node-pre-gyp": "^1.0.5", + "@rollup/pluginutils": "^4.0.0", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.2", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.2", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true + }, + "acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "requires": { + "acorn": "^8.11.0" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true + }, + "arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true + }, + "async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true + }, + "ava": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/ava/-/ava-6.1.3.tgz", + "integrity": "sha512-tkKbpF1pIiC+q09wNU9OfyTDYZa8yuWvU2up3+lFJ3lr1RmnYh2GBpPwzYUEB0wvTPIUysGjcZLNZr7STDviRA==", + "dev": true, + "requires": { + "@vercel/nft": "^0.26.2", + "acorn": "^8.11.3", + "acorn-walk": "^8.3.2", + "ansi-styles": "^6.2.1", + "arrgv": "^1.0.2", + "arrify": "^3.0.0", + "callsites": "^4.1.0", + "cbor": "^9.0.1", + "chalk": "^5.3.0", + "chunkd": "^2.0.1", + "ci-info": "^4.0.0", + "ci-parallel-vars": "^1.0.1", + "cli-truncate": "^4.0.0", + "code-excerpt": "^4.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.4", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.4", + "emittery": "^1.0.1", + "figures": "^6.0.1", + "globby": "^14.0.0", + "ignore-by-default": "^2.1.0", + "indent-string": "^5.0.0", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "memoize": "^10.0.0", + "ms": "^2.1.3", + "p-map": "^7.0.1", + "package-config": "^5.0.0", + "picomatch": "^3.0.1", + "plur": "^5.1.0", + "pretty-ms": "^9.0.0", + "resolve-cwd": "^3.0.0", + "stack-utils": "^2.0.6", + "strip-ansi": "^7.1.0", + "supertap": "^3.0.1", + "temp-dir": "^3.0.0", + "write-file-atomic": "^5.0.1", + "yargs": "^17.7.2" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "callsites": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz", + "integrity": "sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==", + "dev": true + }, + "cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "requires": { + "nofilter": "^3.1.0" + } + }, + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "dev": true + }, + "ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, + "cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "dev": true, + "requires": { + "convert-to-spaces": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, + "debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true + }, + "emittery": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", + "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==", + "dev": true + }, + "emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "requires": { + "is-unicode-supported": "^2.0.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "dev": true + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "requires": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true + }, + "ignore-by-default": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.1.0.tgz", + "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "is-unicode-supported": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "dev": true + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "load-json-file": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", + "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-5.0.0.tgz", + "integrity": "sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0" + } + }, + "md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "memoize": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.0.0.tgz", + "integrity": "sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==", + "dev": true, + "requires": { + "mimic-function": "^5.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "dependencies": { + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + } + } + }, + "mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "dev": true + }, + "nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-map": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "dev": true + }, + "package-config": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/package-config/-/package-config-5.0.0.tgz", + "integrity": "sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==", + "dev": true, + "requires": { + "find-up-simple": "^1.0.0", + "load-json-file": "^7.0.1" + } + }, + "parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true + }, + "picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true + }, + "plur": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", + "dev": true, + "requires": { + "irregular-plurals": "^3.3.0" + } + }, + "pretty-ms": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "dev": true, + "requires": { + "parse-ms": "^4.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "requires": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "supertap": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz", + "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "js-yaml": "^3.14.1", + "serialize-error": "^7.0.1", + "strip-ansi": "^7.0.1" + } + }, + "tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true + }, + "time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + }, + "unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + } + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 8b76a999..db98dcd7 100644 --- a/package.json +++ b/package.json @@ -1,76 +1,20 @@ { - "name": "odiff", - "version": "3.0.1", - "description": "The fastest image difference tool.", + "name": "odiff-bin", + "version": "0.3.1-rc.3", + "author": "Dmitriy Kovalenko ", "license": "MIT", - "esy": { - "build": "dune build --release --only-packages odiff,odiff-io,odiff-core", - "buildDev": "refmterr dune build --promote-install-files --root . --only-packages odiff,odiff-io,odiff-core", - "release": { - "bin": { - "odiff": "ODiffBin" - }, - "rewritePrefix": true, - "includePackages": [ - "odiff" - ] - }, - "buildEnv": { - "ODOC_SYNTAX": "re" - } - }, + "description": "The fastest image difference tool in the world", "scripts": { - "run": "esy x ODiffBin", - "test": "esy x RunTests.exe", - "test-js": "esy ava", - "test-ts": "esy tsc --noEmit test/node-bindings.test.ts", - "format": "esy dune build @fmt --auto-promote", - "doc": "esy dune build @doc", - "post-release": "node .ci/pipelines-release.js", - "process:readme": "esy node scripts/process-readme.js" - }, - "dependencies": { - "@opam/cmdliner": "1.0.4", - "@opam/dune": "< 4.0.0", - "@opam/dune-configurator": "< 4.0.0", - "@opam/reason": "3.9.0", - "@reason-native/console": "*", - "@reason-native/pastel": "*", - "@reason-native/rely": "*", - "esy-libjpeg": "*", - "esy-libspng": "*", - "esy-libtiff": "*", - "esy-zlib": "*", - "ocaml": "4.14.x" + "test": "ava" }, + "keywords": [ + "visual-regression", + "pixelmatch", + "image", + "comparison", + "diff" + ], "devDependencies": { - "ava": "^3.15.0", - "typescript": "^4.3.5", - "@opam/merlin": "*", - "@opam/ocaml-lsp-server": "*", - "refmterr": "*" - }, - "resolutions": { - "esy-cmake": "ManasJayanth/esy-cmake:esy.json#dcc7909f7ea0604f1d644b14a3e83d7ebaf64272", - "@opam/reason": "3.9.0", - "@reason-native/file-context-printer": "reasonml/reason-native:file-context-printer.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "@reason-native/cli": "reasonml/reason-native:cli.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "@reason-native/rely": "reasonml/reason-native:rely.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "@reason-native/pastel": "reasonml/reason-native:pastel.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "@reason-native/console": "reasonml/reason-native:console.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "refmterr": "reasonml/reason-native:refmterr.json#a0ddab6ab25237961e32d8732b0a222ec2372d4a", - "esy-libspng": "ManasJayanth/esy-libspng:esy.json#255c1531255d71d59a66b57af6d893a16c75dc0e", - "esy-libjpeg": "eWert-Online/esy-libjpeg#76b287add2732e191a2c4a1c14a34bab63c4f74d", - "esy-libtiff": "esy-packages/esy-libtiff#83b1f5c8f76ad42acb5c008f537b5b3f0902c066", - "esy-zlib": "esy-packages/esy-zlib#65faba12e4aed539d8fd2444fede2f1136389f6f" - }, - "repository": { - "type": "git", - "url": "https://github.com/dmtrKovalenko/odiff" - }, - "author": { - "email": "dmtr.kovalenko@outlook.com", - "name": "Dmitriy Kovalenko", - "url": "https://dmtrkovalenko.dev" + "ava": "^6.1.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..00de1267 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1316 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + ava: + specifier: ^6.1.3 + version: 6.1.3 + +packages: + + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@vercel/nft@0.26.5': + resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} + engines: {node: '>=16'} + hasBin: true + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + + arrgv@1.0.2: + resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==} + engines: {node: '>=8.0.0'} + + arrify@3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + ava@6.1.3: + resolution: {integrity: sha512-tkKbpF1pIiC+q09wNU9OfyTDYZa8yuWvU2up3+lFJ3lr1RmnYh2GBpPwzYUEB0wvTPIUysGjcZLNZr7STDviRA==} + engines: {node: ^18.18 || ^20.8 || ^21 || ^22} + hasBin: true + peerDependencies: + '@ava/typescript': '*' + peerDependenciesMeta: + '@ava/typescript': + optional: true + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + callsites@4.2.0: + resolution: {integrity: sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==} + engines: {node: '>=12.20'} + + cbor@9.0.2: + resolution: {integrity: sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==} + engines: {node: '>=16'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chunkd@2.0.1: + resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + ci-parallel-vars@1.0.1: + resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concordance@5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} + + date-time@3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} + engines: {node: '>=6'} + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + emittery@1.0.3: + resolution: {integrity: sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==} + engines: {node: '>=14.16'} + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + ignore-by-default@2.1.0: + resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==} + engines: {node: '>=10 <11 || >=12 <13 || >=14'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + irregular-plurals@3.5.0: + resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + matcher@5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + + memoize@10.0.0: + resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==} + engines: {node: '>=18'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + + nofilter@3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-map@7.0.2: + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + engines: {node: '>=18'} + + package-config@5.0.0: + resolution: {integrity: sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==} + engines: {node: '>=18'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + + plur@5.1.0: + resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + pretty-ms@9.1.0: + resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} + engines: {node: '>=18'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + supertap@3.0.1: + resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + time-zone@1.0.0: + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + well-known-symbols@2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} + engines: {node: '>=6'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + +snapshots: + + '@mapbox/node-pre-gyp@1.0.11': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + '@sindresorhus/merge-streams@2.3.0': {} + + '@vercel/nft@0.26.5': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + node-gyp-build: 4.8.1 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + abbrev@1.1.1: {} + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + aproba@2.0.0: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + array-find-index@1.0.2: {} + + arrgv@1.0.2: {} + + arrify@3.0.0: {} + + async-sema@3.1.1: {} + + ava@6.1.3: + dependencies: + '@vercel/nft': 0.26.5 + acorn: 8.12.1 + acorn-walk: 8.3.3 + ansi-styles: 6.2.1 + arrgv: 1.0.2 + arrify: 3.0.0 + callsites: 4.2.0 + cbor: 9.0.2 + chalk: 5.3.0 + chunkd: 2.0.1 + ci-info: 4.0.0 + ci-parallel-vars: 1.0.1 + cli-truncate: 4.0.0 + code-excerpt: 4.0.0 + common-path-prefix: 3.0.0 + concordance: 5.0.4 + currently-unhandled: 0.4.1 + debug: 4.3.6 + emittery: 1.0.3 + figures: 6.1.0 + globby: 14.0.2 + ignore-by-default: 2.1.0 + indent-string: 5.0.0 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + matcher: 5.0.0 + memoize: 10.0.0 + ms: 2.1.3 + p-map: 7.0.2 + package-config: 5.0.0 + picomatch: 3.0.1 + plur: 5.1.0 + pretty-ms: 9.1.0 + resolve-cwd: 3.0.0 + stack-utils: 2.0.6 + strip-ansi: 7.1.0 + supertap: 3.0.1 + temp-dir: 3.0.0 + write-file-atomic: 5.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + - supports-color + + balanced-match@1.0.2: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + blueimp-md5@2.19.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + callsites@4.2.0: {} + + cbor@9.0.2: + dependencies: + nofilter: 3.1.0 + + chalk@5.3.0: {} + + chownr@2.0.0: {} + + chunkd@2.0.1: {} + + ci-info@4.0.0: {} + + ci-parallel-vars@1.0.1: {} + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + code-excerpt@4.0.0: + dependencies: + convert-to-spaces: 2.0.1 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-support@1.1.3: {} + + common-path-prefix@3.0.0: {} + + concat-map@0.0.1: {} + + concordance@5.0.4: + dependencies: + date-time: 3.1.0 + esutils: 2.0.3 + fast-diff: 1.3.0 + js-string-escape: 1.0.1 + lodash: 4.17.21 + md5-hex: 3.0.1 + semver: 7.6.3 + well-known-symbols: 2.0.0 + + console-control-strings@1.1.0: {} + + convert-to-spaces@2.0.1: {} + + currently-unhandled@0.4.1: + dependencies: + array-find-index: 1.0.2 + + date-time@3.1.0: + dependencies: + time-zone: 1.0.0 + + debug@4.3.6: + dependencies: + ms: 2.1.2 + + delegates@1.0.0: {} + + detect-libc@2.0.3: {} + + emittery@1.0.3: {} + + emoji-regex@10.3.0: {} + + emoji-regex@8.0.0: {} + + escalade@3.1.2: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@5.0.0: {} + + esprima@4.0.1: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.0.0 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + graceful-fs@4.2.11: {} + + has-unicode@2.0.1: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + ignore-by-default@2.1.0: {} + + ignore@5.3.2: {} + + imurmurhash@0.1.4: {} + + indent-string@5.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + irregular-plurals@3.5.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-plain-object@5.0.0: {} + + is-promise@4.0.0: {} + + is-unicode-supported@2.0.0: {} + + js-string-escape@1.0.1: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + load-json-file@7.0.1: {} + + lodash@4.17.21: {} + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + matcher@5.0.0: + dependencies: + escape-string-regexp: 5.0.0 + + md5-hex@3.0.1: + dependencies: + blueimp-md5: 2.19.0 + + memoize@10.0.0: + dependencies: + mimic-function: 5.0.1 + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mimic-function@5.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.1: {} + + nofilter@3.1.0: {} + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + + object-assign@4.1.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + p-map@7.0.2: {} + + package-config@5.0.0: + dependencies: + find-up-simple: 1.0.0 + load-json-file: 7.0.1 + + parse-ms@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-type@5.0.0: {} + + picomatch@2.3.1: {} + + picomatch@3.0.1: {} + + plur@5.1.0: + dependencies: + irregular-plurals: 3.5.0 + + pretty-ms@9.1.0: + dependencies: + parse-ms: 4.0.0 + + queue-microtask@1.2.3: {} + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + require-directory@2.1.1: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@5.0.0: {} + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.2.1: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + + set-blocking@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@5.1.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + sprintf-js@1.0.3: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + supertap@3.0.1: + dependencies: + indent-string: 5.0.0 + js-yaml: 3.14.1 + serialize-error: 7.0.1 + strip-ansi: 7.1.0 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + temp-dir@3.0.0: {} + + time-zone@1.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@0.0.3: {} + + type-fest@0.13.1: {} + + unicorn-magic@0.1.0: {} + + util-deprecate@1.0.2: {} + + webidl-conversions@3.0.1: {} + + well-known-symbols@2.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/release.sh b/release.sh new file mode 100644 index 00000000..a2f7bdb1 --- /dev/null +++ b/release.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +set -eou pipefail + +VERSION="$1" +DRY_RUN=false + +for arg in "$@" +do + if [ "$arg" = "--dry-run" ]; then + DRY_RUN=true + break + fi +done + +if ! git diff --quiet; then + echo "Error: There are unstaged changes in the repository." + exit 1 +fi + +sed -i '' "s/(version [^)]*)/(version $VERSION)/g" dune-project +dune build + +sed -i '' "s/\"version\": \"[^\"]*\"/\"version\": \"$VERSION\"/g" package.json +npm install + +sed -i '' "s/\"version\": \"[^\"]*\"/\"version\": \"$VERSION\"/g" npm_package/package.json + +if [ "$DRY_RUN" == true ]; then + echo "Dry run, not committing or tagging" +else + git add --all + git commit -m "chore(release): v$VERSION" + git tag "v$VERSION" + git push origin "v$VERSION" + git push +fi diff --git a/test/RunTests.ml b/test/RunTests.ml deleted file mode 100644 index 70c218cc..00000000 --- a/test/RunTests.ml +++ /dev/null @@ -1 +0,0 @@ -OdiffTests.TestFramework.cli () diff --git a/test/TestFramework.ml b/test/TestFramework.ml deleted file mode 100644 index 42715b50..00000000 --- a/test/TestFramework.ml +++ /dev/null @@ -1,5 +0,0 @@ -include Rely.Make (struct - let config = - Rely.TestFrameworkConfig.initialize - { snapshotDir = "test/__snapshots__"; projectDir = "." } -end) diff --git a/test/Test_Core.ml b/test/Test_Core.ml index d8c4dba1..127993bb 100644 --- a/test/Test_Core.ml +++ b/test/Test_Core.ml @@ -1,132 +1,107 @@ -open TestFramework -open ODiffIO +open Alcotest module PNG_Diff = Odiff.Diff.MakeDiff (Png.IO) (Png.IO) -let _ = - describe "CORE: Antialiasing" (fun { test; _ } -> - let open Png.IO in - test "does not count anti-aliased pixels as different" - (fun { expect; _ } -> - let img1 = loadImage "test/test-images/aa/antialiasing-on.png" in - let img2 = loadImage "test/test-images/aa/antialiasing-off.png" in - let _, diffPixels, diffPercentage, _ = - PNG_Diff.compare img1 img2 ~outputDiffMask:false ~antialiasing:true - () - in - (expect.int diffPixels).toBe 46; - (expect.float diffPercentage).toBeCloseTo 0.115); - test "tests different sized AA images" (fun { expect; _ } -> - let img1 = loadImage "test/test-images/aa/antialiasing-on.png" in - let img2 = - loadImage "test/test-images/aa/antialiasing-off-small.png" - in - let _, diffPixels, diffPercentage, _ = - PNG_Diff.compare img1 img2 ~outputDiffMask:true ~antialiasing:true - () - in - (expect.int diffPixels).toBe 417; - (expect.float diffPercentage).toBeCloseTo 1.04)) +let test_antialiasing () = + Sys.getcwd () |> print_endline; + let img1 = Png.IO.loadImage "test-images/aa/antialiasing-on.png" in + let img2 = Png.IO.loadImage "test-images/aa/antialiasing-off.png" in + let _, diffPixels, diffPercentage, _ = + PNG_Diff.compare img1 img2 ~outputDiffMask:false ~antialiasing:true () + in + check int "diffPixels" 46 diffPixels; + check (float 0.001) "diffPercentage" 0.115 diffPercentage -let _ = - describe "CORE: Threshold" (fun { test; _ } -> - test "uses provided threshold" (fun { expect; _ } -> - let img1 = Png.IO.loadImage "test/test-images/png/orange.png" in - let img2 = - Png.IO.loadImage "test/test-images/png/orange_changed.png" - in - let _, diffPixels, diffPercentage, _ = - PNG_Diff.compare img1 img2 ~threshold:0.5 () - in - (expect.int diffPixels).toBe 25; - (expect.float diffPercentage).toBeCloseTo 0.02)) +let test_different_sized_aa_images () = + let img1 = Png.IO.loadImage "test-images/aa/antialiasing-on.png" in + let img2 = + Png.IO.loadImage "test-images/aa/antialiasing-off-small.png" + in + let _, diffPixels, diffPercentage, _ = + PNG_Diff.compare img1 img2 ~outputDiffMask:true ~antialiasing:true () + in + check int "diffPixels" 417 diffPixels; + check (float 0.01) "diffPercentage" 1.04 diffPercentage -let _ = - describe "CORE: Ignore Regions" (fun { test; _ } -> - test "uses provided irgnore regions" (fun { expect; _ } -> - let img1 = Png.IO.loadImage "test/test-images/png/orange.png" in - let img2 = - Png.IO.loadImage "test/test-images/png/orange_changed.png" - in - let _diffOutput, diffPixels, diffPercentage, _ = - PNG_Diff.compare img1 img2 - ~ignoreRegions: - [ ((150, 30), (310, 105)); ((20, 175), (105, 200)) ] - () - in - (expect.int diffPixels).toBe 0; - (expect.float diffPercentage).toBeCloseTo 0.0)) +let test_threshold () = + let img1 = Png.IO.loadImage "test-images/png/orange.png" in + let img2 = Png.IO.loadImage "test-images/png/orange_changed.png" in + let _, diffPixels, diffPercentage, _ = + PNG_Diff.compare img1 img2 ~threshold:0.5 () + in + check int "diffPixels" 25 diffPixels; + check (float 0.001) "diffPercentage" 0.02 diffPercentage -let _ = - describe "CORE: Diff Color" (fun { test; _ } -> - test "creates diff output image with custom green diff color" - (fun { expect; _ } -> - let img1 = Png.IO.loadImage "test/test-images/png/orange.png" in - let img2 = - Png.IO.loadImage "test/test-images/png/orange_changed.png" - in - let diffOutput, _, _, _ = - PNG_Diff.compare img1 img2 - ~diffPixel: - (Int32.of_int 4278255360 (*int32 representation of #00ff00*)) - () - in - let originalDiff = - Png.IO.loadImage "test/test-images/png/orange_diff_green.png" - in - let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = - PNG_Diff.compare originalDiff diffOutput () - in - if diffOfDiffPixels > 0 then ( - Png.IO.saveImage diffOutput - "test/test-images/png/diff-output-green.png"; - Png.IO.saveImage diffMaskOfDiff - "test/test-images/png/diff-of-diff-green.png"); - (expect.int diffOfDiffPixels).toBe 0; - (expect.float diffOfDiffPercentage).toBeCloseTo 0.0)) +let test_ignore_regions () = + let img1 = Png.IO.loadImage "test-images/png/orange.png" in + let img2 = Png.IO.loadImage "test-images/png/orange_changed.png" in + let _diffOutput, diffPixels, diffPercentage, _ = + PNG_Diff.compare img1 img2 + ~ignoreRegions:[ ((150, 30), (310, 105)); ((20, 175), (105, 200)) ] + () + in + check int "diffPixels" 0 diffPixels; + check (float 0.001) "diffPercentage" 0.0 diffPercentage -let _ = - describe "CORE: blendSemiTransparentColor" (fun { test; _ } -> - test "blend 255. alpha" (fun { expect; _ } -> - let r, g, b, a = - Odiff.ColorDelta.blendSemiTransparentColor (0., 128., 255., 255.) - in - (expect.float r).toBeCloseTo 0.; - (expect.float g).toBeCloseTo 128.; - (expect.float b).toBeCloseTo 255.; - (expect.float a).toBeCloseTo 1.); +let test_diff_color () = + let img1 = Png.IO.loadImage "test-images/png/orange.png" in + let img2 = Png.IO.loadImage "test-images/png/orange_changed.png" in + let diffOutput, _, _, _ = + PNG_Diff.compare img1 img2 + ~diffPixel:(Int32.of_int 4278255360 (*int32 representation of #00ff00*)) + () + in + let originalDiff = + Png.IO.loadImage "test-images/png/orange_diff_green.png" + in + let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = + PNG_Diff.compare originalDiff diffOutput () + in + if diffOfDiffPixels > 0 then ( + Png.IO.saveImage diffOutput "test-images/png/diff-output-green.png"; + Png.IO.saveImage diffMaskOfDiff + "test-images/png/diff-of-diff-green.png"); + check int "diffOfDiffPixels" 0 diffOfDiffPixels; + check (float 0.001) "diffOfDiffPercentage" 0.0 diffOfDiffPercentage - test "blend 0. alpha" (fun { expect; _ } -> - let r, g, b, a = - Odiff.ColorDelta.blendSemiTransparentColor (0., 128., 255., 0.) - in - (expect.float r).toBeCloseTo 255.; - (expect.float g).toBeCloseTo 255.; - (expect.float b).toBeCloseTo 255.; - (expect.float a).toBeCloseTo 0.); +let test_blend_semi_transparent_color () = + let test_blend r g b a expected_r expected_g expected_b expected_a = + let r', g', b', a' = + Odiff.ColorDelta.blendSemiTransparentColor (r, g, b, a) + in + check (float 0.01) "r" expected_r r'; + check (float 0.01) "g" expected_g g'; + check (float 0.01) "b" expected_b b'; + check (float 0.01) "a" expected_a a' + in + test_blend 0. 128. 255. 255. 0. 128. 255. 1.; + test_blend 0. 128. 255. 0. 255. 255. 255. 0.; + test_blend 0. 128. 255. 5. 250. 252.51 255. 0.02; + test_blend 0. 128. 255. 51. 204. 229.6 255. 0.2; + test_blend 0. 128. 255. 128. 127. 191.25 255. 0.5 - test "blend 5. alpha" (fun { expect; _ } -> - let r, g, b, a = - Odiff.ColorDelta.blendSemiTransparentColor (0., 128., 255., 5.) - in - (expect.float r).toBeCloseTo 250.; - (expect.float g).toBeCloseTo 252.51; - (expect.float b).toBeCloseTo 255.; - (expect.float a).toBeCloseTo 0.02); - - test "blend 51. alpha" (fun { expect; _ } -> - let r, g, b, a = - Odiff.ColorDelta.blendSemiTransparentColor (0., 128., 255., 51.) - in - (expect.float r).toBeCloseTo 204.; - (expect.float g).toBeCloseTo 229.6; - (expect.float b).toBeCloseTo 255.; - (expect.float a).toBeCloseTo 0.2); - - test "blend 128. alpha" (fun { expect; _ } -> - let r, g, b, a = - Odiff.ColorDelta.blendSemiTransparentColor (0., 128., 255., 128.) - in - (expect.float r).toBeCloseTo 127.; - (expect.float g).toBeCloseTo 191.25; - (expect.float b).toBeCloseTo 255.; - (expect.float a).toBeCloseTo 0.5)) +let () = + run "CORE" + [ + ( "Antialiasing", + [ + test_case "does not count anti-aliased pixels as different" `Quick + test_antialiasing; + test_case "tests different sized AA images" `Quick + test_different_sized_aa_images; + ] ); + ( "Threshold", + [ test_case "uses provided threshold" `Quick test_threshold ] ); + ( "Ignore Regions", + [ test_case "uses provided ignore regions" `Quick test_ignore_regions ] + ); + ( "Diff Color", + [ + test_case "creates diff output image with custom green diff color" + `Quick test_diff_color; + ] ); + ( "blendSemiTransparentColor", + [ + test_case "blend semi-transparent colors" `Quick + test_blend_semi_transparent_color; + ] ); + ] diff --git a/test/Test_IO_BMP.ml b/test/Test_IO_BMP.ml index ce2bb67f..4d6f716b 100644 --- a/test/Test_IO_BMP.ml +++ b/test/Test_IO_BMP.ml @@ -1,42 +1,54 @@ -open TestFramework -open ODiffIO +open Alcotest + module Diff = Odiff.Diff.MakeDiff (Bmp.IO) (Bmp.IO) module Output_Diff = Odiff.Diff.MakeDiff (Png.IO) (Bmp.IO) -let _ = - describe "IO: BMP" (fun { test; _ } -> - test "finds difference between 2 images" (fun { expect; _ } -> - let img1 = Bmp.IO.loadImage "test/test-images/bmp/clouds.bmp" in - let img2 = Bmp.IO.loadImage "test/test-images/bmp/clouds-2.bmp" in - let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 () in - (expect.int diffPixels).toBe 191; - (expect.float diffPercentage).toBeCloseTo 0.076); - test "Diff of mask and no mask are equal" (fun { expect; _ } -> - let img1 = Bmp.IO.loadImage "test/test-images/bmp/clouds.bmp" in - let img2 = Bmp.IO.loadImage "test/test-images/bmp/clouds-2.bmp" in - let _, diffPixels, diffPercentage, _ = - Diff.compare img1 img2 ~outputDiffMask:false () - in - let img1 = Bmp.IO.loadImage "test/test-images/bmp/clouds.bmp" in - let img2 = Bmp.IO.loadImage "test/test-images/bmp/clouds-2.bmp" in - let _, diffPixelsMask, diffPercentageMask, _ = - Diff.compare img1 img2 ~outputDiffMask:true () - in - (expect.int diffPixels).toBe diffPixelsMask; - (expect.float diffPercentage).toBeCloseTo diffPercentageMask); - test "Creates correct diff output image" (fun { expect; _ } -> - let img1 = Bmp.IO.loadImage "test/test-images/bmp/clouds.bmp" in - let img2 = Bmp.IO.loadImage "test/test-images/bmp/clouds-2.bmp" in - let diffOutput, _, _, _ = Diff.compare img1 img2 () in - let originalDiff = - Png.IO.loadImage "test/test-images/bmp/clouds-diff.png" - in - let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = - Output_Diff.compare originalDiff diffOutput () - in - if diffOfDiffPixels > 0 then ( - Bmp.IO.saveImage diffOutput "test/test-images/bmp/_diff-output.png"; - Png.IO.saveImage diffMaskOfDiff - "test/test-images/bmp/_diff-of-diff.png"); - (expect.int diffOfDiffPixels).toBe 0; - (expect.float diffOfDiffPercentage).toBeCloseTo 0.0)) +let load_image path = + match Bmp.IO.loadImage path with + | exception ex -> fail (Printf.sprintf "Failed to load image: %s\nError: %s" path (Printexc.to_string ex)) + | img -> img + +let load_png_image path = + match Png.IO.loadImage path with + | exception ex -> fail (Printf.sprintf "Failed to load image: %s\nError: %s" path (Printexc.to_string ex)) + | img -> img + +let test_finds_difference_between_images () = + let img1 = load_image "test-images/bmp/clouds.bmp" in + let img2 = load_image "test-images/bmp/clouds-2.bmp" in + let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 () in + check int "diffPixels" 191 diffPixels; + check (float 0.001) "diffPercentage" 0.076 diffPercentage + +let test_diff_mask_no_mask_equal () = + let img1 = load_image "test-images/bmp/clouds.bmp" in + let img2 = load_image "test-images/bmp/clouds-2.bmp" in + let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 ~outputDiffMask:false () in + let img1 = load_image "test-images/bmp/clouds.bmp" in + let img2 = load_image "test-images/bmp/clouds-2.bmp" in + let _, diffPixelsMask, diffPercentageMask, _ = Diff.compare img1 img2 ~outputDiffMask:true () in + check int "diffPixels" diffPixels diffPixelsMask; + check (float 0.001) "diffPercentage" diffPercentage diffPercentageMask + +let test_creates_correct_diff_output_image () = + let img1 = load_image "test-images/bmp/clouds.bmp" in + let img2 = load_image "test-images/bmp/clouds-2.bmp" in + let diffOutput, _, _, _ = Diff.compare img1 img2 () in + let originalDiff = load_png_image "test-images/bmp/clouds-diff.png" in + let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = Output_Diff.compare originalDiff diffOutput () in + if diffOfDiffPixels > 0 then ( + Bmp.IO.saveImage diffOutput "test-images/bmp/_diff-output.png"; + Png.IO.saveImage diffMaskOfDiff "test-images/bmp/_diff-of-diff.png" + ); + check int "diffOfDiffPixels" 0 diffOfDiffPixels; + check (float 0.001) "diffOfDiffPercentage" 0.0 diffOfDiffPercentage + +let () = + run "IO" [ + "BMP", [ + test_case "finds difference between 2 images" `Quick test_finds_difference_between_images; + test_case "Diff of mask and no mask are equal" `Quick test_diff_mask_no_mask_equal; + test_case "Creates correct diff output image" `Quick test_creates_correct_diff_output_image; + ]; + ] + diff --git a/test/Test_IO_JPG.ml b/test/Test_IO_JPG.ml index a052a60c..e2fc6dc5 100644 --- a/test/Test_IO_JPG.ml +++ b/test/Test_IO_JPG.ml @@ -1,42 +1,68 @@ -open TestFramework -open ODiffIO +open Alcotest module Diff = Odiff.Diff.MakeDiff (Jpg.IO) (Jpg.IO) module Output_Diff = Odiff.Diff.MakeDiff (Png.IO) (Jpg.IO) -let _ = - describe "IO: JPG / JPEG" (fun { test; _ } -> - test "finds difference between 2 images" (fun { expect; _ } -> - let img1 = Jpg.IO.loadImage "test/test-images/jpg/tiger.jpg" in - let img2 = Jpg.IO.loadImage "test/test-images/jpg/tiger-2.jpg" in - let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 () in - (expect.int diffPixels).toBe 7586; - (expect.float diffPercentage).toBeCloseTo 1.14); - test "Diff of mask and no mask are equal" (fun { expect; _ } -> - let img1 = Jpg.IO.loadImage "test/test-images/jpg/tiger.jpg" in - let img2 = Jpg.IO.loadImage "test/test-images/jpg/tiger-2.jpg" in - let _, diffPixels, diffPercentage, _ = - Diff.compare img1 img2 ~outputDiffMask:false () - in - let img1 = Jpg.IO.loadImage "test/test-images/jpg/tiger.jpg" in - let img2 = Jpg.IO.loadImage "test/test-images/jpg/tiger-2.jpg" in - let _, diffPixelsMask, diffPercentageMask, _ = - Diff.compare img1 img2 ~outputDiffMask:true () - in - (expect.int diffPixels).toBe diffPixelsMask; - (expect.float diffPercentage).toBeCloseTo diffPercentageMask); - test "Creates correct diff output image" (fun { expect; _ } -> - let img1 = Jpg.IO.loadImage "test/test-images/jpg/tiger.jpg" in - let img2 = Jpg.IO.loadImage "test/test-images/jpg/tiger-2.jpg" in - let diffOutput, _, _, _ = Diff.compare img1 img2 () in - let originalDiff = - Png.IO.loadImage "test/test-images/jpg/tiger-diff.png" - in - let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = - Output_Diff.compare originalDiff diffOutput () - in - if diffOfDiffPixels > 0 then ( - Jpg.IO.saveImage diffOutput "test/test-images/jpg/_diff-output.png"; - Png.IO.saveImage diffMaskOfDiff - "test/test-images/jpg/_diff-of-diff.png"); - (expect.int diffOfDiffPixels).toBe 0; - (expect.float diffOfDiffPercentage).toBeCloseTo 0.0)) +let load_image path = + match Jpg.IO.loadImage path with + | exception ex -> + fail + (Printf.sprintf "Failed to load image: %s\nError: %s" path + (Printexc.to_string ex)) + | img -> img + +let load_png_image path = + match Png.IO.loadImage path with + | exception ex -> + fail + (Printf.sprintf "Failed to load image: %s\nError: %s" path + (Printexc.to_string ex)) + | img -> img + +let test_finds_difference_between_images () = + let img1 = load_image "test-images/jpg/tiger.jpg" in + let img2 = load_image "test-images/jpg/tiger-2.jpg" in + let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 () in + check int "diffPixels" 7789 diffPixels; + check (float 0.001) "diffPercentage" 1.1677 diffPercentage + +let test_diff_mask_no_mask_equal () = + let img1 = load_image "test-images/jpg/tiger.jpg" in + let img2 = load_image "test-images/jpg/tiger-2.jpg" in + let _, diffPixels, diffPercentage, _ = + Diff.compare img1 img2 ~outputDiffMask:false () + in + let img1 = load_image "test-images/jpg/tiger.jpg" in + let img2 = load_image "test-images/jpg/tiger-2.jpg" in + let _, diffPixelsMask, diffPercentageMask, _ = + Diff.compare img1 img2 ~outputDiffMask:true () + in + check int "diffPixels" diffPixels diffPixelsMask; + check (float 0.001) "diffPercentage" diffPercentage diffPercentageMask + +let test_creates_correct_diff_output_image () = + let img1 = load_image "test-images/jpg/tiger.jpg" in + let img2 = load_image "test-images/jpg/tiger-2.jpg" in + let diffOutput, _, _, _ = Diff.compare img1 img2 () in + let originalDiff = load_png_image "test-images/jpg/tiger-diff.png" in + let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = + Output_Diff.compare originalDiff diffOutput () + in + if diffOfDiffPixels > 0 then ( + Jpg.IO.saveImage diffOutput "test-images/jpg/_diff-output.png"; + Png.IO.saveImage diffMaskOfDiff "test-images/jpg/_diff-of-diff.png"); + check int "diffOfDiffPixels" 0 diffOfDiffPixels; + check (float 0.001) "diffOfDiffPercentage" 0.0 diffOfDiffPercentage + +let () = + run "IO" + [ + ( "JPG / JPEG", + [ + test_case "finds difference between 2 images" `Quick + test_finds_difference_between_images; + test_case "Diff of mask and no mask are equal" `Quick + test_diff_mask_no_mask_equal; + test_case "Creates correct diff output image" `Quick + test_creates_correct_diff_output_image; + ] ); + ] diff --git a/test/Test_IO_PNG.ml b/test/Test_IO_PNG.ml index aaf370ff..496321cd 100644 --- a/test/Test_IO_PNG.ml +++ b/test/Test_IO_PNG.ml @@ -1,48 +1,61 @@ -open TestFramework -open Png.IO -open ODiffIO +open Alcotest module Diff = Odiff.Diff.MakeDiff (Png.IO) (Png.IO) -let _ = - describe "IO: PNG" (fun { test; _ } -> - test "finds difference between 2 images" (fun { expect; _ } -> - let img1 = loadImage "test/test-images/png/orange.png" in - let img2 = loadImage "test/test-images/png/orange_changed.png" in - let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 () in - (expect.int diffPixels).toBe 1366; - (expect.float diffPercentage).toBeCloseTo 1.14); +let load_image path = + match Png.IO.loadImage path with + | exception ex -> + fail + (Printf.sprintf "Failed to load image: %s\nError: %s" path + (Printexc.to_string ex)) + | img -> img - test "Diff of mask and no mask are equal" (fun { expect; _ } -> - let img1 = loadImage "test/test-images/png/orange.png" in - let img2 = loadImage "test/test-images/png/orange_changed.png" in - let _, diffPixels, diffPercentage, _ = - Diff.compare img1 img2 ~outputDiffMask:false () - in - let img1 = loadImage "test/test-images/png/orange.png" in - let img2 = loadImage "test/test-images/png/orange_changed.png" in - let _, diffPixelsMask, diffPercentageMask, _ = - Diff.compare img1 img2 ~outputDiffMask:true () - in - (expect.int diffPixels).toBe diffPixelsMask; - (expect.float diffPercentage).toBeCloseTo diffPercentageMask); - - test "Creates correct diff output image" (fun { expect; _ } -> - let img1 = loadImage "test/test-images/png/orange.png" in - let img2 = loadImage "test/test-images/png/orange_changed.png" in - let diffOutput, _, _, _ = Diff.compare img1 img2 () in - let originalDiff = loadImage "test/test-images/png/orange_diff.png" in - let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = - Diff.compare originalDiff diffOutput () - in - if diffOfDiffPixels > 0 then ( - saveImage diffOutput "test/test-images/png/diff-output.png"; - saveImage diffMaskOfDiff "test/test-images/png/diff-of-diff.png"); - (expect.int diffOfDiffPixels).toBe 0; - (expect.float diffOfDiffPercentage).toBeCloseTo 0.0); - - test "Correctly handles different encodings of transparency" - (fun { expect; _ } -> - let img1 = loadImage "test/test-images/png/extreme-alpha.png" in - let img2 = loadImage "test/test-images/png/extreme-alpha-1.png" in - let _, diffPixels, _, _ = Diff.compare img1 img2 () in - (expect.int diffPixels).toBe 0)) +let () = + run "IO" + [ + ( "PNG", + [ + test_case "finds difference between 2 images" `Quick (fun () -> + let img1 = load_image "test-images/png/orange.png" in + let img2 = load_image "test-images/png/orange_changed.png" in + let _, diffPixels, diffPercentage, _ = + Diff.compare img1 img2 () + in + check int "diffPixels" 1366 diffPixels; + check (float 0.1) "diffPercentage" 1.14 diffPercentage); + test_case "Diff of mask and no mask are equal" `Quick (fun () -> + let img1 = load_image "test-images/png/orange.png" in + let img2 = load_image "test-images/png/orange_changed.png" in + let _, diffPixels, diffPercentage, _ = + Diff.compare img1 img2 ~outputDiffMask:false () + in + let img1 = load_image "test-images/png/orange.png" in + let img2 = load_image "test-images/png/orange_changed.png" in + let _, diffPixelsMask, diffPercentageMask, _ = + Diff.compare img1 img2 ~outputDiffMask:true () + in + check int "diffPixels" diffPixels diffPixelsMask; + check (float 0.001) "diffPercentage" diffPercentage + diffPercentageMask); + test_case "Creates correct diff output image" `Quick (fun () -> + let img1 = load_image "test-images/png/orange.png" in + let img2 = load_image "test-images/png/orange_changed.png" in + let diffOutput, _, _, _ = Diff.compare img1 img2 () in + let originalDiff = load_image "test-images/png/orange_diff.png" in + let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = + Diff.compare originalDiff diffOutput () + in + if diffOfDiffPixels > 0 then ( + Png.IO.saveImage diffOutput "test-images/png/diff-output.png"; + Png.IO.saveImage diffMaskOfDiff + "test-images/png/diff-of-diff.png"); + check int "diffOfDiffPixels" 0 diffOfDiffPixels; + check (float 0.001) "diffOfDiffPercentage" 0.0 + diffOfDiffPercentage); + test_case "Correctly handles different encodings of transparency" + `Quick (fun () -> + let img1 = load_image "test-images/png/extreme-alpha.png" in + let img2 = load_image "test-images/png/extreme-alpha-1.png" in + let _, diffPixels, _, _ = Diff.compare img1 img2 () in + check int "diffPixels" 0 diffPixels); + ] ); + ] diff --git a/test/Test_IO_TIFF.ml b/test/Test_IO_TIFF.ml index 1deb0b35..498d24f2 100644 --- a/test/Test_IO_TIFF.ml +++ b/test/Test_IO_TIFF.ml @@ -1,44 +1,70 @@ -open TestFramework -open ODiffIO +open Alcotest module Diff = Odiff.Diff.MakeDiff (Tiff.IO) (Tiff.IO) module Output_Diff = Odiff.Diff.MakeDiff (Png.IO) (Tiff.IO) -let _ = - describe "IO: TIFF" (fun { test; _ } -> - test "finds difference between 2 images" (fun { expect; _ } -> - let img1 = Tiff.IO.loadImage "test/test-images/tiff/laptops.tiff" in - let img2 = Tiff.IO.loadImage "test/test-images/tiff/laptops-2.tiff" in - let _, diffPixels, diffPercentage, _ = Diff.compare img1 img2 () in - (expect.int diffPixels).toBe 8569; - (expect.float diffPercentage).toBeCloseTo 3.79); +let load_tiff_image path = + match Tiff.IO.loadImage path with + | exception ex -> + fail + (Printf.sprintf "Failed to load image: %s\nError: %s" path + (Printexc.to_string ex)) + | img -> img - test "Diff of mask and no mask are equal" (fun { expect; _ } -> - let img1 = Tiff.IO.loadImage "test/test-images/tiff/laptops.tiff" in - let img2 = Tiff.IO.loadImage "test/test-images/tiff/laptops-2.tiff" in - let _, diffPixels, diffPercentage, _ = - Diff.compare img1 img2 ~outputDiffMask:false () - in - let img1 = Tiff.IO.loadImage "test/test-images/tiff/laptops.tiff" in - let img2 = Tiff.IO.loadImage "test/test-images/tiff/laptops-2.tiff" in - let _, diffPixelsMask, diffPercentageMask, _ = - Diff.compare img1 img2 ~outputDiffMask:true () - in - (expect.int diffPixels).toBe diffPixelsMask; - (expect.float diffPercentage).toBeCloseTo diffPercentageMask); - test "Creates correct diff output image" (fun { expect; _ } -> - let img1 = Tiff.IO.loadImage "test/test-images/tiff/laptops.tiff" in - let img2 = Tiff.IO.loadImage "test/test-images/tiff/laptops-2.tiff" in - let diffOutput, _, _, _ = Diff.compare img1 img2 () in - let originalDiff = - Png.IO.loadImage "test/test-images/tiff/laptops-diff.png" - in - let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = - Output_Diff.compare originalDiff diffOutput () - in - if diffOfDiffPixels > 0 then ( - Tiff.IO.saveImage diffOutput - "test/test-images/tiff/_diff-output.png"; - Png.IO.saveImage diffMaskOfDiff - "test/test-images/tiff/_diff-of-diff.png"); - (expect.int diffOfDiffPixels).toBe 0; - (expect.float diffOfDiffPercentage).toBeCloseTo 0.0)) +let load_png_image path = + match Png.IO.loadImage path with + | exception ex -> + fail + (Printf.sprintf "Failed to load image: %s\nError: %s" path + (Printexc.to_string ex)) + | img -> img + +let run_tiff_tests () = + run "IO" + [ + ( "TIFF", + [ + test_case "finds difference between 2 images" `Quick (fun () -> + let img1 = load_tiff_image "test-images/tiff/laptops.tiff" in + let img2 = load_tiff_image "test-images/tiff/laptops-2.tiff" in + let _, diffPixels, diffPercentage, _ = + Diff.compare img1 img2 () + in + check int "diffPixels" 8569 diffPixels; + check (float 0.01) "diffPercentage" 3.79 diffPercentage); + test_case "Diff of mask and no mask are equal" `Quick (fun () -> + let img1 = load_tiff_image "test-images/tiff/laptops.tiff" in + let img2 = load_tiff_image "test-images/tiff/laptops-2.tiff" in + let _, diffPixels, diffPercentage, _ = + Diff.compare img1 img2 ~outputDiffMask:false () + in + let img1 = load_tiff_image "test-images/tiff/laptops.tiff" in + let img2 = load_tiff_image "test-images/tiff/laptops-2.tiff" in + let _, diffPixelsMask, diffPercentageMask, _ = + Diff.compare img1 img2 ~outputDiffMask:true () + in + check int "diffPixels" diffPixels diffPixelsMask; + check (float 0.001) "diffPercentage" diffPercentage + diffPercentageMask); + test_case "Creates correct diff output image" `Quick (fun () -> + let img1 = load_tiff_image "test-images/tiff/laptops.tiff" in + let img2 = load_tiff_image "test-images/tiff/laptops-2.tiff" in + let diffOutput, _, _, _ = Diff.compare img1 img2 () in + let originalDiff = + load_png_image "test-images/tiff/laptops-diff.png" + in + let diffMaskOfDiff, diffOfDiffPixels, diffOfDiffPercentage, _ = + Output_Diff.compare originalDiff diffOutput () + in + if diffOfDiffPixels > 0 then ( + Tiff.IO.saveImage diffOutput "test-images/tiff/_diff-output.png"; + Png.IO.saveImage diffMaskOfDiff + "test-images/tiff/_diff-of-diff.png"); + check int "diffOfDiffPixels" 0 diffOfDiffPixels; + check (float 0.001) "diffOfDiffPercentage" 0.0 + diffOfDiffPercentage); + ] ); + ] + +let () = + if Sys.os_type == "Unix" then run_tiff_tests () + else print_endline "Skipping TIFF tests on Windows systems" diff --git a/test/dune b/test/dune index e60f682d..33776111 100644 --- a/test/dune +++ b/test/dune @@ -1,19 +1,5 @@ -(library - (name OdiffTests) - ; the linkall flag ensures that all of our tests are compiled and the - ; -g flag emits debugging information - (ocamlopt_flags -linkall -g) - ; you will want to depend on the library you are testing as well, however for - ; the purposes of this example we are only depending on the test runner itself - (libraries rely.lib odiff odiff-io) - (modules - (:standard \ RunTests))) - -(executable - ; the for the library is automatically detected because of the name, but we - ; need to explicitly specify the package here - (name RunTests) - (package odiff) - (public_name RunTests.exe) - (libraries OdiffTests) - (modules RunTests)) +(tests + (names Test_Core Test_IO_BMP Test_IO_JPG Test_IO_PNG Test_IO_TIFF) + (libraries alcotest odiff odiff-io) + (deps (glob_files test_images/*)) + ) diff --git a/test/node-binding.test.cjs b/test/node-binding.test.cjs index 81733445..86f5f725 100644 --- a/test/node-binding.test.cjs +++ b/test/node-binding.test.cjs @@ -1,14 +1,12 @@ const path = require("path"); const test = require("ava"); -const { compare } = require("../bin/node-bindings/odiff"); +const { compare } = require("../npm_package/odiff"); const IMAGES_PATH = path.resolve(__dirname, "..", "images"); const BINARY_PATH = path.resolve( __dirname, "..", - "_esy", - "default", - "build-release", + "_build", "default", "bin", "ODiffBin.exe" diff --git a/test/node-bindings.test.ts b/test/node-bindings.test.ts index 4aaa4c31..88f5d6d4 100644 --- a/test/node-bindings.test.ts +++ b/test/node-bindings.test.ts @@ -1,4 +1,4 @@ -import { compare } from "../bin/node-bindings/odiff"; +import { compare } from "../npm_package/odiff"; // allow no options compare("path1", "path2", "path3") diff --git a/test/test-images/jpg/tiger-diff.png b/test/test-images/jpg/tiger-diff.png index ea3ed4c2..47c026eb 100644 Binary files a/test/test-images/jpg/tiger-diff.png and b/test/test-images/jpg/tiger-diff.png differ diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 00000000..9407f7ef --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", + "builtin-baseline": "fe1cde61e971d53c9687cf9a46308f8f55da19fa", + "dependencies": ["libspng", "tiff", "libjpeg-turbo"] +}