{
  "name": "@black-flag/core",
  "version": "1.3.2",
  "description": "A declarative framework for building fluent, deeply hierarchical command line interfaces with yargs",
  "keywords": [
    "cli",
    "parse",
    "command",
    "line",
    "interface",
    "parameters",
    "arguments",
    "user",
    "option",
    "yargs",
    "optstring"
  ],
  "homepage": "https://github.com/Xunnamius/black-flag",
  "repository": {
    "type": "git",
    "url": "https://github.com/Xunnamius/black-flag"
  },
  "license": "MIT",
  "author": "Xunnamius",
  "sideEffects": false,
  "type": "commonjs",
  "exports": {
    ".": {
      "types": "./dist/src/exports/index.d.ts",
      "default": "./dist/src/exports/index.js"
    },
    "./util": {
      "types": "./dist/src/exports/util.d.ts",
      "default": "./dist/src/exports/util.js"
    },
    "./package": "./package.json",
    "./package.json": "./package.json"
  },
  "typesVersions": {
    "*": {
      "index": [
        "dist/src/exports/index.d.ts"
      ],
      "util": [
        "dist/src/exports/util.d.ts"
      ],
      "package": [
        "package.json"
      ]
    }
  },
  "files": [
    "/dist",
    "/LICENSE",
    "/package.json",
    "/README.md"
  ],
  "scripts": {
    "__test:repeat:all": "echo 'Repeating test suite [initializing]...'; (i=0; while [ \"$((( i += 1 ) <= 100 ))\" -ne 0 ]; do sleep 0.1 && echo \"\\r\\033[1A\\033[0KRepeating test suite [run $i/100]...\" && JEST_SILENT_REPORTER_SHOW_WARNINGS=true NODE_ENV=test npx jest --reporters=jest-silent-reporter || exit; done) && echo \"All tests passed! Congrats!\"",
    "__test:repeat:unit": "echo 'Repeating test suite [initializing]...'; (i=0; while [ \"$((( i += 1 ) <= 100 ))\" -ne 0 ]; do sleep 0.1 && echo \"\\r\\033[1A\\033[0KRepeating test suite [run $i/100]...\" && JEST_SILENT_REPORTER_SHOW_WARNINGS=true NODE_ENV=test npx jest --reporters=jest-silent-reporter --testPathIgnorePatterns '/(integration|e2e).*?\\.test\\.tsx?' '/dist/' || exit; done) && echo \"All tests passed! Congrats!\"",
    "build": "npm run build:dist --",
    "build:changelog": "conventional-changelog --outfile CHANGELOG.md --config ./conventional.config.js --release-count 0 --skip-unstable && (if [ \"$CHANGELOG_SKIP_TITLE\" != 'true' ]; then { node -e 'console.log(require(\"./conventional.config.js\").changelogTitle)'; cat CHANGELOG.md; } > CHANGELOG.md.ignore && mv CHANGELOG.md.ignore CHANGELOG.md; fi) && NODE_ENV=format remark --output --frail CHANGELOG.md && prettier --write CHANGELOG.md",
    "build:dist": "echo '> Generating types...' && NODE_ENV=production tsc --project tsconfig.types.json --incremental false && tsconfig-replace-paths --project tsconfig.types.json && echo '> Building distributables...' && NODE_ENV=production-cjs babel src --extensions .ts --out-dir ./dist/src && NODE_ENV=production-cjs babel lib --extensions .ts --out-dir ./dist/lib && rm -rf ./dist/lib/expect-with-context ./dist/lib/run ./dist/lib/debug-extended/test",
    "build:docs": "if [ -r ./next.config.js ]; then typedoc --plugin typedoc-plugin-markdown --skipErrorChecking --cleanOutputDir --tsconfig tsconfig.docs.json --out docs --readme none lib src test types external-scripts --exclude '**/*.test.*' --exclude external-scripts/bin; else ENTRY=`node -e 'const entry = require(\"./package.json\").config?.[\"plugin-build\"]?.docs?.entry; if(!entry) throw new Error(\"\\\"config['\"'\"'plugin-build'\"'\"'].docs.entry\\\" field is not defined in package.json\"); console.log(entry)'` && echo 'Entry file:' $ENTRY && typedoc --plugin typedoc-plugin-markdown --skipErrorChecking --cleanOutputDir --tsconfig tsconfig.docs.json --out docs --readme none $ENTRY; fi",
    "build:externals": "NODE_ENV=production-external babel external-scripts --extensions .ts --out-dir external-scripts/bin",
    "clean": "git ls-files --exclude-standard --ignored --others --directory | grep -vE '^((\\.(env|vscode|husky))|next-env\\.d\\.ts|node_modules)($|\\/)' | xargs -p rm -rf",
    "format": "MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && (echo $MD_FILES | xargs remark --no-config --no-stdout --quiet --frail --use gfm --use lint-no-undefined-references || (echo -n '\u001b' && echo '[37;41;1m FAIL \u001b[0m cannot continue with undefined references present' && false)) && sort-package-json './package.json' './packages/*/package.json' && echo $MD_FILES | NODE_ENV=format xargs remark --output --frail && echo $MD_FILES | xargs doctoc --no-title --maxlevel 3 --update-only && prettier --write .",
    "lint": "stdbuf -i0 -o0 -e0 tsc --project tsconfig.lint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.lint.json --no-error-on-unmatched-pattern packages src; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]",
    "lint:all": "stdbuf -i0 -o0 -e0 tsc --project tsconfig.eslint.json; X=$?; stdbuf -i0 -o0 -e0 eslint --parser-options=project:tsconfig.eslint.json .; Y=$?; MD_FILES=$(node -e 'console.log(require(`glob-gitignore`).sync(`**/*.md`, { ignore: require(`fs`).readFileSync(`.prettierignore`, `utf8`).split(`\n`).filter(Boolean), dot: true }).join(`\n`))') && echo $MD_FILES | NODE_ENV=lint xargs remark --quiet --frail --no-stdout; Z=$?; [ $X -eq 0 ] && [ $Y -eq 0 ] && [ $Z -eq 0 ]",
    "list-tasks": "node -e 'console.log(Object.keys(require(\"./package.json\").scripts).join(\"\\n\"))' && (npm run -ws list-tasks --if-present 2>/dev/null || true)",
    "prepare": "node -e \"execa = require('execa'); if(process.env.CI === undefined && (process.env.NODE_ENV === undefined || process.env.NODE_ENV === 'development')) { execa.sync('npx', ['husky', 'install'], { stdout: 'inherit', stderr: 'inherit' }); } else { console.log('skipped installing husky git hooks'); }\"",
    "test": "npm run test:unit --",
    "test:all": "npx attw --pack . && NODE_ENV=test jest --coverage",
    "test:e2e": "NODE_ENV=test jest 'e2e.*?\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'",
    "test:integration": "NODE_ENV=test jest '/integration.*?\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'",
    "test:integration:client": "NODE_ENV=test jest '/integration-client.*?\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'",
    "test:integration:compile": "NODE_ENV=test jest '/integration-compile.*?\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'",
    "test:integration:externals": "NODE_ENV=test jest '/integration-external.*?\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'",
    "test:integration:node": "NODE_ENV=test jest '/integration-node.*?\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'",
    "test:repeat:all": "npm run __test:repeat:all --silent",
    "test:repeat:unit": "npm run __test:repeat:unit --silent",
    "test:unit": "NODE_ENV=test jest '/unit-.*\\.test\\.tsx?' --testPathIgnorePatterns '/dist/'"
  },
  "config": {
    "plugin-build": {
      "docs": {
        "entry": "./src/exports/*.ts"
      }
    }
  },
  "dependencies": {
    "@types/debug": "^4.1.12",
    "core-js": "3.37.1",
    "debug": "^4.3.5",
    "merge-descriptors": "^2.0.0",
    "named-app-errors": "^4.0.2",
    "package-up": "^5.0.0",
    "semver": "^7.6.3",
    "supports-color": "^8.1.1",
    "yargs": "^17.7.2"
  },
  "devDependencies": {
    "@-xun/symbiote": "^2.6.0",
    "@arethetypeswrong/cli": "^0.15.3",
    "@babel/cli": "^7.24.8",
    "@babel/eslint-parser": "^7.24.8",
    "@babel/plugin-proposal-export-default-from": "^7.24.7",
    "@babel/preset-env": "^7.24.8",
    "@babel/preset-typescript": "^7.24.7",
    "@commitlint/cli": "^19.3.0",
    "@commitlint/config-conventional": "^19.2.2",
    "@semantic-release/changelog": "^6.0.3",
    "@semantic-release/exec": "^6.0.3",
    "@semantic-release/git": "^10.0.1",
    "@types/glob": "^8.1.0",
    "@types/jest": "^29.5.12",
    "@types/lodash.mergewith": "^4.6.9",
    "@types/merge-descriptors": "^1.0.3",
    "@types/node": "^20.14.10",
    "@types/semver": "^7.5.8",
    "@types/spellchecker": "^3.5.2",
    "@typescript-eslint/eslint-plugin": "^7.16.0",
    "@typescript-eslint/parser": "^7.16.0",
    "@xunnamius/conventional-changelog-projector": "^1.2.1",
    "@xunnamius/jest-types": "^1.1.3",
    "all-contributors-cli": "^6.26.1",
    "babel-jest": "^29.7.0",
    "babel-plugin-explicit-exports-references": "^1.0.2",
    "babel-plugin-module-resolver": "^5.0.2",
    "babel-plugin-transform-rewrite-imports": "^1.2.0",
    "conventional-changelog-cli": "^4.1.0",
    "doctoc": "^2.2.1",
    "dotenv": "^16.4.5",
    "eslint": "^8.57.0",
    "eslint-import-resolver-alias": "^1.1.2",
    "eslint-import-resolver-babel-module": "^5.3.2",
    "eslint-import-resolver-typescript": "^3.6.1",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-jest": "^28.6.0",
    "eslint-plugin-module-resolver": "^1.5.0",
    "eslint-plugin-unicorn": "^54.0.0",
    "execa": "^5.1.1",
    "glob": "^11.0.0",
    "glob-gitignore": "^1.0.14",
    "husky": "^9.0.11",
    "jest": "^29.7.0",
    "jest-circus": "^29.7.0",
    "jest-extended": "^4.0.2",
    "lint-staged": "^15.2.7",
    "lodash.mergewith": "^4.6.2",
    "prettier": "^3.3.2",
    "remark-capitalize-headings": "^2.0.1",
    "remark-cli": "^12.0.1",
    "remark-frontmatter": "^5.0.0",
    "remark-gfm": "^4.0.0",
    "remark-ignore": "^2.0.0",
    "remark-lint": "^10.0.0",
    "remark-lint-definition-case": "^4.0.0",
    "remark-lint-fenced-code-flag": "^4.0.0",
    "remark-lint-fenced-code-flag-case": "^2.0.0",
    "remark-lint-file-extension": "^3.0.0",
    "remark-lint-final-newline": "^3.0.0",
    "remark-lint-first-heading-level": "^4.0.0",
    "remark-lint-hard-break-spaces": "^4.0.0",
    "remark-lint-heading-increment": "^4.0.0",
    "remark-lint-heading-whitespace": "^1.0.0",
    "remark-lint-heading-word-length": "^2.0.0",
    "remark-lint-list-item-style": "^2.0.0",
    "remark-lint-no-auto-link-without-protocol": "^3.1.2",
    "remark-lint-no-blockquote-without-marker": "^6.0.0",
    "remark-lint-no-duplicate-defined-urls": "^3.0.0",
    "remark-lint-no-duplicate-definitions": "^4.0.0",
    "remark-lint-no-duplicate-headings-in-section": "^4.0.0",
    "remark-lint-no-empty-sections": "^4.0.0",
    "remark-lint-no-empty-url": "^4.0.0",
    "remark-lint-no-heading-content-indent": "^5.0.0",
    "remark-lint-no-heading-like-paragraph": "^4.0.0",
    "remark-lint-no-heading-punctuation": "^4.0.0",
    "remark-lint-no-inline-padding": "^4.1.2",
    "remark-lint-no-literal-urls": "^4.0.0",
    "remark-lint-no-multiple-toplevel-headings": "^4.0.0",
    "remark-lint-no-reference-like-url": "^4.0.0",
    "remark-lint-no-shell-dollars": "^4.0.0",
    "remark-lint-no-shortcut-reference-image": "^4.0.0",
    "remark-lint-no-shortcut-reference-link": "^4.0.0",
    "remark-lint-no-tabs": "^4.0.0",
    "remark-lint-no-undefined-references": "^5.0.0",
    "remark-lint-no-unused-definitions": "^4.0.0",
    "remark-lint-ordered-list-marker-style": "^4.0.0",
    "remark-lint-ordered-list-marker-value": "^4.0.0",
    "remark-lint-strikethrough-marker": "^3.0.0",
    "remark-lint-unordered-list-marker-style": "^4.0.0",
    "remark-reference-links": "^7.0.0",
    "remark-remove-unused-definitions": "^2.0.0",
    "remark-remove-url-trailing-slash": "^2.0.0",
    "remark-renumber-references": "^2.0.0",
    "remark-sort-definitions": "^2.0.0",
    "remark-tight-comments": "^2.0.0",
    "remark-validate-links": "^13.0.1",
    "semantic-release": "https://xunn.at/semantic-release-atam@22.0.7",
    "sort-package-json": "^2.10.0",
    "spellchecker": "^3.7.1",
    "text-extensions": "^3.0.0",
    "tsconfig-replace-paths": "^0.0.14",
    "type-fest": "^4.21.0",
    "typedoc": "^0.26.4",
    "typedoc-plugin-markdown": "^4.2.1",
    "typescript": "^5.5.3",
    "unique-filename": "^3.0.0"
  },
  "engines": {
    "node": "^20.10.0 || ^21.3.0 || >=22.2.0"
  },
  "publishConfig": {
    "access": "public"
  }
}