{
  "name": "@cultura/sdk",
  "version": "0.2.4",
  "description": "SDK for interacting with Cultura, a Layer 2 Ethereum blockchain acting as the global registry for human creativity and IP. It ensures transparent licensing, revenue sharing, and secure provenance.",
  "main": "dist/index.js",
  "module": "dist/index.mjs",
  "types": "dist/index.d.ts",
  "exports": {
    ".": {
      "module": "./dist/index.mjs",
      "default": "./dist/index.js"
    }
  },
  "publishConfig": {
    "access": "public"
  },
  "sideEffects": false,
  "files": [
    "dist/**/*"
  ],
  "scripts": {
    "build": "node -e \"process.env.VERCEL ? process.exit(0) : require('child_process').execSync('tsup', {stdio:'inherit'})\"",
    "dev": "tsc --watch",
    "test": "vitest run",
    "test:watch": "vitest watch",
    "test:coverage": "vitest run --coverage",
    "test:e2e": "vitest run test/e2e/protocol-user-flows.test.ts",
    "rebuild-contracts": "cd ../../submodules/CAS && npx hardhat clean && npx hardhat compile",
    "prepare": "node -e \"process.env.VERCEL || process.env.GITHUB_ACTIONS ? process.exit(0) : require('child_process').execSync('pnpm rebuild-contracts && pnpm generate-abi && pnpm build', {stdio: 'inherit'})\"",
    "sync-types": "cp -r ../typechain-types ./src/types",
    "generate-abi": "ts-node scripts/generateAbi.ts",
    "lint": "eslint src test",
    "lint:fix": "eslint src test --fix",
    "format": "prettier --check .",
    "format:fix": "prettier --write .",
    "docs": "node scripts/generate-docs.js",
    "example": "ts-node examples/verified-rights-licensing-flow.ts",
    "example:query": "ts-node examples/query-examples.ts",
    "typechain": "typechain --target ethers-v6 --out-dir src/types/contracts './src/abi/*.ts'",
    "version:patch": "node -e \"const pkg = require('./package.json'); const parts = pkg.version.split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1); require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:minor": "node -e \"const pkg = require('./package.json'); const parts = pkg.version.split('.'); pkg.version = parts[0] + '.' + (parseInt(parts[1]) + 1) + '.0'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:major": "node -e \"const pkg = require('./package.json'); const parts = pkg.version.split('.'); pkg.version = (parseInt(parts[0]) + 1) + '.0.0'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:rc": "node -e \"const pkg = require('./package.json'); if (pkg.version.includes('-rc.')) { const base = pkg.version.split('-rc.')[0]; const rc = parseInt(pkg.version.split('-rc.')[1]) + 1; pkg.version = base + '-rc.' + rc; } else { const parts = pkg.version.split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1) + '-rc.1'; } require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:rc:new": "node -e \"const pkg = require('./package.json'); const parts = pkg.version.split('-')[0].split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1) + '-rc.1'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:stable": "node -e \"const pkg = require('./package.json'); if (pkg.version.includes('-rc.')) { pkg.version = pkg.version.split('-rc.')[0]; } else { const parts = pkg.version.split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1); } require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:spacenet:rc": "node -e \"const pkg = require('./package.json'); if (pkg.version.includes('-rcSpacenet.')) { const base = pkg.version.split('-rcSpacenet.')[0]; const rc = parseInt(pkg.version.split('-rcSpacenet.')[1]) + 1; pkg.version = base + '-rcSpacenet.' + rc; } else { const parts = pkg.version.split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1) + '-rcSpacenet.1'; } require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:spacenet:rc:new": "node -e \"const pkg = require('./package.json'); const parts = pkg.version.split('-')[0].split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1) + '-rcSpacenet.1'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "version:spacenet:stable": "node -e \"const pkg = require('./package.json'); if (pkg.version.includes('-rcSpacenet.')) { pkg.version = pkg.version.split('-rcSpacenet.')[0]; } else { const parts = pkg.version.split('.'); pkg.version = parts[0] + '.' + parts[1] + '.' + (parseInt(parts[2]) + 1); } require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\\n');\"",
    "publish:rc": "pnpm build && npm publish --tag rc --access public --workspaces=false",
    "publish:spacenet:rc": "pnpm build && npm publish --tag spacenet-rc --access public --workspaces=false",
    "publish:stable": "pnpm build && npm publish --tag latest --access public --workspaces=false"
  },
  "keywords": [
    "cultura",
    "blockchain",
    "sdk",
    "ethereum",
    "web3",
    "ip",
    "intellectual property",
    "attestation",
    "royalty",
    "bond",
    "token"
  ],
  "author": {
    "name": "Cultura Team"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/cultura/cultura-monorepo/tree/main/packages/sdk"
  },
  "license": "MIT",
  "dependencies": {
    "@urql/core": "^5.1.1",
    "dotenv": "^16.4.7",
    "ethers": "^6.11.1",
    "graphql": "^16.10.0",
    "viem": "^2.7.9"
  },
  "devDependencies": {
    "@privy-io/react-auth": "^1.67.1",
    "@typechain/ethers-v6": "^0.5.1",
    "@types/node": "^20.11.19",
    "@typescript-eslint/eslint-plugin": "^7.0.1",
    "@typescript-eslint/parser": "^7.0.1",
    "@vitest/coverage-v8": "^1.3.1",
    "eslint": "^8.56.0",
    "jsdom": "^24.0.0",
    "prettier": "^3.2.5",
    "ts-node": "^10.9.2",
    "tsup": "^8.0.2",
    "typechain": "^8.3.2",
    "typedoc": "^0.27.9",
    "typedoc-plugin-markdown": "^4.4.2",
    "typescript": "^5.3.3",
    "vitest": "^1.3.1"
  },
  "c8": {
    "exclude": [
      "test/**/*",
      "src/types/**/*"
    ],
    "check-coverage": true,
    "lines": 90,
    "functions": 90,
    "branches": 90,
    "statements": 90
  }
}
