{
  "name": "ably",
  "description": "Realtime client library for Ably, the realtime messaging service",
  "version": "2.29.0",
  "license": "Apache-2.0",
  "bugs": {
    "url": "https://github.com/ably/ably-pubsub-js/issues",
    "email": "support@ably.com"
  },
  "main": "./build/ably-node.js",
  "browser": "./build/ably.js",
  "react-native": "./build/ably-reactnative.js",
  "typings": "./ably.d.ts",
  "exports": {
    ".": {
      "types": "./ably.d.ts",
      "node": "./build/ably-node.js",
      "react-native": "./build/ably-reactnative.js",
      "default": "./build/ably.js"
    },
    "./modular": {
      "types": "./modular.d.ts",
      "import": "./build/modular/index.mjs"
    },
    "./react": {
      "require": "./react/cjs/index.js",
      "import": "./react/mjs/index.js"
    },
    "./push": {
      "types": "./push.d.ts",
      "import": "./build/push.js"
    },
    "./react-native-push": {
      "types": "./react-native-push.d.ts",
      "default": "./build/react-native-push.js"
    },
    "./liveobjects": {
      "import": {
        "types": "./liveobjects.d.mts",
        "default": "./build/liveobjects.mjs"
      },
      "require": {
        "types": "./liveobjects.d.ts",
        "default": "./build/liveobjects.js"
      }
    },
    "./liveobjects/react": {
      "require": "./react/cjs/liveobjects/index.js",
      "import": "./react/mjs/liveobjects/index.js"
    },
    "./promises": {
      "types": "./promises.d.ts",
      "default": "./promises.js"
    },
    "./callbacks": {
      "types": "./callbacks.d.ts",
      "default": "./callbacks.js"
    }
  },
  "files": [
    "build/**",
    "ably.d.ts",
    "callbacks.d.ts",
    "callbacks.js",
    "liveobjects.d.ts",
    "liveobjects.d.mts",
    "liveobjects/react.d.ts",
    "modular.d.ts",
    "promises.d.ts",
    "promises.js",
    "push.d.ts",
    "react-native-push.d.ts",
    "react-native-push.js",
    "resources/**",
    "src/**",
    "react/**"
  ],
  "dependencies": {
    "@ably/msgpack-js": "^0.4.0",
    "dequal": "^2.0.3",
    "fastestsmallesttextencoderdecoder": "^1.0.22",
    "got": "^11.8.5",
    "ulid": "^2.3.0",
    "ws": "^8.17.1"
  },
  "peerDependencies": {
    "react": ">=16.8.0",
    "react-dom": ">=16.8.0"
  },
  "peerDependenciesMeta": {
    "react": {
      "optional": true
    },
    "react-dom": {
      "optional": true
    }
  },
  "devDependencies": {
    "@ably/vcdiff-decoder": "1.0.6",
    "@arethetypeswrong/cli": "^0.13.1",
    "@babel/generator": "^7.23.6",
    "@babel/parser": "^7.23.6",
    "@babel/traverse": "^7.23.7",
    "@testing-library/react": "^13.3.0",
    "@types/cli-table": "^0.3.4",
    "@types/jmespath": "^0.15.2",
    "@types/mocha": "^10.0.10",
    "@types/node": "^18.0.0",
    "@types/request": "^2.48.7",
    "@types/ws": "^8.2.0",
    "@typescript-eslint/eslint-plugin": "^5.59.6",
    "@typescript-eslint/parser": "^5.59.6",
    "@vitejs/plugin-react": "^1.3.2",
    "async": "ably-forks/async#requirejs",
    "aws-sdk": "^2.1413.0",
    "chai": "^4.2.0",
    "cli-table": "^0.3.11",
    "cors": "^2.8.5",
    "csv": "^6.3.9",
    "dox": "^1.0.0",
    "esbuild": "^0.18.10",
    "esbuild-plugin-umd-wrapper": "ably-forks/esbuild-plugin-umd-wrapper#1.0.7-optional-amd-named-module",
    "esbuild-runner": "^2.2.2",
    "eslint": "^7.13.0",
    "eslint-plugin-import": "^2.28.0",
    "eslint-plugin-jsdoc": "^40.0.0",
    "eslint-plugin-react": "^7.32.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-security": "^1.4.0",
    "express": "^4.17.1",
    "glob": "^10.4.2",
    "grunt": "^1.6.1",
    "grunt-cli": "~1.2.0",
    "grunt-shell": "~1.1",
    "grunt-webpack": "^5.0.0",
    "hexy": "~0.2",
    "jmespath": "^0.16.0",
    "jsdom": "^20.0.0",
    "minimist": "^1.2.5",
    "mocha": "^8.1.3",
    "mocha-junit-reporter": "^2.2.1",
    "path-browserify": "^1.0.1",
    "playwright": "^1.39.0",
    "prettier": "^3.3.3",
    "process": "^0.11.10",
    "react": ">=18.1.0",
    "react-dom": ">=18.1.0",
    "requirejs": "~2.1",
    "shelljs": "~0.8",
    "source-map-explorer": "^2.5.2",
    "source-map-support": "^0.5.21",
    "stream-browserify": "^3.0.0",
    "ts-loader": "^9.4.2",
    "tsconfig-paths-webpack-plugin": "^4.0.1",
    "tslib": "^2.3.1",
    "tsx": "^4.21.0",
    "typedoc": "^0.24.7",
    "typescript": "^4.9.5",
    "vite": "^4.4.9",
    "vitest": "^0.18.0",
    "webpack": "^5.79.0",
    "webpack-cli": "^5.0.1"
  },
  "engines": {
    "node": ">=16"
  },
  "repository": "ably/ably-pubsub-js",
  "jspm": {
    "registry": "npm",
    "directories": {
      "lib": "build"
    },
    "main": "ably"
  },
  "scripts": {
    "start:react": "npx vite serve",
    "grunt": "grunt",
    "test": "npm run test:node",
    "test:node": "npm run build:node && npm run build:push && npm run build:liveobjects && mocha",
    "test:grep": "npm run build:node && npm run build:push && npm run build:liveobjects && mocha --grep",
    "test:node:skip-build": "mocha",
    "test:webserver": "grunt test:webserver",
    "test:playwright": "node test/support/runPlaywrightTests.js",
    "test:react": "vitest run",
    "test:package": "grunt test:package",
    "test:uts": "npm run build:node && mocha --no-config --require tsx/cjs 'test/uts/**/*.test.ts'",
    "test:uts:unit": "npm run build:node && mocha --no-config --exit --require tsx/cjs --ignore 'test/uts/**/proxy/**' --ignore 'test/uts/**/integration/**' 'test/uts/**/*.test.ts'",
    "test:uts:integration": "npm run build:node && mocha --no-config --exit --require tsx/cjs 'test/uts/**/integration/**/*.test.ts'",
    "concat": "grunt concat",
    "build": "grunt build:all && npm run build:react",
    "build:node": "grunt build:node",
    "build:browser": "grunt build:browser",
    "build:react": "npm run build:react:mjs && npm run build:react:cjs && cp src/platform/react-hooks/res/package.react.json react/package.json",
    "build:react:mjs": "tsc --project src/platform/react-hooks/tsconfig.mjs.json && cp src/platform/react-hooks/res/package.mjs.json react/mjs/package.json",
    "build:react:cjs": "tsc --project src/platform/react-hooks/tsconfig.cjs.json && cp src/platform/react-hooks/res/package.cjs.json react/cjs/package.json",
    "build:push": "grunt build:push",
    "build:react-native-push": "grunt build:react-native-push",
    "build:liveobjects": "grunt build:liveobjects",
    "requirejs": "grunt requirejs",
    "lint": "eslint .",
    "lint:fix": "eslint --fix .",
    "prepare": "npm run build",
    "format": "prettier --write .",
    "format:check": "prettier --check .",
    "sourcemap": "source-map-explorer build/ably.min.js",
    "modulereport": "tsc --noEmit --esModuleInterop scripts/moduleReport.ts && esr scripts/moduleReport.ts",
    "speccoveragereport": "tsc --noEmit --esModuleInterop --target ES2017 --moduleResolution node scripts/specCoverageReport.ts && esr scripts/specCoverageReport.ts",
    "process-private-api-data": "tsc --noEmit --esModuleInterop --strictNullChecks scripts/processPrivateApiData/run.ts && esr scripts/processPrivateApiData/run.ts",
    "docs": "typedoc",
    "generate:errorcodes-ts": "node test/common/ably-common/errors/scripts/generate-errorcodes-ts.js --format=type --out src/common/lib/types/errorcodes.ts"
  }
}
