{"_id":"@adaptivekind/garden","_rev":"3-8b9d5bd93ec6c19b25a9780904896fac","name":"@adaptivekind/garden","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.3":{"name":"@adaptivekind/garden","version":"0.0.3","keywords":["markdown","viewer","nextjs","cli"],"author":"","license":"MIT","_id":"@adaptivekind/garden@0.0.3","maintainers":[{"name":"ianhomer","email":"ian@adaptivekind.com"}],"bin":{"garden":"dist/index.js"},"dist":{"shasum":"b358761b66551cca0a94825c59710f59557425c6","tarball":"https://registry.npmjs.org/@adaptivekind/garden/-/garden-0.0.3.tgz","fileCount":46,"integrity":"sha512-iYQ7vCkrS3QViZH7j2KjEfcKBG0QLIDH/Bkc1TrDKt7EYWyHWp3zEY+3b0U2bsNx6wQayaODn08mAyHjbxW0Aw==","signatures":[{"sig":"MEYCIQDjcGgcpaDBeS62+LgErrSD1q2YJxLaqNUh6uVYQ9QMaAIhALTQhK2XOCFtg09qtIDMNDir0x8LI9RVJvOXGhLcFdWM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70613},"main":"dist/index.js","gitHead":"50c5d922a515c59997da0e43e53ea2fc82fd7fcd","scripts":{"dev":"npm run copy:graph && MARKDOWN_DIR=./test/test-gardens/garden1 next dev --turbopack","lint":"next lint","test":"jest","build":"npm run build:site && npm run build:cli","start":"next start","eslint":"eslint src/pages --ext .ts","prepare":"husky","upgrade":"npx npm-check-updates -u && npm install","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"npx prettier --check .","test:cli":"ts-node --esm test/cli-integration.test.ts","test:e2e":"MARKDOWN_DIR=./test/test-gardens/garden1 start-server-and-test start 3000 test:cucumber","build:cli":"tsc cli/index.ts --outDir dist --target es2020 --module commonjs --moduleResolution node --esModuleInterop --allowSyntheticDefaultImports --resolveJsonModule --declaration false","typecheck":"tsc --noEmit","build:site":"npm run copy:graph && MARKDOWN_DIR=./test/test-gardens/garden1 next build","copy:graph":"node -e \"const fs=require('fs'); fs.cpSync('test/test-gardens/garden1/.garden-graph.json','public/garden.json')\"","eslint:fix":"eslint --fix src/pages --ext .ts","test:watch":"jest --watch","test:garden":"MARKDOWN_DIR=./test/test-gardens/garden1 npm run dev","prettier:fix":"npx prettier --write .","test:coverage":"jest --coverage","test:cucumber":"cucumber-js test/e2e/features --require-module ts-node/register --require test/e2e/steps/**/*.ts","clean:watchman":"watchman watch-del '/Users/ian/projects/my/garden'","test:e2e:headed":"MARKDOWN_DIR=./test/test-gardens/garden1 HEADED=true start-server-and-test start 3000 test:cucumber"},"_npmUser":{"name":"ianhomer","email":"ian@adaptivekind.com"},"_npmVersion":"10.9.3","description":"A Next.js application to view markdown files in any directory","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.18.0","dependencies":{"glob":"^11.0.3","next":"^15.4.6","react":"^19.1.1","commander":"^14.0.0","react-dom":"^19.1.1","gray-matter":"^4.0.3","react-markdown":"^10.1.0","@adaptivekind/graph-schema":"^0.1.11","@adaptivekind/markdown-graph":"^0.0.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","husky":"^9.1.7","eslint":"^9.33.0","ts-node":"^10.9.2","prettier":"^3.6.2","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^24.2.1","lint-staged":"^16.1.5","@types/react":"^19.1.9","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.54.2","@types/react-dom":"^19.1.7","@cucumber/cucumber":"^7.3.2","eslint-config-next":"^15.4.6","@cucumber/playwright":"^3.1.0","start-server-and-test":"^2.0.13","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^30.0.5","@testing-library/jest-dom":"^6.6.4"},"_npmOperationalInternal":{"tmp":"tmp/garden_0.0.3_1754862400560_0.37702337985321477","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@adaptivekind/garden","version":"0.0.4","keywords":["markdown","viewer","nextjs","cli"],"author":"","license":"MIT","_id":"@adaptivekind/garden@0.0.4","maintainers":[{"name":"ianhomer","email":"ian@adaptivekind.com"}],"bin":{"garden":"dist/index.js"},"dist":{"shasum":"753d8ba439a1df09fdee48193e87fd15ba895fb4","tarball":"https://registry.npmjs.org/@adaptivekind/garden/-/garden-0.0.4.tgz","fileCount":25,"integrity":"sha512-5qnKYENAH9VX6KnoZFsX/BfNh2DCpbBR91vu7LndTRR0y8YP7LRX6BYQUs8xqtsxWWuBdv2xPKVaXqTFFlT1GA==","signatures":[{"sig":"MEYCIQDfyrLWAEqnpHNz5mkQH1Xvd7oZycRVB+DzIfayouePogIhAMTysyy8MBI8E3UZcBG6cYWKkvKAeASnoeowEOrVbOui","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37481},"main":"dist/index.js","gitHead":"d338637ec446a51acbdf50bcd067064639b5d236","scripts":{"dev":"npm run copy:graph && MARKDOWN_DIR=./test/test-gardens/garden1 next dev --turbopack","lint":"next lint","test":"jest","build":"npm run build:site && npm run build:cli","start":"next start","eslint":"eslint src/pages --ext .ts","prepare":"husky","upgrade":"npx npm-check-updates -u && npm install","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"npx prettier --check .","test:cli":"ts-node --esm test/cli-integration.test.ts","test:e2e":"MARKDOWN_DIR=./test/test-gardens/garden1 start-server-and-test start 3000 test:cucumber","build:cli":"tsc cli/index.ts --outDir dist --target es2020 --module commonjs --moduleResolution node --esModuleInterop --allowSyntheticDefaultImports --resolveJsonModule --declaration false","typecheck":"tsc --noEmit","build:site":"npm run copy:graph && MARKDOWN_DIR=./test/test-gardens/garden1 next build","copy:graph":"node -e \"const fs=require('fs'); fs.cpSync('test/test-gardens/garden1/.garden-graph.json','public/garden.json')\"","eslint:fix":"eslint --fix src/pages --ext .ts","test:watch":"jest --watch","test:garden":"MARKDOWN_DIR=./test/test-gardens/garden1 npm run dev","prettier:fix":"npx prettier --write .","test:coverage":"jest --coverage","test:cucumber":"cucumber-js test/e2e/features --require-module ts-node/register --require test/e2e/steps/**/*.ts","clean:watchman":"watchman watch-del '/Users/ian/projects/my/garden'","test:e2e:headed":"MARKDOWN_DIR=./test/test-gardens/garden1 HEADED=true start-server-and-test start 3000 test:cucumber"},"_npmUser":{"name":"ianhomer","email":"ian@adaptivekind.com"},"_npmVersion":"10.9.3","description":"A Next.js application to view markdown files in any directory","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.18.0","dependencies":{"glob":"^11.0.3","next":"^15.4.6","react":"^19.1.1","commander":"^14.0.0","react-dom":"^19.1.1","gray-matter":"^4.0.3","react-markdown":"^10.1.0","@adaptivekind/graph-schema":"^0.1.11","@adaptivekind/markdown-graph":"^0.0.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.5","husky":"^9.1.7","eslint":"^9.33.0","ts-node":"^10.9.2","prettier":"^3.6.2","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^24.2.1","lint-staged":"^16.1.5","@types/react":"^19.1.9","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.54.2","@types/react-dom":"^19.1.7","@cucumber/cucumber":"^7.3.2","eslint-config-next":"^15.4.6","@cucumber/playwright":"^3.1.0","start-server-and-test":"^2.0.13","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^30.0.5","@testing-library/jest-dom":"^6.6.4"},"_npmOperationalInternal":{"tmp":"tmp/garden_0.0.4_1754862841559_0.881283666509221","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@adaptivekind/garden","version":"0.0.5","description":"A Next.js application to view markdown files in any directory","main":"dist/index.js","publishConfig":{"access":"public"},"bin":{"garden":"dist/index.js"},"scripts":{"clean:watchman":"watchman watch-del '/Users/ian/projects/my/garden'","dev":"npm run copy:graph && MARKDOWN_DIR=./test/test-gardens/garden1 next dev --turbopack","eslint":"eslint src/pages --ext .ts","eslint:fix":"eslint --fix src/pages --ext .ts","build":"npm run build:site && npm run build:cli","copy:graph":"node -e \"const fs=require('fs'); fs.cpSync('test/test-gardens/garden1/.garden-graph.json','public/garden.json')\"","build:site":"npm run copy:graph && MARKDOWN_DIR=./test/test-gardens/garden1 next build","build:cli":"tsc cli/index.ts --outDir dist --target es2020 --module commonjs --moduleResolution node --esModuleInterop --allowSyntheticDefaultImports --resolveJsonModule --declaration false","start":"next start","lint":"next lint","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"npx prettier --check .","prettier:fix":"npx prettier --write .","typecheck":"tsc --noEmit","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:garden":"MARKDOWN_DIR=./test/test-gardens/garden1 npm run dev","test:cucumber":"cucumber-js test/e2e/features --require-module ts-node/register --require test/e2e/steps/**/*.ts","test:e2e":"MARKDOWN_DIR=./test/test-gardens/garden1 start-server-and-test start 3000 test:cucumber","test:e2e:headed":"MARKDOWN_DIR=./test/test-gardens/garden1 HEADED=true start-server-and-test start 3000 test:cucumber","test:cli":"ts-node --esm test/cli-integration.test.ts","upgrade":"npx npm-check-updates -u && npm install","prepare":"husky"},"dependencies":{"@adaptivekind/graph-schema":"^0.1.11","@adaptivekind/markdown-graph":"^0.0.17","commander":"^14.0.0","glob":"^11.0.3","gray-matter":"^4.0.3","next":"^15.4.6","react":"^19.1.1","react-dom":"^19.1.1","react-markdown":"^10.1.0"},"devDependencies":{"@cucumber/cucumber":"^7.3.2","@cucumber/playwright":"^3.1.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.54.2","@testing-library/jest-dom":"^6.6.4","@testing-library/react":"^16.3.0","@types/jest":"^30.0.0","@types/node":"^24.2.1","@types/react":"^19.1.9","@types/react-dom":"^19.1.7","eslint":"^9.33.0","eslint-config-next":"^15.4.6","husky":"^9.1.7","jest":"^30.0.5","jest-environment-jsdom":"^30.0.5","lint-staged":"^16.1.5","prettier":"^3.6.2","start-server-and-test":"^2.0.13","ts-node":"^10.9.2","typescript":"^5.9.2"},"keywords":["markdown","viewer","nextjs","cli"],"author":"","license":"MIT","lint-staged":{"*.{ts,tsx}":["eslint --fix"],"*.{json,md,yml,yaml}":["prettier --write"]},"_id":"@adaptivekind/garden@0.0.5","gitHead":"a3621ff436c3bbaf2a2d9207b4359669872657db","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-7RRSJP5GKtgx0N7sB+Mo60Yz92k0ZXltytO+BP0RY5mEZcHpE3/dGwZ7O/kBb3u/+CHubh0taM8sRmK1/g8eJA==","shasum":"b28a51c0abf02931654e1955d9f32bf091bba667","tarball":"https://registry.npmjs.org/@adaptivekind/garden/-/garden-0.0.5.tgz","fileCount":25,"unpackedSize":37505,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGbpaknvMr7F1dgzSw9a5LMEx823t6GdMYqV9qV6VpSOAiEAisu+OtypK4lt6Hm7esCme+UhX3nd8kfQppGaZkTtGAw="}]},"_npmUser":{"name":"ianhomer","email":"ian@adaptivekind.com"},"directories":{},"maintainers":[{"name":"ianhomer","email":"ian@adaptivekind.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/garden_0.0.5_1755425413617_0.645725639422899"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-10T21:46:40.426Z","modified":"2025-08-17T10:10:14.000Z","0.0.3":"2025-08-10T21:46:40.727Z","0.0.4":"2025-08-10T21:54:01.832Z","0.0.5":"2025-08-17T10:10:13.775Z"},"license":"MIT","keywords":["markdown","viewer","nextjs","cli"],"description":"A Next.js application to view markdown files in any directory","maintainers":[{"name":"ianhomer","email":"ian@adaptivekind.com"}],"readme":"# Garden - Markdown Viewer\n\nA Next.js application that can be run as a command with npx to view markdown files from any directory.\n\n## Installation\n\n```bash\nnpm install -g @adaptivekind/garden\n```\n\n## Usage\n\nNavigate to any directory with markdown files and run:\n\n```bash\ngarden\n```\n\nOr specify a different directory:\n\n```bash\ngarden -d /path/to/markdown/files\n```\n\nOptions:\n\n- `-d, --dir <directory>` - Directory to scan for markdown files (default: current directory)\n- `-p, --port <port>` - Port to run the server on (default: 3000)\n\n## Features\n\n- Automatically discovers all `.md` files in a directory\n- Renders markdown\n- Wiki-style linking with `[[page]]` and `[[page|display text]]` syntax\n- No configuration required\n\n## Development\n\n```bash\nnpm install\nnpm run dev                 # Start Next.js dev server\nnpm run test:garden        # Start dev server with test garden content\n```\n\n**Building:**\n\n```bash\nnpm run build              # Build both site and CLI\nnpm run build:site         # Build Next.js site only\nnpm run build:cli          # Build CLI only\n```\n\n**Testing:**\n\n```bash\nnpm test                   # Run Jest unit tests\nnpm run test:watch         # Run tests in watch mode\nnpm run test:coverage      # Run tests with coverage\nnpm run test:e2e           # Run Cucumber e2e tests\nnpm run test:e2e:headed    # Run e2e tests with visible browser\n```\n\n**Code Quality:**\n\n```bash\nnpm run lint               # Next.js linter\nnpm run typecheck          # TypeScript type checking\nnpm run prettier           # Check code formatting\nnpm run lint:fix           # Fix linting and formatting issues\n```\n\n**CLI Testing:**\n\n```bash\nnpm link                   # Link for local testing\ngarden                     # Run CLI locally\n```\n\n## Local testing\n\nBuild and link\n\n```sh\nnpm run build:cli\nnpm link\n```\n\nThen change to a directory of markdown and run `garden`\n","readmeFilename":"README.md"}