{
  "name": "@doubling/compound-sync",
  "version": "1.16.7",
  "description": "Bidirectional sync between Compound and local markdown files",
  "type": "module",
  "bin": {
    "compound-sync": "./sync.js"
  },
  "files": [
    "sync.js",
    "sync.d.ts",
    "org-sync.js",
    "org-sync.d.ts",
    "binding-setup.js",
    "binding-setup.d.ts",
    "fs-guard.js",
    "fs-guard.d.ts",
    "sync-state.js",
    "sync-state.d.ts",
    "manifest.js",
    "manifest.d.ts",
    "push-outcome.js",
    "push-outcome.d.ts",
    "config.js",
    "config.d.ts",
    "paths.js",
    "paths.d.ts",
    "files.js",
    "files.d.ts",
    "folder-chain.js",
    "folder-chain.d.ts",
    "storage-helpers.js",
    "storage-helpers.d.ts",
    "team-registry.js",
    "team-registry.d.ts",
    "auth-persistence.js",
    "auth-persistence.d.ts",
    "pre-mint-app-check.js",
    "pre-mint-app-check.d.ts",
    "setup-auth-with-pre-mint.js",
    "setup-auth-with-pre-mint.d.ts",
    "yjs-firestore-update-store.js",
    "yjs-firestore-update-store.d.ts",
    "yjs-provider.js",
    "yjs-provider.d.ts",
    "yjs-file-binding.js",
    "yjs-file-binding.d.ts",
    "yjs-binding-state.js",
    "yjs-binding-state.d.ts",
    "operation-log.js",
    "operation-log.d.ts",
    "README.md"
  ],
  "scripts": {
    "sync": "node --import tsx ./sync.js",
    "build": "tsc",
    "typecheck": "tsc --noEmit",
    "prepack": "npm run build",
    "test:unit": "node --import tsx --test config.test.ts paths.test.ts fs-guard.test.ts storage-helpers.test.ts folder-chain.test.ts team-registry.test.ts auth-persistence.test.ts pre-mint-app-check.test.ts setup-auth-with-pre-mint.test.ts sync-state.test.ts manifest.test.ts push-outcome.test.ts yjs-provider.test.ts yjs-store-conformance.test.ts yjs-convergence-property.test.ts yjs-file-binding.test.ts yjs-binding-state.test.ts files-helpers.test.ts org-sync-pull-retry.test.ts binding-setup.test.ts binding-setup-policy.test.ts operation-log.test.ts scale-fleet.test.ts scale-soak.test.ts scale-fanout.test.ts scale-long-document.test.ts",
    "test:integration": "node --import tsx --test --test-concurrency=4 --test-timeout=180000 files-push-create-private.test.ts files-push-create-team.test.ts files-push-update-private.test.ts files-push-binary.test.ts files-push-staleness.test.ts files-push-storage-fail.test.ts files-push-no-content.test.ts files-push-stamps.test.ts files-push-folder.test.ts files-delete.test.ts files-delete-folder.test.ts files-read-blob.test.ts operation-log-emit.test.ts org-sync-local-edit.test.ts org-sync-file-ops.test.ts org-sync-mtime.test.ts org-sync-rename.test.ts org-sync-binding-lru.test.ts org-sync-binding-stampede.test.ts org-sync-pull-recovery.test.ts org-sync-yjs-pull.test.ts org-sync-yjs-push.test.ts org-sync-yjs-compaction.test.ts org-sync-cold-start.test.ts org-sync-startup-ordering.test.ts org-sync-manifest-reconcile.test.ts org-sync-team-membership-filter.test.ts org-sync-special-chars.test.ts org-sync-copy.test.ts two-user-happy-paths.test.ts two-user-yjs-convergence.test.ts files-concurrency-folder-create.test.ts files-concurrency-file-create.test.ts files-concurrency-file-create-sandbox.test.ts files-concurrency-file-delete.test.ts files-concurrency-folder-delete.test.ts",
    "test:integration:emulator": "USE_EMULATOR=true firebase emulators:exec --only firestore,storage,auth --project doubling-compound-sandbox 'npm run test:integration'",
    "test": "npm run test:unit && npm run test:integration"
  },
  "dependencies": {
    "@doubling/types": "*",
    "chokidar": "^5.0.0",
    "fast-diff": "^1.3.0",
    "firebase": "^12.17.0",
    "ulid": "^3.0.2",
    "yjs": "^13.6.31"
  },
  "devDependencies": {
    "@firebase/rules-unit-testing": "^5.0.1",
    "@types/node": "22.20.0",
    "firebase-tools": "^15.22.4",
    "tsx": "^4.23.0",
    "typescript": "^5.9.3"
  },
  "publishConfig": {
    "access": "public"
  },
  "engines": {
    "node": ">=22"
  }
}
