{"_id":"@-xun/ctl","_rev":"13-f0d8719f8970030ed011b14f736b0e29","name":"@-xun/ctl","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@-xun/ctl","version":"1.0.0","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^18.19.0 || ^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.0.0","gitHead":"a0c41cbef1beabec44f79ddbec29445b8b202216","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-hEt/NiA6jDL41JQdBLS1eP9K8JU1lzV6mpecwaZNg6tWMWBBmdN1SVg43tmqFOdd5WIpIQEjKXaaKGIm7SzTkA==","shasum":"d5524c61302dbea8d283da95bbd7bb56d5ccc272","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.0.0.tgz","fileCount":58,"unpackedSize":286763,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDG+Y5IYyuNFhdD7DeBhuE9o/E9mg4orkQtQg3CgfHaZAiEAjWiG7junyubisr0pD/Yme9KTFqAZ7NOLh3NQiJEwN5w="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.0.0_1711322147303_0.4283709247351719"},"_hasShrinkwrap":false},"1.0.1":{"name":"@-xun/ctl","version":"1.0.1","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^18.19.0 || ^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.0.1","gitHead":"52937cd4f9743a79e1fc4639943ef7128dce0e5e","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-C7j8Myeux8un9CI9CjgVs1xC6CgVl049EjcwTfIfGg51iIJhKY32bH5kb51+jR/acqoiwWDXH6vYU5a+48//fQ==","shasum":"1f8294db5d41933e8e1f7e7d56ce240688672d35","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.0.1.tgz","fileCount":58,"unpackedSize":286763,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrfU+fKcJLYUKZKOx3kNBXRRH0Qy+EdMsf2V7yDTladwIhALkUUMXH6nrq7kfgzrIaM5mtmUXd+35bktcSppqWIWV8"}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.0.1_1711324794462_0.6635584182521355"},"_hasShrinkwrap":false},"1.1.0":{"name":"@-xun/ctl","version":"1.1.0","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.1.0","gitHead":"0c9fc2fffaf5c0f449c79c43dbe97c44f44aa265","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-lnT96NeLRdIxbca2qXPggxHlFngO70K3nrQMeyBC7k6QeOfaj9LSyRsDk6Qm1+jZAhMJspa7qK9lkZQtlmGOYg==","shasum":"6f735a1f02108933df40f0444e0b591ae9d15607","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.1.0.tgz","fileCount":61,"unpackedSize":285615,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZVm9RUTos5mESpdbzQzDlhXVYY8FLbU4Qbx+wWoEdUwIgWGotZjf1mc9DTNvF1CafvAr5/fbGWUF+ILbiJJRBHO0="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.1.0_1711361635863_0.04038811902785899"},"_hasShrinkwrap":false},"1.2.0":{"name":"@-xun/ctl","version":"1.2.0","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.2.0","gitHead":"5acff61d5ecf1832695b227a7e49ebb13a2c59ec","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-L/jsqIoMPNQHlR88WmsAuGxk/7fgEFb3wCbS2aPE+49VA5CWUi6LdtHRCrzCS6p5idMN8u4lG5Acd7LLqoMt+w==","shasum":"af857da85561a7e0decda156c039d07062215a16","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.2.0.tgz","fileCount":61,"unpackedSize":286716,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSCRHE+cK8F2rnntuYOMbsxEHx9nGpM63wQVXXvNYi7wIgVZU3d4hNnxw2UBoe3srygbWv0LLcE2FauvOT/yRsgXg="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.2.0_1711364365412_0.7106207866746657"},"_hasShrinkwrap":false},"1.3.0":{"name":"@-xun/ctl","version":"1.3.0","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.0","gitHead":"8e87493a21b6a85b4b74e0a4553830b2d218c82d","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-NHbYaGzh1UV3AQ2DZ9F0ugGIAwCuofJzS/kqWQQouBjaQxLHiW1S/7/1HEtYEUYf5ajuv6k0SuzJn0Ez5VGdjQ==","shasum":"09c813a84f1dc544a90fc397636ccc4ce4d07f00","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.0.tgz","fileCount":64,"unpackedSize":328527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCd2s3wyQz6+UIWA0iM4UcGqLOSIsdsX6EUiPk3MF6ZOQIgevAYdBHIVDgJHs3pYv66uQE+9C4QaJc+X5Hd+U/y2Ho="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.0_1711453415633_0.6035048810125307"},"_hasShrinkwrap":false},"1.3.1":{"name":"@-xun/ctl","version":"1.3.1","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.1","gitHead":"7b861145f5c0b39e223380c47fd3921ed47125be","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-wkkDDQqMWj1QvnvAsEard+tjdQ9xTm2SPQT2NzNcjTGaMnwa7f8N/eZ1hKxvy280lCuP+53bGyoGVGx635u9PA==","shasum":"b5378d13bdca8b1c2ffba6836bf9d20eb46814e9","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.1.tgz","fileCount":64,"unpackedSize":329051,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCXnpPEdiD3CnketNuWSlUnUmBblyM1OxO/Q+7Q2CS+wIgZHSUqgSZNhkb05HiGlsQey6K1ZaOcflQHHk9sccvJSU="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.1_1711492429300_0.6038342642058174"},"_hasShrinkwrap":false},"1.3.2":{"name":"@-xun/ctl","version":"1.3.2","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.2","gitHead":"b6875539ee10a2a1e3cec0f4835fc70e76b124df","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-wLPm4yQo386p4Pv1Qt+Z/KaOjhklOZgZ/wXvlDiYspvuovKMPfpKdHwoIdbcwaoKgzVp5IIfNk+weUcxYWkBDA==","shasum":"241d1c66d498b047ec8b3da11d747a99203878fa","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.2.tgz","fileCount":93,"unpackedSize":355994,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDO7/Kbci6FgejW5Uyldt451loUlV/4rvBqR/DDiQrHQgIhAJ4uEN+3Gvzw0jJo6X3CrJCoxWRmV7SmdiSmGd3xZZt+"}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.2_1711499904603_0.43088694349352297"},"_hasShrinkwrap":false},"1.3.3":{"name":"@-xun/ctl","version":"1.3.3","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.2","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.3.1","@typescript-eslint/parser":"^7.3.1","@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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.13.1","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.3","gitHead":"572d31779bbd98506a6564934c145650ab412ac5","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-Hf4NIDbRKDDtkXRtbCQsYLHwxeLu5vR8IIxkMMrYDeIgapHsRHj3CjH7fsCDufhVitLLZjLlhVUdkLjKE8aAYw==","shasum":"281577f62adacac25bf8c94e9662de5fafd49f6e","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.3.tgz","fileCount":93,"unpackedSize":357030,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0i1cxecFbLoA2mwunFLMuf5YJq+zXsAJ/la1i7n9wfAiEAttYMFlh7ds6DZLljOmxsoVNPPHdActU1GA+8sPQjbx8="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.3_1711502272693_0.6778760885504811"},"_hasShrinkwrap":false},"1.3.4":{"name":"@-xun/ctl","version":"1.3.4","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.4","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.4.0","@typescript-eslint/parser":"^7.4.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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.14.0","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.4","gitHead":"41b757b483e058731a3280559db4735fc7306785","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-n90kAenTf7JFIXy9VjA6r2DEBWREaRFYJm6reO4sXs0fiepGP0l/x87mWxspmmcD1UN8j1lMm6vq31F3EC0MpQ==","shasum":"6e9ae3d6c58addbf214ddad9afe90696f07005c6","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.4.tgz","fileCount":93,"unpackedSize":357030,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvXrP2zZn+gn2Jy8eiOClsjJoMC3FqvCtbleRhYkXw/AiEAunX2pdgCVVRdayHyWDO28wx0qm+2gvYL8tgkkrsiRjk="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.4_1711508122968_0.6260022927522704"},"_hasShrinkwrap":false},"1.3.5":{"name":"@-xun/ctl","version":"1.3.5","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.4","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.4.0","@typescript-eslint/parser":"^7.4.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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.14.0","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.5","gitHead":"a949ffb4bd952d4e55b3bbfd9829b8925803ca48","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-bp4GOrPA/8TnGQvh3bFBMDx+33kGIBK+UPsSp35NMAcezZMH8CxVCGodWD2n0RYQntyGX2tswxAOZ7Iw+JMxNg==","shasum":"dea9d349cf7a41e81f51ffaf4c8d8445fe61ee5d","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.5.tgz","fileCount":93,"unpackedSize":365876,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzJLBHE2BWMSU2IM+0Nv8th2jr7jhXArzLL8pWgQPp6AiAU7v0W0uW2i6in/XYoUsnQBB/XomgvoYqgXtNdxdBV8A=="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.5_1711528578384_0.6369457569399606"},"_hasShrinkwrap":false},"1.3.6":{"name":"@-xun/ctl","version":"1.3.6","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.4","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.4.0","@typescript-eslint/parser":"^7.4.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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.14.0","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.3.6","gitHead":"8ba0b0100f4b5bb18f1964f0356c659227b76744","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-aN6od3myKyxzzNMSXpuwUcvBIaikB6w5gxqrZo7rIaHlo0tBLh/gBpy5XVg1dIXqc1tCH6ifetvmKBGVDTRBcQ==","shasum":"70c6148174f79dc386ceff5cc77afd6c57c091a9","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.3.6.tgz","fileCount":93,"unpackedSize":365874,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBJ/5ckYl/QRdPz8lSKJFiIkeDdJP2qJtIXfM8c33MofAiEAkKXTtcH1PP/QhMmL4ZvdN0eZvmLK6zlrSRjlq98ZcMw="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.3.6_1711562987375_0.789261263406074"},"_hasShrinkwrap":false},"1.4.0":{"name":"@-xun/ctl","version":"1.4.0","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.4","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.4.0","@typescript-eslint/parser":"^7.4.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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.14.0","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.4.0","gitHead":"80f747943c616346e5ac81b00e7b635e731477de","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-kYVMu5rHznyFD1vBLFJFh7ksodgJ06oewHRjEmhBw3tKPiBX4zLLnZGsr+h+shegnVZgvCPTWzWle37+wCcfvA==","shasum":"87d5e482e53f337fc20804ea387d37743a28609c","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.4.0.tgz","fileCount":93,"unpackedSize":366335,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCURegHgMEGBvl9wObYV9cCZNLXI2CzJQx4tUAmc+GwdAIhAPP/yOOD1bPpaizsfVeYphqaAvBdrw7a79N3wce+a4eV"}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.4.0_1711565793964_0.41160298901657066"},"_hasShrinkwrap":false},"1.4.1":{"name":"@-xun/ctl","version":"1.4.1","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.4","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.4.0","@typescript-eslint/parser":"^7.4.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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.14.0","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.4.1","gitHead":"6ce1a38f6a0be236372db1bbf30a8fcec5cf15b9","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-9zo3fT3A0F0pJep3h1Ql8EQMBcIOVkMVDMv71Pm4d10GAi+78Y6ZBWUQSWuvP69RhrStLXoie6ReTAKQxHEZxQ==","shasum":"4e5929fa1e6a2becb35771ffd9b28d9b4f70c366","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.4.1.tgz","fileCount":93,"unpackedSize":366336,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCw+DKZiquXhywO6P42kP/f3yE751niyDhm0oK7/EKGSwIgaAO8e4uQpcAhQjnJ3P+XpSZ1JcCLvJ441Z7AwnW22IQ="}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.4.1_1711566132374_0.47938144317253206"},"_hasShrinkwrap":false},"1.5.0":{"name":"@-xun/ctl","version":"1.5.0","description":"The personal CLI of Xunnamius","keywords":["Xunnamius"],"homepage":"https://github.com/Xunnamius/xunnctl","repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"license":"MIT","author":{"name":"Xunnamius"},"sideEffects":false,"type":"commonjs","exports":{".":{"types":"./dist/src/cli.d.ts","default":"./dist/src/cli.js"},"./commands/*":{"types":"./dist/src/commands/*","default":"./dist/src/commands/*"},"./configure":{"types":"./dist/src/configure.d.ts","default":"./dist/src/configure.js"},"./package":"./package.json","./package.json":"./package.json"},"typesVersions":{"*":{"index":["dist/src/cli.d.ts"],"commands/*":["dist/src/commands/*"],"configure":["dist/src/configure.d.ts"],"package":["package.json"]}},"bin":{"x":"dist/src/cli.js","xctl":"dist/src/cli.js","xunnctl":"dist/src/cli.js"},"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/run ./dist/lib/debug-extended/test && echo '> Adding new entry to node_modules/.bin and making it executable via chmod...' && ln -sf ./dist/src/cli.js node_modules/.bin/xunnctl && chmod +x ./dist/src/cli.js","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/*"}}},"dependencies":{"@black-flag/core":"^1.2.4","@listr2/manager":"^2.0.2","@types/debug":"^4.1.12","core-js":"3.36.1","debug":"^4.3.4","env-paths":"^3.0.0","get-stdin":"^9.0.0","ip6addr":"^0.2.5","jmespath":"^0.16.0","listr2":"^8.0.2","merge-descriptors":"^2.0.0","supports-color":"^8.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.15.2","@babel/cli":"^7.24.1","@babel/eslint-parser":"^7.24.1","@babel/plugin-proposal-export-default-from":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-typescript":"^7.24.1","@commitlint/cli":"^19.2.1","@commitlint/config-conventional":"^19.1.0","@semantic-release/changelog":"^6.0.3","@semantic-release/exec":"^6.0.3","@semantic-release/git":"^10.0.1","@types/glob":"^8.1.0","@types/ip6addr":"^0.2.6","@types/jest":"^29.5.12","@types/jmespath":"^0.15.2","@types/lodash.mergewith":"^4.6.9","@types/merge-descriptors":"^1.0.3","@types/node":"^20.11.30","@typescript-eslint/eslint-plugin":"^7.4.0","@typescript-eslint/parser":"^7.4.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.0","babel-plugin-transform-rewrite-imports":"^1.2.0","confusing-browser-globals":"^1.0.11","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":"^27.9.0","eslint-plugin-module-resolver":"^1.5.0","eslint-plugin-unicorn":"^51.0.1","execa":"^5.1.1","glob":"^10.3.10","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.2","lodash.mergewith":"^4.6.2","prettier":"^3.2.5","remark-capitalize-headings":"^2.0.1","remark-cli":"^12.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","remark-ignore":"^2.0.0","remark-lint":"^9.1.2","remark-lint-definition-case":"^3.1.2","remark-lint-fenced-code-flag":"^3.1.2","remark-lint-fenced-code-flag-case":"^2.0.0","remark-lint-file-extension":"^2.1.2","remark-lint-final-newline":"^2.1.2","remark-lint-first-heading-level":"^3.1.2","remark-lint-hard-break-spaces":"^3.1.2","remark-lint-heading-increment":"^3.1.2","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":"^5.1.2","remark-lint-no-duplicate-defined-urls":"^2.1.2","remark-lint-no-duplicate-definitions":"^3.1.2","remark-lint-no-duplicate-headings-in-section":"^3.1.2","remark-lint-no-empty-sections":"^4.0.0","remark-lint-no-empty-url":"^3.1.2","remark-lint-no-heading-content-indent":"^4.1.2","remark-lint-no-heading-like-paragraph":"^3.1.2","remark-lint-no-heading-punctuation":"^3.1.2","remark-lint-no-inline-padding":"^4.1.2","remark-lint-no-literal-urls":"^3.1.2","remark-lint-no-multiple-toplevel-headings":"^3.1.2","remark-lint-no-reference-like-url":"^3.1.2","remark-lint-no-shell-dollars":"^3.1.2","remark-lint-no-shortcut-reference-image":"^3.1.2","remark-lint-no-shortcut-reference-link":"^3.1.2","remark-lint-no-tabs":"^3.1.2","remark-lint-no-undefined-references":"^4.2.1","remark-lint-no-unused-definitions":"^3.1.2","remark-lint-ordered-list-marker-style":"^3.1.2","remark-lint-ordered-list-marker-value":"^3.1.2","remark-lint-strikethrough-marker":"^2.1.2","remark-lint-unordered-list-marker-style":"^3.1.2","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.0","semantic-release":"https://xunn.at/semantic-release-atam@22.0.7","semver":"^7.6.0","sort-package-json":"https://xunn.at/sort-package-json@2.3.0","spellchecker":"^3.7.1","text-extensions":"^2.4.0","tsconfig-replace-paths":"^0.0.14","type-fest":"^4.14.0","typedoc":"^0.25.12","typedoc-plugin-markdown":"^3.17.1","typescript":"^5.4.3","unique-filename":"^3.0.0"},"engines":{"node":"^20.10.0 || >=21.3.0"},"publishConfig":{"access":"public"},"_id":"@-xun/ctl@1.5.0","gitHead":"b269de51118c7407b0b7d1f355df79deeb95632a","bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"_nodeVersion":"21.7.1","_npmVersion":"9.9.3","dist":{"integrity":"sha512-xFWLxHhQkspQU4yFGAzhtqgGE4SjiX6qoKJWPfpAo12znWFGim/zgBBWe6WR9oQxeQI7+1HugaTPJwzMUKXU+g==","shasum":"9a9581acc13b78dc35ea4f7df1667827ebcd3372","tarball":"https://registry.npmjs.org/@-xun/ctl/-/ctl-1.5.0.tgz","fileCount":93,"unpackedSize":367895,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvxCfVDVsX7jjAbMeugK6IYV/p+1cyQGhbmQRSY6omRgIhANOJgzWJVOotjoJZcocRd/Nf1bpPsRGDefCT8eZSkRLw"}]},"_npmUser":{"name":"xunnamius","email":"git@bernarddickens.dev"},"directories":{},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ctl_1.5.0_1711668139435_0.9198643775997035"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-24T23:15:47.182Z","1.0.0":"2024-03-24T23:15:47.524Z","modified":"2024-03-28T23:22:19.884Z","1.0.1":"2024-03-24T23:59:54.652Z","1.1.0":"2024-03-25T10:13:56.055Z","1.2.0":"2024-03-25T10:59:25.646Z","1.3.0":"2024-03-26T11:43:35.836Z","1.3.1":"2024-03-26T22:33:49.461Z","1.3.2":"2024-03-27T00:38:24.851Z","1.3.3":"2024-03-27T01:17:52.877Z","1.3.4":"2024-03-27T02:55:23.156Z","1.3.5":"2024-03-27T08:36:18.596Z","1.3.6":"2024-03-27T18:09:47.564Z","1.4.0":"2024-03-27T18:56:34.112Z","1.4.1":"2024-03-27T19:02:12.556Z","1.5.0":"2024-03-28T23:22:19.684Z"},"maintainers":[{"name":"xunnamius","email":"git@bernarddickens.dev"}],"description":"The personal CLI of Xunnamius","homepage":"https://github.com/Xunnamius/xunnctl","keywords":["Xunnamius"],"repository":{"type":"git","url":"git+https://github.com/Xunnamius/xunnctl.git"},"author":{"name":"Xunnamius"},"bugs":{"url":"https://github.com/Xunnamius/xunnctl/issues"},"license":"MIT","readme":"<!-- badges-start -->\n\n[![Black Lives Matter!][x-badge-blm-image]][x-badge-blm-link]\n[![Last commit timestamp][x-badge-lastcommit-image]][x-badge-repo-link]\n[![Codecov][x-badge-codecov-image]][x-badge-codecov-link]\n[![Source license][x-badge-license-image]][x-badge-license-link]\n[![Monthly Downloads][x-badge-downloads-image]][x-badge-npm-link]\n[![NPM version][x-badge-npm-image]][x-badge-npm-link]\n[![Uses Semantic Release!][x-badge-semanticrelease-image]][x-badge-semanticrelease-link]\n\n<!-- badges-end -->\n\n# xunnctl\n\nThis is a highly-opinionated personal tool for interacting with various\ndisparate networks, systems, and other resources of interest to me.\n\nThese used to be several CLIs, but the time has come to bring them together!\n\n---\n\n<!-- remark-ignore-start -->\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n- [Install](#install)\n- [Usage](#usage)\n  - [`xunnctl` (Entry Point)](#xunnctl-entry-point)\n  - [`xunnctl config`](#xunnctl-config)\n  - [`xunnctl config get`](#xunnctl-config-get)\n  - [`xunnctl config set`](#xunnctl-config-set)\n  - [`xunnctl config unset`](#xunnctl-config-unset)\n  - [`xunnctl dns record create A`](#xunnctl-dns-record-create-a)\n  - [`xunnctl dns record create AAAA`](#xunnctl-dns-record-create-aaaa)\n  - [`xunnctl dns record create CAA`](#xunnctl-dns-record-create-caa)\n  - [`xunnctl dns record create CNAME`](#xunnctl-dns-record-create-cname)\n  - [`xunnctl dns record create MX`](#xunnctl-dns-record-create-mx)\n  - [`xunnctl dns record create TXT`](#xunnctl-dns-record-create-txt)\n  - [`xunnctl dns record retrieve`](#xunnctl-dns-record-retrieve)\n  - [`xunnctl dns record destroy`](#xunnctl-dns-record-destroy)\n  - [`xunnctl dns zone`](#xunnctl-dns-zone)\n  - [`xunnctl dns zone create`](#xunnctl-dns-zone-create)\n  - [`xunnctl dns zone retrieve`](#xunnctl-dns-zone-retrieve)\n  - [`xunnctl dns zone update`](#xunnctl-dns-zone-update)\n  - [`xunnctl dns zone destroy`](#xunnctl-dns-zone-destroy)\n  - [`xunnctl firewall`](#xunnctl-firewall)\n  - [`xunnctl firewall ban`](#xunnctl-firewall-ban)\n  - [`xunnctl firewall status`](#xunnctl-firewall-status)\n  - [`xunnctl firewall unban`](#xunnctl-firewall-unban)\n  - [`xunnctl raw`](#xunnctl-raw)\n  - [`xunnctl super install`](#xunnctl-super-install)\n  - [`xunnctl super uninstall`](#xunnctl-super-uninstall)\n- [Appendix](#appendix)\n  - [Published Package Details](#published-package-details)\n  - [License](#license)\n- [Contributing and Support](#contributing-and-support)\n  - [Contributors](#contributors)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n<!-- remark-ignore-end -->\n\n## Install\n\nYou can install this package globally:\n\n```shell\nnpm install --global @-xun/ctl\n```\n\nAnd then execute the CLI:\n\n```shell\nnpx xunnctl ...\n```\n\nAlternatively, you can use npx to execute the CLI without pre-installation:\n\n```shell\nnpx @-xun/ctl ...\n```\n\n## Usage\n\n> Be careful running commands with huge footprints (e.g. using the\n> `--apex-all-known` parameter) in quick succession. Take note of the [rate\n> limits][1] for the APIs you're invoking.\n\nFor first time usage, or if credentials are inaccessible, you will be prompted\nto enter your credentials, which will be saved [locally][2]. You can do this\nmanually at any time via [`xunnctl config set`][3].\n\nFrom there, you can begin issuing commands. Commands are organized\nhierarchically, starting with the bare `xunnctl` command at the root. For the\nmost up-to-date list of available commands and flags, use `xunnctl ... --help`.\n\nYou can also use the `xctl` and `x` aliases, e.g. `x --help`. Most commands also\nhave a single-letter alias, which is always the first letter of that command.\n\nThere are many individual commands available, each with their own accepted\nparameters and help text. These commands also share several standard parameters\nwhich can be found in the following table:\n\n|                     |      Name       |  Type   |           Default           | Description                                                                                                    |\n| :-----------------: | :-------------: | :-----: | :-------------------------: | :------------------------------------------------------------------------------------------------------------- |\n| <sub>optional</sub> | `--config-path` | string  | OS-dependent (XDG on linux) | Path to the `xunnctl` configuration file.                                                                      |\n| <sub>optional</sub> |    `--help`     | boolean |          undefined          | Show command-specific help text. Cannot be used with other parameters or sub-commands.                         |\n| <sub>optional</sub> |    `--hush`     | boolean |            false            | The program output will be somewhat less verbose than usual.                                                   |\n| <sub>optional</sub> |    `--quiet`    | boolean |            false            | The program output will be dramatically less verbose than usual. Implies (and takes precedence over) `--hush`. |\n| <sub>optional</sub> |   `--silent`    | boolean |            false            | The program will not output anything at all. Implies (and takes precedence over) `--quiet` and `--hush`.       |\n\nSome commands have an additional `--force` parameter that is required whenever\nan exceedingly dangerous operation is requested. While present in help text\noutput, this parameter will not be mentioned in this documentation going\nforward.\n\nCurrently, the available commands are:\n\n### `xunnctl` (Entry Point)\n\n> Alias: `xctl`, `x`\n\nThis command is the entry point into the CLI and as such can be used to retrieve\nmetadata about the `xunnctl` software itself, including the currently installed\nversion number.\n\n#### Examples\n\n```bash\nxunnctl --version\nxctl --version\nx --version\n```\n\n#### Parameters\n\n|                     |    Name     |  Type   |  Default  | Description                                                                |\n| :-----------------: | :---------: | :-----: | :-------: | :------------------------------------------------------------------------- |\n| <sub>optional</sub> | `--version` | boolean | undefined | Show version number. Cannot be used with other parameters or sub-commands. |\n\n### `xunnctl config`\n\n> Alias: `x c`\n\nThis command, unless called with `--help`, is an alias for\n[`xunnctl config get --all`][4].\n\n#### Examples\n\n```bash\nxunnctl config\nx c\n```\n\n#### Parameters\n\nSee [`xunnctl config get`][4].\n\n### `xunnctl config get`\n\n> Alias: `x c g`\n\nThis command dumps the value of one or more `xunnctl` configuration options\nstraight to stdout without additional outputs, making it suitable for use in\nscripts. These values are stored [locally][2] and protected with `0660`\npermissions.\n\nSee [here][5] for a list of available configuration options.\n\nWhen called without any arguments, this command is an alias for\n`xunnctl config get --all`.\n\n#### Examples\n\n```bash\nxunnctl config get --sub-name cfApiToken\nx c g --sub-name cfApiToken cfAccountId\nx c g --sub-name cfApiToken --sub-name cfAccountId\n# The next two lines are equivalent\nx c g --all\nx c g\n```\n\n#### Parameters\n\n|                     |     Name     |   Type    |  Default  | Description                                                                                          |\n| :-----------------: | :----------: | :-------: | :-------: | :--------------------------------------------------------------------------------------------------- |\n| <sub>optional</sub> |   `--all`    |  boolean  | undefined | Dump the current value of all configuration options. Cannot be used with the `--sub-name` parameter. |\n| <sub>optional</sub> | `--sub-name` | string\\[] | undefined | The names of one or more options to retrieve. Cannot be used with the `--all` parameter.             |\n\n### `xunnctl config set`\n\n> Alias: `x c s`\n\nThis command updates the value of the `--sub-name` configuration option to\n`--content`, which is a valid JSON value. This includes double quotes if it's a\nstring.\n\nThis value is stored [locally][2] and protected with `0660` permissions.\n\nNote that `--content` can be any value JSON value, and that **updating an option\nwith the wrong value or type of value will cause undefined behavior**. See\n[here][5] for a list of available configuration options and their valid values.\n\n#### Examples\n\n```bash\nxunnctl config set --sub-name cfApiToken --content AbCd1234\nx c s --sub-name cfApiToken --content AbCd1234\n```\n\n#### Parameters\n\n|                         |     Name     |                       Type                        |  Default  | Description                                                             |\n| :---------------------: | :----------: | :-----------------------------------------------: | :-------: | :---------------------------------------------------------------------- |\n| **<sub>REQUIRED</sub>** | `--content`  | string<br /><sub>(unescaped spaces allowed)</sub> | undefined | The new value of the option to update. This must be a valid JSON value. |\n| **<sub>REQUIRED</sub>** | `--sub-name` |                      string                       | undefined | The name of the option to update.                                       |\n\n### `xunnctl config unset`\n\n> Alias: `x c u`\n\nThis command deletes the configuration entry (name and content) associated with\nthe `--sub-name` configuration option and commits the change to the filesystem.\n\n#### Examples\n\n```bash\nxunnctl config unset --sub-name cfApiToken\nx c u --sub-name cfApiToken\n```\n\n#### Parameters\n\n|                     |     Name     |   Type    |  Default  | Description                                                                                   |\n| :-----------------: | :----------: | :-------: | :-------: | :-------------------------------------------------------------------------------------------- |\n| <sub>optional</sub> |   `--all`    |  boolean  | undefined | Delete all options in the configuration file. Cannot be used with the `--sub-name` parameter. |\n| <sub>optional</sub> | `--sub-name` | string\\[] | undefined | The names of one or more options to delete. Cannot be used with the `--all` parameter.        |\n\n### `xunnctl dns record create A`\n\n> Alias: `x d r c a`\n\nThis command creates a new DNS A resource record in one or more existing zones.\n\n#### Examples\n\n```bash\nxunnctl dns record create a --apex xunn.io --sub-name @ --ipv4 1.2.3.4 --proxied=false\nx d r c A --apex xunn.io --sub-name 'something.else' --ipv4 1.2.3.4\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                                       |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :------------------------------------------------------------------------------------------------ |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                      |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                 |\n|        **<sub>REQUIRED</sub>**         |      `--ipv4`      |  string   | undefined | A valid IPv4 address.                                                                             |\n|        **<sub>REQUIRED</sub>**         |    `--sub-name`    |  string   | undefined | The DNS record name in Punycode, or the character \"@\", but excluding the apex domain as a suffix. |\n|          <sub>optional</sub>           |    `--proxied`     |  boolean  |   false   | Whether the record is receiving the performance and security benefits of Cloudflare.              |\n\n### `xunnctl dns record create AAAA`\n\n> Alias: `x d r c aaaa`\n\nThis command creates a new DNS AAAA resource record in one or more existing\nzones.\n\n#### Examples\n\n```bash\nxunnctl dns record create aaaa --apex xunn.io --sub-name @ --ipv6 ::ffff:1.2.3.4 --proxied=false\nx d r c AAAA --apex xunn.io --sub-name 'something.else' --ipv6 2001:db8::8a2e:7334\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                                       |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :------------------------------------------------------------------------------------------------ |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                      |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                 |\n|        **<sub>REQUIRED</sub>**         |      `--ipv6`      |  string   | undefined | A valid IPv6 address.                                                                             |\n|        **<sub>REQUIRED</sub>**         |    `--sub-name`    |  string   | undefined | The DNS record name in Punycode, or the character \"@\", but excluding the apex domain as a suffix. |\n|          <sub>optional</sub>           |    `--proxied`     |  boolean  |   false   | Whether the record is receiving the performance and security benefits of Cloudflare.              |\n\n### `xunnctl dns record create CAA`\n\n> Alias: `x d r c caa`\n\nThis command creates pre-configured \"issue\" and \"iodef\" CAA resource records in\none or more existing zones.\n\n#### Examples\n\n```bash\nxunnctl dns record create caa --apex xunn.io\nx d r c CAA --apex xunn.io --apex xunn.at\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                       |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :-------------------------------------------------------------------------------- |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.      |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters. |\n\n### `xunnctl dns record create CNAME`\n\n> Alias: `x d r c cname`\n\nThis command creates a new DNS CNAME resource record in one or more existing\nzones.\n\n#### Examples\n\n```bash\nxunnctl dns record create cname --apex xunn.io --sub-name 'sub.domain' --to-name 'diff.com'\nx d r c CNAME --apex xunn.io --apex xunn.at --sub-name 'sub.domain' --to-name 'diff.com'\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                                       |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :------------------------------------------------------------------------------------------------ |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                      |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                 |\n|        **<sub>REQUIRED</sub>**         |    `--sub-name`    |  string   | undefined | The DNS record name in Punycode, or the character \"@\", but excluding the apex domain as a suffix. |\n|        **<sub>REQUIRED</sub>**         |    `--to-name`     |  string   | undefined | A valid fully-qualified hostname. Must not match the record's name.                               |\n|          <sub>optional</sub>           |    `--proxied`     |  boolean  |   false   | Whether the record is receiving the performance and security benefits of Cloudflare.              |\n\n### `xunnctl dns record create MX`\n\n> Alias: `x d r c mx`\n\nThis command creates a new DNS MX resource record in one or more existing zones.\n\n#### Examples\n\n```bash\nxunnctl dns record create mx --apex xunn.io --sub-name '@' --mail-name 'mail.xunn.io'\nx d r c MX --apex xunn.io --apex xunn.at --sub-name 'something.else' --mail-name 'mail.xunn.io'\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                                       |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :------------------------------------------------------------------------------------------------ |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                      |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                 |\n|        **<sub>REQUIRED</sub>**         |    `--sub-name`    |  string   | undefined | The DNS record name in Punycode, or the character \"@\", but excluding the apex domain as a suffix. |\n|        **<sub>REQUIRED</sub>**         |   `--mail-name`    |  string   | undefined | A valid fully-qualified mail server hostname.                                                     |\n\n### `xunnctl dns record create TXT`\n\n> Alias: `x d r c txt`\n\nThis command creates a new DNS TXT resource record in one or more existing\nzones.\n\n#### Examples\n\n```bash\nxunnctl dns record create txt --apex xunn.io --sub-name @ --content '...'\nx d r c TXT --apex xunn.io --apex xunn.at --sub-name 'something.else' --content '...'\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                                       |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :------------------------------------------------------------------------------------------------ |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                      |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                 |\n|        **<sub>REQUIRED</sub>**         |    `--sub-name`    |  string   | undefined | The DNS record name in Punycode, or the character \"@\", but excluding the apex domain as a suffix. |\n|        **<sub>REQUIRED</sub>**         |    `--content`     |  string   | undefined | Text content for the record.                                                                      |\n\n### `xunnctl dns record retrieve`\n\n> Alias: `x d r r`\n\nThis command retrieves one or more resource records of name `--target-name`\nand/or of type `--target-type` from the specified `--apex*` DNS zone(s). If\n`--search-for-name` is given, `--target-name` will be matched partially (via\n`startsWith()`) rather than exactly.\n\nOmitting both `--target-name` and `--target-type` will retrieve all records.\n\nThe result can be queried via `--local-query`, which accepts a [JMESPath][6]\nvalue. Note that, as a feature, the presence of spaces in the query does not\nnecessitate quoting or escaping. When `--local-query` is present, the resulting\nJSON will be dumped straight to stdout.\n\n#### Examples\n\n```bash\nxunnctl dns record retrieve --apex xunn.io --target-name mail --target-type CNAME\nx d r r --apex-all-known --apex new-site.com --target-name mail\nx d r r --apex xunn.io --apex xunn.at --target-type cname --local-query id\n```\n\n#### Parameters\n\n|                                        |        Name         |                       Type                        |  Default  | Description                                                                                                                        |\n| :------------------------------------: | :-----------------: | :-----------------------------------------------: | :-------: | :--------------------------------------------------------------------------------------------------------------------------------- |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`       |                     string\\[]                     | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                                                       |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known`  |                      boolean                      | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                                                  |\n|          <sub>optional</sub>           |   `--target-name`   |                      string                       | undefined | The target DNS record name in Punycode, including the apex domain as a suffix. Note that the \"@\" character is not recognized here. |\n|          <sub>optional</sub>           |   `--target-type`   |                      string                       | undefined | Case-insensitive DNS record type, such as `AAAA` or `mx`.                                                                          |\n|          <sub>optional</sub>           |   `--local-query`   | string<br /><sub>(unescaped spaces allowed)</sub> | undefined | A [JMESPath][6] query string. Unescaped spaces are preserved in CLI. The resulting JSON will be dumped straight to stdout.         |\n|          <sub>optional</sub>           | `--search-for-name` |                   boolean<br />                   |   false   | Match names _starting with_ `--target-name` instead of matching said names _exactly_, which is the default behavior.               |\n\n### `xunnctl dns record destroy`\n\n> Alias: `x d r d`\n\nThis command irrecoverably destroys one or more resource records that are named\n`--target-name` and are of type `--target-type` from the specified `--apex*` DNS\nzone(s). If no such record(s) exist, this command is a no-op.\n\nIf `--search-for-name` is given, `--target-name` will be matched partially (via\n`startsWith()`) rather than exactly.\n\n#### Examples\n\n```bash\nxunnctl dns record destroy --apex dangerous.com --target-name some.specific.record --target-type CNAME\nxunnctl d r d --apex dangerous.com --target-name some.specific.record --target-type cname\n```\n\n#### Parameters\n\n|                                        |        Name         |     Type      |  Default  | Description                                                                                                                        |\n| :------------------------------------: | :-----------------: | :-----------: | :-------: | :--------------------------------------------------------------------------------------------------------------------------------- |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`       |   string\\[]   | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                                                       |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known`  |    boolean    | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters. **Note that this is incredibly dangerous!**      |\n|        **<sub>REQUIRED</sub>**         |   `--target-name`   |    string     | undefined | The target DNS record name in Punycode, including the apex domain as a suffix. Note that the \"@\" character is not recognized here. |\n|        **<sub>REQUIRED</sub>**         |   `--target-type`   |    string     | undefined | Case-insensitive DNS record type, such as `AAAA` or `mx`.                                                                          |\n|          <sub>optional</sub>           | `--search-for-name` | boolean<br /> |   false   | Match names _starting with_ `--target-name` instead of matching said names _exactly_, which is the default behavior.               |\n\n### `xunnctl dns zone`\n\n> Alias: `x d z`\n\nThis command, unless called with `--help`, is an alias for\n[`xunnctl dns zone retrieve --apex-all-known`][7].\n\n#### Examples\n\n```bash\nxunnctl dns zone\nx d z\n```\n\n#### Parameters\n\nSee [`xunnctl dns zone retrieve`][7].\n\n### `xunnctl dns zone create`\n\n> Alias: `x d z c`\n\nThis command creates and initializes a new DNS `--apex` zone. If a conflicting\napex zone already exists, this command will fail. If you're trying to bring an\nexisting zone up to current configuration standards, see\n[`xunnctl dns zone update`][8] instead.\n\n#### Examples\n\n```bash\nxunnctl dns zone create --apex xunn.at\nx d z c --apex xunn.at\n```\n\n#### Parameters\n\n|                         |   Name   |   Type    |  Default  | Description                                                                  |\n| :---------------------: | :------: | :-------: | :-------: | :--------------------------------------------------------------------------- |\n| **<sub>REQUIRED</sub>** | `--apex` | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters. |\n\n### `xunnctl dns zone retrieve`\n\n> Alias: `x d z r`\n\nThis command returns information about one or more `--apex` zones.\n\nThe result can be queried via `--local-query`, which accepts a [JMESPath][6]\nvalue. Note that, as a feature, the presence of spaces in the query does not\nnecessitate quoting or escaping. When `--local-query` is present, the resulting\nJSON will be dumped straight to stdout.\n\n#### Examples\n\n```bash\nxunnctl dns zone retrieve --apex xunn.at\nx d z r --apex-all-known --apex new-site.com --local-query id\nx d z r --apex xunn.io --apex xunn.at --local-query { id: id, cdnOnly: meta.cdn_only }\n```\n\n#### Parameters\n\n|                                        |        Name        |                       Type                        |  Default  | Description                                                                                                                |\n| :------------------------------------: | :----------------: | :-----------------------------------------------: | :-------: | :------------------------------------------------------------------------------------------------------------------------- |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      |                     string\\[]                     | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.                                               |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |                      boolean                      | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.                                          |\n|          <sub>optional</sub>           |  `--local-query`   | string<br /><sub>(unescaped spaces allowed)</sub> | undefined | A [JMESPath][6] query string. Unescaped spaces are preserved in CLI. The resulting JSON will be dumped straight to stdout. |\n\n### `xunnctl dns zone update`\n\n> Alias: `x d z u`\n\nThis command is equivalent to [`xunnctl dns zone create`][9] but for zones that\nalready exist. It will attempt to bring one or more zones up to date with the\nlatest best practices with respect to zone configuration; any failures thrown\nwhen attempting to create records, while reported, are ignored. No records are\ndeleted or updated, only creations will be attempted.\n\n#### Examples\n\n```bash\nxunnctl dns zone update --apex-all-known\nx d z u --apex xunn.at --apex xunn.io\n```\n\n#### Parameters\n\n|                                        |        Name        |   Type    |  Default  | Description                                                                             |\n| :------------------------------------: | :----------------: | :-------: | :-------: | :-------------------------------------------------------------------------------------- |\n| **<sub>REQUIRED <sup>1/2</sup></sub>** |      `--apex`      | string\\[] | undefined | Zero or more zone apex domains. Can be used with other `--apex*` parameters.            |\n| **<sub>REQUIRED <sup>2/2</sup></sub>** | `--apex-all-known` |  boolean  | undefined | Include all known zone apex domains. Can be used with other `--apex*` parameters.       |\n|          <sub>optional</sub>           |  `--purge-first`   |  boolean  | undefined | Delete pertinent records on the zone before recreating them. **This can be dangerous!** |\n\n### `xunnctl dns zone destroy`\n\n> Alias: `x d z d`\n\nThis command irrecoverably destroys a DNS `--apex` zone. If no such zone exists,\nthis command is a no-op.\n\n#### Examples\n\n```bash\nxunnctl dns zone destroy --apex be-careful.org\nx d z d --apex dangerous.com\n```\n\n#### Parameters\n\n|                         |   Name   |  Type  |  Default  | Description                |\n| :---------------------: | :------: | :----: | :-------: | :------------------------- |\n| **<sub>REQUIRED</sub>** | `--apex` | string | undefined | An apex domain to destroy. |\n\n### `xunnctl firewall`\n\n> Alias: `x f`\n\nThis command, unless called with `--help`, is an alias for\n[`xunnctl firewall status`][10].\n\n#### Examples\n\n```bash\nxunnctl firewall\nx f\n```\n\n#### Parameters\n\nSee [`xunnctl firewall status`][10].\n\n### `xunnctl firewall ban`\n\n> Alias: `x f b`\n\nThis command adds an ip address to the global hostile ip list, which is a\n[Cloudflare WAF List][11]. No managed system will accept packets coming from an\nIP on this list.\n\nAll [IP formats supported by Cloudflare WAF Lists][12] are supported.\nAdditionally, full ipv6 addresses will be translated into the supported ipv6\nCIDR double colon notation.\n\n#### Examples\n\n```bash\nxunnctl firewall ban --ip 1.2.3.4 --ip 5.6.7.8\n# Cloudflare doesn't support the following, but this CLI does:\nx f b --ip 2600:8800:51a1:1234:5678:9101:2007:76eb\n```\n\n#### Parameters\n\n|                         |  Name  |   Type    |  Default  | Description                                                                                                                                                                  |\n| :---------------------: | :----: | :-------: | :-------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **<sub>REQUIRED</sub>** | `--ip` | string\\[] | undefined | One or more IP addresses to ban. All IP formats supported by [Cloudflare WAF Lists][11] are supported here. Full ipv6 addresses are also supported (converted to /64 CIDRs). |\n\n### `xunnctl firewall status`\n\n> Alias: `x f s`\n\nThis command returns the contents of the global hostile ip list, which is a\n[Cloudflare WAF List][11]. No managed system will accept packets coming from an\nIP on this list.\n\nAll [IP formats supported by Cloudflare WAF Lists][12] are supported.\nAdditionally, full ipv6 addresses will be translated into the supported ipv6\nCIDR double colon notation.\n\n#### Examples\n\n```bash\nxunnctl firewall status\nx f s --ip 5.6.7.8 --ip 2600:8800:51a1:1234:5678:9101:2007:76eb\n```\n\n#### Parameters\n\n|                     |  Name  |   Type    |  Default  | Description                                                                                                                                                                        |\n| :-----------------: | :----: | :-------: | :-------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| <sub>optional</sub> | `--ip` | string\\[] | undefined | One or more IP addresses to report on. All IP formats supported by [Cloudflare WAF Lists][11] are supported here. Full ipv6 addresses are also supported (converted to /64 CIDRs). |\n\n### `xunnctl firewall unban`\n\n> Alias: `x f u`\n\nThis command removes an ip address from the global hostile ip list, which is a\n[Cloudflare WAF List][11]. No managed system will accept packets coming from an\nIP on this list.\n\nAll [IP formats supported by Cloudflare WAF Lists][12] are supported.\nAdditionally, full ipv6 addresses will be translated into the supported ipv6\nCIDR double colon notation.\n\n#### Examples\n\n```bash\nxunnctl firewall unban --ip 1.2.3.4 --ip 5.6.7.8\n# Cloudflare doesn't support the following, but this CLI does:\nx f u --ip 2600:8800:51a1:1234:5678:9101:2007:76eb\n```\n\n#### Parameters\n\n|                         |          Name           |   Type    |  Default  | Description                                                                                                                                                                  |\n| :---------------------: | :---------------------: | :-------: | :-------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **<sub>REQUIRED</sub>** |         `--ip`          | string\\[] | undefined | One or more IP address to unban. All IP formats supported by [Cloudflare WAF Lists][11] are supported here. Full ipv6 addresses are also supported (converted to /64 CIDRs). |\n|   <sub>optional</sub>   | `--if-comment-excludes` |  string   | undefined | Only unban if `--ip`'s comment does not include the given text.                                                                                                              |\n\n### `xunnctl raw`\n\n> Alias: `x r`\n\nThis command will dump freeform data into stdout depending on `--id` and without\nadditional outputs, making it suitable for use in scripts.\n\nThe following values for `--id` are supported:\n\n#### `conf.nginx.allowOnlyCloudflare`\n\nThis is an nginx configuration file consisting of directives that, when included\nin an server context, will cause nginx to reject all connection attempts from IP\naddresses that do not belong to Cloudflare.\n\nWhen using this ID, you can also pipe in the contents of an nginx configuration\nfile and it will be included in the output with respect for the lines consisting\nof `### START AUTOGENERATED RULES` and `### END AUTOGENERATED RULES`. For\nexample:\n\n```text\necho 'before\\n### START AUTOGENERATED RULES\\n\\nx\\ny\\nz\\n\\n### END AUTOGENERATED RULES\\nafter\\n' | npx x r --id conf.nginx.allowOnlyCloudflare\n```\n\nNote that `deny all;` should be included in your Nginx configuration for it to\nbe meaningful. This tool will not add it for you. For example:\n\n```text\n...\n### START AUTOGENERATED RULES\n...\n### END AUTOGENERATED RULES\n\nallow 127.0.0.0/8;\nallow ::1/128;\ndeny all;\n```\n\n#### Examples\n\n```bash\nxunnctl raw --id conf.nginx.allowOnlyCloudflare\nx r --id conf.nginx.allowOnlyCloudflare\n```\n\n#### Parameters\n\n|                         |  Name  |  Type  |  Default  | Description                                     |\n| :---------------------: | :----: | :----: | :-------: | :---------------------------------------------- |\n| **<sub>REQUIRED</sub>** | `--id` | string | undefined | The identifier associated with the target data. |\n\n### `xunnctl super install`\n\n> Alias: `x s i`\n\nThis command will install several privileged commands from a private repository.\nThese commands will be dynamically added to xunnctl, potentially updating\nexisting commands in the process, thus greatly expanding the available commands\nbeyond those listed in this documentation.\n\nThis command is idempotent so long as the contents of said private repository\nremain unchanged. Running this command after said repository has been updated\nwill install the updates but will not synchronize deletes.\n\nTo completely clear out installed commands, see [`xunnctl super uninstall`][13].\n\n#### Examples\n\n```bash\nxunnctl super install\nx s i\n```\n\n#### Parameters\n\nThis command does not accept additional parameters.\n\n### `xunnctl super uninstall`\n\n> Alias: `x s u`\n\nThis command will completely uninstall any command that has ever been downloaded\nand installed by `xunnctl super install`. Downloaded commands that overwrote\ntheir public versions will be reverted.\n\nTo reinstall all available privileged commands, see\n[`xunnctl super install`][14]\n\n#### Examples\n\n```bash\nxunnctl super uninstall\nx s u\n```\n\n#### Parameters\n\nThis command does not accept additional parameters.\n\n## Appendix\n\nFurther documentation can be found under [`docs/`][x-repo-docs].\n\n### Published Package Details\n\nThis is a [CJS2 package][x-pkg-cjs-mojito] with statically-analyzable exports\nbuilt by Babel for Node.js versions that are not end-of-life. For TypeScript\nusers, this package supports both `\"Node10\"` and `\"Node16\"` module resolution\nstrategies.\n\n<details><summary>Expand details</summary>\n\nThat means both CJS2 (via `require(...)`) and ESM (via `import { ... } from ...`\nor `await import(...)`) source will load this package from the same entry points\nwhen using Node. This has several benefits, the foremost being: less code\nshipped/smaller package size, avoiding [dual package\nhazard][x-pkg-dual-package-hazard] entirely, distributables are not\npacked/bundled/uglified, a drastically less complex build process, and CJS\nconsumers aren't shafted.\n\nEach entry point (i.e. `ENTRY`) in [`package.json`'s\n`exports[ENTRY]`][x-repo-package-json] object includes one or more [export\nconditions][x-pkg-exports-conditions]. These entries may or may not include: an\n[`exports[ENTRY].types`][x-pkg-exports-types-key] condition pointing to a type\ndeclarations file for TypeScript and IDEs, an\n[`exports[ENTRY].module`][x-pkg-exports-module-key] condition pointing to\n(usually ESM) source for Webpack/Rollup, an `exports[ENTRY].node` condition\npointing to (usually CJS2) source for Node.js `require` _and `import`_, an\n`exports[ENTRY].default` condition pointing to source for browsers and other\nenvironments, and [other conditions][x-pkg-exports-conditions] not enumerated\nhere. Check the [package.json][x-repo-package-json] file to see which export\nconditions are supported.\n\nThough [`package.json`][x-repo-package-json] includes\n[`{ \"type\": \"commonjs\" }`][x-pkg-type], note that any ESM-only entry points will\nbe ES module (`.mjs`) files. Finally, [`package.json`][x-repo-package-json] also\nincludes the [`sideEffects`][x-pkg-side-effects-key] key, which is `false` for\noptimal [tree shaking][x-pkg-tree-shaking] where appropriate.\n\n</details>\n\n### License\n\nSee [LICENSE][x-repo-license].\n\n## Contributing and Support\n\n**[New issues][x-repo-choose-new-issue] and [pull requests][x-repo-pr-compare]\nare always welcome and greatly appreciated! 🤩** Just as well, you can [star 🌟\nthis project][x-badge-repo-link] to let me know you found it useful! ✊🏿 Or you\ncould [buy me a beer][x-repo-sponsor] 🥺Thank you!\n\nSee [CONTRIBUTING.md][x-repo-contributing] and [SUPPORT.md][x-repo-support] for\nmore information.\n\n### Contributors\n\n<!-- remark-ignore-start -->\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n\n[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)\n\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n<!-- remark-ignore-end -->\n\nThanks goes to these wonderful people ([emoji\nkey][x-repo-all-contributors-emojis]):\n\n<!-- remark-ignore-start -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://xunn.io/\"><img src=\"https://avatars.githubusercontent.com/u/656017?v=4?s=100\" width=\"100px;\" alt=\"Bernard\"/><br /><sub><b>Bernard</b></sub></a><br /><a href=\"#infra-Xunnamius\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a> <a href=\"https://github.com/Xunnamius/xunnctl/commits?author=Xunnamius\" title=\"Code\">💻</a> <a href=\"https://github.com/Xunnamius/xunnctl/commits?author=Xunnamius\" title=\"Documentation\">📖</a> <a href=\"#maintenance-Xunnamius\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/Xunnamius/xunnctl/commits?author=Xunnamius\" title=\"Tests\">⚠️</a> <a href=\"https://github.com/Xunnamius/xunnctl/pulls?q=is%3Apr+reviewed-by%3AXunnamius\" title=\"Reviewed Pull Requests\">👀</a></td>\n    </tr>\n  </tbody>\n  <tfoot>\n    <tr>\n      <td align=\"center\" size=\"13px\" colspan=\"7\">\n        <img src=\"https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg\">\n          <a href=\"https://all-contributors.js.org/docs/en/bot/usage\">Add your contributions</a>\n        </img>\n      </td>\n    </tr>\n  </tfoot>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- remark-ignore-end -->\n\nThis project follows the [all-contributors][x-repo-all-contributors]\nspecification. Contributions of any kind welcome!\n\n[x-badge-blm-image]: https://xunn.at/badge-blm 'Join the movement!'\n[x-badge-blm-link]: https://xunn.at/donate-blm\n[x-badge-codecov-image]:\n  https://img.shields.io/codecov/c/github/Xunnamius/xunnctl/main?style=flat-square&token=HWRIOBAAPW\n  'Is this package well-tested?'\n[x-badge-codecov-link]: https://codecov.io/gh/Xunnamius/xunnctl\n[x-badge-downloads-image]:\n  https://img.shields.io/npm/dm/@-xun/ctl?style=flat-square\n  'Number of times this package has been downloaded per month'\n[x-badge-lastcommit-image]:\n  https://img.shields.io/github/last-commit/xunnamius/xunnctl?style=flat-square\n  'Latest commit timestamp'\n[x-badge-license-image]:\n  https://img.shields.io/npm/l/@-xun/ctl?style=flat-square\n  \"This package's source license\"\n[x-badge-license-link]: https://github.com/Xunnamius/xunnctl/blob/main/LICENSE\n[x-badge-npm-image]:\n  https://xunn.at/npm-pkg-version/@-xun/ctl\n  'Install this package using npm or yarn!'\n[x-badge-npm-link]: https://npmtrends.com/@-xun/ctl\n[x-badge-repo-link]: https://github.com/xunnamius/xunnctl\n[x-badge-semanticrelease-image]:\n  https://xunn.at/badge-semantic-release\n  'This repo practices continuous integration and deployment!'\n[x-badge-semanticrelease-link]:\n  https://github.com/semantic-release/semantic-release\n[x-pkg-cjs-mojito]:\n  https://dev.to/jakobjingleheimer/configuring-commonjs-es-modules-for-nodejs-12ed#publish-only-a-cjs-distribution-with-property-exports\n[x-pkg-dual-package-hazard]:\n  https://nodejs.org/api/packages.html#dual-package-hazard\n[x-pkg-exports-conditions]:\n  https://webpack.js.org/guides/package-exports#reference-syntax\n[x-pkg-exports-module-key]:\n  https://webpack.js.org/guides/package-exports#providing-commonjs-and-esm-version-stateless\n[x-pkg-exports-types-key]:\n  https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta#packagejson-exports-imports-and-self-referencing\n[x-pkg-side-effects-key]:\n  https://webpack.js.org/guides/tree-shaking#mark-the-file-as-side-effect-free\n[x-pkg-tree-shaking]: https://webpack.js.org/guides/tree-shaking\n[x-pkg-type]:\n  https://github.com/nodejs/node/blob/8d8e06a345043bec787e904edc9a2f5c5e9c275f/doc/api/packages.md#type\n[x-repo-all-contributors]: https://github.com/all-contributors/all-contributors\n[x-repo-all-contributors-emojis]: https://allcontributors.org/docs/en/emoji-key\n[x-repo-choose-new-issue]:\n  https://github.com/xunnamius/xunnctl/issues/new/choose\n[x-repo-contributing]: /CONTRIBUTING.md\n[x-repo-docs]: docs\n[x-repo-license]: ./LICENSE\n[x-repo-package-json]: package.json\n[x-repo-pr-compare]: https://github.com/xunnamius/xunnctl/compare\n[x-repo-sponsor]: https://github.com/sponsors/Xunnamius\n[x-repo-support]: /.github/SUPPORT.md\n[1]: https://developers.cloudflare.com/fundamentals/api/reference/limits\n[2]: https://github.com/sindresorhus/env-paths\n[3]: #xunnctl-config-set\n[4]: #xunnctl-config-get\n[5]: ./docs/modules/config_manager.md#config\n[6]: https://jmespath.org/tutorial.html\n[7]: #xunnctl-dns-zone-retrieve\n[8]: #xunnctl-dns-zone-update\n[9]: #xunnctl-dns-zone-create\n[10]: #xunnctl-firewall-status\n[11]: https://developers.cloudflare.com/waf/tools/lists\n[12]: https://developers.cloudflare.com/waf/tools/lists/custom-lists#ip-lists\n[13]: #xunnctl-super-uninstall\n[14]: #xunnctl-super-install\n","readmeFilename":"README.md"}