{
  "name": "snapshot-fs",
  "version": "5.0.3",
  "type": "module",
  "description": "Create a filesystem snapshot for use with memfs",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/boneskull/snapshot-fs.git"
  },
  "homepage": "https://github.com/boneskull/snapshot-fs",
  "author": "Christopher Hiller <boneskull@boneskull.com>",
  "license": "Apache-2.0",
  "engines": {
    "node": "^22.13.0 || ^24.0.0"
  },
  "bin": {
    "snapshot-fs": "dist/esm/cli.js"
  },
  "main": "./dist/commonjs/index.js",
  "types": "./dist/commonjs/index.d.ts",
  "module": "./dist/esm/index.js",
  "exports": {
    "./package.json": "./package.json",
    ".": {
      "import": {
        "types": "./dist/esm/index.d.ts",
        "default": "./dist/esm/index.js"
      },
      "require": {
        "types": "./dist/commonjs/index.d.ts",
        "default": "./dist/commonjs/index.js"
      }
    }
  },
  "files": [
    "dist"
  ],
  "keywords": [
    "memfs",
    "snapshot",
    "fs",
    "filesystem",
    "image",
    "directory",
    "tree",
    "hierarchy",
    "persist",
    "clone",
    "test",
    "cli",
    "command",
    "tool"
  ],
  "scripts": {
    "build": "tshy",
    "coverage": "c8 --all --include src npm run test",
    "dev": "tshy --watch",
    "lint": "run-p lint:*",
    "lint-commit": "commitlint",
    "lint-staged": "lint-staged",
    "lint:deps": "knip",
    "lint:sources": "eslint .",
    "prepare": "husky; npm run build",
    "test": "node --import tsx --test \"./test/*.test.ts\"",
    "test:ci": "c8 --all --include src -- node --import tsx --test \"./test/*.test.ts\"",
    "test:update": "node --import tsx --test --test-update-snapshots \"./test/*.test.ts\""
  },
  "dependencies": {
    "@jsonjoy.com/json-pack": "1.2.0",
    "json-stable-stringify": "1.3.0",
    "memfs": "4.17.2",
    "supports-color": "10.0.0",
    "tree-dump": "1.0.3",
    "yargs": "17.7.2"
  },
  "devDependencies": {
    "@commitlint/cli": "19.8.1",
    "@commitlint/config-conventional": "19.8.1",
    "@eslint/js": "9.27.0",
    "@stylistic/eslint-plugin-js": "4.4.0",
    "@stylistic/eslint-plugin-ts": "4.4.0",
    "@types/json-stable-stringify": "1.2.0",
    "@types/node": "22.15.21",
    "@types/yargs": "17.0.33",
    "c8": "10.1.3",
    "eslint": "9.27.0",
    "eslint-plugin-jsonc": "2.20.1",
    "eslint-plugin-n": "17.18.0",
    "eslint-plugin-perfectionist": "4.13.0",
    "husky": "9.1.7",
    "knip": "5.58.0",
    "lint-staged": "16.0.0",
    "npm-run-all2": "8.0.3",
    "prettier": "3.5.3",
    "prettier-plugin-jsdoc": "1.3.2",
    "prettier-plugin-organize-imports": "4.1.0",
    "prettier-plugin-pkg": "0.19.1",
    "tshy": "3.0.2",
    "tsx": "4.19.4",
    "typescript": "5.8.3",
    "typescript-eslint": "8.32.1"
  },
  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org/"
  },
  "knip": {
    "ignore": [
      ".wallaby.js",
      "**/*.cts",
      "**/*.d.ts"
    ],
    "node": {
      "entry": [
        "test/*.test.ts"
      ]
    }
  },
  "lint-staged": {
    "*.{ts,cts,js,json,md,yml,json5}": [
      "eslint --fix",
      "prettier --write"
    ]
  },
  "prettier": {
    "jsdocCommentLineStrategy": "keep",
    "jsdocPreferCodeFences": true,
    "plugins": [
      "prettier-plugin-jsdoc",
      "prettier-plugin-pkg",
      "prettier-plugin-organize-imports"
    ],
    "singleQuote": true,
    "tsdoc": true
  },
  "tshy": {
    "exports": {
      "./package.json": "./package.json",
      ".": "./src/index.ts"
    },
    "selfLink": false
  }
}
