commit cc996c6028a360ff4130ca8047e04f86992f735f Author: wehub-resource-sync Date: Mon Jul 13 12:33:44 2026 +0800 chore: import upstream snapshot with attribution diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/afraid-doors-occur.md b/.changeset/afraid-doors-occur.md new file mode 100644 index 0000000..ed98ddc --- /dev/null +++ b/.changeset/afraid-doors-occur.md @@ -0,0 +1,5 @@ +--- +'@redeye/client': patch +--- + +Fix add campaign dialog description spacing diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..e1ed31e --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": true, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "develop", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/little-beans-hammer.md b/.changeset/little-beans-hammer.md new file mode 100644 index 0000000..d1a1454 --- /dev/null +++ b/.changeset/little-beans-hammer.md @@ -0,0 +1,5 @@ +--- +'@redeye/models': patch +--- + +Exposing BeaconMeta source LogLine diff --git a/.changeset/silver-clocks-worry.md b/.changeset/silver-clocks-worry.md new file mode 100644 index 0000000..a845151 --- /dev/null +++ b/.changeset/silver-clocks-worry.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5f6dc39 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +**/node_modules +**/release +.yarn/cache +.yarn/install-state.gz \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..86c5899 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +end_of_line = lf +indent_style = tab +indent_size = 2 +insert_final_newline = true +max_line_length = 120 +charset = utf-8 \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..c5efe55 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,41 @@ +{ + "root": true, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:cypress/recommended" + ], + "env": { + "browser": true, + "node": true, + "es6": true, + "cypress/globals": true + }, + "parser": "@typescript-eslint/parser", + "plugins": ["import", "@typescript-eslint"], + "rules": { + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-explicit-any": "off", + "no-console": "off", + "@typescript-eslint/ban-ts-comment": "off", + "no-async-promise-executor": "off", + "no-debugger": "warn", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_" + } + ], + "@typescript-eslint/consistent-type-imports": [ + "warn", + { + "prefer": "type-imports", + "fixStyle": "separate-type-imports", + "disallowTypeAnnotations": false + } + ], + "import/no-anonymous-default-export": ["error"] + } +} diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..ef14112 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..24473de --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..c774281 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +name: Build Check + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - main + - develop + pull_request: + branches: + - '**' + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.16.1] + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: 18.16.1 + cache: 'yarn' + - run: CYPRESS_INSTALL_BINARY=0 yarn install --immutable --inline-builds + - run: CYPRESS_INSTALL_BINARY=0 yarn moon ci + - uses: 'moonrepo/run-report-action@v1' + if: success() || failure() + with: + access-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b3398af --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,33 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Release + +on: + push: + branches: ['main'] + +jobs: + build: + runs-on: ubuntu-latest + env: + CYPRESS_INSTALL_BINARY: 0 + strategy: + matrix: + node-version: [18.16.1] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - run: | + docker-compose -f docker-compose.yml up -d redeye-artifacts + docker create -ti --name redeye-artifacts redeye-builder bash + docker cp redeye-artifacts:/app/outputs ./artifacts + docker rm -f redeye-artifacts + - name: Archive artifacts + uses: actions/upload-artifact@v3 + with: + name: RedEye + path: artifacts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..3984c31 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,238 @@ +name: Cypress Tests + +on: + # manual button click from the GitHub UI + workflow_dispatch: + push: + branches: + - main + - develop + pull_request: + branches: + - '**' + +jobs: + prepare: + runs-on: ubuntu-latest + outputs: + uuid: ${{ steps.uuid.outputs.value }} + steps: + - name: Generate unique ID 💎 + id: uuid + run: echo "{name}={sha-$GITHUB_SHA-time-$(date +"%s")}" >> $GITHUB_ENV + + - name: Print unique ID 🖨` + run: echo "generated id ${{ steps.uuid.outputs.value }}" + + install: + needs: ['prepare'] + container: + image: cypress/included:cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 + options: --user 1001 + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node-version: [18.16.1] + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Cache + uses: actions/setup-node@v3 + with: + node-version: 18.16.1 + cache: 'yarn' + + - run: yarn install --immutable --inline-builds + - run: yarn moon run server:build client:build + + - name: Save build folder + uses: actions/upload-artifact@v3 + with: + name: moon-cache + path: .moon/cache + if-no-files-found: error + + RedTeamChrome: + runs-on: ubuntu-latest + container: + image: cypress/included:cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 + options: --user 1001 + needs: [prepare, install] + strategy: + fail-fast: false + matrix: + containers: [1, 2] + node-version: [18.16.1] + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Cache + uses: actions/setup-node@v3 + with: + node-version: 18.16.1 + cache: 'yarn' + + - name: Download the build folders + uses: actions/download-artifact@v3 + with: + name: moon-cache + path: .moon/cache + + - run: yarn install --immutable --inline-builds + - name: Red Team Tests - Chrome v${{ matrix.node }} + uses: cypress-io/github-action@v5 + with: + tag: node-${{ matrix.node }} + start: yarn start:test-app + wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' + browser: chrome + group: 'Red Team - Chrome' + config: baseUrl=http://localhost:3500 + record: true + parallel: true + config-file: applications/redeye-e2e/cypress.config.js + spec: applications/redeye-e2e/src/integration/e2e/redteam/**/**/**/*.cy.js + ci-build-id: ${{ needs.prepare.outputs.uuid }} + env: + CYPRESS_PROJECT_ID: 'rsybgk' + CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_RED }} + + BlueTeamChrome: + runs-on: ubuntu-latest + container: + image: cypress/included:cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 + options: --user 1001 + needs: [prepare, install] + strategy: + fail-fast: false + matrix: + containers: [1, 2] + node-version: [18.16.1] + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Cache + uses: actions/setup-node@v3 + with: + node-version: 18.16.1 + cache: 'yarn' + + - name: Download the build folders + uses: actions/download-artifact@v3 + with: + name: moon-cache + path: .moon/cache + + - run: yarn install --immutable --inline-builds + - name: 'Blue Team Tests - Chrome' + uses: cypress-io/github-action@v5 + with: + tag: node-${{ matrix.node }} + start: yarn start:test-app + wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' + browser: chrome + group: 'Blue Team - Chrome' + config: baseUrl=http://localhost:3500 + record: true + parallel: true + config-file: applications/redeye-e2e/cypress.config.js + spec: applications/redeye-e2e/src/integration/e2e/blueteam/**/*.cy.js + ci-build-id: ${{ needs.prepare.outputs.uuid }} + env: + CYPRESS_PROJECT_ID: '46ahz3' + SERVER_BLUE_TEAM: 'true' + CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_BLUE }} + + # RedTeamFirefox: + # runs-on: ubuntu-latest + # needs: [prepare, install] + # strategy: + # fail-fast: false + # + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + # + # - name: Cache + # uses: actions/setup-node@v3 + # with: + # cache: 'yarn' + # - run: git fetch + # - run: git config pull.rebase true + # - run: git pull origin $GITHUB_HEAD_REF + # - run: yarn install + # - run: yarn moon run server:build && yarn moon run client:build + # + # - name: 'Red Team Tests - Firefox' + # uses: cypress-io/github-action@v5.0.0 + # with: + # start: yarn start + # wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' + # browser: firefox + # group: 'Red Team - Firefox' + # working-directory: applications/redeye-e2e + # config: baseUrl=http://localhost:3500 + # record: true + # parallel: true + # config-file: cypress.config.js + # spec: src/integration/e2e/redteam/**/**/**/*.cy.js + # ci-build-id: ${{ needs.prepare.outputs.uuid }} + # env: + # CYPRESS_PROJECT_ID: 'rsybgk' + # CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_RED1 }} + # +# BlueTeamFirefox: +# runs-on: ubuntu-latest +# needs: [prepare, install] +# strategy: +# fail-fast: false +# +# steps: +# - name: Checkout +# uses: actions/checkout@v3 +# +# - name: Download the build folders +# uses: actions/download-artifact@v3 +# with: +# name: moon-cache +# path: .moon/cache +# +# - name: Cache +# uses: actions/setup-node@v3 +# with: +# cache: 'yarn' +# - run: git fetch +# - run: git config pull.rebase true +# - run: git pull origin $GITHUB_HEAD_REF +# - run: yarn install +# - run: yarn moon run server:build && yarn moon run client:build +# +# - name: 'Blue Team Tests - Firefox' +# uses: cypress-io/github-action@v5.0.0 +# with: +# start: yarn start:blue +# wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' +# browser: firefox +# group: 'Blue Team - Firefox' +# working-directory: applications/redeye-e2e +# config: baseUrl=http://localhost:3500 +# record: true +# parallel: true +# config-file: cypress.config.js +# spec: src/integration/e2e/blueteam/**/*.cy.js +# ci-build-id: ${{ needs.prepare.outputs.uuid }} +# env: +# CYPRESS_PROJECT_ID: '46ahz3' +# CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_BLUE1 }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4f513f --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +.DS_Store +node_modules +*.local +dist +build +@redeye/darwin-x64 +packages/graph/testData +applications/server/dev-databases +applications/server/campaign +.eslintcache + +.yarn/* +!.yarn/patches +!.yarn/releases +!.yarn/plugins +!.yarn/sdks +!.yarn/versions +.pnp.* +/.pnp +.pnp.js + +coverage +junit.xml + +.history +.idea +.vim +.nova + +[diff] + tool = vscode +[difftool "vscode"] + cmd = code --wait --diff $LOCAL $REMOTE + +test.sqlite* + +junit.*.xml +release +tmp +# moon +.moon/cache +.moon/docker +*.tsbuildinfo + +# generated types +.astro/ \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..7ec41d8 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +yarn lint-staged --relative diff --git a/.moon/tasks.yml b/.moon/tasks.yml new file mode 100644 index 0000000..4a04e88 --- /dev/null +++ b/.moon/tasks.yml @@ -0,0 +1,347 @@ +# https://moonrepo.dev/docs/config/global-project +$schema: 'https://moonrepo.dev/schemas/global-project.json' + +# Extend and inherit an external configuration file. Must be a valid HTTPS URL or file system path. +# extends: './shared/project.yml' + +# File groups are a mechanism for grouping similar types of files within a project +# using file glob patterns. These groups are then used by tasks to calculate functionality like +# cache computation, affected files since last change, command line arguments, deterministic +# builds, and more. +# +# This setting requires a map, where the key is the file group name, and the value is a list of +# globs. Globs are relative to a project, even though they are defined globally. This enables +# enforcement of organizational patterns across all projects in the workspace. +fileGroups: + # List of configuration files located within the project root. + configs: + - '*.{js,json,yml,yaml}' + + # List of non-test source files. + sources: + - 'src/**/*' + - 'types/**/*' + - 'package.json' + + # List of non-source test files. + tests: + - 'tests/**/*.test.*' + - '**/__tests__/**/*' + + # All static assets within the project. + # This may include styles, images, videos, etc. + assets: + - 'assets/**/*' + - 'images/**/*' + - 'static/**/*' + - '**/*.{scss,css}' + - '**/*.mdx' + +# A task is an action that is ran within the context of a project, and wraps +# around an npm or system command. Tasks that are defined here and inherited by all projects +# within the workspace, but can be overridden per project. +# +# This setting requires a map, where the key is a unique name for the task, +# and the value is an object of task parameters. +tasks: + xstate-typegen: + command: + - xstate + - typegen + - src/**/*.machine.ts?(x) + outputs: + - 'src/**/*.machine.typegen.{ts,tsx}' + inputs: + - 'src/**/*.machine.{ts,tsx}' + platform: node + options: + runInCI: false + test-jest: + command: 'jest . --coverage --reporters="jest-junit" --passWithNoTests' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - 'jest.config.ts' + platform: node + options: + runInCI: false + lint-ci: + command: 'eslint' + options: + affectedFiles: true + runInCI: false + lint: + command: 'eslint src --fix --max-warnings 0' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - '.eslintignore' + - '.eslintrc.yaml' + platform: node + options: + runInCI: false + lint-global: + command: 'eslint --config $workspaceRoot/.eslintrc.json --ignore-path $workspaceRoot/.gitignore src --fix' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - '.eslintignore' + - '.eslintrc.json' + platform: node + options: + runInCI: false + format: + command: + - prettier + - '**/*.{ts,tsx,js,jsx,json,yml,yaml,astro}' + - '!**/*.graphql' + - --write + - --config + - $workspaceRoot/.prettierrc.yaml + - --ignore-unknown + - --ignore-path + - $workspaceRoot/.gitignore + inputs: + - '@globs(sources)' + options: + runInCI: false + affectedFiles: true + platform: node + + # Vite commands + + start-vite: + command: 'vite' + inputs: + - '@globs(sources)' + - '@globs(assets)' + - 'vite.config.ts' + local: true + platform: node + options: + runInCI: false + build-vite: + command: 'vite build' + inputs: + - '@globs(sources)' + - '@globs(assets)' + - 'vite.config.ts' + - 'tsconfig.json' + outputs: + - dist + - tsconfig.tsbuildinfo + env: + NODE_ENV: production + deps: + - ~:clean-dist + - ^:build + platform: node + options: + runInCI: false + runDepsInParallel: false + preview-vite: + command: 'vite preview --port 3500' + inputs: + - '@globs(sources)' + - '@globs(assets)' + - 'vite.config.ts' + local: true + platform: node + deps: + - ~:build-vite + options: + runInCI: false + + # Library mode commands + build-library: + command: 'noop' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - 'tsconfig.json' + outputs: + - dist + - 'tsconfig.tsbuildinfo' + deps: + - ^:build + - ~:build-client-library + - ~:typecheck + env: + NODE_ENV: production + platform: node + options: + runDepsInParallel: false + runInCI: false + build-client-library: + command: 'tsc --project tsconfig.json --module esnext --sourceMap --outDir @out(0)' + inputs: + - '@globs(sources)' + - '@globs(assets)' + - 'tsconfig.json' + outputs: + - dist + env: + NODE_ENV: production + deps: + - ~:clean-dist + platform: node + options: + runDepsInParallel: false + runInCI: false + watch-library: + command: 'tsc-watch --project tsconfig.json --module esnext --sourceMap --outDir @out(0)' + inputs: + - '@globs(sources)' + - '@globs(assets)' + outputs: + - dist + env: + NODE_ENV: production + platform: node + options: + runInCI: false + cache: false + + # Node commands + build-node-library: + command: 'tsc --project tsconfig.json --module commonjs --sourceMap --outDir @out(0)' + inputs: + - '@globs(sources)' + - '@globs(assets)' + - 'tsconfig.json' + outputs: + - dist + env: + NODE_ENV: production + deps: + - ~:clean-dist + platform: node + options: + runDepsInParallel: false + runInCI: false + build-node: + command: 'noop' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - 'tsconfig.json' + deps: + - ^:build + - ~:build-node-library + env: + NODE_ENV: production + platform: node + options: + runDepsInParallel: false + runInCI: false + + start-node: + env: + NODE_ENV: development + command: 'tsc-watch --project tsconfig.json --module commonjs --sourceMap --outDir dist --onSuccess "yarn node --enable-source-maps dist"' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - 'tsconfig.json' + platform: node + local: true + options: + runInCI: false + + # Release Commands + release-all: + command: 'noop' + deps: + - ~:release-linux + - ~:release-windows + - ~:release-mac + platform: system + options: + mergeOutputs: 'replace' + runInCI: false + release-mac: + command: 'yarn pkg $projectRoot/package.json -t node18-mac -o @out(0)' + deps: + - ~:fetch-pkg-mac + - ~:build + platform: system + outputs: + - /release/mac/RedEye + options: + mergeOutputs: 'replace' + runInCI: false + runFromWorkspaceRoot: true + release-linux: + command: 'yarn pkg $projectRoot/package.json -t node18-linux -o @out(0)' + deps: + - ~:fetch-pkg-linux + - ~:build + platform: system + outputs: + - /release/linux/RedEye + options: + mergeOutputs: 'replace' + runInCI: false + runFromWorkspaceRoot: true + release-windows: + command: 'yarn pkg $projectRoot/package.json -t node18-win -o @out(0)' + deps: + - ~:fetch-pkg-windows + - ~:build + outputs: + - /release/windows/RedEye + options: + mergeOutputs: 'replace' + runInCI: false + runFromWorkspaceRoot: true + platform: node + + ## Fetch pkg commands + fetch-pkg-mac: + command: 'yarn pkg-fetch --platform mac --node-range node18' + platform: system + options: + runInCI: false + retryCount: 2 + runFromWorkspaceRoot: true + fetch-pkg-linux: + command: 'yarn pkg-fetch --platform linux --node-range node18' + platform: system + options: + runInCI: false + retryCount: 2 + runFromWorkspaceRoot: true + fetch-pkg-windows: + command: 'yarn pkg-fetch --platform win --node-range node18' + platform: system + options: + runInCI: false + retryCount: 2 + runFromWorkspaceRoot: true + + ## Clean + clean-dist: + command: 'rimraf ./dist && rimraf tsconfig.tsbuildinfo' + platform: node + options: + runInCI: false + cache: false + + ## Typecheck + typecheck: + command: 'tsc --emitDeclarationOnly --outDir @out(0)' + inputs: + - '@globs(sources)' + - '@globs(tests)' + - 'tsconfig.json' + outputs: + - dist + - 'tsconfig.tsbuildinfo' + platform: node + options: + runInCI: false + noop: + command: 'noop' + platform: node + options: + runInCI: false diff --git a/.moon/toolchain.yml b/.moon/toolchain.yml new file mode 100644 index 0000000..3766ec7 --- /dev/null +++ b/.moon/toolchain.yml @@ -0,0 +1,72 @@ +# https://moonrepo.dev/docs/config/toolchain +$schema: 'https://moonrepo.dev/schemas/toolchain.json' + +# Extend and inherit an external configuration file. Must be a valid HTTPS URL or file system path. +# extends: './shared/toolchain.yml' + +# Configures Node.js within the toolchain. moon manages its own version of Node.js +# instead of relying on a version found on the host machine. This ensures deterministic +# and reproducible builds across any machine. +node: + # The version to use. Must be a semantic version that includes major, minor, and patch. + # We suggest using the latest active LTS version: https://nodejs.org/en/about/releases + version: '18.16.1' + + # The package manager to use when managing dependencies. + # Accepts "npm" (default), "pnpm", or "yarn". + packageManager: 'yarn' + + # The version of the package manager (above) to use. + yarn: + version: '3.5.1' + + # Add `node.version` as a constraint in the root `package.json` `engines`. + addEnginesConstraint: true + + # Use the `package.json` name as an alias for the respective moon project. + aliasPackageNames: 'name-and-scope' + + # Dedupe dependencies after the lockfile has changed. + dedupeOnLockfileChange: true + + # Version format to use when syncing dependencies within the project's `package.json`. + # dependencyVersionFormat: 'workspace' + + # Infer and automatically create moon tasks from `package.json` scripts, per project. + # BEWARE: Tasks and scripts are not 1:1 in functionality, so please refer to the documentation. + inferTasksFromScripts: false + + # Sync a project's `dependsOn` as dependencies within the project's `package.json`. + syncProjectWorkspaceDependencies: true + + # Sync `node.version` to a 3rd-party version manager's config file. + # Accepts "nodenv" (.node-version), "nvm" (.nvmrc), or none. + syncVersionManagerConfig: 'nvm' + +# Configures how moon integrates with TypeScript. +typescript: + # When `syncProjectReferences` is enabled and a dependent project reference + # *does not* have a `tsconfig.json`, automatically create one. + createMissingConfig: false + + # Name of `tsconfig.json` file in each project root. + # projectConfigFileName: 'tsconfig.json' + + # Name of `tsconfig.json` file in the workspace root. + # rootConfigFileName: 'tsconfig.json' + + # Name of the config file in the workspace root that defines shared compiler + # options for all project reference based config files. + # rootOptionsConfigFileName: 'tsconfig.options.json' + + # Update a project's `tsconfig.json` to route the `outDir` compiler option + # to moon's `.moon/cache` directory. + routeOutDirToCache: false + + # Sync a project's `dependsOn` as project references within the + # project's `tsconfig.json` and the workspace root `tsconfig.json`. + syncProjectReferences: true + + # Sync a project's project references as import aliases to the `paths` + # compiler option in each applicable project. + syncProjectReferencesToPaths: true diff --git a/.moon/workspace.yml b/.moon/workspace.yml new file mode 100644 index 0000000..73c550a --- /dev/null +++ b/.moon/workspace.yml @@ -0,0 +1,35 @@ +# https://moonrepo.dev/docs/config/workspace +$schema: 'https://moonrepo.dev/schemas/workspace.json' + +# Require a specific version of moon while running commands, otherwise fail. +# versionConstraint: '>=0.0.0' + +# Extend and inherit an external configuration file. Must be a valid HTTPS URL or file system path. +# extends: './shared/workspace.yml' +# runner: +# implicitDeps: +# - '^:build' +# REQUIRED: A map of all projects found within the workspace, or a list or file system globs. +# When using a map, each entry requires a unique project ID as the map key, and a file system +# path to the project folder as the map value. File paths are relative from the workspace root, +# and cannot reference projects located outside the workspace boundary. +projects: + globs: + - 'applications/*' + - 'packages/*' + - 'parsers/*' + sources: + landing-page: 'docs/landing-page' + +# Configures the version control system to utilize within the workspace. A VCS +# is required for determining touched (added, modified, etc) files, calculating file hashes, +# computing affected files, and much more. +vcs: + # The manager/binary to use when managing the repository. + # Accepts "git", or "svn". Defaults to "git". + manager: 'git' + + # The default branch (master/main/trunk) in the repository for comparing the + # local branch against. For git, this is is typically "master" or "main", + # and must include the remote prefix (before /). For svn, this should always be "trunk". + defaultBranch: 'develop' diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..8d2a451 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18.16.1 \ No newline at end of file diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..8619153 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,7 @@ +printWidth: 120 +semi: true +singleQuote: true +trailingComma: 'es5' +endOfLine: 'lf' +tabWidth: 2 +useTabs: true diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..479f4b6 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "arcanis.vscode-zipfs", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "firsttris.vscode-jest-runner" + ] +} diff --git a/.vscode/redeye-snippets.code-snippets b/.vscode/redeye-snippets.code-snippets new file mode 100644 index 0000000..7f549ab --- /dev/null +++ b/.vscode/redeye-snippets.code-snippets @@ -0,0 +1,37 @@ +{ + "RedEye React Function": { + "prefix": "rfc", + "body": [ + "import { css } from '@emotion/react';", + "import { observer } from 'mobx-react-lite';", + "import type { ComponentProps } from 'react';", + "", + "type ${TM_FILENAME_BASE/(^.)/${1:/upcase}/}Props = ComponentProps<'div'> & {}", + "", + "export const ${TM_FILENAME_BASE/(^.)/${1:/upcase}/} = observer<${TM_FILENAME_BASE/(^.)/${1:/upcase}/}Props>(({ ...props }) => {", + " return
;", + "});", + "" + ], + "description": "RedEye React Function" + }, + "RedEye React Function With State": { + "prefix": "rsfc", + "body": [ + "import { css } from '@emotion/react';", + "import { observer, useLocalObservable } from 'mobx-react-lite';", + "import type { ComponentProps } from 'react';", + "import { useStore } from '~/store';", + "", + "type ${TM_FILENAME_BASE/(^.)/${1:/upcase}/}Props = ComponentProps<'div'> & {}", + "", + "export const ${TM_FILENAME_BASE/(^.)/${1:/upcase}/}: observer<${TM_FILENAME_BASE/(^.)/${1:/upcase}/}Props>(({ ...props }) => {", + " const store = useStore();", + " const state = useLocalObservable(() => ({}));", + " return
;", + "});", + "" + ], + "description": "RedEye Stateful React Function" + } +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ee4fc39 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,32 @@ +{ + "search.exclude": { + "**/.yarn": true, + "**/yarn.lock": true, + "**/.pnp.*": true, + "**/*.drawio": true + }, + "eslint.nodePath": ".yarn/sdks", + "prettier.prettierPath": "./node_modules/prettier", + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[css]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true, + "cSpell.words": ["Checkin", "deconflict", "subprocesses", "xstate"], + "yaml.customTags": ["!configurable mapping", "!secret mapping"], + "[typescript][typescriptreact][javascript][javascriptreact][json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "cypressHelper.customCommandsFolder": "applications/redeye-e2e/src/support", + + "cypressHelper.commandForOpen": "yarn cypress open", + + "cypressHelper.commandForRun": "yarn cypress run" +} diff --git a/.yarn/plugins/@ArTs/plugin-http-proxy.cjs b/.yarn/plugins/@ArTs/plugin-http-proxy.cjs new file mode 100644 index 0000000..7d641df --- /dev/null +++ b/.yarn/plugins/@ArTs/plugin-http-proxy.cjs @@ -0,0 +1,7 @@ +var $i=Object.defineProperty,wi=Object.defineProperties;var qi=Object.getOwnPropertyDescriptors;var Qr=Object.getOwnPropertySymbols;var Ii=Object.prototype.hasOwnProperty,Li=Object.prototype.propertyIsEnumerable;var et=(r,e,t)=>e in r?$i(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,w=(r,e)=>{for(var t in e||(e={}))Ii.call(e,t)&&et(r,t,e[t]);if(Qr)for(var t of Qr(e))Li.call(e,t)&&et(r,t,e[t]);return r},rt=(r,e)=>wi(r,qi(e));var c=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var tt=c(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.boolean=void 0;var Di=function(r){switch(Object.prototype.toString.call(r)){case"[object String]":return["true","t","yes","y","on","1"].includes(r.trim().toLowerCase());case"[object Number]":return r.valueOf()===1;case"[object Boolean]":return r.valueOf();default:return!1}};be.boolean=Di});var nt=c(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.isBooleanable=void 0;var Ci=function(r){switch(Object.prototype.toString.call(r)){case"[object String]":return["true","t","yes","y","on","1","false","f","no","n","off","0"].includes(r.trim().toLowerCase());case"[object Number]":return[0,1].includes(r.valueOf());case"[object Boolean]":return!0;default:return!1}};_e.isBooleanable=Ci});var Re=c(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.isBooleanable=V.boolean=void 0;var Gi=tt();Object.defineProperty(V,"boolean",{enumerable:!0,get:function(){return Gi.boolean}});var ji=nt();Object.defineProperty(V,"isBooleanable",{enumerable:!0,get:function(){return ji.isBooleanable}})});var Ae=c((ac,st)=>{st.exports=Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]"});var fr=c((uc,ot)=>{"use strict";var it=Object.prototype.toString;ot.exports=function(e){var t=it.call(e),n=t==="[object Arguments]";return n||(n=t!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&it.call(e.callee)==="[object Function]"),n}});var gt=c((lc,dt)=>{"use strict";var ht;Object.keys||(Q=Object.prototype.hasOwnProperty,pr=Object.prototype.toString,at=fr(),hr=Object.prototype.propertyIsEnumerable,ut=!hr.call({toString:null},"toString"),lt=hr.call(function(){},"prototype"),ee=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Ne=function(r){var e=r.constructor;return e&&e.prototype===r},ct={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},ft=function(){if(typeof window>"u")return!1;for(var r in window)try{if(!ct["$"+r]&&Q.call(window,r)&&window[r]!==null&&typeof window[r]=="object")try{Ne(window[r])}catch{return!0}}catch{return!0}return!1}(),pt=function(r){if(typeof window>"u"||!ft)return Ne(r);try{return Ne(r)}catch{return!1}},ht=function(e){var t=e!==null&&typeof e=="object",n=pr.call(e)==="[object Function]",s=at(e),i=t&&pr.call(e)==="[object String]",o=[];if(!t&&!n&&!s)throw new TypeError("Object.keys called on a non-object");var u=lt&&n;if(i&&e.length>0&&!Q.call(e,0))for(var l=0;l0)for(var v=0;v{"use strict";var Mi=Array.prototype.slice,Ui=fr(),vt=Object.keys,xe=vt?function(e){return vt(e)}:gt(),Et=Object.keys;xe.shim=function(){if(Object.keys){var e=function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2);e||(Object.keys=function(n){return Ui(n)?Et(Mi.call(n)):Et(n)})}else Object.keys=xe;return Object.keys||xe};yt.exports=xe});var gr=c((fc,_t)=>{"use strict";var Xi=mt(),Fi=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",Hi=Object.prototype.toString,Bi=Array.prototype.concat,dr=Object.defineProperty,Vi=function(r){return typeof r=="function"&&Hi.call(r)==="[object Function]"},ki=function(){var r={};try{dr(r,"x",{enumerable:!1,value:r});for(var e in r)return!1;return r.x===r}catch{return!1}},Ot=dr&&ki(),Yi=function(r,e,t,n){e in r&&(!Vi(n)||!n())||(Ot?dr(r,e,{configurable:!0,enumerable:!1,value:t,writable:!0}):r[e]=t)},bt=function(r,e){var t=arguments.length>2?arguments[2]:{},n=Xi(e);Fi&&(n=Bi.call(n,Object.getOwnPropertySymbols(e)));for(var s=0;s{"use strict";Rt.exports=global});var Er=c((hc,At)=>{"use strict";var zi=vr();At.exports=function(){return typeof global!="object"||!global||global.Math!==Math||global.Array!==Array?zi:global}});var xt=c((dc,Nt)=>{"use strict";var Ji=gr(),Ki=Er();Nt.exports=function(){var e=Ki();if(Ji.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,"globalThis");(!t||t.configurable&&(t.enumerable||t.writable||globalThis!==e))&&Object.defineProperty(e,"globalThis",{configurable:!0,enumerable:!1,value:e,writable:!1})}else(typeof globalThis!="object"||globalThis!==e)&&(e.globalThis=e);return e}});var yr=c((gc,St)=>{"use strict";var Wi=gr(),Zi=vr(),Tt=Er(),Qi=xt(),eo=Tt(),Pt=function(){return eo};Wi(Pt,{getPolyfill:Tt,implementation:Zi,shim:Qi});St.exports=Pt});var qt=c((mr,wt)=>{mr=wt.exports=ro;mr.getSerialize=$t;function ro(r,e,t,n){return JSON.stringify(r,$t(e,n),t)}function $t(r,e){var t=[],n=[];return e==null&&(e=function(s,i){return t[0]===i?"[Circular ~]":"[Circular ~."+n.slice(0,t.indexOf(i)).join(".")+"]"}),function(s,i){if(t.length>0){var o=t.indexOf(this);~o?t.splice(o+1):t.push(this),~o?n.splice(o,1/0,s):n.push(s),~t.indexOf(i)&&(i=e.call(this,s,i))}else t.push(i);return r==null?i:r.call(this,s,i)}}});var It=c(Te=>{(function(){"use strict";var r={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(o){return n(i(o),arguments)}function t(o,u){return e.apply(null,[o].concat(u||[]))}function n(o,u){var l=1,v=o.length,a,g="",f,p,E,D,G,B,Oe,j;for(f=0;f=0),E.type){case"b":a=parseInt(a,10).toString(2);break;case"c":a=String.fromCharCode(parseInt(a,10));break;case"d":case"i":a=parseInt(a,10);break;case"j":a=JSON.stringify(a,null,E.width?parseInt(E.width):0);break;case"e":a=E.precision?parseFloat(a).toExponential(E.precision):parseFloat(a).toExponential();break;case"f":a=E.precision?parseFloat(a).toFixed(E.precision):parseFloat(a);break;case"g":a=E.precision?String(Number(a.toPrecision(E.precision))):parseFloat(a);break;case"o":a=(parseInt(a,10)>>>0).toString(8);break;case"s":a=String(a),a=E.precision?a.substring(0,E.precision):a;break;case"t":a=String(!!a),a=E.precision?a.substring(0,E.precision):a;break;case"T":a=Object.prototype.toString.call(a).slice(8,-1).toLowerCase(),a=E.precision?a.substring(0,E.precision):a;break;case"u":a=parseInt(a,10)>>>0;break;case"v":a=a.valueOf(),a=E.precision?a.substring(0,E.precision):a;break;case"x":a=(parseInt(a,10)>>>0).toString(16);break;case"X":a=(parseInt(a,10)>>>0).toString(16).toUpperCase();break}r.json.test(E.type)?g+=a:(r.number.test(E.type)&&(!Oe||E.sign)?(j=Oe?"+":"-",a=a.toString().replace(r.sign,"")):j="",G=E.pad_char?E.pad_char==="0"?"0":E.pad_char.charAt(1):" ",B=E.width-(j+a).length,D=E.width&&B>0?G.repeat(B):"",g+=E.align?j+a+D:G==="0"?j+D+a:D+j+a)}return g}var s=Object.create(null);function i(o){if(s[o])return s[o];for(var u=o,l,v=[],a=0;u;){if((l=r.text.exec(u))!==null)v.push(l[0]);else if((l=r.modulo.exec(u))!==null)v.push("%");else if((l=r.placeholder.exec(u))!==null){if(l[2]){a|=1;var g=[],f=l[2],p=[];if((p=r.key.exec(f))!==null)for(g.push(p[1]);(f=f.substring(p[0].length))!=="";)if((p=r.key_access.exec(f))!==null)g.push(p[1]);else if((p=r.index_access.exec(f))!==null)g.push(p[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");l[2]=g}else a|=2;if(a===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");v.push({placeholder:l[0],param_no:l[1],keys:l[2],sign:l[3],pad_char:l[4],align:l[5],width:l[6],precision:l[7],type:l[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");u=u.substring(l[0].length)}return s[o]=v}typeof Te<"u"&&(Te.sprintf=e,Te.vsprintf=t),typeof window<"u"&&(window.sprintf=e,window.vsprintf=t,typeof define=="function"&&define.amd&&define(function(){return{sprintf:e,vsprintf:t}}))})()});var Or=c(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.logLevels=void 0;var to={debug:20,error:50,fatal:60,info:30,trace:10,warn:40};Pe.logLevels=to});var Ct=c($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var no=Ar(Ae()),so=Ar(yr()),io=Ar(qt()),br=It(),Lt=Or();function Ar(r){return r&&r.__esModule?r:{default:r}}function _r(){return _r=Object.assign||function(r){for(var e=1;e{if(!re)return{};let r=[],e=process.domain;if(!e||!e.parentDomain)return{};for(;e&&e.parentDomain;)e=e.parentDomain,e.roarr&&e.roarr.context&&r.push(e.roarr.context);let t={};for(let n of r)t=x(x({},t),n);return t},Se=()=>{if(!re)return{};let r=process.domain;if(r&&r.roarr&&r.roarr.context)return r.roarr.context;if(!r||!r.parentDomain)return{};for(;r&&r.parentDomain;)if(r=r.parentDomain,r.roarr&&r.roarr.context)return r.roarr.context;return{}},Rr=(r,e)=>{let t=(n,s,i,o,u,l,v,a,g,f)=>{let p=Date.now(),E=ao.ROARR.sequence++,D,G;if(typeof n=="string"){D=x(x({},Se()),e||{});let B=_r({},{a:n,b:s,c:i,d:o,e:u,f:l,g:v,h:a,i:g,k:f});G=Object.keys(B).map(cr=>B[cr]).reduce((cr,Si)=>cr+=typeof Si>"u"?0:1,0)===1?(0,br.sprintf)("%s",n):(0,br.sprintf)(n,s,i,o,u,l,v,a,g,f)}else{if(typeof s!="string")throw new TypeError("Message must be a string.");D=JSON.parse((0,io.default)(x(x(x({},Se()),e||{}),n))),G=(0,br.sprintf)(s,i,o,u,l,v,a,g,f)}r({context:D,message:G,sequence:E,time:p,version:"1.0.0"})};t.child=n=>typeof n=="function"?Rr(s=>{if(typeof n!="function")throw new TypeError("Unexpected state.");r(n(s))},e):Rr(r,x(x(x({},Se()),e),n)),t.getContext=()=>x(x({},Se()),e||{}),t.adopt=async(n,s)=>{if(!re)return n();let i=re.create();return i.run(()=>(i.roarr={context:x(x({},uo()),s)},n()))};for(let n of Object.keys(Lt.logLevels))t[n]=(s,i,o,u,l,v,a,g,f,p)=>t.child({logLevel:Lt.logLevels[n]})(s,i,o,u,l,v,a,g,f,p);return t},lo=Rr;$e.default=lo});var Mt=c(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.default=void 0;var Gt=Or(),jt=(r,e)=>{let t=(n,s,i,o,u,l,v,a,g,f)=>{};t.adopt=async n=>n(),t.child=n=>jt(r,e),t.getContext=()=>({});for(let n of Object.keys(Gt.logLevels))t[n]=(s,i,o,u,l,v,a,g,f,p)=>t.child({logLevel:Gt.logLevels[n]})(s,i,o,u,l,v,a,g,f,p);return t},co=jt;we.default=co});var Xt=c((Oc,Ut)=>{Ut.exports=function(e,t){for(var n=e.split("."),s=t.split("."),i=0;i<3;i++){var o=Number(n[i]),u=Number(s[i]);if(o>u)return 1;if(u>o)return-1;if(!isNaN(o)&&isNaN(u))return 1;if(isNaN(o)&&!isNaN(u))return-1}return 0}});var Ft=c((bc,fo)=>{fo.exports={author:{email:"gajus@gajus.com",name:"Gajus Kuizinas",url:"http://gajus.com"},ava:{babel:{compileAsTests:["test/helpers/**/*"]},files:["test/roarr/**/*"],require:["@babel/register"]},dependencies:{boolean:"^3.0.1","detect-node":"^2.0.4",globalthis:"^1.0.1","json-stringify-safe":"^5.0.1","semver-compare":"^1.0.0","sprintf-js":"^1.1.2"},description:"JSON logger for Node.js and browser.",devDependencies:{"@ava/babel":"^1.0.1","@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/node":"^7.10.5","@babel/plugin-transform-flow-strip-types":"^7.10.4","@babel/preset-env":"^7.11.5","@babel/register":"^7.11.5",ava:"^3.12.1","babel-plugin-istanbul":"^6.0.0","babel-plugin-transform-export-default-name":"^2.0.4",coveralls:"^3.1.0","domain-parent":"^1.0.0",eslint:"^7.9.0","eslint-config-canonical":"^24.1.1","flow-bin":"^0.133.0","flow-copy-source":"^2.0.9",gitdown:"^3.1.3",husky:"^4.3.0",nyc:"^15.1.0","semantic-release":"^17.1.1"},engines:{node:">=8.0"},husky:{hooks:{"pre-commit":"npm run lint && npm run test && npm run build","pre-push":"gitdown ./.README/README.md --output-file ./README.md --check"}},keywords:["log","logger","json"],main:"./dist/log.js",name:"roarr",nyc:{include:["src/**/*.js"],instrument:!1,reporter:["text-lcov"],require:["@babel/register"],sourceMap:!1},license:"BSD-3-Clause",repository:{type:"git",url:"git@github.com:gajus/roarr.git"},scripts:{build:"rm -fr ./dist && NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps && flow-copy-source src dist","create-readme":"gitdown ./.README/README.md --output-file ./README.md",dev:"NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --watch",lint:"eslint ./src ./test && flow",test:"NODE_ENV=test ava --serial --verbose"},version:"2.15.4"}});var Ht=c(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.default=void 0;var po=r=>({write:e=>{r.write(e+` +`)}}),ho=()=>{let e=(process.env.ROARR_STREAM||"STDOUT").toUpperCase().toUpperCase()==="STDOUT"?process.stdout:process.stderr;return po(e)},go=ho;qe.default=go});var Vt=c(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.default=void 0;var vo=Tr(Ae()),Nr=Tr(Xt()),xr=Ft(),Eo=Tr(Ht());function Tr(r){return r&&r.__esModule?r:{default:r}}function Bt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(r,s).enumerable})),t.push.apply(t,n)}return t}function Ie(r){for(var e=1;e{let e=(r.versions||[]).concat();e.sort(Nr.default);let t=!e.length||(0,Nr.default)(xr.version,e[e.length-1])===1;e.includes(xr.version)||e.push(xr.version),e.sort(Nr.default);let n=Ie(Ie({sequence:0},r),{},{versions:e});return vo.default&&(t||!n.write)&&(n=Ie(Ie({},n),(0,Eo.default)())),n},Oo=mo;Le.default=Oo});var kt=c(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});Object.defineProperty(te,"createLogger",{enumerable:!0,get:function(){return bo.default}});Object.defineProperty(te,"createMockLogger",{enumerable:!0,get:function(){return _o.default}});Object.defineProperty(te,"createRoarrInititialGlobalState",{enumerable:!0,get:function(){return Ro.default}});var bo=Pr(Ct()),_o=Pr(Mt()),Ro=Pr(Vt());function Pr(r){return r&&r.__esModule?r:{default:r}}});var Kt=c(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.default=k.ROARR=void 0;var Ao=Re(),No=zt(Ae()),xo=zt(yr()),$r=kt();function zt(r){return r&&r.__esModule?r:{default:r}}var Yt=(0,xo.default)(),Sr=Yt.ROARR=(0,$r.createRoarrInititialGlobalState)(Yt.ROARR||{});k.ROARR=Sr;var Jt=$r.createLogger;No.default&&((0,Ao.boolean)(process.env.ROARR_LOG||"")||(Jt=$r.createMockLogger));var To=Jt(r=>{if(Sr.write){let e=JSON.stringify(r);Sr.write(e)}});k.default=To});var ne=c(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=void 0;var Po=So(Kt());function So(r){return r&&r.__esModule?r:{default:r}}var $o=Po.default.child({package:"global-agent"}),wo=$o;De.default=wo});var se=c((Tc,Wt)=>{var qo="2.0.0",Io=Number.MAX_SAFE_INTEGER||9007199254740991,Lo=16;Wt.exports={SEMVER_SPEC_VERSION:qo,MAX_LENGTH:256,MAX_SAFE_INTEGER:Io,MAX_SAFE_COMPONENT_LENGTH:Lo}});var ie=c((Pc,Zt)=>{var Do=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Zt.exports=Do});var M=c((C,Qt)=>{var{MAX_SAFE_COMPONENT_LENGTH:wr}=se(),Co=ie();C=Qt.exports={};var Go=C.re=[],h=C.src=[],d=C.t={},jo=0,y=(r,e,t)=>{let n=jo++;Co(n,e),d[r]=n,h[n]=e,Go[n]=new RegExp(e,t?"g":void 0)};y("NUMERICIDENTIFIER","0|[1-9]\\d*");y("NUMERICIDENTIFIERLOOSE","[0-9]+");y("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");y("MAINVERSION",`(${h[d.NUMERICIDENTIFIER]})\\.(${h[d.NUMERICIDENTIFIER]})\\.(${h[d.NUMERICIDENTIFIER]})`);y("MAINVERSIONLOOSE",`(${h[d.NUMERICIDENTIFIERLOOSE]})\\.(${h[d.NUMERICIDENTIFIERLOOSE]})\\.(${h[d.NUMERICIDENTIFIERLOOSE]})`);y("PRERELEASEIDENTIFIER",`(?:${h[d.NUMERICIDENTIFIER]}|${h[d.NONNUMERICIDENTIFIER]})`);y("PRERELEASEIDENTIFIERLOOSE",`(?:${h[d.NUMERICIDENTIFIERLOOSE]}|${h[d.NONNUMERICIDENTIFIER]})`);y("PRERELEASE",`(?:-(${h[d.PRERELEASEIDENTIFIER]}(?:\\.${h[d.PRERELEASEIDENTIFIER]})*))`);y("PRERELEASELOOSE",`(?:-?(${h[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${h[d.PRERELEASEIDENTIFIERLOOSE]})*))`);y("BUILDIDENTIFIER","[0-9A-Za-z-]+");y("BUILD",`(?:\\+(${h[d.BUILDIDENTIFIER]}(?:\\.${h[d.BUILDIDENTIFIER]})*))`);y("FULLPLAIN",`v?${h[d.MAINVERSION]}${h[d.PRERELEASE]}?${h[d.BUILD]}?`);y("FULL",`^${h[d.FULLPLAIN]}$`);y("LOOSEPLAIN",`[v=\\s]*${h[d.MAINVERSIONLOOSE]}${h[d.PRERELEASELOOSE]}?${h[d.BUILD]}?`);y("LOOSE",`^${h[d.LOOSEPLAIN]}$`);y("GTLT","((?:<|>)?=?)");y("XRANGEIDENTIFIERLOOSE",`${h[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);y("XRANGEIDENTIFIER",`${h[d.NUMERICIDENTIFIER]}|x|X|\\*`);y("XRANGEPLAIN",`[v=\\s]*(${h[d.XRANGEIDENTIFIER]})(?:\\.(${h[d.XRANGEIDENTIFIER]})(?:\\.(${h[d.XRANGEIDENTIFIER]})(?:${h[d.PRERELEASE]})?${h[d.BUILD]}?)?)?`);y("XRANGEPLAINLOOSE",`[v=\\s]*(${h[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${h[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${h[d.XRANGEIDENTIFIERLOOSE]})(?:${h[d.PRERELEASELOOSE]})?${h[d.BUILD]}?)?)?`);y("XRANGE",`^${h[d.GTLT]}\\s*${h[d.XRANGEPLAIN]}$`);y("XRANGELOOSE",`^${h[d.GTLT]}\\s*${h[d.XRANGEPLAINLOOSE]}$`);y("COERCE",`(^|[^\\d])(\\d{1,${wr}})(?:\\.(\\d{1,${wr}}))?(?:\\.(\\d{1,${wr}}))?(?:$|[^\\d])`);y("COERCERTL",h[d.COERCE],!0);y("LONETILDE","(?:~>?)");y("TILDETRIM",`(\\s*)${h[d.LONETILDE]}\\s+`,!0);C.tildeTrimReplace="$1~";y("TILDE",`^${h[d.LONETILDE]}${h[d.XRANGEPLAIN]}$`);y("TILDELOOSE",`^${h[d.LONETILDE]}${h[d.XRANGEPLAINLOOSE]}$`);y("LONECARET","(?:\\^)");y("CARETTRIM",`(\\s*)${h[d.LONECARET]}\\s+`,!0);C.caretTrimReplace="$1^";y("CARET",`^${h[d.LONECARET]}${h[d.XRANGEPLAIN]}$`);y("CARETLOOSE",`^${h[d.LONECARET]}${h[d.XRANGEPLAINLOOSE]}$`);y("COMPARATORLOOSE",`^${h[d.GTLT]}\\s*(${h[d.LOOSEPLAIN]})$|^$`);y("COMPARATOR",`^${h[d.GTLT]}\\s*(${h[d.FULLPLAIN]})$|^$`);y("COMPARATORTRIM",`(\\s*)${h[d.GTLT]}\\s*(${h[d.LOOSEPLAIN]}|${h[d.XRANGEPLAIN]})`,!0);C.comparatorTrimReplace="$1$2$3";y("HYPHENRANGE",`^\\s*(${h[d.XRANGEPLAIN]})\\s+-\\s+(${h[d.XRANGEPLAIN]})\\s*$`);y("HYPHENRANGELOOSE",`^\\s*(${h[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${h[d.XRANGEPLAINLOOSE]})\\s*$`);y("STAR","(<|>)?=?\\s*\\*");y("GTE0","^\\s*>=\\s*0.0.0\\s*$");y("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var oe=c((Sc,en)=>{var Mo=["includePrerelease","loose","rtl"],Uo=r=>r?typeof r!="object"?{loose:!0}:Mo.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};en.exports=Uo});var Ce=c(($c,nn)=>{var rn=/^[0-9]+$/,tn=(r,e)=>{let t=rn.test(r),n=rn.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:rtn(e,r);nn.exports={compareIdentifiers:tn,rcompareIdentifiers:Xo}});var R=c((wc,un)=>{var Ge=ie(),{MAX_LENGTH:sn,MAX_SAFE_INTEGER:je}=se(),{re:on,t:an}=M(),Fo=oe(),{compareIdentifiers:ae}=Ce(),T=class{constructor(e,t){if(t=Fo(t),e instanceof T){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>sn)throw new TypeError(`version is longer than ${sn} characters`);Ge("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?on[an.LOOSE]:on[an.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>je||this.major<0)throw new TypeError("Invalid major version");if(this.minor>je||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>je||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let i=+s;if(i>=0&&i=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);n===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};un.exports=T});var U=c((qc,pn)=>{var{MAX_LENGTH:Ho}=se(),{re:ln,t:cn}=M(),fn=R(),Bo=oe(),Vo=(r,e)=>{if(e=Bo(e),r instanceof fn)return r;if(typeof r!="string"||r.length>Ho||!(e.loose?ln[cn.LOOSE]:ln[cn.FULL]).test(r))return null;try{return new fn(r,e)}catch{return null}};pn.exports=Vo});var dn=c((Ic,hn)=>{var ko=U(),Yo=(r,e)=>{let t=ko(r,e);return t?t.version:null};hn.exports=Yo});var vn=c((Lc,gn)=>{var zo=U(),Jo=(r,e)=>{let t=zo(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};gn.exports=Jo});var yn=c((Dc,En)=>{var Ko=R(),Wo=(r,e,t,n)=>{typeof t=="string"&&(n=t,t=void 0);try{return new Ko(r,t).inc(e,n).version}catch{return null}};En.exports=Wo});var P=c((Cc,On)=>{var mn=R(),Zo=(r,e,t)=>new mn(r,t).compare(new mn(e,t));On.exports=Zo});var Me=c((Gc,bn)=>{var Qo=P(),ea=(r,e,t)=>Qo(r,e,t)===0;bn.exports=ea});var An=c((jc,Rn)=>{var _n=U(),ra=Me(),ta=(r,e)=>{if(ra(r,e))return null;{let t=_n(r),n=_n(e),s=t.prerelease.length||n.prerelease.length,i=s?"pre":"",o=s?"prerelease":"";for(let u in t)if((u==="major"||u==="minor"||u==="patch")&&t[u]!==n[u])return i+u;return o}};Rn.exports=ta});var xn=c((Mc,Nn)=>{var na=R(),sa=(r,e)=>new na(r,e).major;Nn.exports=sa});var Pn=c((Uc,Tn)=>{var ia=R(),oa=(r,e)=>new ia(r,e).minor;Tn.exports=oa});var $n=c((Xc,Sn)=>{var aa=R(),ua=(r,e)=>new aa(r,e).patch;Sn.exports=ua});var qn=c((Fc,wn)=>{var la=U(),ca=(r,e)=>{let t=la(r,e);return t&&t.prerelease.length?t.prerelease:null};wn.exports=ca});var Ln=c((Hc,In)=>{var fa=P(),pa=(r,e,t)=>fa(e,r,t);In.exports=pa});var Cn=c((Bc,Dn)=>{var ha=P(),da=(r,e)=>ha(r,e,!0);Dn.exports=da});var Ue=c((Vc,jn)=>{var Gn=R(),ga=(r,e,t)=>{let n=new Gn(r,t),s=new Gn(e,t);return n.compare(s)||n.compareBuild(s)};jn.exports=ga});var Un=c((kc,Mn)=>{var va=Ue(),Ea=(r,e)=>r.sort((t,n)=>va(t,n,e));Mn.exports=Ea});var Fn=c((Yc,Xn)=>{var ya=Ue(),ma=(r,e)=>r.sort((t,n)=>ya(n,t,e));Xn.exports=ma});var ue=c((zc,Hn)=>{var Oa=P(),ba=(r,e,t)=>Oa(r,e,t)>0;Hn.exports=ba});var Xe=c((Jc,Bn)=>{var _a=P(),Ra=(r,e,t)=>_a(r,e,t)<0;Bn.exports=Ra});var qr=c((Kc,Vn)=>{var Aa=P(),Na=(r,e,t)=>Aa(r,e,t)!==0;Vn.exports=Na});var Fe=c((Wc,kn)=>{var xa=P(),Ta=(r,e,t)=>xa(r,e,t)>=0;kn.exports=Ta});var He=c((Zc,Yn)=>{var Pa=P(),Sa=(r,e,t)=>Pa(r,e,t)<=0;Yn.exports=Sa});var Ir=c((Qc,zn)=>{var $a=Me(),wa=qr(),qa=ue(),Ia=Fe(),La=Xe(),Da=He(),Ca=(r,e,t,n)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return $a(r,t,n);case"!=":return wa(r,t,n);case">":return qa(r,t,n);case">=":return Ia(r,t,n);case"<":return La(r,t,n);case"<=":return Da(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};zn.exports=Ca});var Kn=c((ef,Jn)=>{var Ga=R(),ja=U(),{re:Be,t:Ve}=M(),Ma=(r,e)=>{if(r instanceof Ga)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(Be[Ve.COERCE]);else{let n;for(;(n=Be[Ve.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||n.index+n[0].length!==t.index+t[0].length)&&(t=n),Be[Ve.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;Be[Ve.COERCERTL].lastIndex=-1}return t===null?null:ja(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Jn.exports=Ma});var Zn=c((rf,Wn)=>{"use strict";Wn.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var es=c((tf,Qn)=>{"use strict";Qn.exports=m;m.Node=X;m.create=m;function m(r){var e=this;if(e instanceof m||(e=new m),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(s){e.push(s)});else if(arguments.length>0)for(var t=0,n=arguments.length;t1)t=e;else if(this.head)n=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var s=0;n!==null;s++)t=r(t,n.value,s),n=n.next;return t};m.prototype.reduceReverse=function(r,e){var t,n=this.tail;if(arguments.length>1)t=e;else if(this.tail)n=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var s=this.length-1;n!==null;s--)t=r(t,n.value,s),n=n.prev;return t};m.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};m.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};m.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new m;if(ethis.length&&(e=this.length);for(var n=0,s=this.head;s!==null&&nthis.length&&(e=this.length);for(var n=this.length,s=this.tail;s!==null&&n>e;n--)s=s.prev;for(;s!==null&&n>r;n--,s=s.prev)t.push(s.value);return t};m.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var n=0,s=this.head;s!==null&&n{"use strict";var Ha=es(),F=Symbol("max"),L=Symbol("length"),Y=Symbol("lengthCalculator"),ce=Symbol("allowStale"),H=Symbol("maxAge"),I=Symbol("dispose"),rs=Symbol("noDisposeOnSet"),b=Symbol("lruList"),$=Symbol("cache"),ns=Symbol("updateAgeOnGet"),Lr=()=>1,ss=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[F]=e.max||1/0,n=e.length||Lr;if(this[Y]=typeof n!="function"?Lr:n,this[ce]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[H]=e.maxAge||0,this[I]=e.dispose,this[rs]=e.noDisposeOnSet||!1,this[ns]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[F]=e||1/0,le(this)}get max(){return this[F]}set allowStale(e){this[ce]=!!e}get allowStale(){return this[ce]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[H]=e,le(this)}get maxAge(){return this[H]}set lengthCalculator(e){typeof e!="function"&&(e=Lr),e!==this[Y]&&(this[Y]=e,this[L]=0,this[b].forEach(t=>{t.length=this[Y](t.value,t.key),this[L]+=t.length})),le(this)}get lengthCalculator(){return this[Y]}get length(){return this[L]}get itemCount(){return this[b].length}rforEach(e,t){t=t||this;for(let n=this[b].tail;n!==null;){let s=n.prev;ts(this,e,n,t),n=s}}forEach(e,t){t=t||this;for(let n=this[b].head;n!==null;){let s=n.next;ts(this,e,n,t),n=s}}keys(){return this[b].toArray().map(e=>e.key)}values(){return this[b].toArray().map(e=>e.value)}reset(){this[I]&&this[b]&&this[b].length&&this[b].forEach(e=>this[I](e.key,e.value)),this[$]=new Map,this[b]=new Ha,this[L]=0}dump(){return this[b].map(e=>ke(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[b]}set(e,t,n){if(n=n||this[H],n&&typeof n!="number")throw new TypeError("maxAge must be a number");let s=n?Date.now():0,i=this[Y](t,e);if(this[$].has(e)){if(i>this[F])return z(this,this[$].get(e)),!1;let l=this[$].get(e).value;return this[I]&&(this[rs]||this[I](e,l.value)),l.now=s,l.maxAge=n,l.value=t,this[L]+=i-l.length,l.length=i,this.get(e),le(this),!0}let o=new is(e,t,i,s,n);return o.length>this[F]?(this[I]&&this[I](e,t),!1):(this[L]+=o.length,this[b].unshift(o),this[$].set(e,this[b].head),le(this),!0)}has(e){if(!this[$].has(e))return!1;let t=this[$].get(e).value;return!ke(this,t)}get(e){return Dr(this,e,!0)}peek(e){return Dr(this,e,!1)}pop(){let e=this[b].tail;return e?(z(this,e),e.value):null}del(e){z(this,this[$].get(e))}load(e){this.reset();let t=Date.now();for(let n=e.length-1;n>=0;n--){let s=e[n],i=s.e||0;if(i===0)this.set(s.k,s.v);else{let o=i-t;o>0&&this.set(s.k,s.v,o)}}}prune(){this[$].forEach((e,t)=>Dr(this,t,!1))}},Dr=(r,e,t)=>{let n=r[$].get(e);if(n){let s=n.value;if(ke(r,s)){if(z(r,n),!r[ce])return}else t&&(r[ns]&&(n.value.now=Date.now()),r[b].unshiftNode(n));return s.value}},ke=(r,e)=>{if(!e||!e.maxAge&&!r[H])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[H]&&t>r[H]},le=r=>{if(r[L]>r[F])for(let e=r[b].tail;r[L]>r[F]&&e!==null;){let t=e.prev;z(r,e),e=t}},z=(r,e)=>{if(e){let t=e.value;r[I]&&r[I](t.key,t.value),r[L]-=t.length,r[$].delete(t.key),r[b].removeNode(e)}},is=class{constructor(e,t,n,s,i){this.key=e,this.value=t,this.length=n,this.now=s,this.maxAge=i||0}},ts=(r,e,t,n)=>{let s=t.value;ke(r,s)&&(z(r,t),r[ce]||(s=void 0)),s&&e.call(n,s.value,s.key,r)};os.exports=ss});var S=c((sf,fs)=>{var J=class{constructor(e,t){if(t=Va(t),e instanceof J)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new J(e.raw,t);if(e instanceof Cr)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(s=>!ls(s[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let s of this.set)if(s.length===1&&Ka(s[0])){this.set=[s];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let n=`parseRange:${Object.keys(this.options).join(",")}:${e}`,s=us.get(n);if(s)return s;let i=this.options.loose,o=i?A[_.HYPHENRANGELOOSE]:A[_.HYPHENRANGE];e=e.replace(o,ou(this.options.includePrerelease)),O("hyphen replace",e),e=e.replace(A[_.COMPARATORTRIM],Ya),O("comparator trim",e,A[_.COMPARATORTRIM]),e=e.replace(A[_.TILDETRIM],za),e=e.replace(A[_.CARETTRIM],Ja),e=e.split(/\s+/).join(" ");let u=i?A[_.COMPARATORLOOSE]:A[_.COMPARATOR],l=e.split(" ").map(f=>Wa(f,this.options)).join(" ").split(/\s+/).map(f=>iu(f,this.options)).filter(this.options.loose?f=>!!f.match(u):()=>!0).map(f=>new Cr(f,this.options)),v=l.length,a=new Map;for(let f of l){if(ls(f))return[f];a.set(f.value,f)}a.size>1&&a.has("")&&a.delete("");let g=[...a.values()];return us.set(n,g),g}intersects(e,t){if(!(e instanceof J))throw new TypeError("a Range is required");return this.set.some(n=>cs(n,t)&&e.set.some(s=>cs(s,t)&&n.every(i=>s.every(o=>i.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new ka(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Ka=r=>r.value==="",cs=(r,e)=>{let t=!0,n=r.slice(),s=n.pop();for(;t&&n.length;)t=n.every(i=>s.intersects(i,e)),s=n.pop();return t},Wa=(r,e)=>(O("comp",r,e),r=eu(r,e),O("caret",r),r=Za(r,e),O("tildes",r),r=tu(r,e),O("xrange",r),r=su(r,e),O("stars",r),r),N=r=>!r||r.toLowerCase()==="x"||r==="*",Za=(r,e)=>r.trim().split(/\s+/).map(t=>Qa(t,e)).join(" "),Qa=(r,e)=>{let t=e.loose?A[_.TILDELOOSE]:A[_.TILDE];return r.replace(t,(n,s,i,o,u)=>{O("tilde",r,n,s,i,o,u);let l;return N(s)?l="":N(i)?l=`>=${s}.0.0 <${+s+1}.0.0-0`:N(o)?l=`>=${s}.${i}.0 <${s}.${+i+1}.0-0`:u?(O("replaceTilde pr",u),l=`>=${s}.${i}.${o}-${u} <${s}.${+i+1}.0-0`):l=`>=${s}.${i}.${o} <${s}.${+i+1}.0-0`,O("tilde return",l),l})},eu=(r,e)=>r.trim().split(/\s+/).map(t=>ru(t,e)).join(" "),ru=(r,e)=>{O("caret",r,e);let t=e.loose?A[_.CARETLOOSE]:A[_.CARET],n=e.includePrerelease?"-0":"";return r.replace(t,(s,i,o,u,l)=>{O("caret",r,s,i,o,u,l);let v;return N(i)?v="":N(o)?v=`>=${i}.0.0${n} <${+i+1}.0.0-0`:N(u)?i==="0"?v=`>=${i}.${o}.0${n} <${i}.${+o+1}.0-0`:v=`>=${i}.${o}.0${n} <${+i+1}.0.0-0`:l?(O("replaceCaret pr",l),i==="0"?o==="0"?v=`>=${i}.${o}.${u}-${l} <${i}.${o}.${+u+1}-0`:v=`>=${i}.${o}.${u}-${l} <${i}.${+o+1}.0-0`:v=`>=${i}.${o}.${u}-${l} <${+i+1}.0.0-0`):(O("no pr"),i==="0"?o==="0"?v=`>=${i}.${o}.${u}${n} <${i}.${o}.${+u+1}-0`:v=`>=${i}.${o}.${u}${n} <${i}.${+o+1}.0-0`:v=`>=${i}.${o}.${u} <${+i+1}.0.0-0`),O("caret return",v),v})},tu=(r,e)=>(O("replaceXRanges",r,e),r.split(/\s+/).map(t=>nu(t,e)).join(" ")),nu=(r,e)=>{r=r.trim();let t=e.loose?A[_.XRANGELOOSE]:A[_.XRANGE];return r.replace(t,(n,s,i,o,u,l)=>{O("xRange",r,n,s,i,o,u,l);let v=N(i),a=v||N(o),g=a||N(u),f=g;return s==="="&&f&&(s=""),l=e.includePrerelease?"-0":"",v?s===">"||s==="<"?n="<0.0.0-0":n="*":s&&f?(a&&(o=0),u=0,s===">"?(s=">=",a?(i=+i+1,o=0,u=0):(o=+o+1,u=0)):s==="<="&&(s="<",a?i=+i+1:o=+o+1),s==="<"&&(l="-0"),n=`${s+i}.${o}.${u}${l}`):a?n=`>=${i}.0.0${l} <${+i+1}.0.0-0`:g&&(n=`>=${i}.${o}.0${l} <${i}.${+o+1}.0-0`),O("xRange return",n),n})},su=(r,e)=>(O("replaceStars",r,e),r.trim().replace(A[_.STAR],"")),iu=(r,e)=>(O("replaceGTE0",r,e),r.trim().replace(A[e.includePrerelease?_.GTE0PRE:_.GTE0],"")),ou=r=>(e,t,n,s,i,o,u,l,v,a,g,f,p)=>(N(n)?t="":N(s)?t=`>=${n}.0.0${r?"-0":""}`:N(i)?t=`>=${n}.${s}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,N(v)?l="":N(a)?l=`<${+v+1}.0.0-0`:N(g)?l=`<${v}.${+a+1}.0-0`:f?l=`<=${v}.${a}.${g}-${f}`:r?l=`<${v}.${a}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),au=(r,e,t)=>{for(let n=0;n0){let s=r[n].semver;if(s.major===e.major&&s.minor===e.minor&&s.patch===e.patch)return!0}return!1}return!0}});var fe=c((of,vs)=>{var pe=Symbol("SemVer ANY"),he=class{static get ANY(){return pe}constructor(e,t){if(t=uu(t),e instanceof he){if(e.loose===!!t.loose)return e;e=e.value}jr("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===pe?this.value="":this.value=this.operator+this.semver.version,jr("comp",this)}parse(e){let t=this.options.loose?ps[hs.COMPARATORLOOSE]:ps[hs.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new ds(n[2],this.options.loose):this.semver=pe}toString(){return this.value}test(e){if(jr("Comparator.test",e,this.options.loose),this.semver===pe||e===pe)return!0;if(typeof e=="string")try{e=new ds(e,this.options)}catch{return!1}return Gr(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof he))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new gs(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new gs(this.value,t).test(e.semver);let n=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),s=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),i=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),u=Gr(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Gr(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||s||i&&o||u||l}};vs.exports=he;var uu=oe(),{re:ps,t:hs}=M(),Gr=Ir(),jr=ie(),ds=R(),gs=S()});var de=c((af,Es)=>{var lu=S(),cu=(r,e,t)=>{try{e=new lu(e,t)}catch{return!1}return e.test(r)};Es.exports=cu});var ms=c((uf,ys)=>{var fu=S(),pu=(r,e)=>new fu(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));ys.exports=pu});var bs=c((lf,Os)=>{var hu=R(),du=S(),gu=(r,e,t)=>{let n=null,s=null,i=null;try{i=new du(e,t)}catch{return null}return r.forEach(o=>{i.test(o)&&(!n||s.compare(o)===-1)&&(n=o,s=new hu(n,t))}),n};Os.exports=gu});var Rs=c((cf,_s)=>{var vu=R(),Eu=S(),yu=(r,e,t)=>{let n=null,s=null,i=null;try{i=new Eu(e,t)}catch{return null}return r.forEach(o=>{i.test(o)&&(!n||s.compare(o)===1)&&(n=o,s=new vu(n,t))}),n};_s.exports=yu});var xs=c((ff,Ns)=>{var Mr=R(),mu=S(),As=ue(),Ou=(r,e)=>{r=new mu(r,e);let t=new Mr("0.0.0");if(r.test(t)||(t=new Mr("0.0.0-0"),r.test(t)))return t;t=null;for(let n=0;n{let u=new Mr(o.semver.version);switch(o.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!i||As(u,i))&&(i=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!t||As(t,i))&&(t=i)}return t&&r.test(t)?t:null};Ns.exports=Ou});var Ps=c((pf,Ts)=>{var bu=S(),_u=(r,e)=>{try{return new bu(r,e).range||"*"}catch{return null}};Ts.exports=_u});var Ye=c((hf,qs)=>{var Ru=R(),ws=fe(),{ANY:Au}=ws,Nu=S(),xu=de(),Ss=ue(),$s=Xe(),Tu=He(),Pu=Fe(),Su=(r,e,t,n)=>{r=new Ru(r,n),e=new Nu(e,n);let s,i,o,u,l;switch(t){case">":s=Ss,i=Tu,o=$s,u=">",l=">=";break;case"<":s=$s,i=Pu,o=Ss,u="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xu(r,e,n))return!1;for(let v=0;v{p.semver===Au&&(p=new ws(">=0.0.0")),g=g||p,f=f||p,s(p.semver,g.semver,n)?g=p:o(p.semver,f.semver,n)&&(f=p)}),g.operator===u||g.operator===l||(!f.operator||f.operator===u)&&i(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};qs.exports=Su});var Ls=c((df,Is)=>{var $u=Ye(),wu=(r,e,t)=>$u(r,e,">",t);Is.exports=wu});var Cs=c((gf,Ds)=>{var qu=Ye(),Iu=(r,e,t)=>qu(r,e,"<",t);Ds.exports=Iu});var Ms=c((vf,js)=>{var Gs=S(),Lu=(r,e,t)=>(r=new Gs(r,t),e=new Gs(e,t),r.intersects(e));js.exports=Lu});var Xs=c((Ef,Us)=>{var Du=de(),Cu=P();Us.exports=(r,e,t)=>{let n=[],s=null,i=null,o=r.sort((a,g)=>Cu(a,g,t));for(let a of o)Du(a,e,t)?(i=a,s||(s=a)):(i&&n.push([s,i]),i=null,s=null);s&&n.push([s,null]);let u=[];for(let[a,g]of n)a===g?u.push(a):!g&&a===o[0]?u.push("*"):g?a===o[0]?u.push(`<=${g}`):u.push(`${a} - ${g}`):u.push(`>=${a}`);let l=u.join(" || "),v=typeof e.raw=="string"?e.raw:String(e);return l.length{var Fs=S(),ze=fe(),{ANY:Ur}=ze,ge=de(),Xr=P(),Gu=(r,e,t={})=>{if(r===e)return!0;r=new Fs(r,t),e=new Fs(e,t);let n=!1;e:for(let s of r.set){for(let i of e.set){let o=ju(s,i,t);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},ju=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===Ur){if(e.length===1&&e[0].semver===Ur)return!0;t.includePrerelease?r=[new ze(">=0.0.0-0")]:r=[new ze(">=0.0.0")]}if(e.length===1&&e[0].semver===Ur){if(t.includePrerelease)return!0;e=[new ze(">=0.0.0")]}let n=new Set,s,i;for(let p of r)p.operator===">"||p.operator===">="?s=Hs(s,p,t):p.operator==="<"||p.operator==="<="?i=Bs(i,p,t):n.add(p.semver);if(n.size>1)return null;let o;if(s&&i){if(o=Xr(s.semver,i.semver,t),o>0)return null;if(o===0&&(s.operator!==">="||i.operator!=="<="))return null}for(let p of n){if(s&&!ge(p,String(s),t)||i&&!ge(p,String(i),t))return null;for(let E of e)if(!ge(p,String(E),t))return!1;return!0}let u,l,v,a,g=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1,f=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1;g&&g.prerelease.length===1&&i.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(a=a||p.operator===">"||p.operator===">=",v=v||p.operator==="<"||p.operator==="<=",s){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(u=Hs(s,p,t),u===p&&u!==s)return!1}else if(s.operator===">="&&!ge(s.semver,String(p),t))return!1}if(i){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=Bs(i,p,t),l===p&&l!==i)return!1}else if(i.operator==="<="&&!ge(i.semver,String(p),t))return!1}if(!p.operator&&(i||s)&&o!==0)return!1}return!(s&&v&&!i&&o!==0||i&&a&&!s&&o!==0||f||g)},Hs=(r,e,t)=>{if(!r)return e;let n=Xr(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},Bs=(r,e,t)=>{if(!r)return e;let n=Xr(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};Vs.exports=Gu});var zs=c((mf,Ys)=>{var Fr=M();Ys.exports={re:Fr.re,src:Fr.src,tokens:Fr.t,SEMVER_SPEC_VERSION:se().SEMVER_SPEC_VERSION,SemVer:R(),compareIdentifiers:Ce().compareIdentifiers,rcompareIdentifiers:Ce().rcompareIdentifiers,parse:U(),valid:dn(),clean:vn(),inc:yn(),diff:An(),major:xn(),minor:Pn(),patch:$n(),prerelease:qn(),compare:P(),rcompare:Ln(),compareLoose:Cn(),compareBuild:Ue(),sort:Un(),rsort:Fn(),gt:ue(),lt:Xe(),eq:Me(),neq:qr(),gte:Fe(),lte:He(),cmp:Ir(),coerce:Kn(),Comparator:fe(),Range:S(),satisfies:de(),toComparators:ms(),maxSatisfying:bs(),minSatisfying:Rs(),minVersion:xs(),validRange:Ps(),outside:Ye(),gtr:Ls(),ltr:Cs(),intersects:Ms(),simplifyRange:Xs(),subset:ks()}});var Ks=c((Of,Js)=>{"use strict";var ve=class extends Error{constructor(e){super(ve._prepareSuperMessage(e));Object.defineProperty(this,"name",{value:"NonError",configurable:!0,writable:!0}),Error.captureStackTrace&&Error.captureStackTrace(this,ve)}static _prepareSuperMessage(e){try{return JSON.stringify(e)}catch{return String(e)}}},Mu=[{property:"name",enumerable:!1},{property:"message",enumerable:!1},{property:"stack",enumerable:!1},{property:"code",enumerable:!0}],Hr=({from:r,seen:e,to_:t,forceEnumerable:n})=>{let s=t||(Array.isArray(r)?[]:{});e.push(r);for(let[i,o]of Object.entries(r))if(typeof o!="function"){if(!o||typeof o!="object"){s[i]=o;continue}if(!e.includes(r[i])){s[i]=Hr({from:r[i],seen:e.slice(),forceEnumerable:n});continue}s[i]="[Circular]"}for(let{property:i,enumerable:o}of Mu)typeof r[i]=="string"&&Object.defineProperty(s,i,{value:r[i],enumerable:n?!0:o,configurable:!0,writable:!0});return s},Uu=r=>typeof r=="object"&&r!==null?Hr({from:r,seen:[],forceEnumerable:!0}):typeof r=="function"?`[Function: ${r.name||"anonymous"}]`:r,Xu=r=>{if(r instanceof Error)return r;if(typeof r=="object"&&r!==null&&!Array.isArray(r)){let e=new Error;return Hr({from:r,seen:[],to_:e}),e}return new ve(r)};Js.exports={serializeError:Uu,deserializeError:Xu}});var Ke=c(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.default=void 0;var Ws=Ks(),Fu=Re(),Hu=Bu(ne());function Bu(r){return r&&r.__esModule?r:{default:r}}var q=Hu.default.child({namespace:"Agent"}),Vu=0,Zs=class{constructor(e,t,n,s,i){this.fallbackAgent=s,this.isProxyConfigured=e,this.mustUrlUseProxy=t,this.getUrlProxy=n,this.socketConnectionTimeout=i}addRequest(e,t){let n;if(e.path.startsWith("http://")||e.path.startsWith("https://")?n=e.path:n=this.protocol+"//"+(t.hostname||t.host)+(t.port===80||t.port===443?"":":"+t.port)+e.path,!this.isProxyConfigured()){q.trace({destination:n},"not proxying request; GLOBAL_AGENT.HTTP_PROXY is not configured"),this.fallbackAgent.addRequest(e,t);return}if(!this.mustUrlUseProxy(n)){q.trace({destination:n},"not proxying request; url matches GLOBAL_AGENT.NO_PROXY"),this.fallbackAgent.addRequest(e,t);return}let s=Vu++,i=this.getUrlProxy(n);this.protocol==="http:"&&(e.path=n,i.authorization&&e.setHeader("proxy-authorization","Basic "+Buffer.from(i.authorization).toString("base64"))),q.trace({destination:n,proxy:"http://"+i.hostname+":"+i.port,requestId:s},"proxying request"),e.on("error",u=>{q.error({error:(0,Ws.serializeError)(u)},"request error")}),e.once("response",u=>{q.trace({headers:u.headers,requestId:s,statusCode:u.statusCode},"proxying response")}),e.shouldKeepAlive=!1;let o={host:t.hostname||t.host,port:t.port||80,proxy:i,tls:{}};this.protocol==="https:"&&(o.tls={ca:t.ca,cert:t.cert,ciphers:t.ciphers,clientCertEngine:t.clientCertEngine,crl:t.crl,dhparam:t.dhparam,ecdhCurve:t.ecdhCurve,honorCipherOrder:t.honorCipherOrder,key:t.key,passphrase:t.passphrase,pfx:t.pfx,rejectUnauthorized:t.rejectUnauthorized,secureOptions:t.secureOptions,secureProtocol:t.secureProtocol,servername:t.servername||o.host,sessionIdContext:t.sessionIdContext},typeof process.env.NODE_TLS_REJECT_UNAUTHORIZED=="string"&&(0,Fu.boolean)(process.env.NODE_TLS_REJECT_UNAUTHORIZED)===!1&&(o.tls.rejectUnauthorized=!1)),this.createConnection(o,(u,l)=>{q.trace({target:o},"connecting"),l&&(l.setTimeout(this.socketConnectionTimeout,()=>{l.destroy()}),l.once("connect",()=>{q.trace({target:o},"connected"),l.setTimeout(0)}),l.once("secureConnect",()=>{q.trace({target:o},"connected (secure)"),l.setTimeout(0)})),u?e.emit("error",u):(q.debug("created socket"),l.on("error",v=>{q.error({error:(0,Ws.serializeError)(v)},"socket error")}),e.onSocket(l))})}},ku=Zs;Je.default=ku});var ri=c(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var Yu=Qs(require("net")),zu=Qs(Ke());function Qs(r){return r&&r.__esModule?r:{default:r}}var ei=class extends zu.default{constructor(...e){super(...e);this.protocol="http:",this.defaultPort=80}createConnection(e,t){let n=Yu.default.connect(e.proxy.port,e.proxy.hostname);t(null,n)}},Ju=ei;We.default=Ju});var ni=c(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var Ku=Br(require("net")),Wu=Br(require("tls")),Zu=Br(Ke());function Br(r){return r&&r.__esModule?r:{default:r}}var ti=class extends Zu.default{constructor(...e){super(...e);this.protocol="https:",this.defaultPort=443}createConnection(e,t){let n=Ku.default.connect(e.proxy.port,e.proxy.hostname);n.on("error",i=>{t(i)}),n.once("data",()=>{let i=Wu.default.connect(rt(w({},e.tls),{socket:n}));t(null,i)});let s="";s+="CONNECT "+e.host+":"+e.port+` HTTP/1.1\r +`,s+="Host: "+e.host+":"+e.port+`\r +`,e.proxy.authorization&&(s+="Proxy-Authorization: Basic "+Buffer.from(e.proxy.authorization).toString("base64")+`\r +`),s+=`\r +`,n.write(s)}},Qu=ti;Ze.default=Qu});var si=c(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Object.defineProperty(Ee,"Agent",{enumerable:!0,get:function(){return el.default}});Object.defineProperty(Ee,"HttpProxyAgent",{enumerable:!0,get:function(){return rl.default}});Object.defineProperty(Ee,"HttpsProxyAgent",{enumerable:!0,get:function(){return tl.default}});var el=Vr(Ke()),rl=Vr(ri()),tl=Vr(ni());function Vr(r){return r&&r.__esModule?r:{default:r}}});var ai=c((Qe,oi)=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});function nl(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function ii(r,e){if(!r)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:r}function sl(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(r,e):r.__proto__=e)}function il(r){function e(){r.apply(this,arguments)}return e.prototype=Object.create(r.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r,e}var ol=function(r){sl(e,r);function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";nl(this,e);var n=ii(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return Object.defineProperty(n,"message",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(n,"name",{configurable:!0,enumerable:!1,value:n.constructor.name,writable:!0}),Error.hasOwnProperty("captureStackTrace")?(Error.captureStackTrace(n,n.constructor),ii(n)):(Object.defineProperty(n,"stack",{configurable:!0,enumerable:!1,value:new Error(t).stack,writable:!0}),n)}return e}(il(Error));Qe.default=ol;oi.exports=Qe.default});var rr=c(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.UnexpectedStateError=void 0;var al=ul(ai());function ul(r){return r&&r.__esModule?r:{default:r}}var ui=class extends al.default{constructor(e,t="UNEXPECTED_STATE_ERROR"){super(e);this.code=t}};er.UnexpectedStateError=ui});var ci=c(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.default=void 0;var ll=li(require("http")),cl=li(require("https"));function li(r){return r&&r.__esModule?r:{default:r}}var fl=(r,e,t)=>(...n)=>{let s,i,o;return typeof n[0]=="string"||n[0]instanceof URL?(s=n[0],typeof n[1]=="function"?(i={},o=n[1]):(i=w({},n[1]),o=n[2])):(i=w({},n[0]),o=n[1]),t?i.agent=e:(i.agent||(i.agent=e),(i.agent===ll.default.globalAgent||i.agent===cl.default.globalAgent)&&(i.agent=e)),s?r(s,i,o):r(i,o)},pl=fl;tr.default=pl});var pi=c((Tf,fi)=>{"use strict";fi.exports=r=>{if(typeof r!="string")throw new TypeError("Expected a string");return r.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}});var di=c((Pf,Yr)=>{"use strict";var hl=pi(),kr=new Map;function hi(r,e){e=w({caseSensitive:!1},e);let t=r+JSON.stringify(e);if(kr.has(t))return kr.get(t);let n=r[0]==="!";n&&(r=r.slice(1)),r=hl(r).replace(/\\\*/g,"[\\s\\S]*");let s=new RegExp(`^${r}$`,e.caseSensitive?"":"i");return s.negated=n,kr.set(t,s),s}Yr.exports=(r,e,t)=>{if(!(Array.isArray(r)&&Array.isArray(e)))throw new TypeError(`Expected two arrays, got ${typeof r} ${typeof e}`);if(e.length===0)return r;let n=e[0][0]==="!";e=e.map(i=>hi(i,t));let s=[];for(let i of r){let o=n;for(let u of e)u.test(i)&&(o=!u.negated);o&&s.push(i)}return s};Yr.exports.isMatch=(r,e,t)=>{let n=Array.isArray(r)?r:[r],s=Array.isArray(e)?e:[e];return n.some(i=>s.every(o=>{let u=hi(o,t),l=u.test(i);return u.negated?!l:l}))}});var vi=c(nr=>{"use strict";Object.defineProperty(nr,"__esModule",{value:!0});nr.default=void 0;var dl=require("url"),gl=vl(di()),gi=rr();function vl(r){return r&&r.__esModule?r:{default:r}}var El=(r,e)=>{let t=(0,dl.parse)(r),n=e.split(/[\s,]+/);for(let s of n){let i=s.replace(/^(?\.)/,"*").match(/^(?.+?)(?::(?\d+))?$/);if(!i||!i.groups)throw new gi.UnexpectedStateError("Invalid NO_PROXY pattern.");if(!i.groups.hostname)throw new gi.UnexpectedStateError("NO_PROXY entry pattern must include hostname. Use * to match any hostname.");if(gl.default.isMatch(t.hostname,i.groups.hostname)&&(!i.groups||!i.groups.port||t.port&&t.port===i.groups.port))return!0}return!1},yl=El;nr.default=yl});var Ei=c(sr=>{"use strict";Object.defineProperty(sr,"__esModule",{value:!0});sr.default=void 0;var ml=require("url"),zr=rr(),Ol=r=>{let e=(0,ml.parse)(r);if(e.query!==null)throw new zr.UnexpectedStateError("Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.");if(e.hash!==null)throw new zr.UnexpectedStateError("Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.");if(e.protocol!=="http:")throw new zr.UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be "http:".');let t=80;return e.port&&(t=Number.parseInt(e.port,10)),{authorization:e.auth||null,hostname:e.hostname,port:t}},bl=Ol;sr.default=bl});var yi=c(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});Object.defineProperty(ye,"bindHttpMethod",{enumerable:!0,get:function(){return _l.default}});Object.defineProperty(ye,"isUrlMatchingNoProxy",{enumerable:!0,get:function(){return Rl.default}});Object.defineProperty(ye,"parseProxyUrl",{enumerable:!0,get:function(){return Al.default}});var _l=Jr(ci()),Rl=Jr(vi()),Al=Jr(Ei());function Jr(r){return r&&r.__esModule?r:{default:r}}});var Kr=c(ir=>{"use strict";Object.defineProperty(ir,"__esModule",{value:!0});ir.default=void 0;var Nl=xl(ne());function xl(r){return r&&r.__esModule?r:{default:r}}var Tl=Nl.default.child({namespace:"createProxyController"}),Pl=["HTTP_PROXY","HTTPS_PROXY","NO_PROXY"],Sl=()=>new Proxy({HTTP_PROXY:null,HTTPS_PROXY:null,NO_PROXY:null},{set:(r,e,t)=>{if(!Pl.includes(e))throw new Error('Cannot set an unmapped property "'+e+'".');return r[e]=t,Tl.info({change:{name:e,value:t},newConfiguration:r},"configuration changed"),!0}}),$l=Sl;ir.default=$l});var Ri=c(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});or.default=void 0;var W=me(require("http")),Z=me(require("https")),wl=Re(),mi=me(zs()),ql=me(ne()),Oi=si(),Il=rr(),K=yi(),Ll=me(Kr());function me(r){return r&&r.__esModule?r:{default:r}}var Dl=W.default.get,Cl=W.default.request,Gl=Z.default.get,jl=Z.default.request,bi=ql.default.child({namespace:"createGlobalProxyAgent"}),_i={environmentVariableNamespace:void 0,forceGlobalAgent:void 0,socketConnectionTimeout:6e4},Ml=r=>{let e=Object.keys(r),t={};for(let n of e){let s=r[n];s!==void 0&&(t[n]=s)}return t},Ul=r=>{let e=process.env,t={environmentVariableNamespace:typeof e.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE=="string"?e.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE:"GLOBAL_AGENT_",forceGlobalAgent:typeof e.GLOBAL_AGENT_FORCE_GLOBAL_AGENT=="string"?(0,wl.boolean)(e.GLOBAL_AGENT_FORCE_GLOBAL_AGENT):!0,socketConnectionTimeout:typeof e.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT=="string"?Number.parseInt(e.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT,10):_i.socketConnectionTimeout};return w(w({},t),Ml(r))},Xl=(r=_i)=>{let e=Ul(r),t=(0,Ll.default)();t.HTTP_PROXY=process.env[e.environmentVariableNamespace+"HTTP_PROXY"]||null,t.HTTPS_PROXY=process.env[e.environmentVariableNamespace+"HTTPS_PROXY"]||null,t.NO_PROXY=process.env[e.environmentVariableNamespace+"NO_PROXY"]||null,bi.info({configuration:e,state:t},"global agent has been initialized");let n=g=>f=>g()?t.NO_PROXY?!(0,K.isUrlMatchingNoProxy)(f,t.NO_PROXY):!0:!1,s=g=>()=>{let f=g();if(!f)throw new Il.UnexpectedStateError("HTTP(S) proxy must be configured.");return(0,K.parseProxyUrl)(f)},i=()=>t.HTTP_PROXY,o=class extends Oi.HttpProxyAgent{constructor(){super(()=>i(),n(i),s(i),W.default.globalAgent,e.socketConnectionTimeout)}},u=new o,l=()=>t.HTTPS_PROXY||t.HTTP_PROXY,v=class extends Oi.HttpsProxyAgent{constructor(){super(()=>l(),n(l),s(l),Z.default.globalAgent,e.socketConnectionTimeout)}},a=new v;return mi.default.gte(process.version,"v11.7.0")&&(W.default.globalAgent=u,Z.default.globalAgent=a),mi.default.gte(process.version,"v10.0.0")?(W.default.get=(0,K.bindHttpMethod)(Dl,u,e.forceGlobalAgent),W.default.request=(0,K.bindHttpMethod)(Cl,u,e.forceGlobalAgent),Z.default.get=(0,K.bindHttpMethod)(Gl,a,e.forceGlobalAgent),Z.default.request=(0,K.bindHttpMethod)(jl,a,e.forceGlobalAgent)):bi.warn("attempt to initialize global-agent in unsupported Node.js version was ignored"),t},Fl=Xl;or.default=Fl});var Wr=c(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});Object.defineProperty(ar,"createGlobalProxyAgent",{enumerable:!0,get:function(){return Hl.default}});Object.defineProperty(ar,"createProxyController",{enumerable:!0,get:function(){return Bl.default}});var Hl=Ai(Ri()),Bl=Ai(Kr());function Ai(r){return r&&r.__esModule?r:{default:r}}});var Ni=c(ur=>{"use strict";Object.defineProperty(ur,"__esModule",{value:!0});ur.default=void 0;var Vl=Yl(ne()),kl=Wr();function Yl(r){return r&&r.__esModule?r:{default:r}}var zl=Vl.default.child({namespace:"bootstrap"}),Jl=r=>global.GLOBAL_AGENT?(zl.warn("found global.GLOBAL_AGENT; second attempt to bootstrap global-agent was ignored"),!1):(global.GLOBAL_AGENT=(0,kl.createGlobalProxyAgent)(r),!0),Kl=Jl;ur.default=Kl});var xi=c(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Object.defineProperty(Zr,"bootstrap",{enumerable:!0,get:function(){return Wl.default}});var Wl=Zl(Ni());function Zl(r){return r&&r.__esModule?r:{default:r}}});var Ti=c(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});Object.defineProperty(lr,"bootstrap",{enumerable:!0,get:function(){return Ql.bootstrap}});Object.defineProperty(lr,"createGlobalProxyAgent",{enumerable:!0,get:function(){return ec.createGlobalProxyAgent}});var Ql=xi(),ec=Wr()});var Pi="EnableGlobalProxyEnvironmentVariable",rc=r=>/\s/.test(r)?JSON.stringify(r):r;if(globalThis.process!=null&&globalThis.process.env[Pi]){let{bootstrap:r}=Ti();r()}var tc={name:"@ArTs/plugin-http-proxy",factory:function(){return{hooks:{setupScriptEnvironment:function(r,e){let t=e.NODE_OPTIONS||"",n=`--require ${rc(__filename)}`;return t=t?`${n} ${t}`:n,e.NODE_OPTIONS=t,e[Pi]="true",e.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE="",Promise.resolve()}}}}};module.exports=tc; +//# sourceMappingURL=index.cjs.map diff --git a/.yarn/releases/yarn-3.5.1.cjs b/.yarn/releases/yarn-3.5.1.cjs new file mode 100755 index 0000000..97eed75 --- /dev/null +++ b/.yarn/releases/yarn-3.5.1.cjs @@ -0,0 +1,873 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Sge=Object.create;var lS=Object.defineProperty;var vge=Object.getOwnPropertyDescriptor;var xge=Object.getOwnPropertyNames;var Pge=Object.getPrototypeOf,Dge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var kge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Rge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of xge(e))!Dge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=vge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Sge(Pge(r)):{},Rge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var vU=w((j7e,SU)=>{SU.exports=bU;bU.sync=$ge;var BU=J("fs");function _ge(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{kU.exports=PU;PU.sync=efe;var xU=J("fs");function PU(r,e,t){xU.stat(r,function(i,n){t(i,i?!1:DU(n,e))})}function efe(r,e){return DU(xU.statSync(r),e)}function DU(r,e){return r.isFile()&&tfe(r,e)}function tfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var NU=w((W7e,FU)=>{var J7e=J("fs"),lI;process.platform==="win32"||global.TESTING_WINDOWS?lI=vU():lI=RU();FU.exports=SS;SS.sync=rfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}lI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function rfe(r,e){try{return lI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var HU=w((z7e,KU)=>{var Dg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",LU=J("path"),ife=Dg?";":":",TU=NU(),OU=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),MU=(r,e)=>{let t=e.colon||ife,i=r.match(/\//)||Dg&&r.match(/\\/)?[""]:[...Dg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Dg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Dg?n.split(t):[""];return Dg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},UU=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=MU(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(OU(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=LU.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];TU(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},nfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=MU(r,e),s=[];for(let o=0;o{"use strict";var GU=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=GU;vS.exports.default=GU});var WU=w((X7e,JU)=>{"use strict";var jU=J("path"),sfe=HU(),ofe=YU();function qU(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=sfe.sync(r.command,{path:t[ofe({env:t})],pathExt:e?jU.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=jU.resolve(n?r.options.cwd:"",o)),o}function afe(r){return qU(r)||qU(r,!0)}JU.exports=afe});var zU=w((Z7e,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function Afe(r){return r=r.replace(xS,"^$1"),r}function lfe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=Afe;PS.exports.argument=lfe});var XU=w((_7e,VU)=>{"use strict";VU.exports=/^#!(.*)/});var _U=w(($7e,ZU)=>{"use strict";var cfe=XU();ZU.exports=(r="")=>{let e=r.match(cfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var eK=w((eZe,$U)=>{"use strict";var DS=J("fs"),ufe=_U();function gfe(r){let t=Buffer.alloc(150),i;try{i=DS.openSync(r,"r"),DS.readSync(i,t,0,150,0),DS.closeSync(i)}catch{}return ufe(t.toString())}$U.exports=gfe});var nK=w((tZe,iK)=>{"use strict";var ffe=J("path"),tK=WU(),rK=zU(),hfe=eK(),pfe=process.platform==="win32",dfe=/\.(?:com|exe)$/i,Cfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function mfe(r){r.file=tK(r);let e=r.file&&hfe(r.file);return e?(r.args.unshift(r.file),r.command=e,tK(r)):r.file}function Efe(r){if(!pfe)return r;let e=mfe(r),t=!dfe.test(e);if(r.options.forceShell||t){let i=Cfe.test(e);r.command=ffe.normalize(r.command),r.command=rK.command(r.command),r.args=r.args.map(s=>rK.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function Ife(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Efe(i)}iK.exports=Ife});var aK=w((rZe,oK)=>{"use strict";var kS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function yfe(r,e){if(!kS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=sK(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function sK(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawn"):null}function wfe(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}oK.exports={hookChildProcess:yfe,verifyENOENT:sK,verifyENOENTSync:wfe,notFoundError:RS}});var LS=w((iZe,kg)=>{"use strict";var AK=J("child_process"),FS=nK(),NS=aK();function lK(r,e,t){let i=FS(r,e,t),n=AK.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Bfe(r,e,t){let i=FS(r,e,t),n=AK.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}kg.exports=lK;kg.exports.spawn=lK;kg.exports.sync=Bfe;kg.exports._parse=FS;kg.exports._enoent=NS});var uK=w((nZe,cK)=>{"use strict";function Qfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Zl)}Qfe(Zl,Error);Zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",_e=me(">&",!1),Pt=">",It=me(">",!1),Or="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Us=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ii="$'",rs=me("$'",!1),ga="'",dA=me("'",!1),cg=function(m){return[{type:"text",text:m}]},is='""',CA=me('""',!1),fa=function(){return{type:"text",text:""}},wp='"',mA=me('"',!1),EA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Ll=function(m){return{type:"shell",shell:m,quoted:!0}},ug=function(m){return{type:"variable",...m,quoted:!0}},Io=function(m){return{type:"text",text:m}},gg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Bp=function(m){return{type:"shell",shell:m,quoted:!1}},Qp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,yo=Je(["'"],!0,!1),Rn=function(m){return m.join("")},fg=/^[^$"]/,Qt=Je(["$",'"'],!0,!1),Tl=`\\ +`,Fn=me(`\\ +`,!1),ns=function(){return""},ss="\\",gt=me("\\",!1),wo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),An=function(m){return m},S="\\a",Tt=me("\\a",!1),hg=function(){return"a"},Ol="\\b",bp=me("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Je(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),IA=function(){return"\f"},Wi="\\n",Ml=me("\\n",!1),Xe=function(){return` +`},ha="\\r",pg=me("\\r",!1),OE=function(){return"\r"},Dp="\\t",ME=me("\\t",!1),ar=function(){return" "},Nn="\\v",Ul=me("\\v",!1),kp=function(){return"\v"},Ks=/^[\\'"?]/,pa=Je(["\\","'",'"',"?"],!1,!1),ln=function(m){return String.fromCharCode(parseInt(m,16))},Te="\\x",dg=me("\\x",!1),Kl="\\u",Hs=me("\\u",!1),Hl="\\U",yA=me("\\U",!1),Cg=function(m){return String.fromCodePoint(parseInt(m,16))},mg=/^[0-7]/,da=Je([["0","7"]],!1,!1),Ca=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),wA="-",Gl=me("-",!1),Gs="+",Yl=me("+",!1),UE=".",Rp=me(".",!1),Eg=function(m,b,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(b.join("")+"."+N.join(""))}},Fp=function(m,b){return{type:"number",value:(m==="-"?-1:1)*parseInt(b.join(""))}},KE=function(m){return{type:"variable",...m}},jl=function(m){return{type:"variable",name:m}},HE=function(m){return m},Ig="*",BA=me("*",!1),Rr="/",GE=me("/",!1),Ys=function(m,b,N){return{type:b==="*"?"multiplication":"division",right:N}},js=function(m,b){return b.reduce((N,K)=>({left:N,...K}),m)},yg=function(m,b,N){return{type:b==="+"?"addition":"subtraction",right:N}},QA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ue=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Ln=me("${",!1),Jb=":-",P1=me(":-",!1),D1=function(m,b){return{name:m,defaultValue:b}},Wb=":-}",k1=me(":-}",!1),R1=function(m){return{name:m,defaultValue:[]}},zb=":+",F1=me(":+",!1),N1=function(m,b){return{name:m,alternativeValue:b}},Vb=":+}",L1=me(":+}",!1),T1=function(m){return{name:m,alternativeValue:[]}},Xb=function(m){return{name:m}},O1="$",M1=me("$",!1),U1=function(m){return e.isGlobPattern(m)},K1=function(m){return m},Zb=/^[a-zA-Z0-9_]/,_b=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return T()},eS=/^[$@*?#a-zA-Z0-9_\-]/,tS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),H1=/^[(){}<>$|&; \t"']/,wg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,iS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),YE=/^[ \t]/,jE=Je([" "," "],!1,!1),Q=0,Me=0,bA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function T(){return r.substring(Me,Q)}function Z(){return Et(Me,Q)}function te(m,b){throw b=b!==void 0?b:Et(Me,Q),Ri([lt(m)],r.substring(Me,Q),b)}function we(m,b){throw b=b!==void 0?b:Et(Me,Q),Tn(m,b)}function me(m,b){return{type:"literal",text:m,ignoreCase:b}}function Je(m,b,N){return{type:"class",parts:m,inverted:b,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var b=bA[m],N;if(b)return b;for(N=m-1;!bA[N];)N--;for(b=bA[N],b={line:b.line,column:b.column};Nd&&(d=Q,E=[]),E.push(m))}function Tn(m,b){return new Zl(m,null,null,b)}function Ri(m,b,N){return new Zl(Zl.buildMessage(m,b),m,b,N)}function SA(){var m,b;return m=Q,b=Mr(),b===t&&(b=null),b!==t&&(Me=m,b=s(b)),m=b,m}function Mr(){var m,b,N,K,ce;if(m=Q,b=Ur(),b!==t){for(N=[],K=He();K!==t;)N.push(K),K=He();N!==t?(K=ma(),K!==t?(ce=os(),ce===t&&(ce=null),ce!==t?(Me=m,b=o(b,K,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;if(m===t)if(m=Q,b=Ur(),b!==t){for(N=[],K=He();K!==t;)N.push(K),K=He();N!==t?(K=ma(),K===t&&(K=null),K!==t?(Me=m,b=a(b,K),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function os(){var m,b,N,K,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Mr(),N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();K!==t?(Me=m,b=l(N),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function ma(){var m;return r.charCodeAt(Q)===59?(m=c,Q++):(m=t,I===0&&Qe(u)),m===t&&(r.charCodeAt(Q)===38?(m=g,Q++):(m=t,I===0&&Qe(f))),m}function Ur(){var m,b,N;return m=Q,b=G1(),b!==t?(N=lge(),N===t&&(N=null),N!==t?(Me=m,b=h(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function lge(){var m,b,N,K,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=cge(),N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();if(K!==t)if(ce=Ur(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=p(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function cge(){var m;return r.substr(Q,2)===C?(m=C,Q+=2):(m=t,I===0&&Qe(y)),m===t&&(r.substr(Q,2)===B?(m=B,Q+=2):(m=t,I===0&&Qe(v))),m}function G1(){var m,b,N;return m=Q,b=fge(),b!==t?(N=uge(),N===t&&(N=null),N!==t?(Me=m,b=D(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function uge(){var m,b,N,K,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=gge(),N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();if(K!==t)if(ce=G1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=L(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function gge(){var m;return r.substr(Q,2)===H?(m=H,Q+=2):(m=t,I===0&&Qe(j)),m===t&&(r.charCodeAt(Q)===124?(m=$,Q++):(m=t,I===0&&Qe(V))),m}function qE(){var m,b,N,K,ce,Se;if(m=Q,b=eU(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(_)),N!==t)if(K=q1(),K!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Me=m,b=A(b,K),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;else Q=m,m=t;if(m===t)if(m=Q,b=eU(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(_)),N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();K!==t?(Me=m,b=Ae(b),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function fge(){var m,b,N,K,ce,Se,ht,Bt,Jr,hi,as;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===40?(N=ge,Q++):(N=t,I===0&&Qe(re)),N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();if(K!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===41?(ht=O,Q++):(ht=t,I===0&&Qe(F)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Np();hi!==t;)Jr.push(hi),hi=Np();if(Jr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Me=m,b=ue(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===123?(N=pe,Q++):(N=t,I===0&&Qe(ke)),N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();if(K!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===125?(ht=Fe,Q++):(ht=t,I===0&&Qe(Ne)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Np();hi!==t;)Jr.push(hi),hi=Np();if(Jr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Me=m,b=oe(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){for(N=[],K=qE();K!==t;)N.push(K),K=qE();if(N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();if(K!==t){if(ce=[],Se=j1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=j1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=le(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],K=qE(),K!==t)for(;K!==t;)N.push(K),K=qE();else N=t;if(N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();K!==t?(Me=m,b=Be(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}}}return m}function Y1(){var m,b,N,K,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],K=JE(),K!==t)for(;K!==t;)N.push(K),K=JE();else N=t;if(N!==t){for(K=[],ce=He();ce!==t;)K.push(ce),ce=He();K!==t?(Me=m,b=fe(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t;return m}function j1(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t?(N=Np(),N!==t?(Me=m,b=ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();b!==t?(N=JE(),N!==t?(Me=m,b=ae(N),m=b):(Q=m,m=t)):(Q=m,m=t)}return m}function Np(){var m,b,N,K,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(qe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(ne)),N===t&&(N=null),N!==t?(K=hge(),K!==t?(ce=JE(),ce!==t?(Me=m,b=Y(N,K,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function hge(){var m;return r.substr(Q,2)===he?(m=he,Q+=2):(m=t,I===0&&Qe(ie)),m===t&&(r.substr(Q,2)===de?(m=de,Q+=2):(m=t,I===0&&Qe(_e)),m===t&&(r.charCodeAt(Q)===62?(m=Pt,Q++):(m=t,I===0&&Qe(It)),m===t&&(r.substr(Q,3)===Or?(m=Or,Q+=3):(m=t,I===0&&Qe(ii)),m===t&&(r.substr(Q,2)===gi?(m=gi,Q+=2):(m=t,I===0&&Qe(hr)),m===t&&(r.charCodeAt(Q)===60?(m=fi,Q++):(m=t,I===0&&Qe(ni))))))),m}function JE(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(N=q1(),N!==t?(Me=m,b=ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function q1(){var m,b,N;if(m=Q,b=[],N=J1(),N!==t)for(;N!==t;)b.push(N),N=J1();else b=t;return b!==t&&(Me=m,b=Us(b)),m=b,m}function J1(){var m,b;return m=Q,b=pge(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=dge(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=Cge(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=mge(),b!==t&&(Me=m,b=pr(b)),m=b))),m}function pge(){var m,b,N,K;return m=Q,r.substr(Q,2)===Ii?(b=Ii,Q+=2):(b=t,I===0&&Qe(rs)),b!==t?(N=yge(),N!==t?(r.charCodeAt(Q)===39?(K=ga,Q++):(K=t,I===0&&Qe(dA)),K!==t?(Me=m,b=cg(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function dge(){var m,b,N,K;return m=Q,r.charCodeAt(Q)===39?(b=ga,Q++):(b=t,I===0&&Qe(dA)),b!==t?(N=Ege(),N!==t?(r.charCodeAt(Q)===39?(K=ga,Q++):(K=t,I===0&&Qe(dA)),K!==t?(Me=m,b=cg(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function Cge(){var m,b,N,K;if(m=Q,r.substr(Q,2)===is?(b=is,Q+=2):(b=t,I===0&&Qe(CA)),b!==t&&(Me=m,b=fa()),m=b,m===t)if(m=Q,r.charCodeAt(Q)===34?(b=wp,Q++):(b=t,I===0&&Qe(mA)),b!==t){for(N=[],K=W1();K!==t;)N.push(K),K=W1();N!==t?(r.charCodeAt(Q)===34?(K=wp,Q++):(K=t,I===0&&Qe(mA)),K!==t?(Me=m,b=EA(N),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function mge(){var m,b,N;if(m=Q,b=[],N=z1(),N!==t)for(;N!==t;)b.push(N),N=z1();else b=t;return b!==t&&(Me=m,b=EA(b)),m=b,m}function W1(){var m,b;return m=Q,b=_1(),b!==t&&(Me=m,b=wr(b)),m=b,m===t&&(m=Q,b=$1(),b!==t&&(Me=m,b=Ll(b)),m=b,m===t&&(m=Q,b=aS(),b!==t&&(Me=m,b=ug(b)),m=b,m===t&&(m=Q,b=Ige(),b!==t&&(Me=m,b=Io(b)),m=b))),m}function z1(){var m,b;return m=Q,b=_1(),b!==t&&(Me=m,b=gg(b)),m=b,m===t&&(m=Q,b=$1(),b!==t&&(Me=m,b=Bp(b)),m=b,m===t&&(m=Q,b=aS(),b!==t&&(Me=m,b=Qp(b)),m=b,m===t&&(m=Q,b=Qge(),b!==t&&(Me=m,b=vr(b)),m=b,m===t&&(m=Q,b=Bge(),b!==t&&(Me=m,b=Io(b)),m=b)))),m}function Ege(){var m,b,N;for(m=Q,b=[],se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo));N!==t;)b.push(N),se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo));return b!==t&&(Me=m,b=Rn(b)),m=b,m}function Ige(){var m,b,N;if(m=Q,b=[],N=V1(),N===t&&(fg.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt))),N!==t)for(;N!==t;)b.push(N),N=V1(),N===t&&(fg.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt)));else b=t;return b!==t&&(Me=m,b=Rn(b)),m=b,m}function V1(){var m,b,N;return m=Q,r.substr(Q,2)===Tl?(b=Tl,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t&&(Me=m,b=ns()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=ss,Q++):(b=t,I===0&&Qe(gt)),b!==t?(wo.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(At)),N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t)),m}function yge(){var m,b,N;for(m=Q,b=[],N=X1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo)));N!==t;)b.push(N),N=X1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo)));return b!==t&&(Me=m,b=Rn(b)),m=b,m}function X1(){var m,b,N;return m=Q,r.substr(Q,2)===S?(b=S,Q+=2):(b=t,I===0&&Qe(Tt)),b!==t&&(Me=m,b=hg()),m=b,m===t&&(m=Q,r.substr(Q,2)===Ol?(b=Ol,Q+=2):(b=t,I===0&&Qe(bp)),b!==t&&(Me=m,b=Sp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=ss,Q++):(b=t,I===0&&Qe(gt)),b!==t?(vp.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(xp)),N!==t?(Me=m,b=Pp(),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===G?(b=G,Q+=2):(b=t,I===0&&Qe(yt)),b!==t&&(Me=m,b=IA()),m=b,m===t&&(m=Q,r.substr(Q,2)===Wi?(b=Wi,Q+=2):(b=t,I===0&&Qe(Ml)),b!==t&&(Me=m,b=Xe()),m=b,m===t&&(m=Q,r.substr(Q,2)===ha?(b=ha,Q+=2):(b=t,I===0&&Qe(pg)),b!==t&&(Me=m,b=OE()),m=b,m===t&&(m=Q,r.substr(Q,2)===Dp?(b=Dp,Q+=2):(b=t,I===0&&Qe(ME)),b!==t&&(Me=m,b=ar()),m=b,m===t&&(m=Q,r.substr(Q,2)===Nn?(b=Nn,Q+=2):(b=t,I===0&&Qe(Ul)),b!==t&&(Me=m,b=kp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=ss,Q++):(b=t,I===0&&Qe(gt)),b!==t?(Ks.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(pa)),N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=wge()))))))))),m}function wge(){var m,b,N,K,ce,Se,ht,Bt,Jr,hi,as,AS;return m=Q,r.charCodeAt(Q)===92?(b=ss,Q++):(b=t,I===0&&Qe(gt)),b!==t?(N=nS(),N!==t?(Me=m,b=ln(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Te?(b=Te,Q+=2):(b=t,I===0&&Qe(dg)),b!==t?(N=Q,K=Q,ce=nS(),ce!==t?(Se=On(),Se!==t?(ce=[ce,Se],K=ce):(Q=K,K=t)):(Q=K,K=t),K===t&&(K=nS()),K!==t?N=r.substring(N,Q):N=K,N!==t?(Me=m,b=ln(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Kl?(b=Kl,Q+=2):(b=t,I===0&&Qe(Hs)),b!==t?(N=Q,K=Q,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(ce=[ce,Se,ht,Bt],K=ce):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t),K!==t?N=r.substring(N,Q):N=K,N!==t?(Me=m,b=ln(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Hl?(b=Hl,Q+=2):(b=t,I===0&&Qe(yA)),b!==t?(N=Q,K=Q,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(Jr=On(),Jr!==t?(hi=On(),hi!==t?(as=On(),as!==t?(AS=On(),AS!==t?(ce=[ce,Se,ht,Bt,Jr,hi,as,AS],K=ce):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t)):(Q=K,K=t),K!==t?N=r.substring(N,Q):N=K,N!==t?(Me=m,b=Cg(N),m=b):(Q=m,m=t)):(Q=m,m=t)))),m}function nS(){var m;return mg.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(da)),m}function On(){var m;return Ca.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(rt)),m}function Bge(){var m,b,N,K,ce;if(m=Q,b=[],N=Q,r.charCodeAt(Q)===92?(K=ss,Q++):(K=t,I===0&&Qe(gt)),K!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,K=An(ce),N=K):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,K=Q,I++,ce=tU(),I--,ce===t?K=void 0:(Q=K,K=t),K!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,K=An(ce),N=K):(Q=N,N=t)):(Q=N,N=t)),N!==t)for(;N!==t;)b.push(N),N=Q,r.charCodeAt(Q)===92?(K=ss,Q++):(K=t,I===0&&Qe(gt)),K!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,K=An(ce),N=K):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,K=Q,I++,ce=tU(),I--,ce===t?K=void 0:(Q=K,K=t),K!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,K=An(ce),N=K):(Q=N,N=t)):(Q=N,N=t));else b=t;return b!==t&&(Me=m,b=Rn(b)),m=b,m}function sS(){var m,b,N,K,ce,Se;if(m=Q,r.charCodeAt(Q)===45?(b=wA,Q++):(b=t,I===0&&Qe(Gl)),b===t&&(r.charCodeAt(Q)===43?(b=Gs,Q++):(b=t,I===0&&Qe(Yl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(K=r.charAt(Q),Q++):(K=t,I===0&&Qe(ne)),K!==t)for(;K!==t;)N.push(K),qe.test(r.charAt(Q))?(K=r.charAt(Q),Q++):(K=t,I===0&&Qe(ne));else N=t;if(N!==t)if(r.charCodeAt(Q)===46?(K=UE,Q++):(K=t,I===0&&Qe(Rp)),K!==t){if(ce=[],qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne));else ce=t;ce!==t?(Me=m,b=Eg(b,N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;if(m===t){if(m=Q,r.charCodeAt(Q)===45?(b=wA,Q++):(b=t,I===0&&Qe(Gl)),b===t&&(r.charCodeAt(Q)===43?(b=Gs,Q++):(b=t,I===0&&Qe(Yl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(K=r.charAt(Q),Q++):(K=t,I===0&&Qe(ne)),K!==t)for(;K!==t;)N.push(K),qe.test(r.charAt(Q))?(K=r.charAt(Q),Q++):(K=t,I===0&&Qe(ne));else N=t;N!==t?(Me=m,b=Fp(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;if(m===t&&(m=Q,b=aS(),b!==t&&(Me=m,b=KE(b)),m=b,m===t&&(m=Q,b=ql(),b!==t&&(Me=m,b=jl(b)),m=b,m===t)))if(m=Q,r.charCodeAt(Q)===40?(b=ge,Q++):(b=t,I===0&&Qe(re)),b!==t){for(N=[],K=He();K!==t;)N.push(K),K=He();if(N!==t)if(K=Z1(),K!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(Q)===41?(Se=O,Q++):(Se=t,I===0&&Qe(F)),Se!==t?(Me=m,b=HE(K),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t}return m}function oS(){var m,b,N,K,ce,Se,ht,Bt;if(m=Q,b=sS(),b!==t){for(N=[],K=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=Ig,Q++):(Se=t,I===0&&Qe(BA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Me=K,ce=Ys(b,Se,Bt),K=ce):(Q=K,K=t)):(Q=K,K=t)}else Q=K,K=t;else Q=K,K=t;for(;K!==t;){for(N.push(K),K=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=Ig,Q++):(Se=t,I===0&&Qe(BA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Me=K,ce=Ys(b,Se,Bt),K=ce):(Q=K,K=t)):(Q=K,K=t)}else Q=K,K=t;else Q=K,K=t}N!==t?(Me=m,b=js(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function Z1(){var m,b,N,K,ce,Se,ht,Bt;if(m=Q,b=oS(),b!==t){for(N=[],K=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Gs,Q++):(Se=t,I===0&&Qe(Yl)),Se===t&&(r.charCodeAt(Q)===45?(Se=wA,Q++):(Se=t,I===0&&Qe(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Me=K,ce=yg(b,Se,Bt),K=ce):(Q=K,K=t)):(Q=K,K=t)}else Q=K,K=t;else Q=K,K=t;for(;K!==t;){for(N.push(K),K=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Gs,Q++):(Se=t,I===0&&Qe(Yl)),Se===t&&(r.charCodeAt(Q)===45?(Se=wA,Q++):(Se=t,I===0&&Qe(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Me=K,ce=yg(b,Se,Bt),K=ce):(Q=K,K=t)):(Q=K,K=t)}else Q=K,K=t;else Q=K,K=t}N!==t?(Me=m,b=js(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function _1(){var m,b,N,K,ce,Se;if(m=Q,r.substr(Q,3)===QA?(b=QA,Q+=3):(b=t,I===0&&Qe(R)),b!==t){for(N=[],K=He();K!==t;)N.push(K),K=He();if(N!==t)if(K=Z1(),K!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(Q,2)===q?(Se=q,Q+=2):(Se=t,I===0&&Qe(Ce)),Se!==t?(Me=m,b=Ue(K),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;return m}function $1(){var m,b,N,K;return m=Q,r.substr(Q,2)===Re?(b=Re,Q+=2):(b=t,I===0&&Qe(ze)),b!==t?(N=Mr(),N!==t?(r.charCodeAt(Q)===41?(K=O,Q++):(K=t,I===0&&Qe(F)),K!==t?(Me=m,b=dt(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function aS(){var m,b,N,K,ce,Se;return m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Ln)),b!==t?(N=ql(),N!==t?(r.substr(Q,2)===Jb?(K=Jb,Q+=2):(K=t,I===0&&Qe(P1)),K!==t?(ce=Y1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=D1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Ln)),b!==t?(N=ql(),N!==t?(r.substr(Q,3)===Wb?(K=Wb,Q+=3):(K=t,I===0&&Qe(k1)),K!==t?(Me=m,b=R1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Ln)),b!==t?(N=ql(),N!==t?(r.substr(Q,2)===zb?(K=zb,Q+=2):(K=t,I===0&&Qe(F1)),K!==t?(ce=Y1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=N1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Ln)),b!==t?(N=ql(),N!==t?(r.substr(Q,3)===Vb?(K=Vb,Q+=3):(K=t,I===0&&Qe(L1)),K!==t?(Me=m,b=T1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Ln)),b!==t?(N=ql(),N!==t?(r.charCodeAt(Q)===125?(K=Fe,Q++):(K=t,I===0&&Qe(Ne)),K!==t?(Me=m,b=Xb(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.charCodeAt(Q)===36?(b=O1,Q++):(b=t,I===0&&Qe(M1)),b!==t?(N=ql(),N!==t?(Me=m,b=Xb(N),m=b):(Q=m,m=t)):(Q=m,m=t)))))),m}function Qge(){var m,b,N;return m=Q,b=bge(),b!==t?(Me=Q,N=U1(b),N?N=void 0:N=t,N!==t?(Me=m,b=K1(b),m=b):(Q=m,m=t)):(Q=m,m=t),m}function bge(){var m,b,N,K,ce;if(m=Q,b=[],N=Q,K=Q,I++,ce=rU(),I--,ce===t?K=void 0:(Q=K,K=t),K!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,K=An(ce),N=K):(Q=N,N=t)):(Q=N,N=t),N!==t)for(;N!==t;)b.push(N),N=Q,K=Q,I++,ce=rU(),I--,ce===t?K=void 0:(Q=K,K=t),K!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,K=An(ce),N=K):(Q=N,N=t)):(Q=N,N=t);else b=t;return b!==t&&(Me=m,b=Rn(b)),m=b,m}function eU(){var m,b,N;if(m=Q,b=[],Zb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(_b)),N!==t)for(;N!==t;)b.push(N),Zb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(_b));else b=t;return b!==t&&(Me=m,b=$b()),m=b,m}function ql(){var m,b,N;if(m=Q,b=[],eS.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(tS)),N!==t)for(;N!==t;)b.push(N),eS.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(tS));else b=t;return b!==t&&(Me=m,b=$b()),m=b,m}function tU(){var m;return H1.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(wg)),m}function rU(){var m;return rS.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(iS)),m}function He(){var m,b;if(m=[],YE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(jE)),b!==t)for(;b!==t;)m.push(b),YE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(jE));else m=t;return m}if(k=n(),k!==t&&Q===r.length)return k;throw k!==t&&Q{"use strict";function Sfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Sfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new $l(ne,null,null,Y)}function oe(ne,Y,he){return new $l($l.buildMessage(ne,Y),ne,Y,he)}function le(){var ne,Y,he,ie;return ne=v,Y=Be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Fe(o)),he!==t?(ie=Be(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Be(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function Be(){var ne,Y,he,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Fe(u)),he!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,he,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(he=ae(),he!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function ae(){var ne,Y,he;if(ne=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,he;if(ne=v,Y=[],y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B)),he!==t)for(;he!==t;)Y.push(he),y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function dK(r){return typeof r>"u"||r===null}function xfe(r){return typeof r=="object"&&r!==null}function Pfe(r){return Array.isArray(r)?r:dK(r)?[]:[r]}function Dfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Vp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Vp.prototype=Object.create(Error.prototype);Vp.prototype.constructor=Vp;Vp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};CK.exports=Vp});var IK=w((wZe,EK)=>{"use strict";var mK=tc();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),mK.repeat(" ",e)+i+a+s+` +`+mK.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};EK.exports=HS});var si=w((BZe,wK)=>{"use strict";var yK=Ng(),Ffe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Nfe=["scalar","sequence","mapping"];function Lfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Tfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(Ffe.indexOf(t)===-1)throw new yK('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Lfe(e.styleAliases||null),Nfe.indexOf(this.kind)===-1)throw new yK('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}wK.exports=Tfe});var rc=w((QZe,QK)=>{"use strict";var BK=tc(),dI=Ng(),Ofe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Mfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Ufe=si();bK.exports=new Ufe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var xK=w((SZe,vK)=>{"use strict";var Kfe=si();vK.exports=new Kfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var DK=w((vZe,PK)=>{"use strict";var Hfe=si();PK.exports=new Hfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var CI=w((xZe,kK)=>{"use strict";var Gfe=rc();kK.exports=new Gfe({explicit:[SK(),xK(),DK()]})});var FK=w((PZe,RK)=>{"use strict";var Yfe=si();function jfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function qfe(){return null}function Jfe(r){return r===null}RK.exports=new Yfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:jfe,construct:qfe,predicate:Jfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var LK=w((DZe,NK)=>{"use strict";var Wfe=si();function zfe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function Vfe(r){return r==="true"||r==="True"||r==="TRUE"}function Xfe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}NK.exports=new Wfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:zfe,construct:Vfe,predicate:Xfe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var OK=w((kZe,TK)=>{"use strict";var Zfe=tc(),_fe=si();function $fe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ehe(r){return 48<=r&&r<=55}function the(r){return 48<=r&&r<=57}function rhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var KK=w((RZe,UK)=>{"use strict";var MK=tc(),she=si(),ohe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function ahe(r){return!(r===null||!ohe.test(r)||r[r.length-1]==="_")}function Ahe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var lhe=/^[-+]?[0-9]+e/;function che(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(MK.isNegativeZero(r))return"-0.0";return t=r.toString(10),lhe.test(t)?t.replace("e",".e"):t}function uhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||MK.isNegativeZero(r))}UK.exports=new she("tag:yaml.org,2002:float",{kind:"scalar",resolve:ahe,construct:Ahe,predicate:uhe,represent:che,defaultStyle:"lowercase"})});var YS=w((FZe,HK)=>{"use strict";var ghe=rc();HK.exports=new ghe({include:[CI()],implicit:[FK(),LK(),OK(),KK()]})});var jS=w((NZe,GK)=>{"use strict";var fhe=rc();GK.exports=new fhe({include:[YS()]})});var JK=w((LZe,qK)=>{"use strict";var hhe=si(),YK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),jK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function phe(r){return r===null?!1:YK.exec(r)!==null||jK.exec(r)!==null}function dhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=YK.exec(r),e===null&&(e=jK.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Che(r){return r.toISOString()}qK.exports=new hhe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:phe,construct:dhe,instanceOf:Date,represent:Che})});var zK=w((TZe,WK)=>{"use strict";var mhe=si();function Ehe(r){return r==="<<"||r===null}WK.exports=new mhe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Ehe})});var ZK=w((OZe,XK)=>{"use strict";var ic;try{VK=J,ic=VK("buffer").Buffer}catch{}var VK,Ihe=si(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function yhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function whe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),ic?ic.from?ic.from(a):new ic(a):a}function Bhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Qhe(r){return ic&&ic.isBuffer(r)}XK.exports=new Ihe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:yhe,construct:whe,predicate:Qhe,represent:Bhe})});var $K=w((UZe,_K)=>{"use strict";var bhe=si(),She=Object.prototype.hasOwnProperty,vhe=Object.prototype.toString;function xhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Dhe=si(),khe=Object.prototype.toString;function Rhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Nhe=si(),Lhe=Object.prototype.hasOwnProperty;function The(r){if(r===null)return!0;var e,t=r;for(e in t)if(Lhe.call(t,e)&&t[e]!==null)return!1;return!0}function Ohe(r){return r!==null?r:{}}r2.exports=new Nhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:The,construct:Ohe})});var Tg=w((GZe,n2)=>{"use strict";var Mhe=rc();n2.exports=new Mhe({include:[jS()],implicit:[JK(),zK()],explicit:[ZK(),$K(),t2(),i2()]})});var o2=w((YZe,s2)=>{"use strict";var Uhe=si();function Khe(){return!0}function Hhe(){}function Ghe(){return""}function Yhe(r){return typeof r>"u"}s2.exports=new Uhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Khe,construct:Hhe,predicate:Yhe,represent:Ghe})});var A2=w((jZe,a2)=>{"use strict";var jhe=si();function qhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Jhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Whe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function zhe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}a2.exports=new jhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:qhe,construct:Jhe,predicate:zhe,represent:Whe})});var u2=w((qZe,c2)=>{"use strict";var mI;try{l2=J,mI=l2("esprima")}catch{typeof window<"u"&&(mI=window.esprima)}var l2,Vhe=si();function Xhe(r){if(r===null)return!1;try{var e="("+r+")",t=mI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Zhe(r){var e="("+r+")",t=mI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function _he(r){return r.toString()}function $he(r){return Object.prototype.toString.call(r)==="[object Function]"}c2.exports=new Vhe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Xhe,construct:Zhe,predicate:$he,represent:_he})});var Xp=w((WZe,f2)=>{"use strict";var g2=rc();f2.exports=g2.DEFAULT=new g2({include:[Tg()],explicit:[o2(),A2(),u2()]})});var R2=w((zZe,Zp)=>{"use strict";var wa=tc(),I2=Ng(),epe=IK(),y2=Tg(),tpe=Xp(),kA=Object.prototype.hasOwnProperty,EI=1,w2=2,B2=3,II=4,JS=1,rpe=2,h2=3,ipe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,npe=/[\x85\u2028\u2029]/,spe=/[,\[\]\{\}]/,Q2=/^(?:!|!!|![a-z\-]+!)$/i,b2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function p2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function sc(r){return r===9||r===32}function gn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function ope(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function ape(r){return r===120?2:r===117?4:r===85?8:0}function Ape(r){return 48<=r&&r<=57?r-48:-1}function d2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function lpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var S2=new Array(256),v2=new Array(256);for(nc=0;nc<256;nc++)S2[nc]=d2(nc)?1:0,v2[nc]=d2(nc);var nc;function cpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||tpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function x2(r,e){return new I2(e,new epe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw x2(r,e)}function yI(r,e){r.onWarning&&r.onWarning.call(null,x2(r,e))}var C2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&yI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],Q2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),b2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function DA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=wa.repeat(` +`,e-1))}function upe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),gn(h)||Og(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),gn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),gn(n)||t&&Og(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),gn(i))break}else{if(r.position===r.lineStart&&wI(r)||t&&Og(h))break;if(vo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(DA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),sc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return DA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function gpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(DA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(DA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function fpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return DA(r,t,r.position,!0),r.position++,!0;if(a===92){if(DA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))zr(r,!1,e);else if(a<256&&S2[a])r.result+=v2[a],r.position++;else if((o=ape(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=ope(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=lpe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else vo(a)?(DA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function hpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),gn(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Ug(r,e,EI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Ug(r,e,EI,!1,!0),C=r.result),g?Mg(r,s,f,p,h,C):c?s.push(Mg(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function ppe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?h2:rpe:ft(r,"repeat of a chomping mode identifier");else if((u=Ape(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(sc(g)){do g=r.input.charCodeAt(++r.position);while(sc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Ug(r,e,II,!0,n)&&(p?f=r.result:h=r.result),p||(Mg(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Ipe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!gn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;sc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!gn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(C2,i)?C2[i](r,i,n):yI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Ug(r,r.lineIndent-1,II,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&npe.test(r.input.slice(e,r.position))&&yI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&wI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=P2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),D2(r,e,wa.extend({schema:y2},t))}function wpe(r,e){return k2(r,wa.extend({schema:y2},e))}Zp.exports.loadAll=D2;Zp.exports.load=k2;Zp.exports.safeLoadAll=ype;Zp.exports.safeLoad=wpe});var tH=w((VZe,_S)=>{"use strict";var $p=tc(),ed=Ng(),Bpe=Xp(),Qpe=Tg(),K2=Object.prototype.toString,H2=Object.prototype.hasOwnProperty,bpe=9,_p=10,Spe=13,vpe=32,xpe=33,Ppe=34,G2=35,Dpe=37,kpe=38,Rpe=39,Fpe=42,Y2=44,Npe=45,j2=58,Lpe=61,Tpe=62,Ope=63,Mpe=64,q2=91,J2=93,Upe=96,W2=123,Kpe=124,z2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var Hpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Gpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&L2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Kg(o))return BI;a=s>0?r.charCodeAt(s-1):null,f=f&&L2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?X2:Z2:t>9&&V2(r)?BI:c?$2:_2}function zpe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Hpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return jpe(r,l)}switch(Wpe(e,o,r.indent,s,a)){case X2:return e;case Z2:return"'"+e.replace(/'/g,"''")+"'";case _2:return"|"+T2(e,r.indent)+O2(N2(e,n));case $2:return">"+T2(e,r.indent)+O2(N2(Vpe(e,s),n));case BI:return'"'+Xpe(e,s)+'"';default:throw new ed("impossible error: invalid scalar style")}}()}function T2(r,e){var t=V2(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function O2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function Vpe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,M2(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+M2(l,e),n=s}return i}function M2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Xpe(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=F2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Kg(t)?r[s]:n||F2(t)}return e}function Zpe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),oc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function ede(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new ed("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&_p===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),oc(r,e+1,u,!0,g)&&(r.dump&&_p===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function U2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function oc(r,e,t,i,n,s){r.tag=null,r.dump=t,U2(r,t,!1)||U2(r,t,!0);var o=K2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(ede(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):($pe(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(_pe(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Zpe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&zpe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new ed("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function tde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var QI=R2(),rH=tH();function bI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=rc();Fr.exports.FAILSAFE_SCHEMA=CI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Tg();Fr.exports.DEFAULT_FULL_SCHEMA=Xp();Fr.exports.load=QI.load;Fr.exports.loadAll=QI.loadAll;Fr.exports.safeLoad=QI.safeLoad;Fr.exports.safeLoadAll=QI.safeLoadAll;Fr.exports.dump=rH.dump;Fr.exports.safeDump=rH.safeDump;Fr.exports.YAMLException=Ng();Fr.exports.MINIMAL_SCHEMA=CI();Fr.exports.SAFE_SCHEMA=Tg();Fr.exports.DEFAULT_SCHEMA=Xp();Fr.exports.scan=bI("scan");Fr.exports.parse=bI("parse");Fr.exports.compose=bI("compose");Fr.exports.addConstructor=bI("addConstructor")});var sH=w((ZZe,nH)=>{"use strict";var ide=iH();nH.exports=ide});var aH=w((_Ze,oH)=>{"use strict";function nde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ac(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}nde(ac,Error);ac.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ue]:Ce})))},H=function(R){return R},j=function(R){return R},$=Ks("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===QA*yg},A=function(R){return R.length===(QA+1)*yg},Ae=function(){return QA++,!0},ge=function(){return QA--,!0},re=function(){return pg()},O=Ks("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Nn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,ke=Nn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return pg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,Be=Nn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,ae=Nn(["\r",` +`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},he="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Or=Ks("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Us=/^[^"\\\0-\x1F\x7F]/,pr=Nn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',rs=ar('\\"',!1),ga=function(){return'"'},dA="\\\\",cg=ar("\\\\",!1),is=function(){return"\\"},CA="\\/",fa=ar("\\/",!1),wp=function(){return"/"},mA="\\b",EA=ar("\\b",!1),wr=function(){return"\b"},Ll="\\f",ug=ar("\\f",!1),Io=function(){return"\f"},gg="\\n",Bp=ar("\\n",!1),Qp=function(){return` +`},vr="\\r",se=ar("\\r",!1),yo=function(){return"\r"},Rn="\\t",fg=ar("\\t",!1),Qt=function(){return" "},Tl="\\u",Fn=ar("\\u",!1),ns=function(R,q,Ce,Ue){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ue}`))},ss=/^[0-9a-fA-F]/,gt=Nn([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Nn([" "," "],!1,!1),S=Ks("white space"),Tt=/^[ \t\n\r]/,hg=Nn([" "," ",` +`,"\r"],!1,!1),Ol=`\r +`,bp=ar(`\r +`,!1),Sp=` +`,vp=ar(` +`,!1),xp="\r",Pp=ar("\r",!1),G=0,yt=0,IA=[{line:1,column:1}],Wi=0,Ml=[],Xe=0,ha;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function pg(){return r.substring(yt,G)}function OE(){return ln(yt,G)}function Dp(R,q){throw q=q!==void 0?q:ln(yt,G),Kl([Ks(R)],r.substring(yt,G),q)}function ME(R,q){throw q=q!==void 0?q:ln(yt,G),dg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Nn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Ul(){return{type:"any"}}function kp(){return{type:"end"}}function Ks(R){return{type:"other",description:R}}function pa(R){var q=IA[R],Ce;if(q)return q;for(Ce=R-1;!IA[Ce];)Ce--;for(q=IA[Ce],q={line:q.line,column:q.column};CeWi&&(Wi=G,Ml=[]),Ml.push(R))}function dg(R,q){return new ac(R,null,null,q)}function Kl(R,q,Ce){return new ac(ac.buildMessage(R,q),R,q,Ce)}function Hs(){var R;return R=Cg(),R}function Hl(){var R,q,Ce;for(R=G,q=[],Ce=yA();Ce!==t;)q.push(Ce),Ce=yA();return q!==t&&(yt=R,q=s(q)),R=q,R}function yA(){var R,q,Ce,Ue,Re;return R=G,q=Ca(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Te(a)),Ce!==t?(Ue=Rr(),Ue!==t?(Re=da(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Cg(){var R,q,Ce;for(R=G,q=[],Ce=mg();Ce!==t;)q.push(Ce),Ce=mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function mg(){var R,q,Ce,Ue,Re,ze,dt,Ft,Ln;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ue=u,G++):(Ue=t,Xe===0&&Te(g)),Ue!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ue=[Ue,Re],Ce=Ue):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ue=[],Re=Ys(),Re!==t)for(;Re!==t;)Ue.push(Re),Re=Ys();else Ue=t;Ue!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=Ca(),q!==t?(Ce=Gl(),Ce!==t?(Ue=Rr(),Ue===t&&(Ue=null),Ue!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=da(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Ca(),q!==t?(Ce=Gs(),Ce!==t?(Ue=Rr(),Ue===t&&(Ue=null),Ue!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=da(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=Ca(),q!==t)if(Ce=Gs(),Ce!==t)if(Ue=Rr(),Ue!==t)if(Re=UE(),Re!==t){if(ze=[],dt=Ys(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ys();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=Ca(),q!==t)if(Ce=Gs(),Ce!==t){if(Ue=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ue.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ue=t;Ue!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Te(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=da(),Ft!==t?(yt=R,q=L(Ce,Ue,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function da(){var R,q,Ce,Ue,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ue=js(),Ue!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Te(a)),ze!==t?(dt=Rr(),dt!==t?(Ue=[Ue,Re,ze,dt],Ce=Ue):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ys(),Ce!==t?(Ue=Bo(),Ue!==t?(Re=Hl(),Re!==t?(ze=wA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=js(),q!==t?(Ce=Bo(),Ce!==t?(Ue=Cg(),Ue!==t?(Re=wA(),Re!==t?(yt=R,q=H(Ue),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Yl(),q!==t){if(Ce=[],Ue=Ys(),Ue!==t)for(;Ue!==t;)Ce.push(Ue),Ue=Ys();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function Ca(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Te($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function Bo(){var R;return yt=G,R=Ae(),R?R=void 0:R=t,R}function wA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Gl(){var R;return R=jl(),R===t&&(R=Rp()),R}function Gs(){var R,q,Ce;if(R=jl(),R===t){if(R=G,q=[],Ce=Eg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Eg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Yl(){var R;return R=Fp(),R===t&&(R=KE(),R===t&&(R=jl(),R===t&&(R=Rp()))),R}function UE(){var R;return R=Fp(),R===t&&(R=jl(),R===t&&(R=Eg())),R}function Rp(){var R,q,Ce,Ue,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ue)),q!==t){for(Ce=[],Ue=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ue=Re):(G=Ue,Ue=t)):(G=Ue,Ue=t);Ue!==t;)Ce.push(Ue),Ue=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ue=Re):(G=Ue,Ue=t)):(G=Ue,Ue=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(O)),R}function Eg(){var R,q,Ce,Ue,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Te(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Te(Be)),Ce!==t){for(Ue=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(ae));Re!==t;)Ue.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(ae));Ue!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function Fp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Te(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function KE(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,Xe===0&&Te(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===_e?(q=_e,G+=5):(q=t,Xe===0&&Te(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function jl(){var R,q,Ce,Ue;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Te(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(Ce=HE(),Ce!==t?(r.charCodeAt(G)===34?(Ue=ii,G++):(Ue=t,Xe===0&&Te(gi)),Ue!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Te(Or)),R}function HE(){var R,q,Ce;if(R=G,q=[],Ce=Ig(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Ig();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function Ig(){var R,q,Ce,Ue,Re,ze;return Us.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(pr)),R===t&&(R=G,r.substr(G,2)===Ii?(q=Ii,G+=2):(q=t,Xe===0&&Te(rs)),q!==t&&(yt=R,q=ga()),R=q,R===t&&(R=G,r.substr(G,2)===dA?(q=dA,G+=2):(q=t,Xe===0&&Te(cg)),q!==t&&(yt=R,q=is()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,Xe===0&&Te(fa)),q!==t&&(yt=R,q=wp()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,Xe===0&&Te(EA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===Ll?(q=Ll,G+=2):(q=t,Xe===0&&Te(ug)),q!==t&&(yt=R,q=Io()),R=q,R===t&&(R=G,r.substr(G,2)===gg?(q=gg,G+=2):(q=t,Xe===0&&Te(Bp)),q!==t&&(yt=R,q=Qp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Te(se)),q!==t&&(yt=R,q=yo()),R=q,R===t&&(R=G,r.substr(G,2)===Rn?(q=Rn,G+=2):(q=t,Xe===0&&Te(fg)),q!==t&&(yt=R,q=Qt()),R=q,R===t&&(R=G,r.substr(G,2)===Tl?(q=Tl,G+=2):(q=t,Xe===0&&Te(Fn)),q!==t?(Ce=BA(),Ce!==t?(Ue=BA(),Ue!==t?(Re=BA(),Re!==t?(ze=BA(),ze!==t?(yt=R,q=ns(Ce,Ue,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function BA(){var R;return ss.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(An)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(An));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(wo)),R}function GE(){var R,q;if(Xe++,R=[],Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(hg)),q!==t)for(;q!==t;)R.push(q),Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(hg));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(S)),R}function Ys(){var R,q,Ce,Ue,Re,ze;if(R=G,q=js(),q!==t){for(Ce=[],Ue=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ue=Re):(G=Ue,Ue=t)):(G=Ue,Ue=t);Ue!==t;)Ce.push(Ue),Ue=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ue=Re):(G=Ue,Ue=t)):(G=Ue,Ue=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function js(){var R;return r.substr(G,2)===Ol?(R=Ol,G+=2):(R=t,Xe===0&&Te(bp)),R===t&&(r.charCodeAt(G)===10?(R=Sp,G++):(R=t,Xe===0&&Te(vp)),R===t&&(r.charCodeAt(G)===13?(R=xp,G++):(R=t,Xe===0&&Te(Pp)))),R}let yg=2,QA=0;if(ha=n(),ha!==t&&G===r.length)return ha;throw ha!==t&&G{"use strict";var cde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=cde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=gH;ev.exports.default=gH});var hH=w((n_e,ude)=>{ude.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Ac=w(Un=>{"use strict";var dH=hH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:dH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;dH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return pH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=pH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function pH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var fn={};ut(fn,{KeyRelationship:()=>lc,applyCascade:()=>od,base64RegExp:()=>yH,colorStringAlphaRegExp:()=>IH,colorStringRegExp:()=>EH,computeKey:()=>RA,getPrintable:()=>Vr,hasExactLength:()=>SH,hasForbiddenKeys:()=>Yde,hasKeyRelationship:()=>av,hasMaxLength:()=>Sde,hasMinLength:()=>bde,hasMutuallyExclusiveKeys:()=>jde,hasRequiredKeys:()=>Gde,hasUniqueItems:()=>vde,isArray:()=>Cde,isAtLeast:()=>Dde,isAtMost:()=>kde,isBase64:()=>Kde,isBoolean:()=>hde,isDate:()=>dde,isDict:()=>Ede,isEnum:()=>Xi,isHexColor:()=>Ude,isISO8601:()=>Mde,isInExclusiveRange:()=>Fde,isInInclusiveRange:()=>Rde,isInstanceOf:()=>yde,isInteger:()=>Nde,isJSON:()=>Hde,isLiteral:()=>gde,isLowerCase:()=>Lde,isNegative:()=>xde,isNullable:()=>Qde,isNumber:()=>pde,isObject:()=>Ide,isOneOf:()=>wde,isOptional:()=>Bde,isPositive:()=>Pde,isString:()=>sd,isTuple:()=>mde,isUUID4:()=>Ode,isUnknown:()=>bH,isUpperCase:()=>Tde,iso8601RegExp:()=>ov,makeCoercionFn:()=>cc,makeSetter:()=>QH,makeTrait:()=>BH,makeValidator:()=>bt,matchesRegExp:()=>ad,plural:()=>kI,pushError:()=>pt,simpleKeyRegExp:()=>mH,uuid4RegExp:()=>wH});function bt({test:r}){return BH(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function RA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:mH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function cc(r,e){return t=>{let i=r[e];return r[e]=t,cc(r,e).bind(null,i)}}function QH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function gde(r){return bt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return bt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var mH,EH,IH,yH,wH,ov,BH,bH,sd,fde,hde,pde,dde,Cde,mde,Ede,Ide,yde,wde,od,Bde,Qde,bde,Sde,SH,vde,xde,Pde,Dde,kde,Rde,Fde,Nde,ad,Lde,Tde,Ode,Mde,Ude,Kde,Hde,Gde,Yde,jde,lc,qde,av,ls=kge(()=>{mH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,EH=/^#[0-9a-f]{6}$/i,IH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,yH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,wH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,BH=r=>()=>r;bH=()=>bt({test:(r,e)=>!0});sd=()=>bt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});fde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),hde=()=>bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=fde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),pde=()=>bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),dde=()=>bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),Cde=(r,{delimiter:e}={})=>bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=SH(r.length);return bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;abt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return bt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:RA(n,l),coercion:cc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:QH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},yde=r=>bt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),wde=(r,{exclusive:e=!1}={})=>bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),od=(r,e)=>bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Bde=r=>bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Qde=r=>bt({test:(e,t)=>e===null?!0:r(e,t)}),bde=r=>bt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Sde=r=>bt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),SH=r=>bt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),vde=({map:r}={})=>bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sbt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),Pde=()=>bt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Dde=r=>bt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),kde=r=>bt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),Rde=(r,e)=>bt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),Fde=(r,e)=>bt({test:(t,i)=>t>=r&&tbt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),ad=r=>bt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Lde=()=>bt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),Tde=()=>bt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Ode=()=>bt({test:(r,e)=>wH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Mde=()=>bt({test:(r,e)=>ov.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),Ude=({alpha:r=!1})=>bt({test:(e,t)=>(r?EH.test(e):IH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),Kde=()=>bt({test:(r,e)=>yH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),Hde=(r=bH())=>bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),Gde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Yde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},jde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(lc||(lc={}));qde={[lc.Forbids]:{expect:!1,message:"forbids using"},[lc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=qde[e];return bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var YH=w((n$e,GH)=>{"use strict";GH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=w((s$e,pv)=>{"use strict";var ACe=YH(),jH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ACe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=jH;pv.exports.default=jH});var gd=w((a$e,qH)=>{var lCe="2.0.0",cCe=Number.MAX_SAFE_INTEGER||9007199254740991,uCe=16;qH.exports={SEMVER_SPEC_VERSION:lCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:cCe,MAX_SAFE_COMPONENT_LENGTH:uCe}});var fd=w((A$e,JH)=>{var gCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};JH.exports=gCe});var uc=w((NA,WH)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=gd(),fCe=fd();NA=WH.exports={};var hCe=NA.re=[],et=NA.src=[],tt=NA.t={},pCe=0,St=(r,e,t)=>{let i=pCe++;fCe(i,e),tt[r]=i,et[i]=e,hCe[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${et[tt.NUMERICIDENTIFIER]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NUMERICIDENTIFIERLOOSE]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);St("FULL",`^${et[tt.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);St("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);St("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);St("COERCERTL",et[tt.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);NA.tildeTrimReplace="$1~";St("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);NA.caretTrimReplace="$1^";St("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);NA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var hd=w((l$e,zH)=>{var dCe=["includePrerelease","loose","rtl"],CCe=r=>r?typeof r!="object"?{loose:!0}:dCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};zH.exports=CCe});var OI=w((c$e,ZH)=>{var VH=/^[0-9]+$/,XH=(r,e)=>{let t=VH.test(r),i=VH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rXH(e,r);ZH.exports={compareIdentifiers:XH,rcompareIdentifiers:mCe}});var Ti=w((u$e,tG)=>{var MI=fd(),{MAX_LENGTH:_H,MAX_SAFE_INTEGER:UI}=gd(),{re:$H,t:eG}=uc(),ECe=hd(),{compareIdentifiers:pd}=OI(),Gn=class{constructor(e,t){if(t=ECe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>_H)throw new TypeError(`version is longer than ${_H} characters`);MI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?$H[eG.LOOSE]:$H[eG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>UI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>UI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>UI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};tG.exports=Gn});var gc=w((g$e,sG)=>{var{MAX_LENGTH:ICe}=gd(),{re:rG,t:iG}=uc(),nG=Ti(),yCe=hd(),wCe=(r,e)=>{if(e=yCe(e),r instanceof nG)return r;if(typeof r!="string"||r.length>ICe||!(e.loose?rG[iG.LOOSE]:rG[iG.FULL]).test(r))return null;try{return new nG(r,e)}catch{return null}};sG.exports=wCe});var aG=w((f$e,oG)=>{var BCe=gc(),QCe=(r,e)=>{let t=BCe(r,e);return t?t.version:null};oG.exports=QCe});var lG=w((h$e,AG)=>{var bCe=gc(),SCe=(r,e)=>{let t=bCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};AG.exports=SCe});var uG=w((p$e,cG)=>{var vCe=Ti(),xCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new vCe(r,t).inc(e,i).version}catch{return null}};cG.exports=xCe});var cs=w((d$e,fG)=>{var gG=Ti(),PCe=(r,e,t)=>new gG(r,t).compare(new gG(e,t));fG.exports=PCe});var KI=w((C$e,hG)=>{var DCe=cs(),kCe=(r,e,t)=>DCe(r,e,t)===0;hG.exports=kCe});var CG=w((m$e,dG)=>{var pG=gc(),RCe=KI(),FCe=(r,e)=>{if(RCe(r,e))return null;{let t=pG(r),i=pG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};dG.exports=FCe});var EG=w((E$e,mG)=>{var NCe=Ti(),LCe=(r,e)=>new NCe(r,e).major;mG.exports=LCe});var yG=w((I$e,IG)=>{var TCe=Ti(),OCe=(r,e)=>new TCe(r,e).minor;IG.exports=OCe});var BG=w((y$e,wG)=>{var MCe=Ti(),UCe=(r,e)=>new MCe(r,e).patch;wG.exports=UCe});var bG=w((w$e,QG)=>{var KCe=gc(),HCe=(r,e)=>{let t=KCe(r,e);return t&&t.prerelease.length?t.prerelease:null};QG.exports=HCe});var vG=w((B$e,SG)=>{var GCe=cs(),YCe=(r,e,t)=>GCe(e,r,t);SG.exports=YCe});var PG=w((Q$e,xG)=>{var jCe=cs(),qCe=(r,e)=>jCe(r,e,!0);xG.exports=qCe});var HI=w((b$e,kG)=>{var DG=Ti(),JCe=(r,e,t)=>{let i=new DG(r,t),n=new DG(e,t);return i.compare(n)||i.compareBuild(n)};kG.exports=JCe});var FG=w((S$e,RG)=>{var WCe=HI(),zCe=(r,e)=>r.sort((t,i)=>WCe(t,i,e));RG.exports=zCe});var LG=w((v$e,NG)=>{var VCe=HI(),XCe=(r,e)=>r.sort((t,i)=>VCe(i,t,e));NG.exports=XCe});var dd=w((x$e,TG)=>{var ZCe=cs(),_Ce=(r,e,t)=>ZCe(r,e,t)>0;TG.exports=_Ce});var GI=w((P$e,OG)=>{var $Ce=cs(),eme=(r,e,t)=>$Ce(r,e,t)<0;OG.exports=eme});var Cv=w((D$e,MG)=>{var tme=cs(),rme=(r,e,t)=>tme(r,e,t)!==0;MG.exports=rme});var YI=w((k$e,UG)=>{var ime=cs(),nme=(r,e,t)=>ime(r,e,t)>=0;UG.exports=nme});var jI=w((R$e,KG)=>{var sme=cs(),ome=(r,e,t)=>sme(r,e,t)<=0;KG.exports=ome});var mv=w((F$e,HG)=>{var ame=KI(),Ame=Cv(),lme=dd(),cme=YI(),ume=GI(),gme=jI(),fme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return ame(r,t,i);case"!=":return Ame(r,t,i);case">":return lme(r,t,i);case">=":return cme(r,t,i);case"<":return ume(r,t,i);case"<=":return gme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};HG.exports=fme});var YG=w((N$e,GG)=>{var hme=Ti(),pme=gc(),{re:qI,t:JI}=uc(),dme=(r,e)=>{if(r instanceof hme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(qI[JI.COERCE]);else{let i;for(;(i=qI[JI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),qI[JI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;qI[JI.COERCERTL].lastIndex=-1}return t===null?null:pme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};GG.exports=dme});var qG=w((L$e,jG)=>{"use strict";jG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var WI=w((T$e,JG)=>{"use strict";JG.exports=Ht;Ht.Node=fc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Ime=WI(),hc=Symbol("max"),Sa=Symbol("length"),Wg=Symbol("lengthCalculator"),md=Symbol("allowStale"),pc=Symbol("maxAge"),ba=Symbol("dispose"),WG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Zs=Symbol("cache"),VG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[hc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[md]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[pc]=e.maxAge||0,this[ba]=e.dispose,this[WG]=e.noDisposeOnSet||!1,this[VG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[hc]=e||1/0,Cd(this)}get max(){return this[hc]}set allowStale(e){this[md]=!!e}get allowStale(){return this[md]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[pc]=e,Cd(this)}get maxAge(){return this[pc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[Sa]=0,this[di].forEach(t=>{t.length=this[Wg](t.value,t.key),this[Sa]+=t.length})),Cd(this)}get lengthCalculator(){return this[Wg]}get length(){return this[Sa]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;zG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;zG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[ba]&&this[di]&&this[di].length&&this[di].forEach(e=>this[ba](e.key,e.value)),this[Zs]=new Map,this[di]=new Ime,this[Sa]=0}dump(){return this[di].map(e=>zI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[pc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Zs].has(e)){if(s>this[hc])return zg(this,this[Zs].get(e)),!1;let l=this[Zs].get(e).value;return this[ba]&&(this[WG]||this[ba](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Sa]+=s-l.length,l.length=s,this.get(e),Cd(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[hc]?(this[ba]&&this[ba](e,t),!1):(this[Sa]+=o.length,this[di].unshift(o),this[Zs].set(e,this[di].head),Cd(this),!0)}has(e){if(!this[Zs].has(e))return!1;let t=this[Zs].get(e).value;return!zI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[di].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Zs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Zs].get(e);if(i){let n=i.value;if(zI(r,n)){if(zg(r,i),!r[md])return}else t&&(r[VG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},zI=(r,e)=>{if(!e||!e.maxAge&&!r[pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[pc]&&t>r[pc]},Cd=r=>{if(r[Sa]>r[hc])for(let e=r[di].tail;r[Sa]>r[hc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[ba]&&r[ba](t.key,t.value),r[Sa]-=t.length,r[Zs].delete(t.key),r[di].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},zG=(r,e,t,i)=>{let n=t.value;zI(r,n)&&(zg(r,t),r[md]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};XG.exports=yv});var us=w((M$e,tY)=>{var dc=class{constructor(e,t){if(t=wme(t),e instanceof dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new dc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!$G(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&vme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=_G.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[Qi.HYPHENRANGELOOSE]:Oi[Qi.HYPHENRANGE];e=e.replace(o,Ome(this.options.includePrerelease)),Gr("hyphen replace",e),e=e.replace(Oi[Qi.COMPARATORTRIM],Qme),Gr("comparator trim",e,Oi[Qi.COMPARATORTRIM]),e=e.replace(Oi[Qi.TILDETRIM],bme),e=e.replace(Oi[Qi.CARETTRIM],Sme),e=e.split(/\s+/).join(" ");let a=s?Oi[Qi.COMPARATORLOOSE]:Oi[Qi.COMPARATOR],l=e.split(" ").map(f=>xme(f,this.options)).join(" ").split(/\s+/).map(f=>Tme(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Bv(f,this.options)),c=l.length,u=new Map;for(let f of l){if($G(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return _G.set(i,g),g}intersects(e,t){if(!(e instanceof dc))throw new TypeError("a Range is required");return this.set.some(i=>eY(i,t)&&e.set.some(n=>eY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Bme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",vme=r=>r.value==="",eY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},xme=(r,e)=>(Gr("comp",r,e),r=kme(r,e),Gr("caret",r),r=Pme(r,e),Gr("tildes",r),r=Fme(r,e),Gr("xrange",r),r=Lme(r,e),Gr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Pme=(r,e)=>r.trim().split(/\s+/).map(t=>Dme(t,e)).join(" "),Dme=(r,e)=>{let t=e.loose?Oi[Qi.TILDELOOSE]:Oi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Gr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Gr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Gr("tilde return",l),l})},kme=(r,e)=>r.trim().split(/\s+/).map(t=>Rme(t,e)).join(" "),Rme=(r,e)=>{Gr("caret",r,e);let t=e.loose?Oi[Qi.CARETLOOSE]:Oi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Gr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Gr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Gr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Gr("caret return",c),c})},Fme=(r,e)=>(Gr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Nme(t,e)).join(" ")),Nme=(r,e)=>{r=r.trim();let t=e.loose?Oi[Qi.XRANGELOOSE]:Oi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Gr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Gr("xRange return",i),i})},Lme=(r,e)=>(Gr("replaceStars",r,e),r.trim().replace(Oi[Qi.STAR],"")),Tme=(r,e)=>(Gr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),Ome=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Mme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ed=w((U$e,oY)=>{var Id=Symbol("SemVer ANY"),Vg=class{static get ANY(){return Id}constructor(e,t){if(t=Ume(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Id?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?rY[iY.COMPARATORLOOSE]:rY[iY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new nY(i[2],this.options.loose):this.semver=Id}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===Id||e===Id)return!0;if(typeof e=="string")try{e=new nY(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new sY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new sY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};oY.exports=Vg;var Ume=hd(),{re:rY,t:iY}=uc(),Qv=mv(),bv=fd(),nY=Ti(),sY=us()});var yd=w((K$e,aY)=>{var Kme=us(),Hme=(r,e,t)=>{try{e=new Kme(e,t)}catch{return!1}return e.test(r)};aY.exports=Hme});var lY=w((H$e,AY)=>{var Gme=us(),Yme=(r,e)=>new Gme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));AY.exports=Yme});var uY=w((G$e,cY)=>{var jme=Ti(),qme=us(),Jme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new qme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new jme(i,t))}),i};cY.exports=Jme});var fY=w((Y$e,gY)=>{var Wme=Ti(),zme=us(),Vme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new zme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Wme(i,t))}),i};gY.exports=Vme});var dY=w((j$e,pY)=>{var Sv=Ti(),Xme=us(),hY=dd(),Zme=(r,e)=>{r=new Xme(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||hY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||hY(t,s))&&(t=s)}return t&&r.test(t)?t:null};pY.exports=Zme});var mY=w((q$e,CY)=>{var _me=us(),$me=(r,e)=>{try{return new _me(r,e).range||"*"}catch{return null}};CY.exports=$me});var VI=w((J$e,wY)=>{var eEe=Ti(),yY=Ed(),{ANY:tEe}=yY,rEe=us(),iEe=yd(),EY=dd(),IY=GI(),nEe=jI(),sEe=YI(),oEe=(r,e,t,i)=>{r=new eEe(r,i),e=new rEe(e,i);let n,s,o,a,l;switch(t){case">":n=EY,s=nEe,o=IY,a=">",l=">=";break;case"<":n=IY,s=sEe,o=EY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(iEe(r,e,i))return!1;for(let c=0;c{h.semver===tEe&&(h=new yY(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};wY.exports=oEe});var QY=w((W$e,BY)=>{var aEe=VI(),AEe=(r,e,t)=>aEe(r,e,">",t);BY.exports=AEe});var SY=w((z$e,bY)=>{var lEe=VI(),cEe=(r,e,t)=>lEe(r,e,"<",t);bY.exports=cEe});var PY=w((V$e,xY)=>{var vY=us(),uEe=(r,e,t)=>(r=new vY(r,t),e=new vY(e,t),r.intersects(e));xY.exports=uEe});var kY=w((X$e,DY)=>{var gEe=yd(),fEe=cs();DY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>fEe(u,g,t));for(let u of o)gEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var RY=us(),XI=Ed(),{ANY:vv}=XI,wd=yd(),xv=cs(),hEe=(r,e,t={})=>{if(r===e)return!0;r=new RY(r,t),e=new RY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=pEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},pEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new XI(">=0.0.0-0")]:r=[new XI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new XI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=FY(n,h,t):h.operator==="<"||h.operator==="<="?s=NY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!wd(h,String(n),t)||s&&!wd(h,String(s),t))return null;for(let p of e)if(!wd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=FY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!wd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=NY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!wd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},FY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},NY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};LY.exports=hEe});var Xr=w((_$e,OY)=>{var Pv=uc();OY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:gd().SEMVER_SPEC_VERSION,SemVer:Ti(),compareIdentifiers:OI().compareIdentifiers,rcompareIdentifiers:OI().rcompareIdentifiers,parse:gc(),valid:aG(),clean:lG(),inc:uG(),diff:CG(),major:EG(),minor:yG(),patch:BG(),prerelease:bG(),compare:cs(),rcompare:vG(),compareLoose:PG(),compareBuild:HI(),sort:FG(),rsort:LG(),gt:dd(),lt:GI(),eq:KI(),neq:Cv(),gte:YI(),lte:jI(),cmp:mv(),coerce:YG(),Comparator:Ed(),Range:us(),satisfies:yd(),toComparators:lY(),maxSatisfying:uY(),minSatisfying:fY(),minVersion:dY(),validRange:mY(),outside:VI(),gtr:QY(),ltr:SY(),intersects:PY(),simplifyRange:kY(),subset:TY()}});var Dv=w(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.VERSION=void 0;ZI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof _I=="object"&&_I.exports?_I.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:MY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ty=w(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var dEe=$I(),ey={},CEe=new dEe.RegExpParser;function mEe(r){var e=r.toString();if(ey.hasOwnProperty(e))return ey[e];var t=CEe.pattern(e);return ey[e]=t,t}Xg.getRegExpAst=mEe;function EEe(){ey={}}Xg.clearRegExpParserCache=EEe});var YY=w(dn=>{"use strict";var IEe=dn&&dn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dn,"__esModule",{value:!0});dn.canMatchCharCode=dn.firstCharOptimizedIndices=dn.getOptimizedStartCodesIndices=dn.failedOptimizationPrefixMsg=void 0;var KY=$I(),gs=Gt(),HY=ty(),va=Rv(),GY="Complement Sets are not supported for first char optimization";dn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function yEe(r,e){e===void 0&&(e=!1);try{var t=(0,HY.getRegExpAst)(r),i=iy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===GY)e&&(0,gs.PRINT_WARNING)(""+dn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,gs.PRINT_ERROR)(dn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+KY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}dn.getOptimizedStartCodesIndices=yEe;function iy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=va.minOptimizationVal)for(var f=u.from>=va.minOptimizationVal?u.from:va.minOptimizationVal,h=u.to,p=(0,va.charCodeToOptimizedIndex)(f),C=(0,va.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":iy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,gs.values)(e)}dn.firstCharOptimizedIndices=iy;function ry(r,e,t){var i=(0,va.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&wEe(r,e)}function wEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,va.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,va.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function UY(r,e){return(0,gs.find)(r.value,function(t){if(typeof t=="number")return(0,gs.contains)(e,t);var i=t;return(0,gs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,gs.isArray)(r.value)?(0,gs.every)(r.value,kv):kv(r.value):!1}var BEe=function(r){IEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,gs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?UY(t,this.targetCharCodes)===void 0&&(this.found=!0):UY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(KY.BaseRegExpVisitor);function QEe(r,e){if(e instanceof RegExp){var t=(0,HY.getRegExpAst)(e),i=new BEe(r);return i.visit(t),i.found}else return(0,gs.find)(e,function(n){return(0,gs.contains)(r,n.charCodeAt(0))})!==void 0}dn.canMatchCharCode=QEe});var Rv=w(Ve=>{"use strict";var jY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var qY=$I(),ir=Bd(),xe=Gt(),Zg=YY(),JY=ty(),Do="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function bEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=bEe;function SEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=SEe;function vEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){OEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[Do];if((0,xe.isRegExp)(D)){var L=D.source;return L.length===1&&L!=="^"&&L!=="$"&&L!=="."&&!D.ignoreCase?L:L.length===2&&L[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],L[1])?L[1]:e.useSticky?Lv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Lv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var L=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return L}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=oj(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(nj(D,v)===!1)return(0,Zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Ov),h=(0,xe.map)(s,ij),p=(0,xe.reduce)(i,function(v,D){var L=D.GROUP;return(0,xe.isString)(L)&&L!==ir.Lexer.SKIPPED&&(v[L]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,L){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Tv(H);Fv(v,j,C[L])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Tv(_);$!==A&&($=A,Fv(v,A,C[L]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Zg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){Fv(v,W,C[L])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=vEe;function xEe(r,e){var t=[],i=WY(r);t=t.concat(i.errors);var n=zY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(PEe(s)),t=t.concat(ej(s)),t=t.concat(tj(s,e)),t=t.concat(rj(s)),t}Ve.validatePatterns=xEe;function PEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[Do])});return e=e.concat(VY(t)),e=e.concat(ZY(t)),e=e.concat(_Y(t)),e=e.concat($Y(t)),e=e.concat(XY(t)),e}function WY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,Do)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=WY;function zY(r){var e=(0,xe.filter)(r,function(n){var s=n[Do];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=zY;var DEe=/[^\\][\$]/;function VY(r){var e=function(n){jY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(qY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[Do];try{var o=(0,JY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return DEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=VY;function XY(r){var e=(0,xe.filter)(r,function(i){var n=i[Do];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=XY;var kEe=/[^\\[][\^]|^\^/;function ZY(r){var e=function(n){jY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(qY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[Do];try{var o=(0,JY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return kEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=ZY;function _Y(r){var e=(0,xe.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=_Y;function $Y(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=$Y;function ej(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=ej;function tj(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=tj;function rj(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&FEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=rj;function REe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function FEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Lv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Lv;function NEe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=NEe;function LEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=oj(t);return e&&(0,xe.forEach)(o,function(l){var c=nj(l,a);if(c!==!1){var u=sj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=LEe;function TEe(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=TEe;function Ov(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=Ov;function ij(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=ij;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=sj;function oj(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ny=[];function Tv(r){return r255?255+~~(r/255):r}}});var _g=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function MEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=MEe;function UEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=UEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function KEe(r){var e=aj(r);Aj(e),cj(e),lj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=KEe;function aj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=aj;function Aj(r){(0,Zr.forEach)(r,function(e){uj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Mv(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),gj(e)||(e.categoryMatches=[]),fj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=Aj;function lj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=lj;function cj(r){(0,Zr.forEach)(r,function(e){Uv([],e)})}Nt.assignCategoriesMapProp=cj;function Uv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Uv(i,t)})}Nt.singleAssignCategoriesToksMap=Uv;function uj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=uj;function Mv(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Mv;function gj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=gj;function fj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=fj;function HEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=HEe});var Kv=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.defaultLexerErrorProvider=void 0;sy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Bd=w(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.Lexer=Cc.LexerDefinitionErrorType=void 0;var _s=Rv(),nr=Gt(),GEe=_g(),YEe=Kv(),jEe=ty(),qEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(qEe=Cc.LexerDefinitionErrorType||(Cc.LexerDefinitionErrorType={}));var Qd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:YEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Qd);var JEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(Qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=_s.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Qd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[_s.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[_s.DEFAULT_MODE]=_s.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,_s.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,GEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,_s.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(_s.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,jEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,L=e,H=L.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,Ae=this.trackStartLines?1:void 0,ge=(0,_s.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,O=this.config.lineTerminatorsPattern,F=0,ue=[],pe=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,_s.charCodeToOptimizedIndex)(pr),rs=pe[Ii];return rs===void 0?Fe:rs}var Be=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var rs=(0,nr.last)(ke);ue=i.patternIdxToConfig[rs],pe=i.charCodeToPatternIdxToConfig[rs],F=ue.length;var ga=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;pe&&ga?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),pe=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;pe&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var ae;jc.length){c=a,u=g,ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=ae.group,h!==void 0&&(p=ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,ae.tokenType,A,Ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,Ae=this.computeNewColumn(Ae,f),re===!0&&ae.canLineTerminator===!0){var It=0,Or=void 0,ii=void 0;O.lastIndex=0;do Or=O.test(c),Or===!0&&(ii=O.lastIndex-1,It++);while(Or===!0);It!==0&&(A=A+It,Ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,Ae,f))}this.handleModes(ae,Be,fe,C)}else{for(var gi=j,hr=A,fi=Ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Cc.Lexer=JEe});var LA=w(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.tokenMatcher=bi.createTokenInstance=bi.EOF=bi.createToken=bi.hasTokenLabel=bi.tokenName=bi.tokenLabel=void 0;var $s=Gt(),WEe=Bd(),Hv=_g();function zEe(r){return wj(r)?r.LABEL:r.name}bi.tokenLabel=zEe;function VEe(r){return r.name}bi.tokenName=VEe;function wj(r){return(0,$s.isString)(r.LABEL)&&r.LABEL!==""}bi.hasTokenLabel=wj;var XEe="parent",hj="categories",pj="label",dj="group",Cj="push_mode",mj="pop_mode",Ej="longer_alt",Ij="line_breaks",yj="start_chars_hint";function Bj(r){return ZEe(r)}bi.createToken=Bj;function ZEe(r){var e=r.pattern,t={};if(t.name=r.name,(0,$s.isUndefined)(e)||(t.PATTERN=e),(0,$s.has)(r,XEe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,$s.has)(r,hj)&&(t.CATEGORIES=r[hj]),(0,Hv.augmentTokenTypes)([t]),(0,$s.has)(r,pj)&&(t.LABEL=r[pj]),(0,$s.has)(r,dj)&&(t.GROUP=r[dj]),(0,$s.has)(r,mj)&&(t.POP_MODE=r[mj]),(0,$s.has)(r,Cj)&&(t.PUSH_MODE=r[Cj]),(0,$s.has)(r,Ej)&&(t.LONGER_ALT=r[Ej]),(0,$s.has)(r,Ij)&&(t.LINE_BREAKS=r[Ij]),(0,$s.has)(r,yj)&&(t.START_CHARS_HINT=r[yj]),t}bi.EOF=Bj({name:"EOF",pattern:WEe.Lexer.NA});(0,Hv.augmentTokenTypes)([bi.EOF]);function _Ee(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}bi.createTokenInstance=_Ee;function $Ee(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}bi.tokenMatcher=$Ee});var Cn=w(zt=>{"use strict";var xa=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),eIe=LA(),ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=ko;var Qj=function(r){xa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(ko);zt.NonTerminal=Qj;var bj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Rule=bj;var Sj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Alternative=Sj;var vj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Option=vj;var xj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionMandatory=xj;var Pj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionMandatoryWithSeparator=Pj;var Dj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Repetition=Dj;var kj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionWithSeparator=kj;var Rj=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(ko);zt.Alternation=Rj;var oy=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=oy;function tIe(r){return(0,Ar.map)(r,bd)}zt.serializeGrammar=tIe;function bd(r){function e(s){return(0,Ar.map)(s,bd)}if(r instanceof Qj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Sj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof vj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Pj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:bd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof kj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:bd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Dj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Rj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof oy){var i={type:"Terminal",name:r.terminalType.name,label:(0,eIe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof bj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}zt.serializeProduction=bd});var Ay=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.RestWalker=void 0;var Gv=Gt(),mn=Cn(),rIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof mn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof mn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof mn.Alternative)i.walkFlat(n,o,t);else if(n instanceof mn.Option)i.walkOption(n,o,t);else if(n instanceof mn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof mn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof mn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof mn.Repetition)i.walkMany(n,o,t);else if(n instanceof mn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Fj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Fj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new mn.Alternative({definition:[o]});n.walk(a,s)})},r}();ay.RestWalker=rIe;function Fj(r,e,t){var i=[new mn.Option({definition:[new mn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.GAstVisitor=void 0;var Ro=Cn(),iIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();ly.GAstVisitor=iIe});var vd=w(Mi=>{"use strict";var nIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var Sd=Gt(),Qr=Cn(),sIe=$g();function oIe(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Mi.isSequenceProd=oIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,Sd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof Qr.NonTerminal&&(0,Sd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,Sd.every)(r.definition,function(i){return Yv(i,e)})):!1}Mi.isOptionalProd=Yv;function aIe(r){return r instanceof Qr.Alternation}Mi.isBranchingProd=aIe;function AIe(r){if(r instanceof Qr.NonTerminal)return"SUBRULE";if(r instanceof Qr.Option)return"OPTION";if(r instanceof Qr.Alternation)return"OR";if(r instanceof Qr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Qr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Qr.Repetition)return"MANY";if(r instanceof Qr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=AIe;var Nj=function(r){nIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(sIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=Nj;var cy=new Nj;function lIe(r){cy.reset(),r.accept(cy);var e=cy.dslMethods;return cy.reset(),e}Mi.collectMethods=lIe});var qv=w(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var uy=Gt(),Lj=Cn(),jv=vd();function gy(r){if(r instanceof Lj.NonTerminal)return gy(r.referencedRule);if(r instanceof Lj.Terminal)return Mj(r);if((0,jv.isSequenceProd)(r))return Tj(r);if((0,jv.isBranchingProd)(r))return Oj(r);throw Error("non exhaustive match")}Fo.first=gy;function Tj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,jv.isOptionalProd)(s),e=e.concat(gy(s)),i=i+1,n=t.length>i;return(0,uy.uniq)(e)}Fo.firstForSequence=Tj;function Oj(r){var e=(0,uy.map)(r.definition,function(t){return gy(t)});return(0,uy.uniq)((0,uy.flatten)(e))}Fo.firstForBranching=Oj;function Mj(r){return[r.terminalType]}Fo.firstForTerminal=Mj});var Jv=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.IN=void 0;fy.IN="_~IN~_"});var Yj=w(fs=>{"use strict";var cIe=fs&&fs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(fs,"__esModule",{value:!0});fs.buildInProdFollowPrefix=fs.buildBetweenProdsFollowPrefix=fs.computeAllProdsFollows=fs.ResyncFollowsWalker=void 0;var uIe=Ay(),gIe=qv(),Uj=Gt(),Kj=Jv(),fIe=Cn(),Hj=function(r){cIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Gj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new fIe.Alternative({definition:o}),l=(0,gIe.first)(a);this.follows[s]=l},e}(uIe.RestWalker);fs.ResyncFollowsWalker=Hj;function hIe(r){var e={};return(0,Uj.forEach)(r,function(t){var i=new Hj(t).startWalking();(0,Uj.assign)(e,i)}),e}fs.computeAllProdsFollows=hIe;function Gj(r,e){return r.name+e+Kj.IN}fs.buildBetweenProdsFollowPrefix=Gj;function pIe(r){var e=r.terminalType.name;return e+r.idx+Kj.IN}fs.buildInProdFollowPrefix=pIe});var xd=w(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.defaultGrammarValidatorErrorProvider=Pa.defaultGrammarResolverErrorProvider=Pa.defaultParserErrorProvider=void 0;var ef=LA(),dIe=Gt(),eo=Gt(),Wv=Cn(),jj=vd();Pa.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,eo.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,eo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,eo.map)(c,function(h){return"["+(0,eo.map)(h,function(p){return(0,ef.tokenLabel)(p)}).join(", ")+"]"}),g=(0,eo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,eo.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,eo.map)(e,function(u){return"["+(0,eo.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Pa.defaultParserErrorProvider);Pa.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Pa.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,eo.first)(e),s=n.idx,o=(0,jj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,jj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=dIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Wj=w(TA=>{"use strict";var CIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var mIe=Yn(),qj=Gt(),EIe=$g();function IIe(r,e){var t=new Jj(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=IIe;var Jj=function(r){CIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,qj.forEach)((0,qj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:mIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(EIe.GAstVisitor);TA.GastRefResolverVisitor=Jj});var Dd=w(Nr=>{"use strict";var mc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var zj=Ay(),Ut=Gt(),yIe=qv(),kt=Cn(),Vj=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Ut.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Ut.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Ut.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(zj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Vj;var wIe=function(r){mc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,yIe.first)(o),this.found=!0}},e}(Vj);Nr.NextAfterTokenWalker=wIe;var Pd=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(zj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=Pd;var BIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManyWalker=BIe;var QIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManySepWalker=QIe;var bIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneWalker=bIe;var SIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneSepWalker=SIe;function Xj(r,e,t){t===void 0&&(t=[]),t=(0,Ut.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Ut.drop)(r,n+1))}function o(c){var u=Xj(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],O={idx:p,def:re.definition.concat((0,Ut.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Ut.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(xIe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=vIe;function xIe(r,e,t,i){var n=(0,Ut.cloneArr)(t);n.push(r.name);var s=(0,Ut.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var kd=w(Zt=>{"use strict";var $j=Zt&&Zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.areTokenCategoriesNotUsed=Zt.isStrictPrefixOfPath=Zt.containsPath=Zt.getLookaheadPathsForOptionalProd=Zt.getLookaheadPathsForOr=Zt.lookAheadSequenceFromAlternatives=Zt.buildSingleAlternativeLookaheadFunction=Zt.buildAlternativesLookAheadFunc=Zt.buildLookaheadFuncForOptionalProd=Zt.buildLookaheadFuncForOr=Zt.getProdType=Zt.PROD_TYPE=void 0;var sr=Gt(),Zj=Dd(),PIe=Ay(),hy=_g(),OA=Cn(),DIe=$g(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=Zt.PROD_TYPE||(Zt.PROD_TYPE={}));function kIe(r){if(r instanceof OA.Option)return oi.OPTION;if(r instanceof OA.Repetition)return oi.REPETITION;if(r instanceof OA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof OA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof OA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof OA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}Zt.getProdType=kIe;function RIe(r,e,t,i,n,s){var o=tq(r,e,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o,i,a,n)}Zt.buildLookaheadFuncForOr=RIe;function FIe(r,e,t,i,n,s){var o=rq(r,e,n,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o[0],a,i)}Zt.buildLookaheadFuncForOptionalProd=FIe;function NIe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Zv=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.checkPrefixAlternativesAmbiguities=Vt.validateSomeNonEmptyLookaheadPath=Vt.validateTooManyAlts=Vt.RepetionCollector=Vt.validateAmbiguousAlternationAlternatives=Vt.validateEmptyOrAlternative=Vt.getFirstNoneTerminal=Vt.validateNoLeftRecursion=Vt.validateRuleIsOverridden=Vt.validateRuleDoesNotAlreadyExist=Vt.OccurrenceValidationCollector=Vt.identifyProductionForDuplicates=Vt.validateGrammar=void 0;var er=Gt(),br=Gt(),No=Yn(),_v=vd(),tf=kd(),UIe=Dd(),to=Cn(),$v=$g();function KIe(r,e,t,i,n){var s=er.map(r,function(h){return HIe(h,i)}),o=er.map(r,function(h){return ex(h,h,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(h){return Aq(h,i)}),l=(0,br.map)(r,function(h){return lq(h,e,i)}),c=gq(r,e,i));var u=jIe(r,t,i),g=(0,br.map)(r,function(h){return uq(h,i)}),f=(0,br.map)(r,function(h){return aq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}Vt.validateGrammar=KIe;function HIe(r,e){var t=new oq;r.accept(t);var i=t.allProductions,n=er.groupBy(i,nq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=sq(l);return f&&(g.parameter=f),g});return o}function nq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+sq(r)}Vt.identifyProductionForDuplicates=nq;function sq(r){return r instanceof to.Terminal?r.terminalType.name:r instanceof to.NonTerminal?r.nonTerminalName:""}var oq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.OccurrenceValidationCollector=oq;function aq(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Vt.validateRuleDoesNotAlreadyExist=aq;function GIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Vt.validateRuleIsOverridden=GIe;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Rd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(er.flatten(c))}Vt.validateNoLeftRecursion=ex;function Rd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof to.NonTerminal)e.push(t.referencedRule);else if(t instanceof to.Alternative||t instanceof to.Option||t instanceof to.RepetitionMandatory||t instanceof to.RepetitionMandatoryWithSeparator||t instanceof to.RepetitionWithSeparator||t instanceof to.Repetition)e=e.concat(Rd(t.definition));else if(t instanceof to.Alternation)e=er.flatten(er.map(t.definition,function(o){return Rd(o.definition)}));else if(!(t instanceof to.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(Rd(s))}else return e}Vt.getFirstNoneTerminal=Rd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function Aq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,UIe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}Vt.validateEmptyOrAlternative=Aq;function lq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=YIe(u,a,r,t),f=fq(u,a,r,t);return o.concat(g,f)},[]);return s}Vt.validateAmbiguousAlternationAlternatives=lq;var cq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.RepetionCollector=cq;function uq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Vt.validateTooManyAlts=uq;function gq(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new cq;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,br.isEmpty)((0,br.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Vt.validateSomeNonEmptyLookaheadPath=gq;function YIe(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(f,h){c!==h&&(0,tf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function fq(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Gt(),qIe=Wj(),JIe=rx(),hq=xd();function WIe(r){r=(0,ix.defaults)(r,{errMsgProvider:hq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,qIe.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=WIe;function zIe(r){return r=(0,ix.defaults)(r,{errMsgProvider:hq.defaultGrammarValidatorErrorProvider}),(0,JIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=zIe});var nf=w(En=>{"use strict";var Fd=En&&En.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(En,"__esModule",{value:!0});En.EarlyExitException=En.NotAllInputParsedException=En.NoViableAltException=En.MismatchedTokenException=En.isRecognitionException=void 0;var VIe=Gt(),dq="MismatchedTokenException",Cq="NoViableAltException",mq="EarlyExitException",Eq="NotAllInputParsedException",Iq=[dq,Cq,mq,Eq];Object.freeze(Iq);function XIe(r){return(0,VIe.contains)(Iq,r.name)}En.isRecognitionException=XIe;var py=function(r){Fd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),ZIe=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=dq,s}return e}(py);En.MismatchedTokenException=ZIe;var _Ie=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Cq,s}return e}(py);En.NoViableAltException=_Ie;var $Ie=function(r){Fd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Eq,n}return e}(py);En.NotAllInputParsedException=$Ie;var eye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mq,s}return e}(py);En.EarlyExitException=eye});var sx=w(Ui=>{"use strict";Object.defineProperty(Ui,"__esModule",{value:!0});Ui.attemptInRepetitionRecovery=Ui.Recoverable=Ui.InRuleRecoveryException=Ui.IN_RULE_RECOVERY_EXCEPTION=Ui.EOF_FOLLOW_KEY=void 0;var dy=LA(),hs=Gt(),tye=nf(),rye=Jv(),iye=Yn();Ui.EOF_FOLLOW_KEY={};Ui.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ui.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ui.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var nye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,hs.has)(e,"recoveryEnabled")?e.recoveryEnabled:iye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=yq)},r.prototype.getTokenToInsert=function(e){var t=(0,dy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new tye.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,hs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,hs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,hs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,hs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,hs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ui.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,hs.map)(t,function(n,s){return s===0?Ui.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,hs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,hs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ui.EOF_FOLLOW_KEY)return[dy.EOF];var t=e.ruleName+e.idxInCallingRule+rye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,dy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,hs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,hs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,hs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ui.Recoverable=nye;function yq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=dy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ui.attemptInRepetitionRecovery=yq});var Cy=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.LooksAhead=void 0;var Da=kd(),ro=Gt(),wq=Yn(),ka=Cy(),Ec=vd(),oye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,ro.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:wq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,ro.has)(e,"maxLookahead")?e.maxLookahead:wq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,ro.isES2015MapSupported)()?new Map:[],(0,ro.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,ro.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Ec.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,ro.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Ec.getProductionDslName)(g)+f,function(){var h=(0,Da.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,ka.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],ka.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,ro.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,ka.MANY_IDX,Da.PROD_TYPE.REPETITION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,ka.OPTION_IDX,Da.PROD_TYPE.OPTION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,ka.AT_LEAST_ONE_IDX,Da.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,ka.AT_LEAST_ONE_SEP_IDX,Da.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,ka.MANY_SEP_IDX,Da.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Da.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,ka.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Da.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Da.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,ka.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();my.LooksAhead=oye});var Qq=w(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.addNoneTerminalToCst=Lo.addTerminalToCst=Lo.setNodeLocationFull=Lo.setNodeLocationOnlyOffset=void 0;function aye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.defineNameProp=MA.functionName=MA.classNameFromInstance=void 0;var uye=Gt();function gye(r){return Sq(r.constructor)}MA.classNameFromInstance=gye;var bq="name";function Sq(r){var e=r.name;return e||"anonymous"}MA.functionName=Sq;function fye(r,e){var t=Object.getOwnPropertyDescriptor(r,bq);return(0,uye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,bq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}MA.defineNameProp=fye});var kq=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateRedundantMethods=Si.validateMissingCstMethods=Si.validateVisitor=Si.CstVisitorDefinitionError=Si.createBaseVisitorConstructorWithDefaults=Si.createBaseSemanticVisitorConstructor=Si.defaultVisit=void 0;var ps=Gt(),Nd=ox();function vq(r,e){for(var t=(0,ps.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=hye;function pye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ps.forEach)(e,function(s){n[s]=vq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=pye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function xq(r,e){var t=Pq(r,e),i=Dq(r,e);return t.concat(i)}Si.validateVisitor=xq;function Pq(r,e){var t=(0,ps.map)(e,function(i){if(!(0,ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,ps.compact)(t)}Si.validateMissingCstMethods=Pq;var dye=["constructor","visit","validateVisitor"];function Dq(r,e){var t=[];for(var i in r)(0,ps.isFunction)(r[i])&&!(0,ps.contains)(dye,i)&&!(0,ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=Dq});var Fq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.TreeBuilder=void 0;var sf=Qq(),_r=Gt(),Rq=kq(),Cye=Yn(),mye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Cye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Rq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Rq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Ey.TreeBuilder=mye});var Lq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.LexerAdapter=void 0;var Nq=Yn(),Eye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Nq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Nq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Iy.LexerAdapter=Eye});var Oq=w(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.RecognizerApi=void 0;var Tq=Gt(),Iye=nf(),Ax=Yn(),yye=xd(),wye=rx(),Bye=Cn(),Qye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Tq.contains)(this.definedRulesNames,e)){var n=yye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,wye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Iye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Bye.serializeGrammar)((0,Tq.values)(this.gastProductionsCache))},r}();yy.RecognizerApi=Qye});var Hq=w(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.RecognizerEngine=void 0;var Pr=Gt(),jn=Cy(),wy=nf(),Mq=kd(),of=Dd(),Uq=Yn(),bye=sx(),Kq=LA(),Ld=_g(),Sye=ox(),vye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Sye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Kq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Uq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Uq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(jn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new wy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,wy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new wy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===bye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Kq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();By.RecognizerEngine=vye});var Yq=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ErrorHandler=void 0;var lx=nf(),cx=Gt(),Gq=kd(),xye=Yn(),Pye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:xye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Gq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Gq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();Qy.ErrorHandler=Pye});var Jq=w(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ContentAssist=void 0;var jq=Dd(),qq=Gt(),Dye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,qq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,jq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,qq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new jq.NextAfterTokenWalker(n,e).startWalking();return s},r}();by.ContentAssist=Dye});var eJ=w(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.GastRecorder=void 0;var In=Gt(),To=Cn(),kye=Bd(),Xq=_g(),Zq=LA(),Rye=Yn(),Fye=Cy(),vy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(vy);var Wq=!0,zq=Math.pow(2,Fye.BITS_FOR_OCCURRENCE_IDX)-1,_q=(0,Zq.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:kye.Lexer.NA});(0,Xq.augmentTokenTypes)([_q]);var $q=(0,Zq.createTokenInstance)(_q,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze($q);var Nye={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Lye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Rye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new To.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Td.call(this,To.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Td.call(this,To.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Td.call(this,To.RepetitionMandatoryWithSeparator,t,e,Wq)},r.prototype.manyInternalRecord=function(e,t){Td.call(this,To.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Td.call(this,To.RepetitionWithSeparator,t,e,Wq)},r.prototype.orInternalRecord=function(e,t){return Tye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Sy(t),!e||(0,In.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=e.ruleName,a=new To.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Nye:vy},r.prototype.consumeInternalRecord=function(e,t,i){if(Sy(t),!(0,Xq.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=new To.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),$q},r}();xy.GastRecorder=Lye;function Td(r,e,t,i){i===void 0&&(i=!1),Sy(t);var n=(0,In.peek)(this.recordingProdStack),s=(0,In.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,In.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),vy}function Tye(r,e){var t=this;Sy(e);var i=(0,In.peek)(this.recordingProdStack),n=(0,In.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new To.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,In.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,In.some)(s,function(l){return(0,In.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,In.forEach)(s,function(l){var c=new To.Alternative({definition:[]});o.definition.push(c),(0,In.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,In.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),vy}function Vq(r){return r===0?"":""+r}function Sy(r){if(r<0||r>zq){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(zq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var rJ=w(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var tJ=Gt(),Oye=Yn(),Mye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,tJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Oye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,tJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Mye});var iJ=w(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.applyMixins=void 0;function Uye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Dy.applyMixins=Uye});var Yn=w(dr=>{"use strict";var oJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var $i=Gt(),Kye=Yj(),nJ=LA(),aJ=xd(),sJ=pq(),Hye=sx(),Gye=Bq(),Yye=Fq(),jye=Lq(),qye=Oq(),Jye=Hq(),Wye=Yq(),zye=Jq(),Vye=eJ(),Xye=rJ(),Zye=iJ();dr.END_OF_FILE=(0,nJ.createTokenInstance)(nJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:aJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var _ye;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(_ye=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function $ye(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=$ye;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,$i.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,$i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,$i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,sJ.resolveGrammar)({rules:(0,$i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,$i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,sJ.validateGrammar)({rules:(0,$i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,$i.values)(e.tokensMap),errMsgProvider:aJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,$i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,Kye.computeAllProdsFollows)((0,$i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,$i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,$i.isEmpty)(e.definitionErrors))throw t=(0,$i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=ky;(0,Zye.applyMixins)(ky,[Hye.Recoverable,Gye.LooksAhead,Yye.TreeBuilder,jye.LexerAdapter,Jye.RecognizerEngine,qye.RecognizerApi,Wye.ErrorHandler,zye.ContentAssist,Vye.GastRecorder,Xye.PerformanceTracer]);var ewe=function(r){oJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,$i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);dr.CstParser=ewe;var twe=function(r){oJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,$i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);dr.EmbeddedActionsParser=twe});var lJ=w(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.createSyntaxDiagramsCode=void 0;var AJ=Dv();function rwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+AJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+AJ.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` + + + diff --git a/applications/client/jest.config.ts b/applications/client/jest.config.ts new file mode 100644 index 0000000..da64b3b --- /dev/null +++ b/applications/client/jest.config.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +export default { + displayName: 'client', + preset: '../../jest.preset.js', + globals: { + 'ts-jest': { + tsconfig: '/tsconfig.spec.json', + }, + }, + coverageDirectory: '../../coverage/applications/client', +}; diff --git a/applications/client/moon.yml b/applications/client/moon.yml new file mode 100644 index 0000000..c439d3a --- /dev/null +++ b/applications/client/moon.yml @@ -0,0 +1,31 @@ +dependsOn: + - 'graph' + - 'ui-styles' +tasks: + build: + deps: + - ~:build-vite + start-dev: + local: true + deps: + - ^:build + - ~:start-vite + options: + runInCI: false + runDepsInParallel: false + graphql: + command: mk-gql --outDir=./src/store/graphql ../server/schema.graphql + options: + runInCI: false + lint-graphql: + command: 'eslint src/store/graphql --fix' + options: + runInCI: false + generate-graphql: + command: 'prettier --write src/store/graphql/*.ts' + deps: + - ~:graphql + - ~:lint-graphql + options: + runInCI: false + runDepsInParallel: false diff --git a/applications/client/package.json b/applications/client/package.json new file mode 100644 index 0000000..30a7000 --- /dev/null +++ b/applications/client/package.json @@ -0,0 +1,21 @@ +{ + "name": "@redeye/client", + "version": "0.9.0", + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not ie 11", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "dependencies": { + "@redeye/graph": "workspace:*", + "@redeye/ui-styles": "workspace:*" + } +} diff --git a/applications/client/public/favicon.ico b/applications/client/public/favicon.ico new file mode 100644 index 0000000..6fc12aa Binary files /dev/null and b/applications/client/public/favicon.ico differ diff --git a/applications/client/public/favicon.png b/applications/client/public/favicon.png new file mode 100644 index 0000000..d3e7224 Binary files /dev/null and b/applications/client/public/favicon.png differ diff --git a/applications/client/public/favicon.svg b/applications/client/public/favicon.svg new file mode 100644 index 0000000..c0836cb --- /dev/null +++ b/applications/client/public/favicon.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/applications/client/public/logos/Logo-Dark.png b/applications/client/public/logos/Logo-Dark.png new file mode 100644 index 0000000..3c09dec Binary files /dev/null and b/applications/client/public/logos/Logo-Dark.png differ diff --git a/applications/client/public/logos/Logo-Dark.svg b/applications/client/public/logos/Logo-Dark.svg new file mode 100644 index 0000000..27274da --- /dev/null +++ b/applications/client/public/logos/Logo-Dark.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/applications/client/public/logos/Logo-Light.png b/applications/client/public/logos/Logo-Light.png new file mode 100644 index 0000000..c55c5cf Binary files /dev/null and b/applications/client/public/logos/Logo-Light.png differ diff --git a/applications/client/public/logos/Logo-Light.svg b/applications/client/public/logos/Logo-Light.svg new file mode 100644 index 0000000..5ad03d2 --- /dev/null +++ b/applications/client/public/logos/Logo-Light.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/applications/client/public/manifest.json b/applications/client/public/manifest.json new file mode 100644 index 0000000..51a4f22 --- /dev/null +++ b/applications/client/public/manifest.json @@ -0,0 +1,30 @@ +{ + "short_name": "RedEye", + "name": "Red Team C2 Log Visualization", + "icons": [ + { + "src": "favicon.svg", + "sizes": "32x32", + "type": "image/svg" + }, + { + "src": "favicon.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "favicon.ico", + "sizes": "32x32 16x16", + "type": "image/x-icon" + }, + { + "src": "logos/Logo-Dark.png", + "type": "image/svg", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#000000" +} diff --git a/applications/client/src/App.tsx b/applications/client/src/App.tsx new file mode 100644 index 0000000..3d1474c --- /dev/null +++ b/applications/client/src/App.tsx @@ -0,0 +1,32 @@ +import { FocusStyleManager, Spinner } from '@blueprintjs/core'; +import { css } from '@emotion/react'; +import { RedEyeRoutes } from '@redeye/client/store'; +import { observer } from 'mobx-react-lite'; +import { lazy, Suspense } from 'react'; +import { Navigate, Route, Routes } from 'react-router-dom'; + +FocusStyleManager.onlyShowFocusOnTabs(); +const Login = lazy(() => import('./views/Login')); +const Campaign = lazy(() => import('./views/Campaign/Campaign')); +const CampaignList = lazy(() => import('./views/Campaigns/Campaigns')); + +export const App = observer(() => ( + + } + > + + } /> + } /> + } /> + } /> + + +)); diff --git a/applications/client/src/CustomRouter.tsx b/applications/client/src/CustomRouter.tsx new file mode 100644 index 0000000..ef464bc --- /dev/null +++ b/applications/client/src/CustomRouter.tsx @@ -0,0 +1,35 @@ +import type { History, Update } from 'history'; +import { observer } from 'mobx-react-lite'; +import type { ReactNode } from 'react'; +import { useLayoutEffect } from 'react'; +import { Router } from 'react-router-dom'; +import { createState } from './components/mobx-create-state'; + +export interface BrowserRouterProps { + basename?: string; + children?: ReactNode; + history: History; +} + +export const CustomRouter = observer(({ basename, children, history }) => { + const state = createState({ + action: history.action, + location: history.location, + setState(newState: Update) { + this.action = newState.action; + this.location = newState.location; + }, + }); + + useLayoutEffect(() => history.listen(state.setState), [history]); + + return ( + + ); +}); diff --git a/applications/client/src/components/AuthCheck.tsx b/applications/client/src/components/AuthCheck.tsx new file mode 100644 index 0000000..0658f4a --- /dev/null +++ b/applications/client/src/components/AuthCheck.tsx @@ -0,0 +1,45 @@ +import { Button, Intent } from '@blueprintjs/core'; +import type { DialogExProps } from '@redeye/client/components'; +import { DialogBodyEx, DialogEx, DialogFooterEx } from '@redeye/client/components'; +import { RedEyeRoutes, useStore } from '@redeye/client/store'; +import { observer } from 'mobx-react-lite'; +import { useEffect } from 'react'; + +type AuthCheckProps = Partial & {}; + +export const AuthCheck = observer(({ ...props }) => { + const store = useStore(); + + // Redirect to login if the app loads with no session/connection to the server + useEffect(() => { + setTimeout(() => { + if (!store.appMeta.blueTeam) store.auth.checkServerConnection(); + }, 1000); + }, []); + + const onClose = () => { + store.auth.setPromptAuth(false); + store.auth.setHasClickedAuthDialog(true); + }; + + const onLogin = () => { + onClose(); + store.router.updateRoute({ path: RedEyeRoutes.LOGIN }); + }; + + return ( + + + The application was unable to authenticate with the server. Click "Login" to re-authenticate. + + + + + + } + /> + ); +}; diff --git a/applications/client/src/components/ExpandingSearchBox.tsx b/applications/client/src/components/ExpandingSearchBox.tsx new file mode 100644 index 0000000..565c5a7 --- /dev/null +++ b/applications/client/src/components/ExpandingSearchBox.tsx @@ -0,0 +1,69 @@ +import type { HTMLInputProps, InputGroupProps } from '@blueprintjs/core'; +import { Button, Classes, InputGroup } from '@blueprintjs/core'; +import { Close16, Search16 } from '@carbon/icons-react'; +import { css } from '@emotion/react'; +import styled from '@emotion/styled'; +import { CarbonIcon } from '@redeye/client/components'; +import type { FC, MouseEvent } from 'react'; + +type ExpandingSearchBoxProps = InputGroupProps & + HTMLInputProps & { + onClear?: (event: MouseEvent) => void; + value?: string; + }; + +export const ExpandingSearchBox: FC = ({ onClear, ...props }) => { + const hasText = props.value !== ''; + return ( + + } + rightElement={ + + ))} + {/* Secondary dialog (if multiple images are found) */} + state.openModal()} + title={ + // Add TODO: command name + + } + > + {!!state.selectedImage && ( + Command Screenshot + )} + + + ) : ( + data?.images?.[0]?.url && ( + Command Screenshot + ) + )} + + + ); +}); + +const imgDimensions = css` + max-width: 320px; +`; + +const imgStyles = css` + /* object-fit: cover; */ +`; + +const largeImgStyles = css` + max-width: 90vw; + max-height: 90vh; +`; + +const buttonStyles = css` + position: absolute; + right: 0; + /* background-color: ${CoreTokens.Background1}; */ +`; + +const imgWrapperStyles = css` + position: relative; + cursor: pointer; +`; + +const dialogOverrideStyles = css` + margin: auto; + width: auto; + max-width: unset; + padding: 0; +`; + +const overlayMessageStyles = css` + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: ${CoreTokens.transparentBlack(0.7)}; + font-family: ${CoreTokens.FontFamilySans}; + font-weight: ${CoreTokens.FontWeightBold}; +`; + +const multiImageWrapperStyles = css` + margin: 1rem; + display: grid; + grid-gap: 1rem; + justify-content: center; + grid-template-columns: repeat(2, auto); +`; + +const imgButtonStyles = css` + padding: 0; + + img { + display: block; + } + + &:hover { + opacity: 0.75; + } +`; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Command/index.ts b/applications/client/src/views/Campaign/Explore/Panels/Command/index.ts new file mode 100644 index 0000000..410e1b7 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Command/index.ts @@ -0,0 +1,11 @@ +/** + * @file Automatically generated by barrelsby. + */ + +export * from '../../components/Comment/BeaconSuggestedRow'; +export * from './CommandSummary'; +export * from './CommandRow'; +export * from './CommandOutput'; +export * from './CommandsList'; +export * from './RawLogsDialog'; +export * from './ScreenshotCommand'; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Comment/CommentGroup.tsx b/applications/client/src/views/Campaign/Explore/Panels/Comment/CommentGroup.tsx new file mode 100644 index 0000000..e5bf4df --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Comment/CommentGroup.tsx @@ -0,0 +1,99 @@ +import { css } from '@emotion/react'; +import type { AnnotationModel } from '@redeye/client/store'; +import { useStore } from '@redeye/client/store'; +import type { CommandSummaryProps } from '@redeye/client/views'; +import { CommandRow, CommentBox } from '@redeye/client/views'; +import { CoreTokens, ThemeClasses, Flex } from '@redeye/ui-styles'; +import type { Ref } from 'mobx-keystone'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; + +export type CommentGroupProps = ComponentProps<'div'> & { + commandGroupId: string; + toggleNewComment: (id?: string) => void; + newComment: string | undefined; + measure?: any; + showPath?: CommandSummaryProps['showPath']; + hideCommands?: boolean; + expandedCommandIDs?: string[]; + removeExpandedCommandID?: (commandId: string) => void; + refetchComments?: () => void; +}; +export const CommentGroup = observer( + ({ + commandGroupId, + toggleNewComment, + newComment, + showPath, + hideCommands, + expandedCommandIDs = [], + removeExpandedCommandID, + refetchComments, + ...props + }) => { + const store = useStore(); + const commandGroup = store.graphqlStore.commandGroups.get(commandGroupId); + + return ( +
+ + {!commandGroup &&
} + {commandGroup?.annotations?.map((annotation: Ref) => ( + toggleNewComment(commandGroup?.id)} + annotation={annotation?.maybeCurrent} + commandGroup={commandGroup} + isFullList + refetchComments={refetchComments} + /> + ))} + {newComment === commandGroup?.id && ( + + )} + + + {!hideCommands && + commandGroup?.commandIds?.map((commandId) => ( + + ))} + +
+ ); + } +); + +const commentBoxStyle = css` + border-bottom: none !important; + .${ThemeClasses.DARK} & { + background: ${CoreTokens.transparentWhite(0.05)}; + } + .${ThemeClasses.LIGHT} & { + background: ${CoreTokens.transparentBlack(0.04)}; + } + margin-bottom: 1px; +`; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Comment/Comments.tsx b/applications/client/src/views/Campaign/Explore/Panels/Comment/Comments.tsx new file mode 100644 index 0000000..5db8ac8 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Comment/Comments.tsx @@ -0,0 +1,200 @@ +import { Intent, ProgressBar } from '@blueprintjs/core'; +import { isDefined, VirtualizedList } from '@redeye/client/components'; +import { createState } from '@redeye/client/components/mobx-create-state'; +import type { SortDirection, SortTypeCommentsTab } from '@redeye/client/store'; +import { + presentationCommandGroupModelPrimitives, + presentationItemModelPrimitives, + commandQuery, + SortOptionComments, + useStore, + commandGroupCommentsQuery, +} from '@redeye/client/store'; +import type { UUID } from '@redeye/client/types'; +import type { CommandSummaryProps } from '@redeye/client/views'; +import { CommentGroup, MessageRow } from '@redeye/client/views'; +import { useQuery } from '@tanstack/react-query'; +import { observable } from 'mobx'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; +import { useRef, useEffect } from 'react'; +import type { VirtuosoHandle } from 'react-virtuoso'; + +type CommentsProps = ComponentProps<'div'> & { + sort: { + sortBy: string; + direction: SortDirection; + }; + showPath: CommandSummaryProps['showPath']; +}; + +const pageSize = 10; + +export const Comments = observer(({ sort, showPath }) => { + const store = useStore(); + const listRef = useRef(null); + const state = createState({ + newComment: '' as string | undefined, + scrollToIndex: undefined as undefined | number, + toggleNewComment(id?: string) { + this.newComment = id; + }, + visibleRange: { + startIndex: 0, + endIndex: pageSize, + }, + expandedCommandIDs: store.router.params.activeItemId + ? observable.array([store.router.params.activeItemId]) + : observable.array([]), + removeExpandedCommandID(commandId: string) { + this.expandedCommandIDs.remove(commandId); + }, + }); + + const { data: commandGroupIdData, refetch: refetchComments } = useQuery( + [ + 'commandGroups', + store.campaign?.id, + store.campaign?.interactionState.selectedBeacon?.id, + store.campaign?.interactionState.selectedHost?.id, + store.campaign?.interactionState.selectedOperator?.id, + store.campaign?.interactionState.selectedCommandType?.id, + sort, + store.router.params.currentItem, + store.router.params.currentItemId, + ], + async () => { + if (store.router.params.currentItem === 'comments_list' && store.router.params.currentItemId) { + // Fetch presentationItemsData again when refreshing browser @comments_list-[currentItemId] and changing sort + const presentationItemsData = await store.graphqlStore.queryPresentationItems( + { + campaignId: store.campaign.id!, + hidden: store.settings.showHidden, + forOverviewComments: true, + commentsTabSort: sort as SortTypeCommentsTab, + }, + presentationItemModelPrimitives.commandGroups(presentationCommandGroupModelPrimitives).toString(), + undefined, + true + ); + const currentPresentationItem = presentationItemsData?.presentationItems.find( + (item) => item.id === store.router.params.currentItemId + ); + return { commandGroupIds: Array.from(currentPresentationItem?.commandGroupIds || []) } as CommandGroupIdData; + } else { + return (await store.graphqlStore.queryCommandGroupIds({ + campaignId: store.campaign?.id!, + beaconId: store.campaign?.interactionState.selectedBeacon?.id as string, + hostId: store.campaign?.interactionState.selectedHost?.id as string, + operatorId: store.campaign?.interactionState.selectedOperator?.id!, + commandType: store.campaign?.interactionState.selectedCommandType?.id!, + hidden: store.settings.showHidden, + sort: { + ...sort, + sortBy: sort.sortBy === 'minTime' ? SortOptionComments.time : (sort.sortBy as SortOptionComments), + }, + })) as CommandGroupIdData; + } + } + ); + + // const { isLoading: isLoadingMoreComments } = useQuery( + useQuery( + [ + 'commandGroupsById', + 'commandGroups', + store.campaign.id, + commandGroupIdData?.commandGroupIds, + Math.trunc(state.visibleRange.endIndex / pageSize), + store.router.params.currentItem, + store.router.params.currentItemId, + ], + async () => { + if (commandGroupIdData?.commandGroupIds?.length) { + const index = Math.trunc(state.visibleRange.endIndex / pageSize); + const start = index * pageSize; + const end = start + pageSize; + const ids = commandGroupIdData.commandGroupIds.slice(start, end); + + // query commands as temp solution + const commandGroupsQuery = await store.graphqlStore.queryCommandGroups( + { + campaignId: store.campaign?.id!, + commandGroupIds: ids, + hidden: store.settings.showHidden, + }, + commandGroupCommentsQuery // command cache issue? + ); + + // query commands as temp solution + const commandIds = commandGroupsQuery?.commandGroups.flatMap((cg) => cg.commandIds).filter(isDefined); + return store.graphqlStore.queryCommands( + { + campaignId: store.campaign?.id!, + commandIds, + hidden: store.settings.showHidden, + }, + commandQuery + ); + // query commands as temp solution + } + }, + { + enabled: !!commandGroupIdData?.commandGroupIds?.length, + } + ); + + useEffect(() => { + if (store.campaign?.commentStore.scrollToComment && commandGroupIdData) { + state.update( + 'scrollToIndex', + Object.values(commandGroupIdData?.commandGroupIds).findIndex( + (commandGroupId) => commandGroupId === store.campaign?.commentStore.scrollToComment + ) + ); + if (state.scrollToIndex !== -1) { + setTimeout(() => { + listRef?.current?.scrollToIndex({ + index: state.scrollToIndex!, + align: 'start', + behavior: 'smooth', + }); + setTimeout(() => { + state.update('scrollToIndex', undefined); + store.campaign.commentStore.setScrollToComment(undefined); + }, 1000); + }, 250); + } + } + }, [commandGroupIdData, store.campaign?.commentStore.scrollToComment]); + + return ( + state.update('visibleRange', visibleRange)} + listRef={listRef} + cy-test="comments-view" + > + {!commandGroupIdData?.commandGroupIds ? ( + + ) : commandGroupIdData?.commandGroupIds?.length === 0 ? ( + No comments + ) : ( + commandGroupIdData?.commandGroupIds?.map((commandGroupId) => ( + + )) + )} + + ); +}); + +type CommandGroupIdData = { commandGroupIds: UUID[] }; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Comment/CommentsList.tsx b/applications/client/src/views/Campaign/Explore/Panels/Comment/CommentsList.tsx new file mode 100644 index 0000000..40efc5e --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Comment/CommentsList.tsx @@ -0,0 +1,118 @@ +import { CarbonIcon, VirtualizedList, semanticIcons } from '@redeye/client/components'; +import type { PresentationItemModel, SortTypeCommentsList } from '@redeye/client/store'; +import { + routes, + presentationCommandGroupModelPrimitives, + presentationItemModelPrimitives, + useStore, +} from '@redeye/client/store'; +import { CoreTokens, FlexSplitter, Txt } from '@redeye/ui-styles'; +import { useQuery } from '@tanstack/react-query'; +import { observer } from 'mobx-react-lite'; +import { StarFilled16, Hashtag16, Playlist16, User16 } from '@carbon/icons-react'; +import type { ComponentProps } from 'react'; +import { useCallback, useMemo } from 'react'; +import { CampaignViews, Tabs } from '@redeye/client/types'; +import { InfoRow, RowTitle, IconLabel } from '../../components'; + +type CommentsListProps = ComponentProps<'div'> & { + sort: SortTypeCommentsList; +}; + +// Fetch presentationData again when changing sort +export const CommentsList = observer(({ sort }) => { + const store = useStore(); + const { data } = useQuery( + [ + 'overview-comments-items', + store.campaign.id, + store.campaign.sortMemory.comments_list, + store.campaign.sortMemory.comments, + ], + async () => + await store.graphqlStore.queryPresentationItems( + { + campaignId: store.campaign.id!, + hidden: store.settings.showHidden, + forOverviewComments: true, + listSort: sort, + }, + presentationItemModelPrimitives.commandGroups(presentationCommandGroupModelPrimitives).toString(), + undefined, + true + ) + ); + + // For presentationItem.id by User or Tag, make sure use a prefix in case it's same to other general types. + const handleClickType = useCallback((presentationItem) => { + store.router.updateRoute({ + path: routes[CampaignViews.EXPLORE], + params: { + id: store.campaign.id, + view: CampaignViews.EXPLORE, + tab: Tabs.COMMENTS, + currentItem: 'comments_list', + currentItemId: presentationItem.id, + }, + }); + }, []); + + const rowTitle = useMemo( + () => (presentationItem: PresentationItemModel) => + presentationItem.key[0] === '#' + ? presentationItem.key.slice(1) + : presentationItem.key.slice(0, 5) === 'user-' + ? presentationItem.key.slice(5) + : presentationItem.key, + [] + ); + + return ( + + {data?.presentationItems?.map((presentationItem, i) => ( + handleClickType(presentationItem)} + > + {presentationItem.id !== 'all' && ( + + )} + + + {rowTitle(presentationItem)} + + + + + + + ))} + + ); +}); + +const getIcon = (itemId: string): any => { + if (itemId === 'favorited') return StarFilled16; + if (itemId === 'procedural') return Playlist16; + if (itemId.slice(0, 5) === 'user-') return User16; + else return Hashtag16; +}; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Comment/index.ts b/applications/client/src/views/Campaign/Explore/Panels/Comment/index.ts new file mode 100644 index 0000000..f3c2277 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Comment/index.ts @@ -0,0 +1,6 @@ +/** + * @file Automatically generated by barrelsby. + */ + +export * from './CommentGroup'; +export * from './CommentsList'; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Host/HostOrServerRow.tsx b/applications/client/src/views/Campaign/Explore/Panels/Host/HostOrServerRow.tsx new file mode 100644 index 0000000..ed0e9ed --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Host/HostOrServerRow.tsx @@ -0,0 +1,206 @@ +import { ViewOff16 } from '@carbon/icons-react'; +import { createState, dateShortFormat, dateShortPlaceholder, semanticIcons } from '@redeye/client/components'; +import type { HostModel } from '@redeye/client/store'; +import { useStore } from '@redeye/client/store'; +import { InfoType, TimeStatus } from '@redeye/client/types'; +import { + IconLabel, + InfoRow, + NodeIcon, + RowTime, + RowTitle, + ToggleHiddenDialog, + useToggleHidden, +} from '@redeye/client/views'; +import { FlexSplitter, Txt } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; +import { useCallback, useMemo } from 'react'; +import { Checkbox } from '@blueprintjs/core'; +import { css } from '@emotion/react'; +import { QuickMetaPopoverButtonMenu, ShowHideMenuItem } from '../QuickMeta'; + +type HostOrServerRowProps = ComponentProps<'div'> & { + host: HostModel; +}; + +export const HostOrServerRow = observer(({ host, ...props }) => { + const store = useStore(); + const state = createState({ + cantHideEntities: false, + isDialogDisabled: window.localStorage.getItem('disableDialog') === 'true', + AddServer(serverId: string, hidden: boolean) { + const selectedServers = store.campaign?.hostGroupSelect.selectedServers.slice(); + const hiddenCount = store.campaign?.hostGroupSelect.hiddenCount; + selectedServers.push(serverId); + store.campaign?.setHostGroupSelect({ + ...store.campaign?.hostGroupSelect, + selectedServers, + hiddenCount: hiddenCount + (hidden ? 1 : 0), + }); + }, + RemoveServer(serverId: string, hidden: boolean) { + const selectedServers = store.campaign?.hostGroupSelect.selectedServers.slice(); + const hiddenCount = store.campaign?.hostGroupSelect.hiddenCount; + selectedServers.splice(selectedServers.indexOf(serverId), 1); + store.campaign?.setHostGroupSelect({ + ...store.campaign?.hostGroupSelect, + selectedServers, + hiddenCount: hiddenCount - (hidden ? 1 : 0), + }); + }, + AddHost(hostId: string, hidden: boolean) { + const selectedHosts = store.campaign?.hostGroupSelect.selectedHosts.slice(); + const hiddenCount = store.campaign?.hostGroupSelect.hiddenCount; + selectedHosts.push(hostId); + store.campaign?.setHostGroupSelect({ + ...store.campaign?.hostGroupSelect, + selectedHosts, + hiddenCount: hiddenCount + (hidden ? 1 : 0), + }); + }, + RemoveHost(hostId: string, hidden: boolean) { + const selectedHosts = store.campaign?.hostGroupSelect.selectedHosts.slice(); + const hiddenCount = store.campaign?.hostGroupSelect.hiddenCount; + selectedHosts.splice(selectedHosts.indexOf(hostId), 1); + store.campaign?.setHostGroupSelect({ + ...store.campaign?.hostGroupSelect, + selectedHosts, + hiddenCount: hiddenCount - (hidden ? 1 : 0), + }); + }, + }); + + if (!host) return null; + + const [toggleHidden, mutateToggleHidden] = useToggleHidden(async () => + host.cobaltStrikeServer + ? await store.graphqlStore.mutateToggleServerHidden({ + campaignId: store.campaign?.id!, + serverId: host?.serverId!, + }) + : await store.graphqlStore.mutateToggleHostHidden({ campaignId: store.campaign?.id!, hostId: host?.id! }) + ); + + const indeterminate = useMemo( + () => + store.campaign.bulkSelectCantHideEntityIds.includes( + !!host?.serverId && host?.cobaltStrikeServer ? host?.serverId : host?.id + ), + [store.campaign.bulkSelectCantHideEntityIds] + ); + + const checked = useMemo( + () => + (!!host?.id && + !!host?.serverId && + host?.cobaltStrikeServer && + store.campaign?.hostGroupSelect.selectedServers?.includes(host?.serverId)) || + (!!host?.id && !host?.cobaltStrikeServer && store.campaign?.hostGroupSelect.selectedHosts?.includes(host?.id)), + [store.campaign?.hostGroupSelect.selectedServers, store.campaign?.hostGroupSelect.selectedHosts] + ); + + const handleCheck = useCallback( + async (e) => { + const cantHideEntityIds = store.campaign.bulkSelectCantHideEntityIds.filter( + (id) => id !== (host?.cobaltStrikeServer ? host?.serverId : host?.id) + ); + store.campaign.setBulkSelectCantHideEntityIds(cantHideEntityIds); + // @ts-ignore + return e.target.checked && host?.id + ? host?.cobaltStrikeServer + ? state.AddServer(host?.serverId || '', !!host?.hidden) + : state.AddHost(host?.id || '', !!host?.hidden) + : host?.cobaltStrikeServer + ? state.RemoveServer(host?.serverId || '', !!host?.hidden) + : state.RemoveHost(host?.id || '', !!host?.hidden); + }, + [host] + ); + + const handleQuickMetaClick = useCallback(async () => { + const data = await store.graphqlStore.queryNonHidableEntities({ + campaignId: store.campaign.id!, + hostIds: [(host.cobaltStrikeServer ? host?.serverId : host?.id) || ''], + }); + const cantHideEntities = + ((host?.cobaltStrikeServer ? data?.nonHidableEntities.servers?.length : data?.nonHidableEntities.hosts?.length) || + 0) > 0; + + const isDialogDisabled = + (window.localStorage.getItem('disableDialog') === 'true' && + (!cantHideEntities || (cantHideEntities && host?.hidden))) || + false; + state.update('cantHideEntities', cantHideEntities); + state.update('isDialogDisabled', isDialogDisabled); + + return isDialogDisabled ? mutateToggleHidden.mutate() : toggleHidden.update('showHide', true); + }, [host]); + + return ( + (!toggleHidden.showHide && !store.campaign?.hostGroupSelect.groupSelect ? host.select() : null)} + onMouseEnter={() => store.campaign?.interactionState.onHover(host.hierarchy)} + {...props} + > + {store.campaign?.hostGroupSelect.groupSelect && ( + + )} + + {host.minTime ? store.settings.momentTz(host.minTime).format(dateShortFormat) : dateShortPlaceholder}— + {host.maxTime ? store.settings.momentTz(host.maxTime)?.format(dateShortFormat) : dateShortPlaceholder} + + + + {host.cobaltStrikeServer && Server:} + + {host.computedName} + + + + {host?.hidden && } + {!host.cobaltStrikeServer && ( + <> + + + + )} + {host != null && !store.appMeta.blueTeam && ( + } /> + )} + {!state.isDialogDisabled && ( + { + e.stopPropagation(); + toggleHidden.update('showHide', false); + }} + onHide={() => mutateToggleHidden.mutate()} + cantHideEntities={state.cantHideEntities} + /> + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Host/HostsAndServersList.tsx b/applications/client/src/views/Campaign/Explore/Panels/Host/HostsAndServersList.tsx new file mode 100644 index 0000000..e88a806 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Host/HostsAndServersList.tsx @@ -0,0 +1,19 @@ +import { VirtualizedList } from '@redeye/client/components'; +import { defaultInfoRowHeight, HostOrServerRow, MessageRow } from '@redeye/client/views'; +import { observer } from 'mobx-react-lite'; +import type { HostsAndServersListProps } from '../hooks/use-hosts'; +import { current, useHosts } from '../hooks/use-hosts'; + +export const HostsAndServersList = observer(({ ...props }) => { + const { hosts } = useHosts(props); + + return ( + + {hosts.length === 0 ? ( + No Hosts + ) : ( + hosts.map((host) => ) + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Host/index.ts b/applications/client/src/views/Campaign/Explore/Panels/Host/index.ts new file mode 100644 index 0000000..8b79172 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Host/index.ts @@ -0,0 +1,6 @@ +/** + * @file Automatically generated by barrelsby. + */ + +export * from './HostOrServerRow'; +export * from './HostsAndServersList'; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Meta/BeaconLinkRow.tsx b/applications/client/src/views/Campaign/Explore/Panels/Meta/BeaconLinkRow.tsx new file mode 100644 index 0000000..dfee44c --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Meta/BeaconLinkRow.tsx @@ -0,0 +1,47 @@ +import { Classes } from '@blueprintjs/core'; +import { css } from '@emotion/react'; +import { CarbonIcon, semanticIcons } from '@redeye/client/components'; +import type { LinkModel } from '@redeye/client/store'; +import { CoreTokens, Flex, FlexSplitter, Txt } from '@redeye/ui-styles'; +import type { FlexProps } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; +import { NavBreadcrumbs } from '../../components'; + +export type BeaconLinkRowProps = FlexProps & { + direction: 'To' | 'From'; + link: LinkModel; +}; + +export const BeaconLinkRow = observer(({ direction, link, ...props }) => ( + + + + {direction} + + + {/* / */} + {link.command?.current ? ( + {link.command.current.inputText} + ) : ( + + unknown + + )} + + {/* TODO: comment related to link... + } /> + */} + +)); + +const navBreadCrumbsStyle = css` + .${Classes.BREADCRUMB} { + color: ${CoreTokens.TextBody} !important; + } +`; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Meta/BeaconMeta.tsx b/applications/client/src/views/Campaign/Explore/Panels/Meta/BeaconMeta.tsx new file mode 100644 index 0000000..0a07cf5 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Meta/BeaconMeta.tsx @@ -0,0 +1,345 @@ +import { Button, InputGroup, MenuItem } from '@blueprintjs/core'; +import { DateInput } from '@blueprintjs/datetime'; +import { CarbonIcon, dateTimeFormat, isDefined } from '@redeye/client/components'; +import { createState } from '@redeye/client/components/mobx-create-state'; +import type { + AppStore, + CommandGroupModel, + CommandModel, + Shapes, + RootStoreBase, + BeaconModel, +} from '@redeye/client/store'; +import { BeaconType } from '@redeye/client/store/graphql/BeaconTypeEnum'; +import { SortDirection, SortOption, useStore } from '@redeye/client/store'; +import { InfoType } from '@redeye/client/types'; +import { Flex, Spacer, Txt } from '@redeye/ui-styles'; +import { useMutation, useQuery } from '@tanstack/react-query'; +import type { Ref } from 'mobx-keystone'; +import { observer } from 'mobx-react-lite'; +import moment from 'moment-timezone'; +import { useEffect } from 'react'; +import type { ItemRenderer } from '@blueprintjs/select'; +import { Select } from '@blueprintjs/select'; +import { CaretDown16 } from '@carbon/icons-react'; +import { draft, model, Model, prop } from 'mobx-keystone'; +import type { NodeColor } from '@redeye/client/views'; +import { nodeColor } from '@redeye/client/views'; +import { BeaconLinkRow } from './BeaconLinkRow'; +import { ToggleHiddenDialog } from './HideDialog'; +import { + MetaGridLayout, + MetaLabel, + MetaSection, + SaveInputButton, + ToggleHiddenButton, +} from './components/general-components'; +import { useToggleHidden } from '../hooks/use-toggle-hidden'; +import { NodeColorSelect } from './components/NodeColorSelect'; +import { NodePreviewBox } from './components/NodePreview'; +import { NodeShapeSelect } from './components/NodeShapeSelect'; +import { useCheckNonHidableEntities } from '../hooks/use-check-nonHidable-entities'; + +const useGetLastBeaconCommand = ( + store: AppStore, + beaconId: string, + hostId: string +): { commands: CommandModel[] } | undefined => { + const { data: commandsData } = useQuery( + ['commands', store.campaign.id, beaconId], + async () => + await store.graphqlStore.queryCommandIds({ + beaconId, + hostId, + campaignId: store.campaign?.id!, + sort: { direction: SortDirection.DESC, sortBy: SortOption.time }, + }) + ); + + const { data: commandData } = useQuery( + ['command', store.campaign.id, beaconId], + async () => + await store.graphqlStore.queryCommands({ + campaignId: store.campaign?.id!, + commandIds: [commandsData?.commandIds[commandsData.commandIds.length - 1]], + }), + { + enabled: !!commandsData?.commandIds?.length, + } + ); + return commandData; +}; + +const getMinMaxDate = (minDate: Date | null | undefined, maxDate: Date | null | undefined) => { + const min = minDate ? moment(minDate) : undefined; + const max = maxDate ? moment(maxDate) : undefined; + return { minDate: min?.startOf('day').toDate(), maxDate: max?.add(1, 'day').startOf('day').toDate() }; +}; + +@model('DraftBeaconMeta') +class DraftBeaconMeta extends Model({ + displayName: prop().withSetter(), + timeOfDeath: prop().withSetter(), + color: prop().withSetter(), + shape: prop().withSetter(), + beaconType: prop().withSetter(), +}) {} + +type MutateParams = { + key: keyof Parameters[0]; + path: keyof ConstructorParameters[0]; +}; + +export const BeaconMeta = observer((props) => { + const store = useStore(); + const beacon = store.campaign.interactionState.selectedBeacon?.current; + const lastCommand = useGetLastBeaconCommand(store, beacon?.id as string, beacon?.host?.id as string); + const cmdText = lastCommand?.commands[0]?.inputText; + + const [toggleHidden, mutateToggleHidden] = useToggleHidden( + async () => + await store.graphqlStore.mutateToggleBeaconHidden({ + campaignId: store.campaign?.id!, + beaconId: beacon?.id!, + }) + ); + + const state = createState({ + get commandGroups() { + return Array.from(store.campaign?.currentCommandGroups.values())?.filter>(isDefined); + }, + showDayTimePicker: false, + toggleShowDayTimePicker(value: boolean) { + this.showDayTimePicker = value; + }, + metaDraft: draft( + new DraftBeaconMeta({ + displayName: beacon?.displayName || '', + timeOfDeath: beacon?.meta?.[0]?.maybeCurrent?.endTime ?? '', + color: (beacon?.meta?.[0]?.maybeCurrent?.color ?? 'default') as NodeColor, + shape: beacon?.meta?.[0]?.maybeCurrent?.shape ?? ('circle' as Shapes), + beaconType: (beacon?.meta?.[0]?.maybeCurrent?.type || beaconTypeSelectItems[1].label) as BeaconType, + }) + ), + }); + + const { cantHideEntities, isDialogDisabled } = useCheckNonHidableEntities('beacons', beacon?.hidden || false, [ + beacon?.id || '', + ]); + + useEffect(() => { + state.metaDraft.data.setTimeOfDeath(beacon?.meta?.[0]?.maybeCurrent?.endTime); + }, [beacon?.meta?.[0]?.maybeCurrent?.endTime, store.campaign.timeline.maxRange]); + + const { mutate: mutateByKey } = useMutation<{ updateBeaconMetadata: BeaconModel }, unknown, MutateParams>( + async (variables) => { + const { key, path } = variables; + return await store.graphqlStore.mutateUpdateBeaconMetadata({ + [key]: state.metaDraft.data[path], + campaignId: store.campaign.id as string, + beaconId: beacon?.id as string, + }); + }, + { + onSuccess: (data, args) => { + state.metaDraft.commitByPath([args.path]); + if (args.key === 'beaconDisplayName') { + store.campaign.graph?.updateNodeName( + data.updateBeaconMetadata.id, + data.updateBeaconMetadata.displayName || state.metaDraft.originalData.displayName + ); + } else if (args.key === 'color' || args.key === 'shape') { + store.campaign.graph?.updateNodeVisual({ + nodeId: beacon!.id, + className: nodeColor[state.metaDraft.originalData.color].className, + shape: state.metaDraft.originalData.shape, + }); + } + }, + onError: (_, args) => { + state.metaDraft.resetByPath([args.path]); + }, + } + ); + + const dateInputOnChange = (datetime) => { + const min = store.campaign.timeline.maxRange?.[0]; + const max = store.campaign.timeline.maxRange?.[1]; + const clampedDatetime = + min && max && datetime ? momentClamp({ value: datetime, min, max }).toISOString() : datetime; + state.metaDraft.data.setTimeOfDeath(clampedDatetime); + }; + + const renderSort: ItemRenderer<{ key: string; label: string }> = (item, { handleClick, modifiers }) => { + if (!modifiers.matchesPredicate) { + return null; + } + return ( + + ); + }; + + return ( +
+ {/* TODO: implement later */} + + + Display Name + { + state.metaDraft.data.setDisplayName(e.target.value); + }} + // Add a button to save. can also have fxn that checks every n seconds and + // saves if no change or rely on tabbing away, clicking away, or hitting enter + rightElement={ + mutateByKey({ key: 'beaconDisplayName', path: 'displayName' })} + /> + } + /> + Process + {beacon?.meta[0]?.maybeCurrent?.ip} + pid + {beacon?.meta[0]?.maybeCurrent?.pid} + Time of Death +
+ (date == null ? '' : moment(date).format(dateTimeFormat))} + parseDate={(str) => store.settings.momentTz(str).toDate()} + onChange={dateInputOnChange} + {...getMinMaxDate(store.campaign.timeline.maxRange?.[0], store.campaign.timeline.maxRange?.[1])} + rightElement={ + mutateByKey({ key: 'beaconTimeOfDeath', path: 'timeOfDeath' })} + /> + } + popoverProps={{ + // defaultIsOpen: state.showDayTimePicker, + onOpened: () => state.toggleShowDayTimePicker(true), + onClosed: () => state.toggleShowDayTimePicker(false), + }} + /> +
+ + Final Command + + + {cmdText} +
+
+ Type + + Graph Appearance + + + { + state.metaDraft.data.setColor(color.name); + mutateByKey({ key: 'color', path: 'color' }); + }} + css={{ flex: '1 1 auto' }} + /> + { + state.metaDraft.data.setShape(shape as Shapes); + mutateByKey({ key: 'shape', path: 'shape' }); + }} + css={{ flex: '1 1 auto' }} + /> + +
+
+ + + + Links + {!beacon?.links.from.length && !beacon?.links.to.length ? ( + + No links + + ) : ( + <> + {beacon?.links.from.map((link) => ( + + ))} + {beacon?.links.to.map((link) => ( + + ))} + + )} + + + (isDialogDisabled ? mutateToggleHidden.mutate() : toggleHidden.update('showHide', true))} + isHiddenToggled={!!beacon?.hidden} + typeName="beacon" + /> + toggleHidden.update('showHide', false)} + onHide={() => mutateToggleHidden.mutate()} + cantHideEntities={cantHideEntities} + /> +
+ ); +}); + +const momentClamp = ({ + value, + min, + max, +}: { + value: moment.MomentInput; + min: moment.MomentInput; + max: moment.MomentInput; +}) => moment.max(moment(min), moment.min(moment(value), moment(max))); + +const beaconTypeSelectItems = Object.entries(BeaconType).map(([key, label]) => ({ + key, + label, +})); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Meta/HideDialog.tsx b/applications/client/src/views/Campaign/Explore/Panels/Meta/HideDialog.tsx new file mode 100644 index 0000000..46c36a2 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Meta/HideDialog.tsx @@ -0,0 +1,118 @@ +import { Checkbox, Button, Intent } from '@blueprintjs/core'; +import { View16, ViewOff16 } from '@carbon/icons-react'; +import type { DialogExProps } from '@redeye/client/components'; +import { CarbonIcon, DialogBodyEx, DialogEx, DialogFooterEx } from '@redeye/client/components'; +import type { InfoType } from '@redeye/client/types'; +import { Txt } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; +import type { ChangeEvent } from 'react'; +import { useState, useCallback } from 'react'; + +type Props = DialogExProps & { + typeName: string; + infoType: InfoType; + onHide?: () => void; + isHiddenToggled?: boolean; + cantHideEntities?: boolean; + bulk?: boolean; +}; + +export const ToggleHiddenDialog = observer( + ({ + typeName, + infoType, + onClose, + isHiddenToggled = true, + onHide = () => undefined, + cantHideEntities, + bulk = false, + ...props + }) => { + const [loading, setLoading] = useState(false); + const [checked, setChecked] = useState(window.localStorage.getItem('disableDialog') === 'true'); + const plural = isHiddenToggled ? 'Showing' : 'Hiding'; + const verb = isHiddenToggled ? 'Show' : 'Hide'; + + const handleCheck = useCallback((e: ChangeEvent) => { + setChecked(e.target.checked); + window.localStorage.setItem('disableDialog', e.target.checked.toString()); + }, []); + + const isHidingFinal = cantHideEntities && !isHiddenToggled; + + const confirmShowHide = isHidingFinal + ? onClose + : (e: React.SyntheticEvent) => { + e.stopPropagation(); + setLoading(true); + onHide(); + }; + + const dialogTitle = isHidingFinal + ? `Cannot hide final ${infoType.toLowerCase()}${bulk ? 's' : ''}` + : // : `${verb} this ${infoType.toLowerCase()}?`; + `${verb} ${bulk ? 'these' : 'this'} ${infoType.toLowerCase()}${bulk ? 's' : ''}?`; + + return ( + + + {isHidingFinal ? ( + <> + + {`${plural} ${ + bulk ? 'these' : 'this' + } ${infoType.toLowerCase()} will create a state in which the UI has no content. To hide ${ + bulk ? 'these ' : 'this ' + }${infoType.toLowerCase()}${bulk ? 's' : ''}, you must + unhide another ${infoType.toLowerCase()}.`} + + + To unhide {infoType.toLowerCase()}s, toggle + "Show Hidden Beacons, Hosts, and Servers" in the Application Settings, and go + select + "Show {infoType}" on one of the hidden {infoType.toLowerCase()}s. + + + ) : ( + <> + + {`${plural} ${bulk ? 'these' : 'this'} ${infoType.toLowerCase()}${bulk ? 's' : ''} will make ${ + bulk ? 'them' : 'it' + } ${isHiddenToggled ? 'appear' : 'disappear from display'} in the UI.`} + + {!isHiddenToggled && ( + + {`${plural} ${bulk ? 'these' : 'this'} ${infoType.toLowerCase()}${bulk ? 's' : ''} will NOT delete ${ + bulk ? 'them' : 'it' + }. Hidden ${infoType.toLowerCase()}s can be shown again by toggling the`} + "Show Hidden Beacons, Hosts, and Servers" in the Application Settings. + + )} + + {`This will also ${verb.toLowerCase()} descendants that are linked to ${bulk ? 'these' : 'this'} + ${infoType.toLowerCase()}${bulk ? 's' : ''}.`} + + + + )} + + + {!isHidingFinal &&
+)); + +const modeBarStyle = css` + display: flex; + width: 100%; + justify-content: space-between; + align-items: center; + padding-left: 1rem; + + color: ${CoreTokens.OnIntent}; + background: ${CoreTokens.Intent.Primary4}; + .${ThemeClasses.DARK} & { + background: ${CoreTokens.Intent.Primary1}; + } +`; diff --git a/applications/client/src/views/Campaign/Explore/Panels/OperatorsList.tsx b/applications/client/src/views/Campaign/Explore/Panels/OperatorsList.tsx new file mode 100644 index 0000000..a073160 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/OperatorsList.tsx @@ -0,0 +1,53 @@ +import { createSorter, dateShortFormat, isDefined, semanticIcons, VirtualizedList } from '@redeye/client/components'; +import type { SortType } from '@redeye/client/store'; +import { SortDirection, useStore } from '@redeye/client/store'; +import type { InfoType } from '@redeye/client/types/explore'; +import { FlexSplitter, Txt } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; +import { defaultInfoRowHeight, IconLabel, InfoRow, MessageRow, RowTime, RowTitle } from '../components'; + +type OperatorsListProps = ComponentProps<'div'> & { + type: InfoType; + sort: SortType; +}; + +export const OperatorsList = observer(({ ...props }) => { + const store = useStore(); + const operators = + store.campaign?.interactionState[`selected${props.type}`]?.current?.operators + ?.filter(isDefined) + .sort(createSorter(props.sort.sortBy, props.sort.direction === SortDirection.ASC)) || []; + return ( + + {operators.length === 0 ? ( + No Operators + ) : ( + operators.map((operator) => ( + await operator.select()}> + + {store.settings.momentTz(operator.startTime)?.format(dateShortFormat)}— + {store.settings.momentTz(operator.endTime)?.format(dateShortFormat)} + + + {operator.name} + + + + + + )) + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewBeaconsList.tsx b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewBeaconsList.tsx new file mode 100644 index 0000000..ad73ed5 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewBeaconsList.tsx @@ -0,0 +1,26 @@ +import { createSorter, isDefined, VirtualizedList } from '@redeye/client/components'; +import type { BeaconModel, SortType } from '@redeye/client/store'; +import { SortDirection, useStore } from '@redeye/client/store'; +import { BeaconRow, defaultInfoRowHeight, MessageRow } from '@redeye/client/views'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; + +type OverviewProps = ComponentProps<'div'> & { + sort: SortType; +}; +export const OverviewBeaconsList = observer(({ sort }) => { + const store = useStore(); + const beacons = Array.from(store.graphqlStore.beacons.values() || []) + ?.filter((b) => b?.host?.current?.cobaltStrikeServer === false) + ?.filter(isDefined) + .sort(createSorter(sort.sortBy, sort.direction === SortDirection.ASC)); + return ( + + {beacons.length === 0 ? ( + No Beacons + ) : ( + beacons.map((beacon) => ) + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewCommandTypesList.tsx b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewCommandTypesList.tsx new file mode 100644 index 0000000..f26402c --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewCommandTypesList.tsx @@ -0,0 +1,40 @@ +import { createSorter, isDefined, semanticIcons, VirtualizedList } from '@redeye/client/components'; +import type { CommandTypeCountModel, SortType } from '@redeye/client/store'; +import { SortDirection, useStore } from '@redeye/client/store'; +import { defaultInfoRowHeight, IconLabel, InfoRow, MessageRow, RowTitle } from '@redeye/client/views'; +import { FlexSplitter, Txt } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; + +type OverviewProps = ComponentProps<'div'> & { + sort: SortType; +}; + +export const OverviewCommandTypesList = observer(({ sort }) => { + const store = useStore(); + const commandTypes = Array.from(store.graphqlStore.commandTypeCounts.values() || []) + .filter(isDefined) + .sort(createSorter(sort.sortBy, sort.direction === SortDirection.ASC)); + return ( + + {commandTypes.length === 0 ? ( + No Commands + ) : ( + commandTypes.map((commandTypeCount) => ( + commandTypeCount.select()}> + + {commandTypeCount.text} + + + + + )) + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewHostsList.tsx b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewHostsList.tsx new file mode 100644 index 0000000..df049e6 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewHostsList.tsx @@ -0,0 +1,33 @@ +import { createSorter, isDefined, VirtualizedList } from '@redeye/client/components'; +import type { HostModel, SortType } from '@redeye/client/store'; +import { SortDirection, useStore } from '@redeye/client/store'; +import { defaultInfoRowHeight, HostOrServerRow, MessageRow } from '@redeye/client/views'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; + +type OverviewProps = ComponentProps<'div'> & { + sort: SortType; +}; + +export const OverviewHostsList = observer(({ sort }) => { + const store = useStore(); + const hosts = Array.from(store.graphqlStore?.hosts.values() || []) + ?.filter(isDefined) + .sort((host1, host2) => + // put all servers at the top of the list, regardless of sort setting + host1.cobaltStrikeServer === host2.cobaltStrikeServer + ? createSorter(sort.sortBy, sort.direction === SortDirection.ASC)(host1, host2) + : host1.cobaltStrikeServer + ? -1 + : 1 + ); + return ( + + {hosts.length === 0 ? ( + No Hosts + ) : ( + hosts.map((host) => ) + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewOperatorsList.tsx b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewOperatorsList.tsx new file mode 100644 index 0000000..c7948f0 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Overview/OverviewOperatorsList.tsx @@ -0,0 +1,50 @@ +import { createSorter, dateShortFormat, isDefined, semanticIcons, VirtualizedList } from '@redeye/client/components'; +import type { OperatorModel, SortType } from '@redeye/client/store'; +import { SortDirection, useStore } from '@redeye/client/store'; +import { defaultInfoRowHeight, IconLabel, InfoRow, MessageRow, RowTime, RowTitle } from '@redeye/client/views'; +import { FlexSplitter, Txt } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; +import type { ComponentProps } from 'react'; + +type OverviewProps = ComponentProps<'div'> & { + sort: SortType; +}; + +export const OverviewOperatorsList = observer(({ sort }) => { + const store = useStore(); + const operators = Array.from(store.graphqlStore.operators.values() || []) + .filter(isDefined) + .sort(createSorter(sort.sortBy, sort.direction === SortDirection.ASC)); + return ( + + {operators.length === 0 ? ( + No Operators + ) : ( + operators.map((operator) => ( + operator.select()}> + + {store.settings.momentTz(operator.startTime)?.format(dateShortFormat)}— + {store.settings.momentTz(operator.endTime)?.format(dateShortFormat)} + + + {operator.name} + + + + + + )) + )} + + ); +}); diff --git a/applications/client/src/views/Campaign/Explore/Panels/Overview/index.ts b/applications/client/src/views/Campaign/Explore/Panels/Overview/index.ts new file mode 100644 index 0000000..6669110 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Overview/index.ts @@ -0,0 +1,8 @@ +/** + * @file Automatically generated by barrelsby. + */ + +export * from './OverviewBeaconsList'; +export * from './OverviewCommandTypesList'; +export * from './OverviewHostsList'; +export * from './OverviewOperatorsList'; diff --git a/applications/client/src/views/Campaign/Explore/Panels/Panels.tsx b/applications/client/src/views/Campaign/Explore/Panels/Panels.tsx new file mode 100644 index 0000000..22ebb51 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/Panels.tsx @@ -0,0 +1,197 @@ +import type { AppStore } from '@redeye/client/store'; +import { InfoType, Tabs } from '@redeye/client/types/explore'; +import { PanelHeader } from '@redeye/client/views'; +import { BeaconsList, HostBeaconsList } from './Beacon'; +import { HostsAndServersList } from './Host'; +import { CommandsList } from './Command'; +import { BeaconMeta, HostMeta, ServerMeta } from './Meta'; +import { OperatorsList } from './OperatorsList'; +import { OverviewBeaconsList, OverviewCommandTypesList, OverviewHostsList, OverviewOperatorsList } from './Overview'; +import { CommentsList } from './Comment/CommentsList'; +import { Comments } from './Comment/Comments'; + +export enum CommentListTitle { + all = 'All Comments', + favorited = 'Favorited Comments', + procedural = 'parser-generated', +} + +export interface SortOption { + label: string; + key: string; +} + +export const SortBy: Record = { + TIME: { label: 'Time', key: 'minTime' }, + ID: { label: 'ID', key: 'id' }, +}; + +export const TabNames: (store: AppStore) => Record = (store: AppStore) => ({ + [Tabs.BEACONS]: 'Beacons', + [Tabs.HOSTS]: 'Hosts', + [Tabs.COMMANDS]: 'Commands', + [Tabs.COMMANDS_OVERVIEW]: 'Command Types', + [Tabs.OPERATORS]: 'Operators', + [Tabs.COMMENTS]: store.router.params.currentItem === 'comments_list' ? '' : 'Comments', + [Tabs.COMMENTS_LIST]: 'Comments', + [Tabs.METADATA]: 'Details', +}); + +export enum CommentFilterOptions { + FAVORITE = 'fav', + OPERATOR = 'user', + TIME = 'minTime', +} + +export enum OverviewCommentListFilterOptions { + ALPHABETICAL = 'alphabetical', + COMMENT_COUNT = 'commentCount', + COMMAND_COUNT = 'commandCount', +} + +export const commentsTabSort = [ + { label: 'Time', key: CommentFilterOptions.TIME }, + { label: 'Operator', key: CommentFilterOptions.OPERATOR }, + { label: 'Favorited', key: CommentFilterOptions.FAVORITE }, +]; + +export const overviewCommentListSort = [ + { label: 'Alphabetical', key: OverviewCommentListFilterOptions.ALPHABETICAL }, + { label: 'Comment Count', key: OverviewCommentListFilterOptions.COMMENT_COUNT }, + { label: 'Command Count', key: OverviewCommentListFilterOptions.COMMAND_COUNT }, +]; + +// Defaults to the first one if unable to find a similar key +export const sortOptions: Record = { + [Tabs.BEACONS]: [SortBy.TIME, { label: 'Name', key: 'beaconName' }, SortBy.ID], + [Tabs.HOSTS]: [SortBy.TIME, { label: 'Name', key: 'hostName' }, SortBy.ID], + [Tabs.COMMANDS_OVERVIEW]: [{ label: 'Name', key: 'text' }, SortBy.ID], + [Tabs.COMMANDS]: [ + { label: 'Time', key: 'time' }, + { label: 'Name', key: 'name' }, + ], + [Tabs.COMMENTS]: commentsTabSort, + [Tabs.COMMENTS_LIST]: overviewCommentListSort, + [Tabs.OPERATORS]: [ + { + label: 'Time', + key: 'startTime', + }, + { label: 'Name', key: 'name' }, + SortBy.ID, + ], + [Tabs.METADATA]: [ + { + label: 'Time', + key: 'startTime', + }, + { label: 'Name', key: 'name' }, + SortBy.ID, + ], +}; + +export const InfoPanelTabs = { + [InfoType.BEACON]: { + title: (store: AppStore) => ( + + {store.campaign?.interactionState.selectedBeacon?.current?.computedName} + + ), + panels: { + [Tabs.COMMANDS]: (props) => , + [Tabs.OPERATORS]: OperatorsList, + [Tabs.COMMENTS]: (props) => , + [Tabs.METADATA]: BeaconMeta, + }, + }, + [InfoType.OVERVIEW]: { + title: (store: AppStore) => { + const campaign = store.graphqlStore.campaigns.get((store.router.params?.id || '0') as string); + return {campaign?.name}; + }, + panels: { + [Tabs.HOSTS]: OverviewHostsList, + [Tabs.OPERATORS]: OverviewOperatorsList, + [Tabs.COMMENTS_LIST]: CommentsList, + [Tabs.BEACONS]: OverviewBeaconsList, + [Tabs.COMMANDS_OVERVIEW]: OverviewCommandTypesList, + }, + }, + [InfoType.SERVER]: { + title: (store: AppStore) => ( + + {store.campaign?.interactionState.selectedServer?.current?.computedName} + + ), + panels: { + [Tabs.HOSTS]: HostsAndServersList, + [Tabs.OPERATORS]: OperatorsList, + [Tabs.BEACONS]: BeaconsList, + [Tabs.METADATA]: ServerMeta, + }, + }, + [InfoType.HOST]: { + title: (store: AppStore) => ( + + {store.campaign?.interactionState.selectedHost?.current?.computedName} + + ), + panels: { + [Tabs.COMMANDS]: (props) => , + [Tabs.OPERATORS]: OperatorsList, + [Tabs.COMMENTS]: (props) => , + [Tabs.BEACONS]: HostBeaconsList, + [Tabs.METADATA]: HostMeta, + }, + }, + [InfoType.OPERATOR]: { + title: (store: AppStore) => {store.campaign?.interactionState.selectedOperator?.id}, + panels: { + [Tabs.COMMANDS]: (props) => , + [Tabs.BEACONS]: BeaconsList, + }, + }, + [InfoType.COMMAND]: { + title: (store: AppStore) => {store.campaign?.interactionState.selectedCommandType?.id}, + panels: { + [Tabs.COMMANDS]: (props) => , + [Tabs.COMMENTS]: (props) => , + }, + }, + [InfoType.COMMENTS_LIST]: { + title: (store: AppStore) => { + const title = commentsListTitle(store); + return {title}; + }, + panels: { + [Tabs.COMMENTS]: (props) => , + }, + }, +}; + +const commentsListTitle = (store: AppStore) => { + const campaign = store.graphqlStore.campaigns.get((store.router.params?.id || '0') as string); + return store.router.params.currentItemId + ? store.router.params.currentItemId.slice(0, 5) === 'user-' + ? store.router.params.currentItemId.slice(5) + : store.router.params.currentItemId.slice(0, 4) === 'tag-' + ? `#${store.router.params.currentItemId.slice(4)}` + : CommentListTitle[store.router.params.currentItemId] + : campaign?.name; +}; diff --git a/applications/client/src/views/Campaign/Explore/Panels/QuickMeta.tsx b/applications/client/src/views/Campaign/Explore/Panels/QuickMeta.tsx new file mode 100644 index 0000000..14367a7 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/QuickMeta.tsx @@ -0,0 +1,52 @@ +import { Menu, Position, MenuItem } from '@blueprintjs/core'; +import type { MenuItemProps } from '@blueprintjs/core'; +import { OverflowMenuVertical16, View16, ViewOff16 } from '@carbon/icons-react'; +import { css } from '@emotion/react'; +import { CarbonIcon } from '@redeye/client/components'; +import { BeaconModel, HostModel } from '@redeye/client/store'; +import type { ServerModel } from '@redeye/client/store'; +import type { PopoverButtonProps } from '@redeye/ui-styles'; +import { PopoverButton, popoverOffset } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; + +type ShowHideMenuItemProps = Partial & { + model: HostModel | ServerModel | BeaconModel; +}; + +export const ShowHideMenuItem = observer(({ model, ...props }) => ( + } + {...props} + /> +)); + +export const QuickMetaPopoverButtonMenu = observer(({ content, ...props }) => ( + } + css={buttonStyle} + content={{content}} + {...props} + /> +)); + +const buttonStyle = css` + margin: 0 -8px 0 -4px; + &:not(:hover) { + opacity: 0.3; + } +`; diff --git a/applications/client/src/views/Campaign/Explore/Panels/copy-text.ts b/applications/client/src/views/Campaign/Explore/Panels/copy-text.ts new file mode 100644 index 0000000..531f735 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/copy-text.ts @@ -0,0 +1,48 @@ +import { Intent, Toaster } from '@blueprintjs/core'; + +export function copyText(textRaw: string) { + const text = textRaw.replace(/\n/gi, '\r\n'); + if (!navigator.clipboard) { + fallbackCopyTextToClipboard(text); + return; + } + navigator.clipboard.writeText(text).then( + () => { + toast(`Copied ${textRaw.length} char(s)`); + window.console.log('Async: Copying to clipboard was successful!'); + }, + (err) => { + window.console.error('Async: Could not copy text: ', err); + } + ); +} + +function fallbackCopyTextToClipboard(text) { + const textArea = document.createElement('textarea'); + textArea.value = text; + + // Avoid scrolling to bottom + textArea.style.top = '0'; + textArea.style.left = '0'; + textArea.style.position = 'fixed'; + + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + try { + const successful = document.execCommand('copy'); + const msg = successful ? 'successful' : 'unsuccessful'; + toast('Copied'); + window.console.log(`Fallback: Copying text command was ${msg}`); + } catch (err) { + window.console.error('Fallback: Oops, unable to copy', err); + } + + document.body.removeChild(textArea); +} + +export function toast(message: string) { + const toaster = Toaster.create(); + toaster.show({ message, intent: Intent.PRIMARY, timeout: 2000 }); +} diff --git a/applications/client/src/views/Campaign/Explore/Panels/hooks/use-beacons.ts b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-beacons.ts new file mode 100644 index 0000000..f64582b --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-beacons.ts @@ -0,0 +1,85 @@ +import { createSorter } from '@redeye/client/components'; +import { SortDirection, useStore } from '@redeye/client/store'; +import type { SortType, BeaconModel } from '@redeye/client/store'; +import type { Ref } from 'mobx-keystone'; +import { InfoType } from '@redeye/client/types'; +import type { ComponentProps } from 'react'; +import { useMemo } from 'react'; + +export type BeaconsListRow = ComponentProps<'div'> & { + type: InfoType; + sort: SortType; +}; + +export const useBeacons = (props?: BeaconsListRow) => { + const store = useStore(); + + const getBeacons = () => { + if (store.router.params.currentItem === 'server') { + if (props) { + return Array.from( + store.campaign?.interactionState[`selected${props.type}`]?.current?.beacons?.values() || [] + ) + .filter((beacon: BeaconModel | Ref) => { + const cBeacon = store.graphqlStore.beacons.get(beacon?.id as string); + return !(!cBeacon || !!cBeacon?.host?.current?.cobaltStrikeServer); + }) + .sort((beacon1, beacon2) => + 'current' in beacon1 && 'current' in beacon2 + ? createSorter( + (beacon: BeaconModel | Ref) => + 'current' in beacon ? beacon?.current[props.sort.sortBy || 'id'] : props.sort.sortBy, + props.sort.direction === SortDirection.ASC + )(beacon1, beacon2) + : createSorter(props.sort.sortBy, props.sort.direction === SortDirection.ASC)(beacon1, beacon2) + ); + } else { + return Array.from( + // @ts-ignore + store.campaign?.interactionState[`selected${InfoType.SERVER}`]?.current?.beacons?.values() || [] + ).filter((beacon: BeaconModel | Ref) => { + const cBeacon = store.graphqlStore.beacons.get(beacon?.id as string); + return !(!cBeacon || !!cBeacon?.host?.current?.cobaltStrikeServer); + }); + } + } else if (props) { + return (store.campaign?.interactionState[ + `selected${store.router.params.currentItem === 'operator' ? 'Operator' : 'Host'}` + ]?.current?.beaconIds + ?.map((beaconId: string | number | symbol) => store.graphqlStore.beacons.get(beaconId as string)) + .filter( + (beacon: BeaconModel | undefined) => + beacon != null && !(!beacon || !!beacon?.host?.current?.cobaltStrikeServer) + ) + .sort(createSorter(props.sort.sortBy, props.sort.direction === SortDirection.ASC)) || []) as BeaconModel[]; + } else { + return (store.campaign?.interactionState.selectedHost?.current?.beaconIds + ?.map((beaconId: string | number | symbol) => store.graphqlStore.beacons.get(beaconId as string)) + .filter( + (beacon: BeaconModel | undefined) => + beacon != null && !(!beacon || !!beacon?.host?.current?.cobaltStrikeServer) + ) || []) as BeaconModel[]; + } + }; + + const tabBeaconCount = useMemo( + () => + store.settings.showHidden + ? getBeacons()?.length + : getBeacons()?.filter((beacon) => !currentBeacon(beacon).hidden).length, + [store.settings.showHidden, getBeacons] + ); + + const lastTabBeaconToHide = useMemo( + () => + ((tabBeaconCount === 1 && !currentBeacon(getBeacons()?.[0]).hidden) || + tabBeaconCount === store.campaign.beaconGroupSelect.selectedBeacons.length) && + !store.settings.showHidden, + [store.settings.showHidden, tabBeaconCount, store.campaign.beaconGroupSelect.selectedBeacons] + ); + + return { beacons: getBeacons(), tabBeaconCount, lastTabBeaconToHide }; +}; + +export const currentBeacon = (beacon: BeaconModel | Ref) => + 'current' in beacon ? beacon?.current : beacon; diff --git a/applications/client/src/views/Campaign/Explore/Panels/hooks/use-check-last-unhidden.ts b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-check-last-unhidden.ts new file mode 100644 index 0000000..6b11ae1 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-check-last-unhidden.ts @@ -0,0 +1,54 @@ +import { isDefined } from '@redeye/client/components'; +import type { HostModel, BeaconModel } from '@redeye/client/store'; +import { useStore } from '@redeye/client/store'; +import { useMemo } from 'react'; + +export const useCheckLastUnhidden = (typeName: string, hidden: boolean) => { + const store = useStore(); + + const unhiddenServerCount = useMemo( + () => + Array.from(store.graphqlStore?.hosts.values() || []) + ?.filter(isDefined) + .filter((s) => s.cobaltStrikeServer) + .filter((s) => !s.hidden).length, + [store.graphqlStore?.hosts.values(), isDefined] + ); + + const unhiddenHostCount = useMemo( + () => + Array.from(store.graphqlStore?.hosts.values() || []) + ?.filter(isDefined) + .filter((h) => !h.cobaltStrikeServer) + .filter((h) => !h.hidden).length, + [store.graphqlStore?.hosts.values(), isDefined] + ); + + const unhiddenBeaconCount = useMemo( + () => + Array.from(store.graphqlStore?.beacons.values() || []) + ?.filter((b) => b?.host?.current?.cobaltStrikeServer === false) + ?.filter(isDefined) + .filter((b) => !b.hidden).length, + [store.graphqlStore?.hosts.values(), isDefined] + ); + + const last = useMemo( + () => + typeName === 'server' + ? unhiddenServerCount === 1 + : typeName === 'host' + ? unhiddenHostCount === 1 + : typeName === 'beacon' + ? unhiddenBeaconCount === 1 + : false, + [typeName, unhiddenServerCount, unhiddenHostCount, unhiddenBeaconCount] + ); + + const isDialogDisabled = useMemo( + () => window.localStorage.getItem('disableDialog') === 'true' && (!last || (last && hidden)), + [window.localStorage.getItem('disableDialog'), last, hidden] + ); + + return { last, isDialogDisabled }; +}; diff --git a/applications/client/src/views/Campaign/Explore/Panels/hooks/use-check-nonHidable-entities.ts b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-check-nonHidable-entities.ts new file mode 100644 index 0000000..797ea69 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-check-nonHidable-entities.ts @@ -0,0 +1,31 @@ +import { useStore } from '@redeye/client/store'; +import { useQuery } from '@tanstack/react-query'; +import { useMemo } from 'react'; + +export const useCheckNonHidableEntities = ( + typeName: 'beacons' | 'hosts' | 'servers', + hidden: boolean, + ids: string[] +) => { + const store = useStore(); + + const entityIds = typeName === 'beacons' ? 'beaconIds' : 'hostIds'; + const { data } = useQuery( + [typeName, 'can-hide', store.campaign?.id, ids], + async () => + await store.graphqlStore.queryNonHidableEntities({ + campaignId: store.campaign.id!, + [entityIds]: ids, + }) + ); + + const cantHideEntities = useMemo(() => (data?.nonHidableEntities?.[typeName]?.length || 0) > 0, [ids, data]); + + const isDialogDisabled = useMemo( + () => + window.localStorage.getItem('disableDialog') === 'true' && (!cantHideEntities || (cantHideEntities && hidden)), + [window.localStorage.getItem('disableDialog'), cantHideEntities, hidden] + ); + + return { data, cantHideEntities, isDialogDisabled }; +}; diff --git a/applications/client/src/views/Campaign/Explore/Panels/hooks/use-hosts.ts b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-hosts.ts new file mode 100644 index 0000000..5f150fb --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-hosts.ts @@ -0,0 +1,41 @@ +import { createSorter } from '@redeye/client/components'; +import { useStore, SortDirection } from '@redeye/client/store'; +import type { HostModel, SortType } from '@redeye/client/store'; +import { InfoType } from '@redeye/client/types'; +import type { Ref } from 'mobx-keystone'; +import type { ComponentProps } from 'react'; + +export type HostsAndServersListProps = ComponentProps<'div'> & { + type: InfoType; + sort: SortType; +}; + +export const useHosts = (props?: HostsAndServersListProps) => { + const store = useStore(); + const hosts = props + ? Array.from>( + store.campaign?.interactionState[`selected${props.type}`]?.current?.hosts?.values() || [] + ) + .filter((host) => !current(host).cobaltStrikeServer) // remove servers from 'Hosts' list + .sort( + createSorter( + (host: HostModel | Ref) => + 'current' in host ? host?.current[props.sort.sortBy || 'id'] : host.id, + props.sort.direction === SortDirection.ASC + ) + ) + : Array.from>( + store.campaign?.interactionState[`selected${InfoType.SERVER}`]?.current?.hosts?.values() || [] + ).filter((host) => !current(host).cobaltStrikeServer); // remove servers from 'Hosts' list; + + const tabHostCount = + window.localStorage.getItem('showHidden') === 'true' + ? hosts?.length + : hosts?.filter((beacon) => !current(beacon).hidden).length; + + const lastTabHostToHide = tabHostCount === 1 && !current(hosts?.[0]).hidden && !store.settings.showHidden; + + return { hosts, tabHostCount, lastTabHostToHide }; +}; + +export const current = (host: HostModel | Ref) => ('current' in host ? host?.current : host); diff --git a/applications/client/src/views/Campaign/Explore/Panels/hooks/use-toggle-hidden.ts b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-toggle-hidden.ts new file mode 100644 index 0000000..d2d6414 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/hooks/use-toggle-hidden.ts @@ -0,0 +1,68 @@ +import { createState } from '@redeye/client/components/mobx-create-state'; +import { useStore } from '@redeye/client/store'; +import { Tabs } from '@redeye/client/types'; +import { useMutation } from '@tanstack/react-query'; +import { useBeacons } from './use-beacons'; +import { useHosts } from './use-hosts'; + +export function useToggleHidden(mutation: () => Promise) { + const store = useStore(); + + const { lastTabBeaconToHide } = useBeacons(); + const { lastTabHostToHide } = useHosts(); + + const lastTabItem = + store.router.params.tab === Tabs.BEACONS + ? lastTabBeaconToHide + : store.router.params.tab === Tabs.HOSTS + ? lastTabHostToHide + : false; + + const state = createState({ + showHide: false, + refreshHiddenState() { + this.showHide = false; + store.router.updateRoute({ + path: store.router.currentRoute, + params: + store.router.params.tab === Tabs.METADATA + ? { + currentItem: 'all', + currentItemId: undefined, + tab: store.router.params.currentItem === 'beacon' ? Tabs.BEACONS : Tabs.HOSTS, + } + : { + currentItem: lastTabItem ? 'all' : store.router.params.currentItem, + currentItemId: lastTabItem ? undefined : store.router.params.currentItemId, + tab: lastTabItem ? Tabs.HOSTS : store.router.params.tab || Tabs.HOSTS, + }, + }); + + store.reset(false); + store.campaign.refetch(); + store.campaign.search.clearSearch(); + }, + }); + + const mutate = useMutation(async () => await mutation(), { + onSuccess: () => { + state.refreshHiddenState(); + if (store.campaign?.beaconGroupSelect.groupSelect) { + store.campaign?.setBeaconGroupSelect({ + groupSelect: false, + selectedBeacons: [], + hiddenCount: 0, + }); + } + if (store.campaign?.hostGroupSelect.groupSelect) { + store.campaign?.setHostGroupSelect({ + groupSelect: false, + selectedHosts: [], + selectedServers: [], + hiddenCount: 0, + }); + } + }, + }); + return [state, mutate] as const; +} diff --git a/applications/client/src/views/Campaign/Explore/Panels/index.ts b/applications/client/src/views/Campaign/Explore/Panels/index.ts new file mode 100644 index 0000000..b2fea0d --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/Panels/index.ts @@ -0,0 +1,15 @@ +/** + * @file Automatically generated by barrelsby. + */ + +export * from './OperatorsList'; +export * from './Panels'; +export * from './copy-text'; +export * from './Beacon/index'; +export * from './Command/index'; +export * from './Comment/index'; +export * from './Host/index'; +export * from './Meta/index'; +export * from './Overview/index'; +export * from './hooks/use-check-last-unhidden'; +export * from './BulkEdit'; diff --git a/applications/client/src/views/Campaign/Explore/components/BreadcrumbsStyled.tsx b/applications/client/src/views/Campaign/Explore/components/BreadcrumbsStyled.tsx new file mode 100644 index 0000000..b1ed4f5 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/components/BreadcrumbsStyled.tsx @@ -0,0 +1,98 @@ +import type { BreadcrumbsProps } from '@blueprintjs/core'; +import { Breadcrumb, Classes } from '@blueprintjs/core'; +import { css } from '@emotion/react'; +import styled from '@emotion/styled'; +import { CoreTokens, UtilityStyles } from '@redeye/ui-styles'; +import { observer } from 'mobx-react-lite'; + +/** BreadcrumbsProps without the OverflowList Props - OverflowList doesn't seem to work */ +export type BreadcrumbsSimpleProps = Omit< + BreadcrumbsProps, + 'collapseFrom' | 'minVisibleItems' | 'overflowListProps' | 'popoverProps' +>; + +/** Blueprintjs Breadcrumbs without the OverflowList - OverflowList doesn't seem to work */ +export const BreadcrumbsSimple = observer( + ({ + items, + breadcrumbRenderer: Crumb = Breadcrumb, + currentBreadcrumbRenderer: CurrentCrumb, + // collapseFrom, // TODO: could work? + className, + ...props + }) => ( + // recreating the structure from https://blueprintjs.com/docs/#core/components/breadcrumbs.css +
    + {items.map((crumb, i) => ( + // eslint-disable-next-line react/no-array-index-key +
  • + {crumb.current && CurrentCrumb != null ? : } +
  • + ))} +
+ ) +); + +export type BreadcrumbsStyledProps = { + muted?: boolean; +}; + +export const breadcrumbLinkStyle = ({ muted }: BreadcrumbsStyledProps) => css` + .${Classes.BREADCRUMB} { + display: inline; + font-size: inherit; + } + + a.${Classes.BREADCRUMB} { + color: ${CoreTokens.TextMuted}; + ${!muted && + css` + font-weight: ${CoreTokens.FontWeightBold}; + color: ${CoreTokens.TextLink}; + `}; + + &:hover { + text-decoration: underline; + } + } + + .${Classes.BREADCRUMB_CURRENT} { + color: ${CoreTokens.TextMuted}; + } +`; + +export const BreadcrumbsStyled = styled(BreadcrumbsSimple)` + /* ${UtilityStyles.textMeta} */ + + ${UtilityStyles.textEllipsis} + height: auto; + display: inline; + // all children are display:inline; to get the ellipsis... effect + + li { + display: inline; + } + + & > li:after { + content: '/'; + background: unset; + height: unset; + width: unset; + display: inline; + color: ${CoreTokens.TextMuted}; + + ${({ muted }) => + muted && + css` + color: ${CoreTokens.TextDisabled}; + `} + } + + ${({ muted }) => breadcrumbLinkStyle({ muted })} + + .${Classes.OVERFLOW_LIST_SPACER} { + // this is used by OverflowList to measure and adjust layout... + // this kinda disables it? + display: inline-block; + } +`; diff --git a/applications/client/src/views/Campaign/Explore/components/Comment/AddToCommandGroupDialog.tsx b/applications/client/src/views/Campaign/Explore/components/Comment/AddToCommandGroupDialog.tsx new file mode 100644 index 0000000..796ab93 --- /dev/null +++ b/applications/client/src/views/Campaign/Explore/components/Comment/AddToCommandGroupDialog.tsx @@ -0,0 +1,121 @@ +import { Button, InputGroup, NonIdealState } from '@blueprintjs/core'; +import { Error16, Search16 } from '@carbon/icons-react'; +import { css } from '@emotion/react'; +import type { DialogExProps } from '@redeye/client/components'; +import { CarbonIcon, DialogEx, escapeRegExpChars, ScrollBox, VirtualizedList } from '@redeye/client/components'; +import { createState } from '@redeye/client/components/mobx-create-state'; +import type { CommandGroupModel } from '@redeye/client/store'; +import { commandGroupQuery, useStore } from '@redeye/client/store'; +import { CommentBox, MessageRow } from '@redeye/client/views'; +import { Header, CoreTokens, Flex } from '@redeye/ui-styles'; +import { useQuery } from '@tanstack/react-query'; +import { observer } from 'mobx-react-lite'; +import type { ChangeEvent } from 'react'; + +type AddToCommandGroupDialogProps = Omit; + +export const AddToCommandGroupDialog = observer(({ ...props }) => { + const store = useStore(); + const campaignId = store.campaign?.id; + const addToCommandGroup = store.campaign.addCommandToCommandGroup; + + const commandId = addToCommandGroup.commandId; + const isOpen = addToCommandGroup.isCommandSelected; + + const onClose = () => { + addToCommandGroup.closeAddToCommandGroupDialog(); + }; + + const state = createState({ + searchVal: '', + commandGroups: [] as CommandGroupModel[], + handleOnChange(e: ChangeEvent) { + this.searchVal = e.target.value; + }, + get filteredCommandGroups() { + const commandGroups = this.commandGroups; + if (this.searchVal.length > 0) { + const regex = new RegExp(escapeRegExpChars(this.searchVal), 'gi'); + return commandGroups.filter((commandGroup) => + commandGroup.annotations.some((annotation) => { + const text = annotation.maybeCurrent?.text; + return text && regex.test(text); + }) + ); + } else { + return commandGroups; + } + }, + }); + + // Fetch full comment list + const { isError, isSuccess } = useQuery( + ['command-groups', campaignId], + async () => { + if (campaignId) { + const resp = await store.graphqlStore.queryCommandGroups( + { campaignId, hidden: store.settings.showHidden }, + commandGroupQuery + ); + if (resp.commandGroups) state.update('commandGroups', resp.commandGroups); + return resp; + } + }, + { enabled: isOpen && !!campaignId } + ); + + return ( + +
Add Command to Existing Comment
+ } + placeholder="Search comments" + large + /> + + } + {...props} + > + + {isSuccess && ( + + {state.commandGroups.length === 0 ? ( + No Commands + ) : state.filteredCommandGroups.length === 0 ? ( + No matching commands + ) : ( + state.filteredCommandGroups.map((commandGroup) => ( + + )) + )} + + )} + {/* {isLoading && } */} + {isError && } />} + +