{ "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" } }