@johnlindquist/file-forge
Version:
File Forge is a powerful CLI tool for deep analysis of codebases, generating markdown reports to feed AI reasoning models.
226 lines (225 loc) • 8.11 kB
JSON
{
"name": "@johnlindquist/file-forge",
"version": "2.19.3",
"description": "File Forge is a powerful CLI tool for deep analysis of codebases, generating markdown reports to feed AI reasoning models.",
"repository": {
"type": "git",
"url": "https://github.com/johnlindquist/file-forge.git"
},
"main": "dist/index.js",
"type": "module",
"bin": {
"ffg": "./dist/index.js"
},
"files": [
"dist",
"templates"
],
"scripts": {
"test": "pnpm build && vitest run --silent",
"test:verbose": "pnpm build && vitest run",
"test:clipboard": "pnpm build && vitest run --silent --test-name-pattern clipboard",
"test:commit": "pnpm build && vitest run --silent --test-name-pattern commit",
"test:watch": "pnpm build && vitest --watch",
"test:templates": "node scripts/test-templates.js",
"test:optimize:analyze": "node scripts/optimize-tests.js",
"test:optimize": "node scripts/optimize-tests.js",
"test:optimize:batch": "node scripts/optimize-tests.js --batch",
"test:optimize:batch:fast": "node scripts/optimize-tests.js --batch --skip-measure",
"test:optimize:batch:dry": "node scripts/optimize-tests.js --batch --dry-run",
"test:direct": "pnpm build && vitest run test/pipe-flag.test.ts --silent",
"test:comments": "pnpm build && vitest run test/template-flag.test.ts --silent",
"test:cli:exclude": "pnpm build && vitest run test/cli.test.ts --test-name-pattern 'exclude logic'",
"test:ignore-flag": "pnpm build && vitest run test/ignore-flag.test.ts",
"dev": "node --experimental-strip-types src/index.ts",
"build": "tsc",
"build:check": "tsc --noEmit --skipLibCheck -p tsconfig.json",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"verify:bin": "pnpm build && [ -f dist/index.js ] || (echo 'dist/index.js not found' && exit 1)",
"prepublishOnly": "pnpm build",
"prepare": "husky",
"pre-commit": "pnpm lint && pnpm build:check && pnpm verify:bin",
"semantic-release": "semantic-release",
"check:include": "pnpm build && pnpm exec node dist/index.js src",
"check:include-file": "pnpm build && pnpm exec node dist/index.js .npmrc",
"check:include-external": "pnpm build && pnpm exec node dist/index.js /Users/johnlindquist/dev/kit/package.json",
"check:graph": "pnpm build && pnpm exec node dist/index.js -g src/graph.ts",
"check:clipboard": "pnpm build && pnpm exec node dist/index.js -i src/graph.ts -y",
"check:name": "pnpm build && pnpm exec node dist/index.js -i src --name MY_PROJECT",
"check:markdown": "pnpm build && pnpm exec node dist/index.js --include src --markdown",
"check:help": "pnpm build && pnpm exec node dist/index.js --help",
"check:full": "pnpm build && pnpm exec node dist/index.js -i src/graph.ts",
"check:templates": "pnpm build && pnpm exec node dist/index.js --list-templates",
"check:template:explain": "pnpm build && pnpm exec node dist/index.js -i src/templates.ts --template explain",
"check:template:document": "pnpm build && pnpm exec node dist/index.js -i src/templates.ts --template document",
"check:template:refactor": "pnpm build && pnpm exec node dist/index.js -i src/index.ts --template refactor",
"check:template:optimize": "pnpm build && pnpm exec node dist/index.js -i src/graph.ts --template optimize",
"check:template:worktree": "pnpm build && pnpm exec node dist/index.js -i src/graph.ts --template worktree --pipe",
"check:template:render:worktree": "pnpm build && pnpm exec node dist/index.js -i src/graph.ts --render-template worktree --pipe",
"check:template:test": "pnpm build && pnpm exec node dist/index.js -i src/cli.ts --template test",
"check:template:fix": "pnpm build && pnpm exec node dist/index.js -i src/outputFormatter.ts --template fix",
"check:template:plan": "pnpm build && pnpm exec node dist/index.js -i src/cli.ts --template plan --exclude test/fixtures --exclude .husky",
"check:template:pr": "pnpm build && pnpm exec node dist/index.js -i src/cli.ts --template pr --exclude test/fixtures --exclude .husky",
"check:template:branch": "pnpm build && pnpm exec node dist/index.js -i src/cli.ts --template branch --exclude test/fixtures --exclude .husky",
"check:config": "pnpm build && pnpm exec node dist/index.js --config",
"check:open": "pnpm build && pnpm exec node dist/index.js --open"
},
"publishConfig": {
"access": "public"
},
"release": {
"branches": [
"main"
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"releaseRules": [
{
"type": "feat",
"release": "minor"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "docs",
"release": "patch"
},
{
"type": "style",
"release": "patch"
},
{
"type": "refactor",
"release": "patch"
},
{
"type": "perf",
"release": "patch"
},
{
"type": "test",
"release": "patch"
}
],
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES",
"BREAKING"
]
}
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "angular",
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES",
"BREAKING"
]
},
"writerOpts": {
"commitsSort": [
"subject",
"scope"
]
}
}
],
[
"@semantic-release/npm",
{
"npmPublish": true,
"tarballDir": "dist"
}
],
[
"@semantic-release/github",
{
"assets": "dist/*.tgz"
}
]
]
},
"keywords": [
"github",
"ingest",
"cli",
"directory",
"analysis"
],
"author": "John Lindquist",
"license": "MIT",
"devDependencies": {
"@eslint/js": "^9.24.0",
"@semantic-release/commit-analyzer": "^13.0.1",
"@semantic-release/github": "^11.0.1",
"@semantic-release/npm": "^12.0.1",
"@semantic-release/release-notes-generator": "^14.0.3",
"@tsconfig/node23": "^23.0.1",
"@tsconfig/strictest": "^2.0.5",
"@types/madge": "^5.0.3",
"@types/node": "^22.14.0",
"@types/node-fetch": "^2.6.12",
"@types/open": "^6.2.1",
"@types/yargs": "^17.0.33",
"@typescript-eslint/eslint-plugin": "^8.29.1",
"@typescript-eslint/parser": "^8.29.1",
"@vitest/coverage-v8": "^3.1.1",
"@vitest/ui": "3.1.1",
"eslint": "^9.24.0",
"eslint-plugin-unused-imports": "^4.1.4",
"execa": "^9.5.2",
"globals": "^16.0.0",
"husky": "^9.1.7",
"lint-staged": "^15.5.1",
"prettier": "^3.5.3",
"semantic-release": "^24.2.3",
"typescript": "^5.8.3",
"vitest": "^3.1.1"
},
"dependencies": {
"@clack/prompts": "^0.10.1",
"@octokit/rest": "^21.1.1",
"@types/micromatch": "^4.0.9",
"clipboardy": "^4.0.0",
"conf": "^13.1.0",
"date-fns": "^4.1.0",
"dotenv": "^16.4.7",
"env-paths": "^3.0.0",
"globby": "^14.1.0",
"gray-matter": "^4.0.3",
"ignore": "^7.0.3",
"jsonc-parser": "^3.3.1",
"liquidjs": "^10.21.0",
"madge": "^8.0.0",
"micromatch": "^4.0.8",
"mkdirp": "^3.0.1",
"nanoid": "^5.1.5",
"node-fetch": "^3.3.2",
"open": "^10.1.0",
"sanitize-filename": "^1.6.3",
"simple-git": "^3.27.0",
"tiktoken": "^1.0.20",
"yargs": "^17.7.2",
"zx": "^8.5.2"
},
"lint-staged": {
"*.{ts,tsx,js,jsx}": [
"pnpm eslint --fix --max-warnings 0 --no-warn-ignored",
"bash -c 'pnpm build:check'"
],
"*.{json,md,yml,yaml}": [
"prettier --write"
]
}
}