{ "name": "@openclaw/fs-safe", "version": "0.2.1", "description": "Capability-style filesystem roots for Node.js apps that handle untrusted relative paths.", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/openclaw/fs-safe.git" }, "files": [ "dist/**/*.js", "dist/**/*.d.ts", "dist/**/*.d.ts.map", "docs/**/*.md", "README.md", "CHANGELOG.md", "SECURITY.md", "LICENSE" ], "type": "module", "sideEffects": false, "exports": { ".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" }, "./root": { "types": "./dist/root.d.ts", "default": "./dist/root.js" }, "./config": { "types": "./dist/config.d.ts", "default": "./dist/config.js" }, "./path": { "types": "./dist/path.d.ts", "default": "./dist/path.js" }, "./output": { "types": "./dist/output.d.ts", "default": "./dist/output.js" }, "./advanced": { "types": "./dist/advanced.d.ts", "default": "./dist/advanced.js" }, "./json": { "types": "./dist/json.d.ts", "default": "./dist/json.js" }, "./store": { "types": "./dist/store.d.ts", "default": "./dist/store.js" }, "./secret": { "types": "./dist/secret.d.ts", "default": "./dist/secret.js" }, "./permissions": { "types": "./dist/permissions-public.d.ts", "default": "./dist/permissions-public.js" }, "./secure-file": { "types": "./dist/secure-file.d.ts", "default": "./dist/secure-file.js" }, "./file-lock": { "types": "./dist/file-lock.d.ts", "default": "./dist/file-lock.js" }, "./walk": { "types": "./dist/walk.d.ts", "default": "./dist/walk.js" }, "./temp": { "types": "./dist/temp.d.ts", "default": "./dist/temp.js" }, "./atomic": { "types": "./dist/atomic.d.ts", "default": "./dist/atomic.js" }, "./archive": { "types": "./dist/archive.d.ts", "default": "./dist/archive.js" }, "./errors": { "types": "./dist/errors.d.ts", "default": "./dist/errors.js" }, "./types": { "types": "./dist/types.d.ts", "default": "./dist/types.js" }, "./test-hooks": { "types": "./dist/test-hooks.d.ts", "default": "./dist/test-hooks.js" } }, "scripts": { "benchmark": "node scripts/benchmark.mjs", "build": "tsc -p tsconfig.json", "lint:file-size": "node scripts/check-file-size.mjs", "lint:fs-boundary": "node scripts/check-fs-boundary-primitives.mjs", "prepack": "node scripts/prepack-build.mjs", "test": "vitest run", "test:coverage": "vitest run --coverage", "test:security": "vitest run test/fs-safe.test.ts test/openclaw-read-bypass-parity.test.ts test/openclaw-write-bypass-parity.test.ts test/additional-bypass-parity.test.ts test/adversarial-boundary-payloads.test.ts", "check": "pnpm lint:file-size && pnpm lint:fs-boundary && pnpm build && pnpm test", "docs:site": "node scripts/build-docs-site.mjs" }, "optionalDependencies": { "jszip": "^3.10.1", "tar": "7.5.13" }, "devDependencies": { "@types/node": "^22.15.19", "@vitest/coverage-v8": "3.2.4", "typescript": "^5.8.3", "vitest": "^3.1.4" }, "engines": { "node": ">=20.11" } }