@ably/cli
Version:
Ably CLI for Pub/Sub, Chat and Spaces
194 lines • 7.66 kB
JSON
{
"name": "@ably/cli",
"version": "0.15.0",
"description": "Ably CLI for Pub/Sub, Chat and Spaces",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
".": "./dist/index.js"
},
"author": "Ably <support@ably.com>",
"license": "Apache-2.0",
"bin": {
"ably": "./bin/run.js",
"ably-interactive": "./bin/ably-interactive"
},
"type": "module",
"oclif": {
"bin": "ably",
"dirname": "ably",
"commands": "./dist/src/commands",
"topicSeparator": " ",
"plugins": [
"@oclif/plugin-autocomplete",
"@oclif/plugin-warn-if-update-available"
],
"hooks": {
"init": [
"./dist/src/hooks/init/alias-command",
"./dist/src/hooks/init/version-flag"
],
"command_not_found": "./dist/src/hooks/command_not_found/did-you-mean"
},
"hidden": [
"aliases"
],
"helpClass": "./dist/src/help.js",
"warn-if-update-available": {
"timeoutInDays": 7,
"message": "📦 Update available: <%= config.name %> <%= chalk.yellow(config.version) %> → <%= chalk.greenBright(latest) %>\nRun <%= chalk.cyan('npm install -g @ably/cli') %> to update.",
"frequency": 1,
"frequencyUnit": "days",
"registry": "https://registry.npmjs.org"
}
},
"dependencies": {
"@ably/chat": "^1.0.0",
"@ably/spaces": "^0.4.0",
"@inquirer/prompts": "^5.1.3",
"@modelcontextprotocol/sdk": "^1.8.0",
"@oclif/core": "^4.2.10",
"@oclif/plugin-autocomplete": "^3.2.30",
"@oclif/plugin-warn-if-update-available": "^3.1.41",
"@xterm/addon-fit": "^0.10.0",
"@xterm/addon-web-links": "^0.11.0",
"@xterm/xterm": "^5.5.0",
"ably": "^2.10.0",
"chalk": "5",
"cli-table3": "^0.6.5",
"color-json": "^3.0.5",
"fast-levenshtein": "^3.0.0",
"inquirer": "^9.2.16",
"jsonwebtoken": "^9.0.2",
"node-fetch": "^3.3.2",
"open": "^10.1.0",
"ora": "^8.2.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"toml": "^3.0.0",
"ws": "^8.16.0",
"zod": "^3.24.2"
},
"devDependencies": {
"@eslint/js": "^9.21.0",
"@oclif/test": "^4.0.0",
"@types/fast-levenshtein": "^0.0.4",
"@types/fs-extra": "^11.0.4",
"@types/inquirer": "^9.0.7",
"@types/jsonwebtoken": "^9.0.7",
"@types/node": "^20.10.0",
"@types/node-fetch": "^2.6.13",
"@types/react": "^18.3.20",
"@types/react-dom": "^18.3.5",
"@types/uuid": "^10.0.0",
"@types/ws": "^8.5.11",
"@typescript-eslint/eslint-plugin": "^8.41.0",
"@typescript-eslint/parser": "^8.41.0",
"@vitest/coverage-v8": "^4.0.0",
"@vitest/eslint-plugin": "^1.5",
"@vitest/ui": "^4.0.0",
"dotenv": "^16.5.0",
"eslint": "^9.34.0",
"eslint-config-oclif": "^6.0.44",
"eslint-config-prettier": "^10.1.2",
"eslint-plugin-n": "^17.17.0",
"eslint-plugin-prettier": "^5.2.6",
"eslint-plugin-unicorn": "^58.0.0",
"execa": "^9.5.2",
"fs-extra": "^11.3.0",
"get-port": "^7.1.0",
"globals": "^15.15.0",
"http-server": "^14.1.1",
"nock": "^14.0.3",
"node-pty": "^1.0.0",
"oclif": "^4.2.10",
"playwright": "^1.52.0",
"prettier": "^3.5.3",
"serve": "^14.2.4",
"shx": "^0.4",
"strip-ansi": "^7.1.0",
"ts-node": "11.0.0-beta.1",
"typescript": "^5.8.2",
"uuid": "^11.1.0",
"vitest": "^4.0.0"
},
"engines": {
"node": ">=22.0.0"
},
"files": [
"bin",
"dist",
"examples/web-cli",
"oclif.manifest.json",
"README.md",
"LICENSE",
"CHANGELOG.md"
],
"repository": {
"type": "git",
"url": "git+https://github.com/ably/ably-cli.git"
},
"bugs": {
"url": "https://github.com/ably/ably-cli/issues"
},
"homepage": "https://github.com/ably/ably-cli#readme",
"keywords": [
"ably",
"cli",
"realtime",
"pubsub",
"chat",
"spaces"
],
"publishConfig": {
"access": "public"
},
"scripts": {
"build": "shx rm -rf dist && tsc -b",
"build:packages": "pnpm -r --filter './packages/*' build",
"build:examples": "pnpm -r --filter './examples/*' build",
"build:all": "pnpm build && pnpm build:packages && pnpm build:examples",
"clean": "rm -rf dist node_modules/.cache tsconfig.tsbuildinfo oclif.manifest.json",
"lint": "eslint . --ext .ts",
"lint:fix": "eslint . --fix",
"pretest": "pnpm build && chmod +x bin/run.js",
"test": "vitest run",
"test:unit": "vitest run --project unit",
"test:unit:watch": "vitest --project unit",
"test:unit:ui": "vitest --ui --project unit",
"test:integration": "vitest run --project integration",
"test:e2e": "vitest run --project e2e",
"test:e2e:basic": "vitest run --project e2e test/e2e/core/basic-cli",
"test:e2e:auth": "vitest run --project e2e test/e2e/auth",
"test:e2e:channels": "vitest run --project e2e test/e2e/channels",
"test:e2e:spaces": "vitest run --project e2e test/e2e/spaces",
"test:e2e:rooms": "vitest run --project e2e test/e2e/rooms",
"test:e2e:connections": "vitest run --project e2e test/e2e/connections",
"test:e2e:control": "vitest run --project e2e test/e2e/control",
"test:e2e:bench": "vitest run --project e2e test/e2e/bench",
"test:hooks": "vitest run --project hooks",
"test:web-cli": "pnpm test:web-cli:build && playwright test --config test/e2e/web-cli/playwright.config.ts",
"test:web-cli:build": "pnpm build && pnpm --filter @ably/react-web-cli build && pnpm --filter ./examples/web-cli build",
"test:web-cli:parallel": "pnpm test:web-cli:build && playwright test --config test/e2e/web-cli/playwright-parallel.config.ts",
"test:web-cli:parallel:auth": "TEST_GROUP=auth pnpm test:web-cli:build && playwright test --config test/e2e/web-cli/playwright-parallel.config.ts test/e2e/web-cli/authentication.test.ts test/e2e/web-cli/domain-scoped-auth.test.ts",
"test:web-cli:parallel:session": "TEST_GROUP=session pnpm test:web-cli:build && playwright test --config test/e2e/web-cli/playwright-parallel.config.ts test/e2e/web-cli/session-resume.test.ts test/e2e/web-cli/reconnection.test.ts test/e2e/web-cli/reconnection-diagnostic.test.ts",
"test:web-cli:parallel:ui": "TEST_GROUP=ui pnpm test:web-cli:build && playwright test --config test/e2e/web-cli/playwright-parallel.config.ts test/e2e/web-cli/terminal-ui.test.ts test/e2e/web-cli/web-cli.test.ts test/e2e/web-cli/prompt-integrity.test.ts",
"test:web-cli:parallel:rate-limit": "TEST_GROUP=rate-limit pnpm test:web-cli:build && playwright test --config test/e2e/web-cli/playwright-parallel.config.ts test/e2e/web-cli/z-rate-limit-trigger.test.ts",
"test:playwright": "pnpm test:web-cli",
"test:react-web-cli": "pnpm --filter @ably/react-web-cli test",
"test:coverage": "vitest run --coverage",
"test:coverage:unit": "vitest run --project unit --coverage",
"test:coverage:integration": "vitest run --project integration --coverage",
"test:coverage:report": "vitest run --coverage --reporter=html",
"test:coverage:check": "vitest run --coverage",
"postinstall": "[ \"$CI\" = \"true\" ] || (test -f ./dist/scripts/postinstall-welcome.js && node ./dist/scripts/postinstall-welcome.js || echo \"Skipping welcome script (not found)\")",
"preversion": "pnpm run prepare",
"version": "oclif readme && git add README.md",
"validate": "./scripts/pre-push-validation.sh",
"pre-commit": "pnpm validate",
"ai-init": "echo 'AI Assistant Instructions:' && cat .claude/CLAUDE.md",
"cli": "bin/run.js",
"dev:examples": "pnpm build:packages && pnpm build:examples && cd examples/web-cli && pnpm dev",
"dev": "pnpm run build && node bin/run.js"
}
}