{
  "name": "@hydranium/client-theia",
  "version": "1.0.0-next.328",
  "description": "Cross-head Theia client primitives shared by the hydranium protocol heads. Provides the socket-forwarding connection-handler base that the data-server and GLSP Theia integrations subclass, plus the preference-driven Output-channel logger; carries no head-specific dependency.",
  "keywords": [
    "hydranium",
    "langium",
    "language-server",
    "lsp",
    "theia"
  ],
  "homepage": "https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/client-theia",
  "bugs": {
    "url": "https://github.com/eclipse-emfcloud/hydranium/issues"
  },
  "license": "MIT",
  "author": {
    "name": "Hydranium Team"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/eclipse-emfcloud/hydranium.git",
    "directory": "packages/client-theia"
  },
  "files": [
    "lib",
    "src",
    "!lib/**/*.tsbuildinfo"
  ],
  "sideEffects": false,
  "main": "lib/index.js",
  "types": "lib/index.d.ts",
  "exports": {
    ".": {
      "types": "./lib/index.d.ts",
      "default": "./lib/index.js"
    },
    "./browser": {
      "types": "./lib/browser/index.d.ts",
      "default": "./lib/browser/index.js"
    },
    "./common": {
      "types": "./lib/common/index.d.ts",
      "default": "./lib/common/index.js"
    },
    "./node": {
      "types": "./lib/node/index.d.ts",
      "default": "./lib/node/index.js"
    },
    "./testing": {
      "types": "./lib/testing/index.d.ts",
      "default": "./lib/testing/index.js"
    }
  },
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "build": "tsc -b",
    "clean": "rimraf lib tsconfig.tsbuildinfo",
    "lint": "oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0",
    "prepack": "node -e \"const m=require('./package.json'),fs=require('node:fs');const missing=[m.main,...Object.values(m.bin||{})].filter(entry=>entry&&!fs.existsSync(entry));if(missing.length){console.error('prepack '+m.name+': not built ('+missing.join(', ')+' missing). Run the build before packing: a files entry that matches nothing is skipped silently, so the tarball would ship src only.');process.exit(1);}\"",
    "test": "npm run typecheck:test && vitest run",
    "typecheck:test": "tsc --noEmit -p tsconfig.test.json",
    "watch": "tsc -b -w --preserveWatchOutput"
  },
  "devDependencies": {
    "@hydranium/protocol": "1.0.0-next.328",
    "@theia/core": "^1.75.0",
    "@theia/editor": "^1.75.0",
    "@theia/filesystem": "^1.75.0",
    "@theia/output": "^1.75.0",
    "@types/node": "^22.0.0",
    "inversify": "6.2.2",
    "reflect-metadata": "0.2.2",
    "rimraf": "^5.0.0",
    "typescript": "^7.0.2",
    "vscode-jsonrpc": "9.0.0"
  },
  "peerDependencies": {
    "@hydranium/protocol": "1.0.0-next.328",
    "@theia/core": "^1.70.0",
    "@theia/editor": "^1.70.0",
    "@theia/filesystem": "^1.70.0",
    "@theia/output": "^1.70.0",
    "inversify": "^6.0.0",
    "vscode-jsonrpc": "^9.0.0"
  },
  "engines": {
    "node": ">=22.13"
  },
  "//peerDependencies": "@theia/core stays at 1.70 here, matching the sibling Theia packages, even though the connection-resilience bindings need 1.71: Theia only began binding `SocketWriteBuffer` then, and before that each connection built one privately, so there is no binding to rebind. Rather than split the package's floor for one feature, `bindConnectionResilience` probes for that binding and warns instead of installing when it is absent — a capability check rather than a version parse, so it answers about the container in front of it. Everything else the feature touches exists at 1.70, and the emitted declarations deliberately name no type that 1.70 lacks, so the package still compiles there. Verified by unpacking 1.70, 1.71 and 1.72, not inferred from a changelog. `vscode-jsonrpc` takes a caret: each `vscode-languageserver-protocol` release pins its transport exactly, so an exact peer would name a copy a fresh install rarely holds, while the caret still excludes the 8.x line.",
  "//prepack": "The publish guard, a `prepack` rather than a `prepare`: `prepack` runs only when a tarball is made (`npm pack`, `npm publish`) and never on install, so it cannot break the install it has no business touching. What it defends against: `files` lists `lib`, `lib` is gitignored, and a `files` entry matching nothing is skipped SILENTLY — so `npm publish` from an unbuilt tree emits a tarball of `src` and nothing else, with no error."
}
