{
  "name": "@hydranium/glsp-client-theia",
  "version": "1.0.0-next.367",
  "description": "Theia-coupled client primitives for GLSP heads built on @hydranium/glsp-server. Provides the diagram widget, manager, client contribution and connection-handler bases that Theia-based adopters extend, and binds @hydranium/glsp-client's host-neutral classes through the Output channel; companion of @hydranium/glsp-server.",
  "keywords": [
    "diagram",
    "glsp",
    "hydranium",
    "langium",
    "language-server",
    "lsp",
    "theia"
  ],
  "homepage": "https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/glsp-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/glsp-client-theia"
  },
  "files": [
    "lib",
    "src",
    "style",
    "!lib/**/*.tsbuildinfo"
  ],
  "sideEffects": [
    "**/*.css"
  ],
  "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"
    },
    "./node": {
      "types": "./lib/node/index.d.ts",
      "default": "./lib/node/index.js"
    },
    "./style/diagram-loading.css": "./style/diagram-loading.css"
  },
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "build": "tsc -b tsconfig.browser.json",
    "clean": "rimraf lib tsconfig.tsbuildinfo tsconfig.browser.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 && tsc --noEmit -p tsconfig.browser.test.json",
    "watch": "tsc -b tsconfig.browser.json -w --preserveWatchOutput"
  },
  "devDependencies": {
    "@eclipse-glsp/client": "2.7.0",
    "@eclipse-glsp/server": "2.7.0",
    "@eclipse-glsp/theia-integration": "2.7.0",
    "@hydranium/client-theia": "1.0.0-next.367",
    "@hydranium/core": "1.0.0-next.367",
    "@hydranium/glsp-client": "1.0.0-next.367",
    "@hydranium/glsp-server": "1.0.0-next.367",
    "@hydranium/protocol": "1.0.0-next.367",
    "@theia/core": "1.74.3",
    "@theia/process": "1.74.3",
    "@theia/workspace": "1.74.3",
    "@types/node": "^22.0.0",
    "inversify": "6.2.2",
    "reflect-metadata": "0.2.2",
    "rimraf": "^5.0.0",
    "snabbdom": "3.5.1",
    "typescript": "^7.0.2",
    "vscode-jsonrpc": "9.0.0"
  },
  "peerDependencies": {
    "@eclipse-glsp/client": "^2.6.0",
    "@eclipse-glsp/theia-integration": "^2.6.0",
    "@hydranium/client-theia": "1.0.0-next.367",
    "@hydranium/glsp-client": "1.0.0-next.367",
    "@hydranium/protocol": "1.0.0-next.367",
    "@theia/core": "^1.70.0",
    "@theia/process": "^1.70.0",
    "@theia/workspace": "^1.70.0",
    "inversify": "^6.0.0",
    "snabbdom": "~3.5.1",
    "vscode-jsonrpc": "^9.0.0"
  },
  "engines": {
    "node": ">=22.13"
  },
  "//exports": "The stylesheet key is an ASSET entry, not a module subpath, and it is spelled as the exact filename rather than `./style/*` so nothing becomes reachable automatically — the same no-wildcard property every other key here has. It exists because the widget's own import is package-RELATIVE, which `exports` does not gate, so the map's silence broke nobody inside the package while blocking every adopter who wants to `@import` the sheet, re-bundle it or override it by specifier; that failure reads as \"not exported under the conditions\" rather than as a missing entry. `tsc` emits no assets, so no build step produces the target; `check:exports` asserts that the file exists and is covered by `files`, which is the pair of mistakes an asset key can actually make.",
  "//peerDependencies": "`vscode-jsonrpc` is a peer because the client loads its `browser` entry for one effect: GLSP's Theia channel connection requires the top-level copy's root entry, which installs no runtime layer, so without that entry the frontend receives no message. A peer resolves to that same top-level copy. The caret matches the other framework packages.",
  "//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.",
  "//sideEffects": "A stylesheet IS the side effect: `style/diagram-loading.css` is pulled in by a bare import in `browser/diagram-widget.js`, and a CSS module exports nothing, so under a blanket `false` a bundler drops the import as unused and the diagram loading overlay renders unstyled. Nothing fails at build time. The glob rather than the importing module, so a second stylesheet is covered without another edit; the widget itself is reached through its exported class and needs no flag."
}
