{"_id":"@hydranium/core","_rev":"105-7367d6d0a9d67697207253f051838a42","name":"@hydranium/core","dist-tags":{"latest":"1.0.0-next.185"},"versions":{"1.0.0-next.4":{"name":"@hydranium/core","version":"1.0.0-next.4","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.4","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"68b806d505fc7887e8412a004e29e009184b2f03","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.4.tgz","fileCount":868,"integrity":"sha512-xXcytdaJ32HqZLiDN+NWjtvSNI8sBhcwTIzBhiH7AtL4SF1P8NQtr2H6lNXcUecISRzXaPWCtousSwAQPJTV5w==","signatures":[{"sig":"MEYCIQDNJCRt6JhVWqa8aaCsE3H3SRWXzx5Z4btgEoc8xu8DIwIhAKs2W4BdSyEMzYr1qVkxtU0vEqFk/zS1TMSybIqoWt9Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3827548},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"1a9c19ae00d0cf51baf7e7c7265de5649dbd2201","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"mfleck","email":"mfleck@eclipsesource.com"},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.4","@hydranium/protocol":"1.0.0-next.4","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.4","@hydranium/protocol":"1.0.0-next.4","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.4_1788908667070_0.2825723690080355","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.5":{"name":"@hydranium/core","version":"1.0.0-next.5","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.5","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"4f24d38a20fd70299125c8170c12410f68f8a560","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.5.tgz","fileCount":868,"integrity":"sha512-BASmOyGKlYvBU68Lb5Xoydyabz3Gcao7gQeaSk/gRnIYZX469RPyxejZk/i/fZ+c0MRwHWfMdXLShrzuIbrFnA==","signatures":[{"sig":"MEUCIQDkyEu1gqrvRcP0DoqO8iqZJfJ7UsJc/Jw3tXv8r0WUzwIgN/ADfagzsqVGPx+4hsO1AcoF95TbNf1m+JfOaM1zyJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827548},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f5015cdb0f6c921eacbda8fb315f82ffcb02d809","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.5","@hydranium/protocol":"1.0.0-next.5","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.5","@hydranium/protocol":"1.0.0-next.5","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.5_1788911135606_0.8592210356014525","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.6":{"name":"@hydranium/core","version":"1.0.0-next.6","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.6","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"e4a7f41c29964ba88409aa806f241c7738d8fc98","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.6.tgz","fileCount":868,"integrity":"sha512-b+IXyIxkQDqpYlGRI4vPbGXSyS/MAJ9IJEHtHr1w+wayr2U4+KvxFicMM4Kh37Hmt/Pv1FoTT8TndOyBuKjp/A==","signatures":[{"sig":"MEYCIQDERm6O4vgpyrOBxT7rdnMkgfVKdDStZf+Eq1IkhKuA4QIhALlL5hErreP2uLpHtIWNPv6cO1wZCZGDsSCuhV9tgzux","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827548},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"ff6cf31235dd051e35a6fed0799cac3b71a26192","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.6","@hydranium/protocol":"1.0.0-next.6","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.6","@hydranium/protocol":"1.0.0-next.6","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.6_1788945379239_0.6890916511119562","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.7":{"name":"@hydranium/core","version":"1.0.0-next.7","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.7","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"1c9144db32014d91c16f078d17af3d8b7da9f1ab","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.7.tgz","fileCount":868,"integrity":"sha512-nqkR2nuarchWtj8LTHBV1Dyi5u6ieT3Fvq/lruUKhumL0bpTDSdmpFCNBNfmRZETZClHbSq3J8vN2JWarMSjlQ==","signatures":[{"sig":"MEUCIGe0MWg/t5DR6oAfeFB5eXU3MYxMpqLjAOwN3JAMoOrLAiEAoTqQuE/aO/8CgjwWYf9xthE2CJ/sFvLWknrsUZqigBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827548},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"d03f6f4fc7bb5b114df9eb43fe8a4fd260fa225e","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.7","@hydranium/protocol":"1.0.0-next.7","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.7","@hydranium/protocol":"1.0.0-next.7","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.7_1788953510788_0.415722604194253","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.8":{"name":"@hydranium/core","version":"1.0.0-next.8","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.8","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"d0057d051a9a9840b5057a55cd67513769d477e0","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.8.tgz","fileCount":868,"integrity":"sha512-L/4Zu/Kk7PI5D5rtVqXle3DFLCLtxw9YLvQs4jrVgyFpIVOK4hFuABnfjOt9NoBrBqmdbpKJJR3/okfghr1iFw==","signatures":[{"sig":"MEYCIQCa7+Hs+WxN0aGLFhbZKma4i3E3OcCVBOKfQRyhwNduFwIhAL2vishHAcSZAD+SLds8KZIkYyy4aOEKXLS8byE1K5kp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827548},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"9a14d2811974e7d8c0be2ae7694173eabe4c53cc","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.8","@hydranium/protocol":"1.0.0-next.8","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.8","@hydranium/protocol":"1.0.0-next.8","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.8_1788954001825_0.284648034324535","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.9":{"name":"@hydranium/core","version":"1.0.0-next.9","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.9","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"7fcdf5f347ba6cd498d6bde63765dfe0046d23f5","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.9.tgz","fileCount":868,"integrity":"sha512-I9vKnRgDU5Yo5IKdqmOH3gnOSm/UUnaTOYspWvuQNXR5Hpt1BTiepbQqV7J+BQNe9tBgkcR8YZp8LzUSJ+ywqQ==","signatures":[{"sig":"MEYCIQD/7rwmar8PMdGi4TUAQ/n0hkNYFJ8TYyyYomxFSjgFeAIhAMqjhGAC1uG9O0LxuHVtk8lLLbQTrzaWSS2dZOX26iNO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827548},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"5c4804b9a2b192c743997952bcd0c53efd740816","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.9","@hydranium/protocol":"1.0.0-next.9","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.9","@hydranium/protocol":"1.0.0-next.9","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.9_1788958082833_0.7039135817085305","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.10":{"name":"@hydranium/core","version":"1.0.0-next.10","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.10","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"f57baf6eb7eb56a176642f8a064bf55750b88b51","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.10.tgz","fileCount":868,"integrity":"sha512-msk4J4Pb26j9AUi0zQkEKI8zawUq3UoJOsvowcz25dT+fsF3uM3xSJfcbWP48WPi0/0rMcB8Wt6k2bgtnEhRTA==","signatures":[{"sig":"MEQCIC2PuNpd5fT1Lm1+xU2RkMM822MKKBgD7yOGvM6/xtFtAiAIit6WK28TOQC5TcKjUFl1/VOsOPwezYPZUBvXwcLVIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"df66e1a949244721ac48fd2ea072f7f2c89cf013","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.10","@hydranium/protocol":"1.0.0-next.10","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.10","@hydranium/protocol":"1.0.0-next.10","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.10_1788962816982_0.6657618959035405","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.11":{"name":"@hydranium/core","version":"1.0.0-next.11","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.11","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"f098274f0c90955442b12a9f7eb9a41aa5c55af3","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.11.tgz","fileCount":868,"integrity":"sha512-DLNOt7F2lxEqN3q/Gp7/egXvubE5eIee49guVypZbKCl0zEmBGerQeQ3je2T9DNk5bvRo8g1H8xurv3nPNDI/g==","signatures":[{"sig":"MEQCIEbncZsyjOcSJ9r40BKDNUcS8lt7yObp/rP5+DMsI+RTAiBM0JaKmc142b8Sc7Fmi++cz3/6r316tnJMMlowE3LFJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"a4732457347fc331a6f3bee38f8cb43051df499f","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.11","@hydranium/protocol":"1.0.0-next.11","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.11","@hydranium/protocol":"1.0.0-next.11","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.11_1788963485013_0.25850656774251735","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.12":{"name":"@hydranium/core","version":"1.0.0-next.12","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.12","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"d6cac8ad158a85e25213cb3e1f1c652046d17f97","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.12.tgz","fileCount":868,"integrity":"sha512-B5jH+i9GVENeqjBjVcPbOyQ2PRIsVJEdtVVJVFkEkbd8d9UCheW1TbBqVGRhlmkrZcmvh9jsHyFGXWc5j6B1GA==","signatures":[{"sig":"MEUCIQDln4amxJFqnCLaq4dBqJpWFjZ7U5EF2zM3M59tpvhV6AIgS0IiojLx0hZhS8xqolyKoRFg5zFURFDTocSu94PPIJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"ab9568ab15443597620edc79187d92f0ea68354f","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.12","@hydranium/protocol":"1.0.0-next.12","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.12","@hydranium/protocol":"1.0.0-next.12","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.12_1788969556939_0.764485876569722","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.13":{"name":"@hydranium/core","version":"1.0.0-next.13","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.13","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"84177880d350464028acdf386730763243063076","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.13.tgz","fileCount":868,"integrity":"sha512-K6gSaIBajn5RSBrf6Lx03HXTt+riGnIZnvTrcw5aDuJeNYNLIvUfZGyyXsx14xpmPOJ+3GfUP/wcNz18N8rV/w==","signatures":[{"sig":"MEUCIQDpbJca9v4J20fKwyROanIcrUA4hrp423IMQuIedY47YQIgeR9MAEzCx2HvkOGs0a26boJq6Cmn6OCKE79sTGc0zLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"7f5d29a1ace1f03b0a3f0f7278182beb408048bb","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.13","@hydranium/protocol":"1.0.0-next.13","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.13","@hydranium/protocol":"1.0.0-next.13","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.13_1789027777867_0.7545966611518842","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.14":{"name":"@hydranium/core","version":"1.0.0-next.14","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.14","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"1552ac70366393e0f534f1b695451c98bbab77d0","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.14.tgz","fileCount":868,"integrity":"sha512-nq2F4Z1cyYFKmtx5aeKUuyde/a6uHU3MuzP41ArA1bwntznWvc29oXP33xwbj8oDvot1vea+GzO8CWIRYE9AqQ==","signatures":[{"sig":"MEUCIHme+sUDCqav97QhVT5TTR4PDkZSBwH5+bsmc/Kl1DhuAiEAy9ulvRgna5QKsBmba23oklRKb53wmrDGNt2TuMOSmnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"ceb4d6188cc57a327ade5469af6a220bc5b5bf0c","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.14","@hydranium/protocol":"1.0.0-next.14","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.14","@hydranium/protocol":"1.0.0-next.14","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.14_1789032183462_0.49556582415840644","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.15":{"name":"@hydranium/core","version":"1.0.0-next.15","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.15","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"bdec124d806d0a5f3be160c8b387ee332b6a3db1","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.15.tgz","fileCount":868,"integrity":"sha512-DKsbEkmZFe2MmseogGMh2+IrEqqEmd2D5KH3Z4OsRF2eyNp0q/kpoYWsHw9xpICO3VsXeQ1zsm3z894tHQPjqw==","signatures":[{"sig":"MEUCIE+kSPzYvzrFuPy63g1HTXYwbOoCX4HaWcH/4BIBx95kAiEAqQ03WSMYz/i1d5g9jchGVg9hj60lkOUn7kNvBlVWU+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"65f465437d22972c3a50c6be1419e791a59140ac","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.15","@hydranium/protocol":"1.0.0-next.15","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.15","@hydranium/protocol":"1.0.0-next.15","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.15_1789032727310_0.5020129946970251","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.16":{"name":"@hydranium/core","version":"1.0.0-next.16","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.16","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"22d0c5e22343cc5e01dae58fcbc4b18e9405c1e1","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.16.tgz","fileCount":868,"integrity":"sha512-xaBv5TdyodRdpuNP7F4N4NmFVWPqJgd6htQlZNFveOfhZArhurYxid9p8XtsMy/Yz7vvyBJGPxmK3m451a5ZkA==","signatures":[{"sig":"MEQCIBt3guimQmwAnw6QcGuSw/oHXYB3jZnEi7y0CrbxS4VSAiB7MaXfUhBNZoWidmwdb9z+p6Zml9pE6BnMEwdQweghFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"c1f791ba46d6e8c824a20b3f04a1ea065d97293d","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.16","@hydranium/protocol":"1.0.0-next.16","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.16","@hydranium/protocol":"1.0.0-next.16","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.16_1789033814374_0.7760448036845133","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.17":{"name":"@hydranium/core","version":"1.0.0-next.17","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.17","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"431796484be4eba19cc5b43116a8a47fab0f78f3","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.17.tgz","fileCount":868,"integrity":"sha512-iwATsU0lUH7KJ2X5+7zTF4K1FdTKYZMAZH1jMApGdE4pvsATWAGvI9VrFzjUfLpfy7EqluDpoZJz5KFIJGl8sQ==","signatures":[{"sig":"MEQCICyrKewMiJhD0oGe33xsCkQi6c3WN87koMAelKqFK6msAiB45+m+0boZ2EX8EVW6nP6XEQBKAHGLV1QAKActApX51Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"6d4d2f2deccdbbc13eb11ff633a3887e6d977a72","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.17","@hydranium/protocol":"1.0.0-next.17","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.17","@hydranium/protocol":"1.0.0-next.17","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.17_1789037146337_0.4185030591921637","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.18":{"name":"@hydranium/core","version":"1.0.0-next.18","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.18","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"3f295b175330970349d55bc79a0606d045c25740","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.18.tgz","fileCount":868,"integrity":"sha512-l3O02NRIJpmLDm9Ndk5Kf7Em3U9LnIUQgWbXjDnEWbBh+iHGo/SZu0FC82XTwc604+pVt2YJEua4621NF1k6zg==","signatures":[{"sig":"MEUCIHq1TYieFMI3RVT0NDXNYWBgwtV+xuFs3JCo3GuEbRAZAiEAoYrUiwcNoE/ixFMEPk95Zekv3XP90BNiXely9lQZiHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"45f73468e05c55b570b298470deeac748abcdb4d","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.18","@hydranium/protocol":"1.0.0-next.18","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.18","@hydranium/protocol":"1.0.0-next.18","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.18_1789038250294_0.17617591252506148","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.19":{"name":"@hydranium/core","version":"1.0.0-next.19","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.19","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"09d560e7e2a4906f6b4fb2d933b19b8fcc4f78bf","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.19.tgz","fileCount":868,"integrity":"sha512-7xlfZKFPOe0zelrBoBaO/CkMh/XxrErvVmab2GmxHpkQysJKQNoLV1neJYNn9A+l74WvOYVZHSzI4LskAXbUAQ==","signatures":[{"sig":"MEUCIQCt4VdCfA3qt7giQ6kXMHbbKTYoZa14yXRorPavwtTMJQIgLnQQwvkSfCaqN1jZa5cvA3Jwfs63d5Mx8qn4L2XRpic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3827553},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"cfb68570ae14c4b434bd31a4c5f8f59d007c92c6","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.19","@hydranium/protocol":"1.0.0-next.19","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"^8.0.0 || ^9.0.0","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.19","@hydranium/protocol":"1.0.0-next.19","vscode-languageserver":"^9.0.0 || ^10.0.0","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.12"},"peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.19_1789046961734_0.9093989502059943","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.22":{"name":"@hydranium/core","version":"1.0.0-next.22","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.22","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"7b9e730a9d175f836dbb809a30de397ff988f1ea","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.22.tgz","fileCount":868,"integrity":"sha512-MNlAkHDAUWnUwv1GCvgXae9m1CO/fyyukCHsNGEjFsz1GhvdSBeZVKCMx9bMNjJD5og2U0qulXcHQ6cwCSwTPA==","signatures":[{"sig":"MEUCIFdmYI+VjePkprjqLmm9nFsXmpzhg8mDONYQxn3l6Gs4AiEAqJlhDHlnph8sFyLrTvrK8yWjdnE8UsuRtQdsa+3XL4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3829394},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"4760e9872df915a5ff865eefe8d7d755bd652edd","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.22","@hydranium/protocol":"1.0.0-next.22","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.22","@hydranium/protocol":"1.0.0-next.22","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.22_1789071959330_0.15747320019719235","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.23":{"name":"@hydranium/core","version":"1.0.0-next.23","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.23","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"6e07187e4c383d82de24b93d3df0bfd84830338a","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.23.tgz","fileCount":868,"integrity":"sha512-+0FtQjSW4RCRUJXTU3+eh+jhvyD5XUXO0+sa9oIV2p6zRuUFxEmy0oDYMKhkEFSwuPbcCBvTY744k+MjzTEOJA==","signatures":[{"sig":"MEYCIQDngBga14GE9GBp+9JKZQhrv8NXi6LcrOswneCM1QN+3QIhAN2zVrAGViGKgdlaBDAzAuS3Aet94vhnqEDv+OfsqTFq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3829394},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"68adb62594d9eb65eb8b75d0ebe326a48f75b56f","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.23","@hydranium/protocol":"1.0.0-next.23","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.23","@hydranium/protocol":"1.0.0-next.23","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.23_1789073173729_0.9731176575914542","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.24":{"name":"@hydranium/core","version":"1.0.0-next.24","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.24","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"dd0c2100f4d66869219d0ee407a8bf425a368687","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.24.tgz","fileCount":873,"integrity":"sha512-iT7ddbFN6yJ6PnK93Em8zzxyyy0AOckeiMC8n6loS0QJdp5x6EMDYYEST7TyslkevrsGl7DGc7wAWuhj9axr2w==","signatures":[{"sig":"MEUCIQC6wzl5aSUljlbnze1bZQidShvs3i3Ac5gL365NvujPZQIgcHv2JSXD4nkdsNd1fh9zpoBn/BroCMm1XvO9WHHi1Uk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3885796},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f15d0358de98a5c446955533021308196bf98b9b","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.24","@hydranium/protocol":"1.0.0-next.24","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.24","@hydranium/protocol":"1.0.0-next.24","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.24_1789074031867_0.9334840860236644","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.25":{"name":"@hydranium/core","version":"1.0.0-next.25","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.25","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"c905befd0619853c3fc989f3de8b70efe36d69c7","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.25.tgz","fileCount":873,"integrity":"sha512-dpez42s3PgrgMiKV0HqXNu5rc7ddDRhP8cpcMli5IPHwkFf8g1qIinF2nevm1Zpr30UjvMAWoLF9Y6/WkFzQ7g==","signatures":[{"sig":"MEQCIFjrO5Pxg63Gd0oJ1TXcIGoZ8RNtt9CppqM4/iEql6uQAiBF7Y5HAWNHSLDkHNfWtpW7rjURDW3ZRynbFNIHprFA/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3885796},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"b69d464b0c1b93346cd29f9ca4f1cf8f1e8cf289","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.25","@hydranium/protocol":"1.0.0-next.25","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.25","@hydranium/protocol":"1.0.0-next.25","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.25_1789075107732_0.5424281947587468","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.27":{"name":"@hydranium/core","version":"1.0.0-next.27","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.27","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"c7c6e0b0f28ac2f80c389b3c25b00a73d63e89d4","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.27.tgz","fileCount":883,"integrity":"sha512-KtvcxC05/39rZ9YOip+Chi36H8BtgNiWLthSdKN5fV0JRBSF/9iTTJZ9mLnG0ZzzxPR7qQZX9/mkOR8WFz8m9Q==","signatures":[{"sig":"MEQCIA8lntsIDinRqPUZbIOdqekpEEfoWJgJS7jgZOushgFtAiBK/n+BjE89kHP9sMxUnVIaSJB25XtW54qV3yn1CjBlzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3905895},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f0ad5bdc8d848ff48a6c0fe2afa6f8400cd96f9f","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.27","@hydranium/protocol":"1.0.0-next.27","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.27","@hydranium/protocol":"1.0.0-next.27","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.27_1789076393056_0.3297017189115179","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.28":{"name":"@hydranium/core","version":"1.0.0-next.28","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.28","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"106534c8d100efcac0fcafb2243e867b0fa6c195","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.28.tgz","fileCount":883,"integrity":"sha512-0aF0k88PSiNCtmxRYYzFCnHY9Pg+3ovKBHA/yC1JDGfGkzD3bA+6P0HS2d8z8SUTGtM4SijV6jQO/7ebIbTtLQ==","signatures":[{"sig":"MEUCIQDuYy6bLBBbmwVYrkfjxKWqOr+P4JHQ09Eb+y00WXj9twIgF3fHVNa0xl+AcVrZXgopguCxfH3QfAyNkpb2t5YGh+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3911484},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"206aa8844f1a6c34fb2b2439948828b35c8619df","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.28","@hydranium/protocol":"1.0.0-next.28","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.28","@hydranium/protocol":"1.0.0-next.28","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.28_1789077281212_0.23841379528147177","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.29":{"name":"@hydranium/core","version":"1.0.0-next.29","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.29","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"3c7d41c1a6e5aeea6d8bf9cee191b419a45a723c","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.29.tgz","fileCount":883,"integrity":"sha512-VEDQDeFjngOVuTaXC1PIn7lEprkeUskvsw27jSHrpLhYkyCOVq+An/nFbUYvfyUueF2e2YZG4HUN3J106t95Gg==","signatures":[{"sig":"MEYCIQDYtKxsgRXnG8vthZ6VX4i15IVvMAGrUCzA/hJjL1VBkwIhAJP8uh1SdXNF/ImSTzkKoKjXVxVMdbCefG1T6Tcdku4f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3930369},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"5d176ee3a002deede9bb8a02e179afb865fb8f41","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.29","@hydranium/protocol":"1.0.0-next.29","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.29","@hydranium/protocol":"1.0.0-next.29","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.29_1789079901576_0.11983227080888503","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.30":{"name":"@hydranium/core","version":"1.0.0-next.30","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.30","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"bcdd762f38c15059dc12b00e18373dda9329beb2","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.30.tgz","fileCount":883,"integrity":"sha512-3Th5+ccKxYbt+7hAJfOLZsvCR4ENVeNHKohtQ5mO9yBt8Z4nGvaiVGhM2EIe1VXck8scNI0b8lJjoN2j5a2UnA==","signatures":[{"sig":"MEQCIG96syD5f+aX1vdhHP9B/K0g4mZvEzn3/wVlCK8Vn6dbAiAQdaJEKYC1Fev374UbTJtyt5c2b3Apre00MIt5Fvrn4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3930369},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"3144b5a64521d2f949edd8796430813749fe4b55","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.30","@hydranium/protocol":"1.0.0-next.30","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.30","@hydranium/protocol":"1.0.0-next.30","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.30_1789080782852_0.056069454801279894","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.31":{"name":"@hydranium/core","version":"1.0.0-next.31","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.31","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"0ec1a0489901994189290b724d517197af2cb527","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.31.tgz","fileCount":883,"integrity":"sha512-pscPa2B7nGOiLdlvKOC3JKULhLSvFlupBpd3TRPbwQmB3egJm8dgdwuFoo/YPR07J27zkdkkwF2259EHiuJzKw==","signatures":[{"sig":"MEUCIQCJeA1HLkln+khFwKw87G1gladUzFCa86T1jgOBJmD1agIgFYATE+YrgwP7la7qPu64bkOfJJ0zoTkIrvyVeo7RHt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3939883},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"8e6c8c3616f7704c9fa715844ec72402a12fbe5d","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.31","@hydranium/protocol":"1.0.0-next.31","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.31","@hydranium/protocol":"1.0.0-next.31","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.31_1789081762797_0.9252328685642879","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.32":{"name":"@hydranium/core","version":"1.0.0-next.32","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.32","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"35ab680f841eae5c569409753e9d89773c545070","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.32.tgz","fileCount":898,"integrity":"sha512-/6vUcsjTKr4kS+zxEft6s1Ax4ycp/UXZh7oPz9GXNQ/Zp67bVICZYuAYAa03NlMPpFsTOXdozTiIYYyLba8cTw==","signatures":[{"sig":"MEUCIQCs1DdhAb9xAZwfTDOANi/zUuB+4YXaYy6pWrvu7fFCegIgPxD6+QSnip1rkbVKss8el9MWVowTiifp29xKt1l+7j8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4037401},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"700db3a0b4b65b843ec58b627d3c97f466fd9177","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.32","@hydranium/protocol":"1.0.0-next.32","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.32","@hydranium/protocol":"1.0.0-next.32","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.32_1789082725117_0.6843953894611112","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.33":{"name":"@hydranium/core","version":"1.0.0-next.33","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.33","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"8c2bf718ad413f90df587cd7da5f5b295d4c1bf7","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.33.tgz","fileCount":903,"integrity":"sha512-1QPdqqOe/lIKD+OYwz5/z8Pi3h6CmbOL5PQXNAM2auxktobFNpIY/GYVlGw5oxCNf5VgtoXKXs8AIiuE9wqvPw==","signatures":[{"sig":"MEQCIHxX/w32tmFc3/lLWD/6vCD4Xo0NqeknQ1JTDhlG+sdzAiAKbRjmaePa1KCFA9yP0/cMPGe4HpM0GkKWM5bunQgiLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4075039},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"bf49242998f9f506ce89544d21740841e1f85d02","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.33","@hydranium/protocol":"1.0.0-next.33","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.33","@hydranium/protocol":"1.0.0-next.33","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.33_1789084271762_0.0006103634714653694","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.34":{"name":"@hydranium/core","version":"1.0.0-next.34","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.34","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"7af49a306506bc59b2f0d2aac3d72baf28455919","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.34.tgz","fileCount":903,"integrity":"sha512-MfI5XOXKXgYk4V7S3tbj2WzdbZGVg20TN3G/WLLZo6aBg2/xE3h3jUq5xKXtyrmOtOp4Bf1W9RoxgRpEN9E0dw==","signatures":[{"sig":"MEQCIFw0QhVj815TiLrOY4B9x8P3ieFbP2LAj5/VVuH01GePAiBFQyvK4Yv/Sznd95HwrKTajCiWSKd/4wnBr1LZA7U6Qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4075039},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"ef11fbc473c423b233f3b84b1fd895c707d435e5","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.34","@hydranium/protocol":"1.0.0-next.34","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.34","@hydranium/protocol":"1.0.0-next.34","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.34_1789084701347_0.5664671748116827","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.35":{"name":"@hydranium/core","version":"1.0.0-next.35","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.35","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"0bb6ab09d76309443603115091655d0bca466402","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.35.tgz","fileCount":903,"integrity":"sha512-qBxdDjMIBK5svV6X6f1yofcSSfcylKBECGNs8fSK3g1D2iNHVGMSW+w9e+koXcNoQ3nDyK68Jc02T5HXyPeAlw==","signatures":[{"sig":"MEQCIDRy/6I+7w4aDRsU0xBTdnmdR0Roj7QOgiND/NJ/o+UvAiArDULjqjYtt6mwZjo7H1rtqZrH5Sb5wPxp4BaGAhkokQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4075039},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"a593818fcf7c415740029d85a40c5fddc0d6d252","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.35","@hydranium/protocol":"1.0.0-next.35","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.35","@hydranium/protocol":"1.0.0-next.35","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.35_1789110784672_0.17706019148484775","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.36":{"name":"@hydranium/core","version":"1.0.0-next.36","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.36","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"40521a07d92bca34b495a7da3fd7377dedf5d361","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.36.tgz","fileCount":903,"integrity":"sha512-sQn+9rVMOBwaw13ncxN2WHE5KkA2Y8l6Ovsb/e8oNlejxOJkKYwHClJZp2RJ3rR+/3joej1jTIhKw9FX4kqqdA==","signatures":[{"sig":"MEUCIHIoO7m6g9vNgD+wylTxQYDxXVwi+DtCQvihZYp1npwnAiEA6czRYifCdsGHottYyzXZWELvBJUzEhp5/F7ntCfMIDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4075039},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"ecd8fd559bb737ef531c1ebb908b4a00012e6480","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.36","@hydranium/protocol":"1.0.0-next.36","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.36","@hydranium/protocol":"1.0.0-next.36","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.36_1789111482484_0.6729058285055207","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.37":{"name":"@hydranium/core","version":"1.0.0-next.37","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.37","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"445da94699ba33b864e58875c2d9f8070e20ce77","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.37.tgz","fileCount":903,"integrity":"sha512-z6j8yVS1712alLa2EFXlzTtEprlZ30GDMMZqOZUV5XJrPqisEnwvDeG/WNXt5/1BupqsDYcZMDp7hrEMXvmeSQ==","signatures":[{"sig":"MEYCIQD8PhwehrUFi/e3d2BTcCP+LybbDo6FZ1Et9ox/1mnA9QIhAMagthrM30yF2jLPFpAMWNIYMb1b/5TDyqJlI5vVUjhi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4105168},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"71281468e9eea70a91d68418d466b2c2f9b95e61","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.37","@hydranium/protocol":"1.0.0-next.37","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.37","@hydranium/protocol":"1.0.0-next.37","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.37_1789111914064_0.23510426543603313","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.38":{"name":"@hydranium/core","version":"1.0.0-next.38","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.38","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"2963768887af506849dc44f45f353ad0223f8fab","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.38.tgz","fileCount":903,"integrity":"sha512-zvUzECswdk5ph84UBtg7nJy66u9fzf7pQWZyxDksuq1G7z/c8/SqWEhOLYB60Okisf+3Uhz0TUaVSAYuThktUA==","signatures":[{"sig":"MEYCIQDYBULZenCza5lKPxnIWOToX7kC3ptNjch1v73ysRdgWwIhAIT11/SP3b2IV4BO/N8932zdV7JkofMwCfvW0M+7AQx7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4114509},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0b55576ebe72990a6f20c437cb4e0206d0da7265","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.38","@hydranium/protocol":"1.0.0-next.38","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.38","@hydranium/protocol":"1.0.0-next.38","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.38_1789112560538_0.976882691712015","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.39":{"name":"@hydranium/core","version":"1.0.0-next.39","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.39","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"c8f9ebcda05d609b3aefd33c38051bda985a225e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.39.tgz","fileCount":903,"integrity":"sha512-LX8vFfKR8QVcKe9hAwbAtmK1cQSapFapV8suIHBpukmbK5X/NKfWar7jXaz1Oxt8vLHILIvEpomMc/cqZr/mog==","signatures":[{"sig":"MEUCIQCyVIqh36JAnhkJYKXRfoMlrFJDzJmQohb0E1OXa8/0xgIgRKVD9FKbyo3clyBpncmVdsMPWA6K3QJrtLPDzcPLCFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4128754},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"85360c20902dea3a7e75a1816cb2b66bccc4a8b8","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.39","@hydranium/protocol":"1.0.0-next.39","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.39","@hydranium/protocol":"1.0.0-next.39","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.39_1789113569254_0.5314302314933075","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.40":{"name":"@hydranium/core","version":"1.0.0-next.40","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.40","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"7a92d276e7c4103185cf4bd091bac077d165b62a","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.40.tgz","fileCount":908,"integrity":"sha512-y3BIOubNYJWbdUGM913XNgkpUe76siNnrCbUsi5kXHtki0vqULKwAqwAAyYHUmUyGZQ1pHBs0omFc3r6wXbTfQ==","signatures":[{"sig":"MEYCIQCb2uVtLlRxiyxYCftXnHwRcbUORAvagiNmxokmHwk2qgIhAOQdXpMBVfccFSZdDeNLaPGzP99vBO9vh3+moDQmoP+J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4135654},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"bc342467f388397ab8033e70fbb8af13451a04a9","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.40","@hydranium/protocol":"1.0.0-next.40","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.40","@hydranium/protocol":"1.0.0-next.40","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.40_1789116566357_0.9491257211589306","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.42":{"name":"@hydranium/core","version":"1.0.0-next.42","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.42","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"ad97dc37b7cacb09283621cbd0512b68e0cbe859","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.42.tgz","fileCount":908,"integrity":"sha512-umk7+6lqksxDb7FBeEHcXI8q4/M1HSk8guzl7Gk7OkLEDwKLORr6k9UzGY6mkEloCNQMaX9dF44lqb7+HAl9Qg==","signatures":[{"sig":"MEUCIQCchhNZrzz1mlKrHzI3Y+L7ssKuVnWBxhlNb8D/KobjfQIgabQ4QCXsVWB5AN5zuO9fZ4S9b0OFMIdUOxQARTHr92M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4135654},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"1c0395351d8cf4bca5442cce3721b8fa4d7f5177","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.42","@hydranium/protocol":"1.0.0-next.42","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.42","@hydranium/protocol":"1.0.0-next.42","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.42_1789123427480_0.7862876837511257","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.44":{"name":"@hydranium/core","version":"1.0.0-next.44","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.44","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"16df2e61a172682e2a78704938cf46dba81d86e1","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.44.tgz","fileCount":908,"integrity":"sha512-3cI5zTcqtclzWAymdcNzeTGQ651SR3UpeEhqQkqQfcOOYuU4/f0GuCBoGI2gymCnSrjP3jKI4HZDZEi0zWEnUw==","signatures":[{"sig":"MEYCIQDKkREDtQpNZqC90Skak5c9Pd3FHImlGy76UeTo2MgzBwIhAJfiHzNT6Uud0FZgsw3ZDs0/cscpedKxLf2KQe0Fw9YY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4135654},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"d422b97846df49ade27fc9f59c971520dde807fc","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.44","@hydranium/protocol":"1.0.0-next.44","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.44","@hydranium/protocol":"1.0.0-next.44","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.44_1789127854031_0.9300047967285778","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.45":{"name":"@hydranium/core","version":"1.0.0-next.45","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.45","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"4b7ef68ea5a1634cba5d876270cea7f969484477","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.45.tgz","fileCount":908,"integrity":"sha512-ku5SM0+UQSg9tmv1nEXA0o1jU1pMVYGrft40ns/W5a5ESG6ztwqyVREGiOspld1KvZvGtRdp5NuPWG6O4OH3dg==","signatures":[{"sig":"MEUCIQCA7IDGkbLI8hSslgUzjr3TwkjJyuVhKH47Aj7UKzkmAQIgaUxXtnISJbquSgYaWxjsMGQptXCanMjrSQrMZygv26k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4135654},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0c2e2da8f3afba96ba16fc3a98115b3cf5f1e0d5","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.45","@hydranium/protocol":"1.0.0-next.45","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.45","@hydranium/protocol":"1.0.0-next.45","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.45_1789129999131_0.5686642138807223","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.46":{"name":"@hydranium/core","version":"1.0.0-next.46","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.46","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"a9f76dabbb6cae5db00a2c9aa445e8d0b2642de4","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.46.tgz","fileCount":908,"integrity":"sha512-50nPj+D5EpivDHBnkC+qWgipQpDVFqrXDaoYjNk1tHe7J6JnSvo3Og8PkWCi8ICp/emJGRHuULcRboDElsUb8w==","signatures":[{"sig":"MEUCIQCqwK2VHkoxoGrLcrWXqPwsh1J8Ke303rK71Q5Lg4E6ygIgBVXSktXIb2/T7MvpcR9Vlo+HBioThLF76aYpF0mQ5N8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4139618},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"df83b12d3657272e7bd994bfeb01953c9b30a8ec","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.46","@hydranium/protocol":"1.0.0-next.46","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.46","@hydranium/protocol":"1.0.0-next.46","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.46_1789131825210_0.638080559514538","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.49":{"name":"@hydranium/core","version":"1.0.0-next.49","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.49","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"8252f838d7e49a46b469ab5c668b4efde8d6a20a","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.49.tgz","fileCount":908,"integrity":"sha512-nAj4fr0y/KsOJ4qhhqqok/U4Bi6Aimi1qgbWUCmORnZcWUuDoVf7J0ZUPCqdDKi35zTRakUwLjY9jpHebP6AsA==","signatures":[{"sig":"MEUCIB6HX+DoDd6j9JHVRs216nFwGKBpnX3RhiCOE6q0vxt5AiEApsoUGV/89A+JP6loEIWxkCVnM7JRwK8VuznzvgLNAgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCjxwjI4ar09UXbEWlIsiRRPS6CvApRlXb/b5gz9N0zZAIhAMFph/LbR+xH0FnuseoeyPwHdW+HkV5KD9MOWIsoQGBA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4139618},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"b08c1dab6484db2bbbe43c3e07db79155901e217","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.49","@hydranium/protocol":"1.0.0-next.49","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.49","@hydranium/protocol":"1.0.0-next.49","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.49_1789473516706_0.524930314661094","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.50":{"name":"@hydranium/core","version":"1.0.0-next.50","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.50","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"90a4d51f16bdfcece6c456b45bcb98f0677ccfc7","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.50.tgz","fileCount":908,"integrity":"sha512-8Ss4hGZyc5m47aamDMsHHfwAFk9SGgwVP0eww90h0JIfjbfNZrTiYYVzHjr5buK1MKXh8v4HyPjQ5uWL7ROfVQ==","signatures":[{"sig":"MEUCIQCn959LTvcd8xUTpJBBVdSV8FwUphYdQvmtBk16VwXZcgIgOjQEiHL0mhPj65KmQmNX7TDJw1gOBjdGnlQqvwXUKF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDH9jKQX2wD39h93g00LtYPEAE0BLmJCU5lglKJ82LOdgIhAPwvm9RT+Iak+wMlsiy2IO58vPEo95B4fICDXFZUzXd8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4139566},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"2e9b935ebe05c3bfb550a411f09668c28903c603","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.50","@hydranium/protocol":"1.0.0-next.50","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.50","@hydranium/protocol":"1.0.0-next.50","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.50_1789475815335_0.6133897356147793","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.51":{"name":"@hydranium/core","version":"1.0.0-next.51","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.51","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"fc7fa27a015d474eb7cf925230f4b4c93570445e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.51.tgz","fileCount":908,"integrity":"sha512-dkPrVJiPz2i9I+MT7rRNvXTJyRuGjdCgZBuXFzmcFyVh3MSSnYsRRaopK0o+HYbkKmvAndVLmGAX7fDKnlxOlw==","signatures":[{"sig":"MEQCIFd3zR9TNIvC3Z9R+IFyvK4g0AQsWbpHH0aYuukzNC+NAiAXETuFKFmLDB/n+1Aw2l/TcT8ZYzw+gVazsQoHd9rCcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICSEDjPh9V0WB8u/j4LVYW/+9fC3Wm+eWQsqn3lSJXUPAiAf0UuP96hXkdLnmXuRjQUqGJY8GXsMTPGqySEyYFaigw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4139566},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"5f38a70ec703c96b9211f2632ef9c64b4d35a0e2","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.51","@hydranium/protocol":"1.0.0-next.51","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.51","@hydranium/protocol":"1.0.0-next.51","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.51_1789476996287_0.43004565794050853","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.52":{"name":"@hydranium/core","version":"1.0.0-next.52","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.52","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"aa15170122f9209fe2c07e48108aa5596c4eefb0","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.52.tgz","fileCount":913,"integrity":"sha512-l6quCxyBy7q+Q6y9bxa3jyS2eJs1f8xQGsJQGFgFnOwhVNFRniFFUtQ9FiTUIwo7RZ+59PMU2AqlcC3jtNKLsw==","signatures":[{"sig":"MEUCIG1I/6CUi04Bqm1U3HNPGAnBi4Qo/jsLTSZz/kz2lqKaAiEAjzf8EX0m/Re5tgCVmZ0WgkHlh/Gi0dURLtzH/EVjFrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEKOaF7Nzd3i1ZCkT0J5e+PfzuIAeh1sjURR/MvrMoYmAiEAwkeE2euvarDofWIYZH50KjOT2xmjBhFccEiLE3wjawA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4165897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"de17637218123da3f6f1393b3f3303178fabf878","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.52","@hydranium/protocol":"1.0.0-next.52","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.52","@hydranium/protocol":"1.0.0-next.52","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.52_1789484194031_0.5124808202480022","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.55":{"name":"@hydranium/core","version":"1.0.0-next.55","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.55","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"14690e470128f0ee727f7acba4b6988d8184c085","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.55.tgz","fileCount":918,"integrity":"sha512-eyz776BdlP1Es+GT6khm7oR+iXjcnKICmilaNia7KjFbSKavj/xw5T8sfWumM+DOKxovGLwKwP06uQ2uwukcVA==","signatures":[{"sig":"MEUCIQDvuhfNzRkQQHGINby6qlKn0ymt7iCHX2FjtcLrftxX9gIgOWahiLbLN3gqMO3Qf79lU5BKNeCz9hz5u6yoOUru8DE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDz8Zi0dlfjxD4O0MmUEtC9ePzLy/xdP4vNjI3peyxWXAIhALpdRpSJBSxR/zTK5VnW9DO8ufjXEOeM2KTrceg82o0t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4186200},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"52533e6c56b9f7c07bc3e90ed6a9fa00dcc17b65","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.55","@hydranium/protocol":"1.0.0-next.55","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.55","@hydranium/protocol":"1.0.0-next.55","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.55_1789563371978_0.36919992894877574","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.57":{"name":"@hydranium/core","version":"1.0.0-next.57","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.57","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"0a60ffc7bce1314d70bd6317ee8b40da88d7e974","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.57.tgz","fileCount":918,"integrity":"sha512-SUZtIxUFmzOPaOrQW97ZxF7fioxu8971wohSW5MQP7q4qH2MrusGZ6QJtiuXFWJOmnKw+jMNwXgLZ/Ig5pBIqg==","signatures":[{"sig":"MEUCIBOU6vvsElGcXWqsaLiB9GZj4tQ4EPuMuddB/RSQ3PgXAiEAwHwfBG6JTSKpOqQphngj4hkcZenpX4RJgK3Eh9DyUsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCq/oo+JvL4+bqxvQ1hWs1WWKEaqcIVKEb4h9y5EqozKAIgCWKGBgwbKcgCfBiOoC+7dDS12UjQqBpUPiAs2Els09k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.57","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4186200},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"8e614f55b457c6f8a5ba228ac58d24f210126eaf","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.57","@hydranium/protocol":"1.0.0-next.57","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.57","@hydranium/protocol":"1.0.0-next.57","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.57_1789572567584_0.8522227840382921","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.58":{"name":"@hydranium/core","version":"1.0.0-next.58","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.58","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"be87695b8d300d7d572b76220cc89e6d2874d117","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.58.tgz","fileCount":918,"integrity":"sha512-2S53JI2F8EszWTNMOeXLREeEVlBz6Gp4QqAovPbi+2u6NZQATomcNN7jd9GWjbPvDpQ2nV+JRgSy/JiZSGn1iw==","signatures":[{"sig":"MEUCIQDDJrpCweNfdhJcVLv1r7EuVO2YKzfTUrz1qpBMtvtpVQIgA4P/NjkQ9J1EP3Nw/C1wJKhdOjtjqQhKAWwcplH498s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICyJcl/Jzpvq0duS92GH+SLB1xll2unXGyco2B3PhL1JAiAIxPFIhR5QA1yZ/lT4J8WjVdkuVXUxDcep833KtmgYwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4190650},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"e11d975dfe5c1946333588c85f2539b2ba0b8831","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.58","@hydranium/protocol":"1.0.0-next.58","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.58","@hydranium/protocol":"1.0.0-next.58","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.58_1789573080111_0.0034056259195498484","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.60":{"name":"@hydranium/core","version":"1.0.0-next.60","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.60","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"3373cdc109da48162d09f311bda90150a680a0ab","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.60.tgz","fileCount":918,"integrity":"sha512-2V65nn56IVr90Ffmg50ER6DINTRRmNERjO4n76ZHt0Rn3vPRz+YbfbMlp5vCL7m6tiqoUojOrMkac8Nv5O/pxw==","signatures":[{"sig":"MEQCIAgQ1O0FNUrx3VpxgQZKVMDFNmaw734qB6E/vn0ESOo7AiBSmdgBUEtttIHp5HoOHTqWIz09I/+iH4V9pszAAKj0DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCg0kR+XX0BP/PD/lhhO/QAiHx9PW253j4fZzZmphaC/QIgGiGvd3xnAh2rwIz3ZZln0OIOcegjFRQTROlV3lkdQGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4196721},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0e89e5480ccac85e072121bcc4280e4f21b6e5f6","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.60","@hydranium/protocol":"1.0.0-next.60","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.60","@hydranium/protocol":"1.0.0-next.60","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.60_1789635001284_0.909208891222326","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.61":{"name":"@hydranium/core","version":"1.0.0-next.61","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.61","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"72ed4039b056c08b04120cda534a8a92981bf58e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.61.tgz","fileCount":918,"integrity":"sha512-g5uMlB/C+SfP98c4mfVB5VkX5FdVSnBGysQu90hhSCix6pc8aIo8ldhe5JzK6nWNibhd7V+sMlKzdQyJqQPpyQ==","signatures":[{"sig":"MEUCIQCPFevr1Ir4b42QoBew5v5Rup68x2uSywdSvXy8fz6AQAIgerwFASJukVwhw7A4XP75glaIU/uWpiwwHGLbYy/0+cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDWSTTARZeWG3VJH3qPbAtNSg2Por4u2+7hPd1ccyAQ5wIgf8CxhQvcQBBCHJ4eahiZ1WZCM1zKrYuXjvZrZjwwA88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4196721},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f2aa66b54903e3b3e4932430bdc99503f5ce36e6","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.61","@hydranium/protocol":"1.0.0-next.61","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.61","@hydranium/protocol":"1.0.0-next.61","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.61_1789643254554_0.43566684529196964","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.62":{"name":"@hydranium/core","version":"1.0.0-next.62","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.62","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"5c54899507b9c4899ae137e0f26dcc2e116e3607","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.62.tgz","fileCount":918,"integrity":"sha512-/1JQ1LXpnhJAwuO6S76d9jrGk9KrfhemmvDmZgNOp97gMbYq73R/tWNkgKKtInHwS0+7ZEcq3X2I1NeekDjrMQ==","signatures":[{"sig":"MEYCIQCg29IiLataRkETcmO/V1mNpztcaQgaDS3FjrqknYkhUQIhAIYuQEiDHv2EfUBpvAS0GhNyFFl7kSAcNWZ89f85lKu/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZ9na22NFEgJh4zCrxj+Fq5kaFMoIidSZF7/xHxP63ygIgLnf69R2/ZNciS51CS+247DDzpuIX0TobsR1VS8C8nrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4200480},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"6246734b049f5d6029ddc57bfda9ad0c234ce11e","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.62","@hydranium/protocol":"1.0.0-next.62","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.62","@hydranium/protocol":"1.0.0-next.62","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.62_1789651089302_0.04150761208089193","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.63":{"name":"@hydranium/core","version":"1.0.0-next.63","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.63","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"e3906efd5cf1fb8740055a8683a1f2b59ec23850","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.63.tgz","fileCount":918,"integrity":"sha512-KqExJAnV3akN6NekkuKzGce5QOVI4+fbx6S/8VIzxGB05KSZc2U9lUPzZn/s4ElAGkcFPXpNIiiYLsutCJ1ntQ==","signatures":[{"sig":"MEYCIQC7JBxJtETALhlozjMcqRjaJ/uOfCwJVJFx4pYlXxOTQAIhANnrd8NG/poKSazmVTEizDreT0SKGCCon4N+rnCFveqi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDENqo4Egsr75CmMH5vxQqap8V14dAwA2g8Y96GxxZM0AiEAhP7WHGnWWWBS6iY6RI04nb+kO+KIpRenr/dLnIyiBpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4199437},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"b5aabccfde4752da8e1efd4017b822eef531559d","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.63","@hydranium/protocol":"1.0.0-next.63","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.63","@hydranium/protocol":"1.0.0-next.63","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.63_1789651483064_0.9819074836847717","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.66":{"name":"@hydranium/core","version":"1.0.0-next.66","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.66","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"fc0b9f028b05b1d66786f6c9a3a04c1b1b3efebd","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.66.tgz","fileCount":918,"integrity":"sha512-+1YO9jN+9v+zplg/b/z4/x96AtgZ7vahYG8xLuC8BGM7mb307ntbgvJcvdcNogBZzTaVeZCGUVzpeFKc0jpjLQ==","signatures":[{"sig":"MEYCIQD9Ylm8VTxvVE862pltsPrrrDeRGQ59FIlwbiWjjDXG9QIhAOfAVirglPp/sisZMjvIVTCnMpXgIPQLwzFTym4UtC6N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDqoUDyf2mDbrz23ciac+RZvS/ObLOYoGMe9cMNnwBgHQIgMQQEuP4zJoBMrkQVdZ0FXsjUZxMl5NgtDuljV3+95ZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4197361},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"5f76b281e64b2afe365e29c49d7388f20a626482","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.66","@hydranium/protocol":"1.0.0-next.66","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.66","@hydranium/protocol":"1.0.0-next.66","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.66_1789680546328_0.7503195224416206","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.67":{"name":"@hydranium/core","version":"1.0.0-next.67","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.67","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"ed427b518956b31a4ef992582134a18809b30a3b","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.67.tgz","fileCount":918,"integrity":"sha512-OB7jSPZ7g05a+3Db4v9pQYhqNxn68Ou/4LBmgGsrgF6PTTaunS+/xJK+qZ70j3jR7boXDPBpm7aUakFHv6MiTg==","signatures":[{"sig":"MEUCIQDDjBV6C4TnkhKJ7nP5opNbIoSSZUQRuBXAepCjr+riHgIgIGDmjr/C0BnzF+UXv5lg7JeSDSnSiZD9J/k7eyaLL6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE9xsE0Vo+UyM4oiQjRfWMje2vlREoNVN3SbvYDaQAeoAiEA8egR5ZacI2GNQ+m3++xVHzvv72O7oUl+wJ7hSRK2V58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4201016},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f99034d60a4f6cd850b7a97db6f52cef729a7c23","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.67","@hydranium/protocol":"1.0.0-next.67","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.67","@hydranium/protocol":"1.0.0-next.67","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.67_1789718051540_0.5206096623870824","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.70":{"name":"@hydranium/core","version":"1.0.0-next.70","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.70","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"24d621f9c98e98a561a084ad80f60a28a4f38ed1","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.70.tgz","fileCount":918,"integrity":"sha512-cRoKec+PfsVj2bsAMZ+M6mV1LS4+aJcC8wRD07hStb03fo0IQbEPVrvkTJrvWIqwi0JWzSVjn7EcQ3UfHF75tw==","signatures":[{"sig":"MEUCIDcSUXeFK7Tqr0dEptQm5Rh36qW7Zz+GpgU5YhiXXoCCAiEAgy1GaE8M+uJyvw72XvPb5ibu/o1hAktMrIjzG5dDDpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD0vaLa3b1jh6GCAeVIA5es7TWrxZ78rc35qe/06tYgQQIhAOGL/0ElEy0vJDKBfJiUzXrigg+Rthg9dVfD59rxjU5D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4205448},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0f9f85df8f69447cd97a9215de36328761f79b1d","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.70","@hydranium/protocol":"1.0.0-next.70","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.70","@hydranium/protocol":"1.0.0-next.70","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.70_1789729835508_0.2262308911579376","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.71":{"name":"@hydranium/core","version":"1.0.0-next.71","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.71","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"c0da4b4f1e0923244507cf4a19311d959e86530c","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.71.tgz","fileCount":918,"integrity":"sha512-Up3u3KZnqKJnX5wufqBkmTnWGDXYmiXFMX8esVIqdDMR8slVYMtqLo/3p2Oi7UfVo0zsw/HHnOOql5MIk4daTg==","signatures":[{"sig":"MEYCIQDrw3iQsxSSzWKWahSfvpRQ9jSAEY/fKwMFVrbH4m1vyQIhAJzMWdyTuypnQX6QsVU6TsQUlMjjuxQ8sNXEGmTJBcwK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG5vgS3TMZOHTL7u2jtbdI+ed40S95gWWbY1fGiY48pBAiBfa8J+ZHr06bt1ZBdgFzGmuAm6scLqMrUiAOKs0zFFSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4205448},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"604975444cb71f9dfbf2fd24c069530608c86941","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.71","@hydranium/protocol":"1.0.0-next.71","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.71","@hydranium/protocol":"1.0.0-next.71","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.71_1789730289258_0.22558206766557087","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.72":{"name":"@hydranium/core","version":"1.0.0-next.72","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.72","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"128cb313962a1b8db49861f15e713506b59078ea","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.72.tgz","fileCount":918,"integrity":"sha512-VdbRerL1z3XRQ3M2AI1tM/PPapzZbiWvSAAhmKYsfZYc1jsd3zyrrkvoNMMylrWiaP5fwDjCCRyf6ZocX0gd2A==","signatures":[{"sig":"MEQCICcrXP+SThu0RSOkzMDURjYz1aKxyx4D9JjOon5YfelAAiALbx5lzcI/waJt2andd12b8MHANeAxeZzfEbRMl5I/cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIERSRhIzjJWoDhRaV2Ba3IPvImz77aJGtlncR7gbpBaGAiEAithK2kmjrSp/pcwvVq9hbUXtRlHzA84Skw7tLAeHIeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4214910},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"bb5c11b2465938e4a268f5fba57e1ef5ca5304de","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.72","@hydranium/protocol":"1.0.0-next.72","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.72","@hydranium/protocol":"1.0.0-next.72","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.72_1789735331393_0.43197442333762215","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.74":{"name":"@hydranium/core","version":"1.0.0-next.74","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.74","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"3462a3c07b2e96426461e08a636e6af18c99a047","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.74.tgz","fileCount":918,"integrity":"sha512-5RYmmI25toqUspbukymJUBaM0QgM9T5C/RW4rH77BxsfXmW1iIDj9EqX6echRw+JIHjIsM3tEN3zZCy7pNRaFw==","signatures":[{"sig":"MEYCIQDwgn3pSHxpg4pH7+gyICZwQagIopogEC9Nw1dSzsAZbAIhAL6FExKTDa8gRS5P4GkPbc4trXKLkWqq1umG9QjFHIkJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCjmQaHs5ZpesAYc4Y0pc9Ultg6d5CU+eOMdCx55Tqf5gIhAIxxU0+Nt7DU3Fgi1qCj8nsZg9MWjJpzRCSjgOO7OMwt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.74","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4214910},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"5c8600ba0b3c4f306d259bff5ef13f0498d04560","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.74","@hydranium/protocol":"1.0.0-next.74","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.74","@hydranium/protocol":"1.0.0-next.74","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.74_1789741469182_0.7477025200154028","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.75":{"name":"@hydranium/core","version":"1.0.0-next.75","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.75","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"a5de073a1f39f336638ebd94c3b5d8d7fead5e2e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.75.tgz","fileCount":918,"integrity":"sha512-63uTRJnYgc6UEqXz98r+tVpUW9nkxP3gtjWt3ge123yeIy/MoogLPmIQqwsIKiTV66dLy8RzIDzC/1Fpy5TNjw==","signatures":[{"sig":"MEUCIAO+1sc/4cPTUvcnIvk6f8HIfXnLSAf6ZSOJ3VGN8dY2AiEAm3L1+d4YltQgfUqUqzRCh+FlmnhjZtbMuI+QVmv2ldY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBTMBNYB4xue1vT46CbV/msvXVdETCISz8Hc95w9cmk+AiEA5ii0aggMlzRUkk0Nyt+2uH7eHIpJ4Dvh4aMjwFpEOrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.75","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4214910},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"8f3a13edc12662d38deeae09af0de9416064abb7","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.75","@hydranium/protocol":"1.0.0-next.75","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.75","@hydranium/protocol":"1.0.0-next.75","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.75_1789744222072_0.9701138386487915","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.76":{"name":"@hydranium/core","version":"1.0.0-next.76","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.76","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"33a00d2bf4e0b8ecc71b5934699c91ca719b0b82","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.76.tgz","fileCount":923,"integrity":"sha512-tIrITVUsimg4upIkgLEVYKE2DRVnJapK959SQOelfJVbvWyogYcS+maKqQkID5jsZZswXiULRQm7++ZJCIfMwA==","signatures":[{"sig":"MEUCIEYX1ZkKa2j0s2hy+/ZGIriL0Ga7b6f+4bTAqr2pKExsAiEAqQ40fHEVLpZCbX49cVQN67V+AmLc8V7HVNuIUC6qd/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkb+LsSG5r3GEWptpJQe1M5Q9RHPoBZX6j1BrLdGB3vgIgBBlpm/3okE2QDW3WBGaTptpEC7+S+blhJY9lfuNEUTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4229368},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0a65355f9d54e10db62c1c84e8e5af24e480a164","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.76","@hydranium/protocol":"1.0.0-next.76","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.76","@hydranium/protocol":"1.0.0-next.76","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.76_1789765046861_0.5123199031180674","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.77":{"name":"@hydranium/core","version":"1.0.0-next.77","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.77","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"df53b3c5e6f3712c60dba525899b8fd6e83fd5e4","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.77.tgz","fileCount":923,"integrity":"sha512-KIVgQGkZtwX9+j9sldE4m+rmdrOVUDkzkcl7Xaw2r+vjkUvrZRu4qAXkH6DT+g2BLUt9qa+RYFeCsKXy/vN8CA==","signatures":[{"sig":"MEUCIQDKHdEb02RT41pTxZFf4Cb8CwRS/eCTMpCLGdBmWfxsMQIgRrDyYgyR7DrSKBJetVE2GM317x7vMuqW8fvRWC3BxcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDrPODH6baN8oSkkZqsv7rUvwj1o6U70eGs1YiEhN3/XQIgEvtAsRIYYSt0bvln5yvII3ljQX+aAffPX3Ee3dYlSRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.77","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4268412},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"04a881987b50020f2d9948d8b7fd8a2f56483007","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.77","@hydranium/protocol":"1.0.0-next.77","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.77","@hydranium/protocol":"1.0.0-next.77","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.77_1789768676895_0.4678302655489668","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.79":{"name":"@hydranium/core","version":"1.0.0-next.79","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.79","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"f5040b488bd7f54f305de57fbd5610259dcc54c9","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.79.tgz","fileCount":923,"integrity":"sha512-cmtVllmxOXulEDPfus/ChDpKWAljD9dhyAR4jZu8cQZGkf/vGGS2zmrsLVOK1fi7smZdtr0YFvWA4chPKSsnmw==","signatures":[{"sig":"MEYCIQDPWYnSL+eInoHlghsV6yHZ1IDe7klI35VMwAxkkdyjZwIhALTjVpiubP2lgMhJTdtx+fEHrQxtPLEfrIZOdtDxV9JU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHjpxjm4xgd+8i4xHScl1AFKz6/iRGd4tUjhI39yse4pAiBiYbQ4WDBDjwqmciPGT2fkHHiKyZ5qmpU4hmRlDRpZVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4272021},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"cdd4ee08dac5ead84462ccf4e20b34a06b37953f","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.79","@hydranium/protocol":"1.0.0-next.79","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.79","@hydranium/protocol":"1.0.0-next.79","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.79_1789916565459_0.6995794373798119","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.85":{"name":"@hydranium/core","version":"1.0.0-next.85","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.85","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"651ab6d11dee6be735867c0513fed4cf62063505","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.85.tgz","fileCount":923,"integrity":"sha512-Libf1imrA0V0kqjdFGZbvpxo0W/ffjCt+RHsQfzLAvSvwzgQ5/DKy4i72BPr3nX2DUGUDAkDIjGs5RWb2skpQw==","signatures":[{"sig":"MEYCIQC8rO68+5H5m6v2tlnNcpt3USDactB+aMz7IsVougz+6gIhAIWA/HuMrzZdkljxmn444ItScsheIEa7vsCSQB6lqMDI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJZVON7l8i4hqiOXWO0djK8cPcpeoz7AcvFe9AifdqfAIgH0uWySZLUjX6i8AZFc38PdEtIz5AV097xWgD3ta6nwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.85","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4288202},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"fe5acd004ce128c9ab614e06bb4ba246cfbf89a2","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.85","@hydranium/protocol":"1.0.0-next.85","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.85","@hydranium/protocol":"1.0.0-next.85","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.85_1789939467649_0.9431485594882472","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.86":{"name":"@hydranium/core","version":"1.0.0-next.86","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.86","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"0943dc26aac897b09d3e3f74d1366fa511d92a34","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.86.tgz","fileCount":923,"integrity":"sha512-tDkW9hXtdM2MCuxUSydf628mfRBgxlXFpoBLHI1p7pSpSZ19MkdbIzjvoyndWA2s8FJU5ycrbzwEmSWWDdoBwA==","signatures":[{"sig":"MEYCIQD/NIHi/+DeUEbhG17T7GpN36tI2vItLaeaUCUeH1aHqwIhAKFwEZWXYtySrEanRMmZDQ9FVlEYF4HyNipEhxaozaGl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC0Z4HNMeZBtNLqjnVjveO8Nu5CHoQ+u7cfZHEXJad0PgIhAN4Q0dlxhV+5/C20LMuasEqcRpqMyT0eibYZ0QPWnU+7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.86","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4288888},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"7cf16c55fe7183e87b9a24b9f01cb76ac6095603","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.86","@hydranium/protocol":"1.0.0-next.86","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.86","@hydranium/protocol":"1.0.0-next.86","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.86_1789974883131_0.9847987778315361","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.88":{"name":"@hydranium/core","version":"1.0.0-next.88","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.88","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"7c579d395863cc699a4262a67ffac1db95cff170","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.88.tgz","fileCount":923,"integrity":"sha512-oatsu5Hl5ly05CaVr2xexVsMIKq45BrPtWavCqgKNTw3vjwMmgdixyBzQwEtVcaGCGhKVBkV30X8NfJ/6mzkVw==","signatures":[{"sig":"MEUCIQCCufpUPGqehePCNPAP8Wcx+8TdBnlD6dpFEKsK0aSELQIgLPgLCT4oMQnCmPLRU9NSWMMqSfoc3fDaqJtOuatg034=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBype48xHcEIdsWLaHAaRH0HIvJ9gTEiDCdUv+F96JAGAiAPJT+atLFKMbAgyJvIKfA/+fyXWnaBrnGumycC6UnXsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.88","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4290684},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"b3ac9a4c60d83edb3c0e53e8b8afbe465607331e","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.88","@hydranium/protocol":"1.0.0-next.88","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.88","@hydranium/protocol":"1.0.0-next.88","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.88_1789979913901_0.08108552044043593","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.90":{"name":"@hydranium/core","version":"1.0.0-next.90","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.90","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"5f39eb2b27407e255891dceb9842f662ab560259","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.90.tgz","fileCount":923,"integrity":"sha512-yeLup+3KFmYeQn3xzdGFYncoFwWZUCHWOllZPTlm2IFOVyih6EucxKnLl5emVi6aqotcUiYAb/JVZArJqaUN8g==","signatures":[{"sig":"MEYCIQCwBe4CJ7hZf9G1bzPH8DOhMgLacDP0ur0s9vgPaoEzMAIhAPzipJnUHddx+E92nGZCPq66YpTePxqPrM4EX/LxcNkV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZ5IoFVcHEKMiCtHoIyCxbBF2BHkNIecwgC02GLNyJ6AIgOzX255Y90ReJKqECHcAqLaGk5nzKUbOkcVJPrCdx7W0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.90","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4290684},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"3e2ad81fee111848cc198c86e3ac6aa1c76a0ecd","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.90","@hydranium/protocol":"1.0.0-next.90","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.90","@hydranium/protocol":"1.0.0-next.90","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.90_1789986136086_0.7309105137832697","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.91":{"name":"@hydranium/core","version":"1.0.0-next.91","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.91","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"b0bc7f2aafe8ee9193a480573d8b905d5846e051","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.91.tgz","fileCount":923,"integrity":"sha512-dxHtNGmTcaGUi8bvmqDN8ymi1eGyzojEsegdncQPdrkM83M9Uqk8seJ70EPiKEktYmTujPOyXe6B+1/iG0l/Qw==","signatures":[{"sig":"MEQCIE/sBsRXmS37ni5aBCt6BcHxr8FbrcJXQ4UDfAXj96WUAiBIZ6W1JwVFklucdECFCVGIlvhktirBPnUy+V0QDWG7UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBsQ0ZLmYwchR404QX4LuzEzybuPlNXibc7VtEJYIAbbAiEAoax2l2v0qCs5YoAd0bmVMyJuBR5SmoIrQ1zge3wyaBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.91","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4290684},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"4f7b482f48f14b703dc2756dddaf41498ff0e628","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.91","@hydranium/protocol":"1.0.0-next.91","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.91","@hydranium/protocol":"1.0.0-next.91","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.91_1789986915775_0.23324931177401576","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.92":{"name":"@hydranium/core","version":"1.0.0-next.92","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.92","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"b77dfe5d5d1bdbabbb9c3752f206819bdccac96f","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.92.tgz","fileCount":923,"integrity":"sha512-7mJ33jJZsMUdAW1hf9s8CqZb3SZoIGsbT4CJMoxRWeXLp3/KQ3Rs7PlvZQ7ryP6R0SrX5PPlQSZriha3HwHzzg==","signatures":[{"sig":"MEQCIA3DvBP06u6pwOIonpZ5c6Jh9Rw6G9qB/i2vHOMEj2N2AiBjB+4o0hQxB5Cxd8vODKMVNrZqYXcGS76k0K/Ssl8I3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDKlTIIulKHgrCub8vp8hq32ALgzfvu1y6ktYPgZfWl8AIgAlpXd9FWIGdKZLUqJ34fJELuAHsh0X2tIDe4kqUeifs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4315289},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"e769e1181a2eb1e5f024f93378346fc6439ed20b","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.92","@hydranium/protocol":"1.0.0-next.92","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.92","@hydranium/protocol":"1.0.0-next.92","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.92_1789992966275_0.44369987086243734","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.93":{"name":"@hydranium/core","version":"1.0.0-next.93","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.93","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"19e794d1b5a250e9af040ee01bbc159787cf58e8","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.93.tgz","fileCount":923,"integrity":"sha512-UYVzI4CU0jYBh22m/PXO31gr19OYr/Pg4E3TAfMA2nv88UiY+SjPHGjxwGBptYEZwP1/8FjtO/sdf30IWct9Jw==","signatures":[{"sig":"MEYCIQDJ5bOdqY+irP/l75vYxCtTtp1tVKQO6lWpLtFjxP9RrgIhAKu8qReP5aEySn91Lwy7HWiBpofJyTCesFXHwHJSNpFa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDu29m0HdGQRHJTVmMlOG9ueJ3ndXjADVFGjuQIWR3WrAiA3OUpFl7/T3OxS9x+vGrQE9Vf0kWFP9Gw2hiECxlsdfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.93","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4316194},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"bdbb81dbc2d8d1369dffbf206d420cb67502da72","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.93","@hydranium/protocol":"1.0.0-next.93","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.93","@hydranium/protocol":"1.0.0-next.93","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.93_1789996460242_0.6981537302639627","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.94":{"name":"@hydranium/core","version":"1.0.0-next.94","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.94","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"cdedf7aa164d77cb76573a824687c67142af9642","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.94.tgz","fileCount":923,"integrity":"sha512-d6QpfyVAESAhAvgARozXRWSSOz7V7L95TDJF8q2AhTJwtB4/YVCYF8efjDMI4+WeZ7t4926bEtAjXpda/h+YGQ==","signatures":[{"sig":"MEUCIBtk7IRxsG3SsU63bFDb8Z61dfBTj6ujP7bORijNC9EsAiEA0WsEOz+nbst3bmE8Wzf64Zo5j7BY9EWwdEWSAY/TUVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHiw0UKrs7J0le3sMX3RDeoB77j/9thsO28v+GfEXaWTAiAJjtUxsf/q5l5gZqMXitTCMX4kzHza8D1cc0iKbRAFgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.94","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4326376},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"7e8b9eaf891f3ddea6d7c6fe4433c80d9d0b7f87","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.94","@hydranium/protocol":"1.0.0-next.94","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.94","@hydranium/protocol":"1.0.0-next.94","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.94_1789997677508_0.052058752750953285","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.95":{"name":"@hydranium/core","version":"1.0.0-next.95","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.95","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"d83d3a0a86b0690e801bc23fc58233e4d2c585fa","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.95.tgz","fileCount":923,"integrity":"sha512-DDV9yyUfDmwY2TnUqZ2CjigIWVhaSde3o6b4n1TgTt/EwdzUZfXsF5ZOlsXIbW9jpQ1TIzRE7o3wIztyLCVX1w==","signatures":[{"sig":"MEUCID5b0/94H5FthmMkepVn6NkOfM24KLSQz8pC0py2+SrsAiEAq+SmBAZT0yDXrQ5ESnjtL1Y50C2a5lNG2ZgL0OxgtDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGueabudVdrFwDcZOyBoN9Itncae+viBB05krw25jxMXAiBiJJ9AMwRGmy1nTbe/PRNb3JgCA6wupvAW5BB7W1mT6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.95","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4324381},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"4192a93d475509f570e4130a8b4904ce62dcd5cb","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.95","@hydranium/protocol":"1.0.0-next.95","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.95","@hydranium/protocol":"1.0.0-next.95","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.95_1790001427212_0.4837708125574489","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.96":{"name":"@hydranium/core","version":"1.0.0-next.96","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.96","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"f4fcb0d7d934351c2986006faa188032d44a985e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.96.tgz","fileCount":953,"integrity":"sha512-y2nz/mhveY/FeH+VRFzMypWofzFmIn3ew8xKsolHfuwh++11OAmPklUW/rVDzmt5tEirEnFpBQGa9bqovTGSXw==","signatures":[{"sig":"MEUCIDJ2DCk2zo4jW5m98XDZQUsGUCfNAqLXg8YaJDZaIlfVAiEA3JqwSGIdTIkKXfTeYmr2jT/g+vjd+kiEBsjHZ6wL89U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID46yapgg+JXM3oHRO0D+ttfQi6oACcui7ZLZm5sUQ21AiBBJY3oA6Vea+L8UWn8FvcpNHOfkE/NhgRJqCJonbcfSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.96","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4523511},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"bbaae7432df9468cb7621b2b020ceecf28802a8c","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.96","@hydranium/protocol":"1.0.0-next.96","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.96","@hydranium/protocol":"1.0.0-next.96","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.96_1790186489420_0.6878975922942707","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.97":{"name":"@hydranium/core","version":"1.0.0-next.97","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.97","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"ca8bdc0baded1bdfcfc16cbece33cd82896eafdd","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.97.tgz","fileCount":953,"integrity":"sha512-ebZ+4rKdoFmFjwN6dq7hBNzB0AOr9vMGZmyJztCUiuLfrNcFP8Gs/9wlVI0qAiZ+uzW7TdX5Tw5FFSdMQIUpMQ==","signatures":[{"sig":"MEYCIQCAx5dNVhH/vBgCFIs5eqB9u/lBbDrm8OUSo3s7aITKBQIhAI4u2ypW6sVeXfosjjNsdjpIXHrc7eO3XOzQM7GThHPJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQClhSywLQjm4zGFQHc6zEld5q+r2eQ2ngBbnx4sQEyEaAIgXWlnLMEAxhZArvEJvL7JjytgLWvqelB5/xgAkGpBijQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4523511},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"140f23ddeb6416eb5e00cdc3885da83676a7c778","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.97","@hydranium/protocol":"1.0.0-next.97","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.97","@hydranium/protocol":"1.0.0-next.97","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.97_1790186643802_0.022682709015638514","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.98":{"name":"@hydranium/core","version":"1.0.0-next.98","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.98","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"af2c329769d23156de735f66a4a50bd4be2a178d","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.98.tgz","fileCount":953,"integrity":"sha512-mi1n5VFvZpG2TdgfBpw95JFECg6R6TU9BPTyqh66kWSWz3YaToVND+k/R0fwsSHBn4tsST/6nAaeS2hTluf9EQ==","signatures":[{"sig":"MEYCIQDUnY5tBtbzkBjv81UTKDjBgKua5s4bqXjiLU/0uGcdogIhALRsSCy3u2iWmFdiwst9pY8ooeDRiO2Mnoiyy7kagIPY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCrgVFW/PtOPbkz7D1rIFehTkG69hQWtJByilEq08jIVgIgYBPl/ivbz7nQNRmVTeuGJnKVsHcdvMa4hE6C3OsgAbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.98","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4525126},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"b3e6b749d5fb8f6f44f4f242877ede97ff9b8707","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.98","@hydranium/protocol":"1.0.0-next.98","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.98","@hydranium/protocol":"1.0.0-next.98","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.98_1790187307572_0.461289876106425","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.103":{"name":"@hydranium/core","version":"1.0.0-next.103","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.103","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"556a4cc90741fa99cb80d53ed8945e6918014aef","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.103.tgz","fileCount":953,"integrity":"sha512-AFXt/gqdIGR3ySLsriHG/yz384RHd9GUbXSYhcHgOyjn0UI2Tx0hJWFM7nl3nxm2ErpBM8h4ccIn2CzH4OGtOg==","signatures":[{"sig":"MEYCIQDNTy/hHHi5TnpvlV42JYs0biNTknnPi5eflD+vx67cNgIhANVWgXnXtLKE/3YtcnpMfrEYQzDhpjBVH5IEQOcGqGOb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCCjLpHSm+aWe5Q5fZ1pYYlb5cjUfYUlSrI6D3Ofgwy/gIhAMkUo6MvfeQ9iAVrrV2JxeWKjXYy6I8vWUXxCrFjZ1Fh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.103","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4553538},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"1b5fa3a4791e3d999e7b3b36db935365b78127b6","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.103","@hydranium/protocol":"1.0.0-next.103","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.103","@hydranium/protocol":"1.0.0-next.103","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.103_1790188682323_0.1517780244549518","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.104":{"name":"@hydranium/core","version":"1.0.0-next.104","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.104","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"10c2a757ec513b04904bec5cf3e9ad20330bdd9f","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.104.tgz","fileCount":953,"integrity":"sha512-dDztdxNgyl5Y4FetcDtUITnw4ZswkTrYgg47Umu6j9sopw9pURy7Q475HMSfIZYKHyquw4H+Co/rgpzlpGsxvQ==","signatures":[{"sig":"MEQCICTgAU6u1RjOzfyMz6P95LuN0VIqIScOiI5qJci/VwfYAiBtuRwHWWD7Or1mg99yRA0TR+WYLKIpHoJzAL3h/6m/VA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCU8wzYSuvyI5rZ1EWGMS337gw20HbUWtZqCmsGvIxamwIgF9DicJsGVdfYiooD+JtwUncs549a0tk3puGtpc0gC0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.104","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4553538},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"cb070e687e0080403741b70131c33b6bfd2ad561","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.104","@hydranium/protocol":"1.0.0-next.104","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.104","@hydranium/protocol":"1.0.0-next.104","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.104_1790189249390_0.539734458211661","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.105":{"name":"@hydranium/core","version":"1.0.0-next.105","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.105","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"1fa488dc877257c021f063daea1f6b65a7ecefe9","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.105.tgz","fileCount":953,"integrity":"sha512-ve04hkCYSJdWr8wRl90Or1aLXcOptvU+5SuH1FWykZo028tK1asM+jA7lSDCEsruXXmeGjmLe2DhUMnwyF7DRg==","signatures":[{"sig":"MEUCIQD9bwLvS9MTjGLNBHMZiun1EMrt5XwRvF6cWcPQ6Anq2wIgCE3yOpY4U3pxD+1SyjQxhBu+QtCr50iMI6RAOiMhjj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCkc4Sb4nUuL2NG/QBVIygRMKzuYjQryvgsYLcEcF7sDAIgaL847C4DP7xhL4cV8nEdhuOuOnW7u3TBVRA5sIYg/lc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.105","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4553538},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"1f038ff518ccc383ab0487c5d29315b803c8cff2","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.105","@hydranium/protocol":"1.0.0-next.105","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.105","@hydranium/protocol":"1.0.0-next.105","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.105_1790189746634_0.4240988906094829","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.106":{"name":"@hydranium/core","version":"1.0.0-next.106","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.106","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"c6cda5e78eaf88376273b6a27d6a863c56307862","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.106.tgz","fileCount":953,"integrity":"sha512-Lgd2T9rlYsCYiNd4Vz6WH/uNvgNZKwmPfxxo7GPogePOnP2FkwjhKI4C9uMqHhPBpti5Bn6rmKMDgVFbzh7V2w==","signatures":[{"sig":"MEQCIAZD3384flEg+9PsAJTTXSKKBawJM79inkUV62x56tUsAiA33WkocCBInbKhJBXn7esQHikwQ6VQkonJpbXuCS8flg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID8xmnck26IM7l3KmqYj/ld6ekQqND/ADOaUpipfaWyqAiBbmB55rcSV6G07E0ry9aojTpDic7NRc6pkSr7fN3ENyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.106","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4564569},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0b4ba0bfb1f64ffc97300019781a001d7c7c41a4","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.106","@hydranium/protocol":"1.0.0-next.106","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.106","@hydranium/protocol":"1.0.0-next.106","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.106_1790192812904_0.4961636052731795","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.107":{"name":"@hydranium/core","version":"1.0.0-next.107","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.107","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"acad41086ec764606c1ee36d5596c34a35985953","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.107.tgz","fileCount":953,"integrity":"sha512-6hsar0PjazVT0fbCirfmoC6mJRaHIEICSj00oaTvT9RWokjGUOiogOXsgisTy+iOYvgam+L1Gi5EujSO+nJ2Sg==","signatures":[{"sig":"MEYCIQDSPocO6P/wBXiskvG19Co630+yjlTtZf7M2pBHoTEmVgIhAN8wlqkLb4dHFbngTdgXeuiyGTNPip/lcfdvpeLmRd+Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD1Ul6oitgvA23mLQvMrPQ6NumX3qhRk3HkwCmOj3Um/wIhALPuWSHUrgiEchm6QzckBw4nbrlpZjz29JZRvNCSlb2p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.107","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4564569},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"bb529cf424502390902ae349b301179ebb937ea8","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.107","@hydranium/protocol":"1.0.0-next.107","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.107","@hydranium/protocol":"1.0.0-next.107","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.107_1790195466372_0.4409433978020221","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.109":{"name":"@hydranium/core","version":"1.0.0-next.109","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.109","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"3269df7bc58d1ef9f1c31bc94e75f7055b467d16","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.109.tgz","fileCount":953,"integrity":"sha512-4Q5CnuazzkppHsH4OvThKTHfSCbo9xrVi6puBzeF/tXqo0VwTwuCmmqxdQc+M4yYK7Hf02i8gnMO/B5TzIW0NA==","signatures":[{"sig":"MEUCIQCp5tMocd0EQZDhMRJArblI1F1RQrQEVWyluxctDBCfYwIgPLaxqPHUsaTU6eNt5cdlZJ9m+703H6G63asiRo7M5jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBhkeo15WxBdSa0nV7N0OMYdO9OvvHsNZs8l6sGI6pfNAiArmqm8bk/W7ou3mkSLJC4G9Wu5Jjtp/ecHuYX/BAt0Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.109","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4564869},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"137baafcb95589fab3a54a6645803d387b81e8a0","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.109","@hydranium/protocol":"1.0.0-next.109","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.109","@hydranium/protocol":"1.0.0-next.109","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.109_1790204458300_0.07063941671447815","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.111":{"name":"@hydranium/core","version":"1.0.0-next.111","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.111","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"2e50b8fee3951914a37c239ee1643225120d154a","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.111.tgz","fileCount":968,"integrity":"sha512-aqyDf5wN/nMCStYP2b6LwAqLxGbQswuzL/L/MULbqtrTeLv482d1M6CVZRKsEzipMMpwaByvmqevhGpr5lFuOw==","signatures":[{"sig":"MEYCIQCNqCKaGKYTP4IAv7kcsDtQT4acDK6eIORKw165QKQGaQIhAPGkFm3AkDLlfqnCPD6kKlawzEChLQGKMWydwlUz/AZD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA/7oPJJsj15byMoPvrELH+ieXX2NedsoafKqgaro0eUAiEApuulftRpmSsFaqsp3pkehiXDsiuzSEYJIKw2U1E+9jI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.111","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4589218},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"8add1d2ad3dbaeeff870b21f3bcf13361a37e28b","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.111","@hydranium/protocol":"1.0.0-next.111","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.111","@hydranium/protocol":"1.0.0-next.111","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.111_1790256612847_0.042642490754737805","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.112":{"name":"@hydranium/core","version":"1.0.0-next.112","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.112","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"358ebd7abf111ce221e3b0bceac14fb20f03394e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.112.tgz","fileCount":968,"integrity":"sha512-8m3CacJQf+JCypNrfrUBfYUpvlSh0s3D3NPhquaSFYmqoqjVlppwNnSvyZ1PysX1iUUiQNi67aq7Suw7PgP3wQ==","signatures":[{"sig":"MEUCIByeCoG8vyuUcnb4tbDKk4TwPLPM/SK/SAgwYEbgfuwMAiEAtFNVrZAH/GUgG4onSSqSD60Hmw/P5kAYQ1R5fbuQcf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBenIeGyybn8R8QHSgeoBO5T+yaybaEQRV3EYfam9pPjAiEAqph5mE1UHoAuGa7F5i5u7mqTL2eYeKOykBhq1/V4cms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.112","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4594658},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f1f9ddb7e3bd21283dd982005add36ac4ad39859","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.112","@hydranium/protocol":"1.0.0-next.112","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.112","@hydranium/protocol":"1.0.0-next.112","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.112_1790260411276_0.6766501680294235","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.113":{"name":"@hydranium/core","version":"1.0.0-next.113","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.113","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"be3b766197ea61e8672354fc6334877f63a5f9cd","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.113.tgz","fileCount":968,"integrity":"sha512-k7SYw0jvYUpSVwddu1omRK29vuwaWEe8aeTS94TnL3p/ePrCcdaZDJFxuO6B6YXANzYdLyBUfrVJ325INgqh2g==","signatures":[{"sig":"MEUCIQD/zrq6yF+Fy/gMAwI4C4B7iUyr57mfH5JwF6UnvgWQDgIgFwfd3Y7JKfcIwjTdZXrj09DnjTIRCId9g2pVZm4SVic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCtdoPXIdGFm9h2vYCPNHvt2Qc5q39sa6zv/gzpbJQIRQIgcFAxpECFeVUtWhDX+PTT3UEDIoQmkFVteYJRPJA1PFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.113","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4596774},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"c27a580af54cc7f72ea5f6363e3af6b86adb08f2","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.113","@hydranium/protocol":"1.0.0-next.113","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.113","@hydranium/protocol":"1.0.0-next.113","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.113_1790264529116_0.4011796516190862","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.114":{"name":"@hydranium/core","version":"1.0.0-next.114","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.114","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"9441a34b6b3c3cb519710f3c22068027079d9791","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.114.tgz","fileCount":968,"integrity":"sha512-CBS1Z/iEL3VDizyfG+dJaQYK+RANmKBMXtqnpghyTXIG75yGt5Wu29FANMbaRyZA1p7lHuFC2VyUFU1n57Kb2w==","signatures":[{"sig":"MEUCIQDY5rvwFCgWjhRl0y4unFO0IUVhkBaQKLQwQ8scNTb94gIgJT6rs1t+QDFLbZbl9skr8NeTQi8+9vmZVK/lSG6HqTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFAFwAigUpVivcRBEf2U4mTCBUF5J9xsNpnvJiIhN+lXAiBKf94RC2llel16xWox20cj1Ap6zTGSOUaKKAM6kYfUdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.114","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4596965},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"212f8bb8490512f4e60a1f153659efeb7b399d53","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.114","@hydranium/protocol":"1.0.0-next.114","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.114","@hydranium/protocol":"1.0.0-next.114","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.114_1790268272217_0.9407396318755201","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.115":{"name":"@hydranium/core","version":"1.0.0-next.115","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.115","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"96f7276ba368013c3b72ff86fe5e42acff511cad","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.115.tgz","fileCount":968,"integrity":"sha512-LJyLlQG8NkAPi/WqQtHjVFHX4R4zBUVxICNs7BtRDixTKPa6f9DlOfCnQh7bMqqhlx+4uLBy1rk64iT0gV0oTw==","signatures":[{"sig":"MEUCIQDnphV1kkBFVqm9ieApVDeueKyVsFphr69LXv7EOecEBAIge7n6nO9Jrjx3tnFiwIaBDtggMneL44GtBoTT45ZRGMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF20+wVL3C0yyiHBKN/NYvoox3WjdncsaKUDpRGbb+F8AiAvexQeJKZnk3JYjr9TvqPX145CpeXf4SlOJ6CSluUwOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.115","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4609742},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"eeaf6fbeb80edb859679b15b636e83233e989b9e","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.115","@hydranium/protocol":"1.0.0-next.115","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.115","@hydranium/protocol":"1.0.0-next.115","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.115_1790286400340_0.8329268028702084","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.117":{"name":"@hydranium/core","version":"1.0.0-next.117","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.117","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"837429ae9fecb5947e2e977f3c6f42b4dda33465","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.117.tgz","fileCount":983,"integrity":"sha512-hUjHQ84vPxNnMT/0l55tmpEWvQHVDqguwiGgG4dbhrpHzUqEGek2pW0yp2VbzCwvxPhITFEoNhXqb0SxXKf08Q==","signatures":[{"sig":"MEUCIQCKlvx9Jp04EHLyqhWhhC/5TOonityxgVn8KyDH3u89pAIgBubCgg2JtMrSImScGSX2dEy4qCVsgNirA3l4SHjNAPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG6sZpV5CNibiXj+GaSZGNDb11MluhvVeEfIP0zGv7mOAiBZ87eQIDgYYQkJi9fo9qYDjtPwDtZ7lyVLqFUH9uF6ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.117","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4735318},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"45a1a35a68595f731aac6bd16d109d3226827521","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.117","@hydranium/protocol":"1.0.0-next.117","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.117","@hydranium/protocol":"1.0.0-next.117","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.117_1790631876922_0.5336200250435099","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.123":{"name":"@hydranium/core","version":"1.0.0-next.123","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.123","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"a4b6cd18cd273e057f259e1c01e0c6c7ea1571af","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.123.tgz","fileCount":988,"integrity":"sha512-SvLOenhsq3rzJClcGcs/HeV1kTXv96emzd3al5+T/5V/ni9Oeu0qIZeD5oM4KBu48x9Irts9EsWDy0dfAiER4g==","signatures":[{"sig":"MEUCIQC0ALICkpYIDqSmvXPUWLdUNEukJkKvOU/0DO42BKudPwIgUIiJYsv+JcBAVWqbOBytA4Q3yp+Zlkv2BvfbYvZ+xZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbtV3rHJBE0ysWJs6yscmwRwts83jLIwjFb7imy6o75QIhAPcJU+QMHo/FkMLtPeTRx7XBdebffAfV8JTmTnoLWiP6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.123","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4780420},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"6b7cd61eba0925df8150ed0a438804dc43c24319","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.123","@hydranium/protocol":"1.0.0-next.123","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.123","@hydranium/protocol":"1.0.0-next.123","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.123_1790633325681_0.029866453228242218","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.127":{"name":"@hydranium/core","version":"1.0.0-next.127","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.127","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"d1f4dc51c3cc643d581389563a717213a8be181b","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.127.tgz","fileCount":988,"integrity":"sha512-g+YovkEJudktO4e/TxPIX8U47LOPR+buonIiSs+5IGb9AMHNZ/oBiDTRVVdj0oK0toKncAW4U33EgcLCVsh0Gg==","signatures":[{"sig":"MEUCIQDPldjIe0XcTQm5K+SOI7SSIzkbpMr2TAC/vNT+o8Z7QAIgCOTPGY8X/QonPswIrwj4lvJ60QQ5JWgbZquCHPx3uww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAjRy7PU+USJrybt4AK56O2tb3xEnUdOc9vYu8JWlOaUAiEAndX/wTdNDCpNjV550wUs5Rb0Ep8hc3rEAXhwvUUxn08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.127","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4803881},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"11cf902498b55aea98fb0c9fd0cc8788c7518539","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.127","@hydranium/protocol":"1.0.0-next.127","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.127","@hydranium/protocol":"1.0.0-next.127","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.127_1790635064324_0.02435514070196554","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.132":{"name":"@hydranium/core","version":"1.0.0-next.132","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.132","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"be186ae75c26fb95c5cd6c9575be06010b3f481e","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.132.tgz","fileCount":988,"integrity":"sha512-KRxgu5gTCEaOBbtkbmN+GX0F5ucXWDhnHfACE8yLwGIuNfVAzBYBniTtZLw07WZUuq+asvvvDYoijXzRrXG47A==","signatures":[{"sig":"MEQCIFbi6hyb6Fh1PGpiEv0pfYmYTvmjiO430PNwo4KfiahLAiBCXiTsroFrU179fUHjXRTFwZ96Ex8bhSiMYSwiz/XQNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCnf7l84oM2hzXRCp1r7+i1AVkkFLWC4T7F+SrrE0soYwIhAJp9d/bg/qqoiDESb0m3+dt+KePHSg1r2QTuuaJWNCIb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.132","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4804757},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"27dbc2470c7b60e0097425e4c4df6922ad9a22bb","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.132","@hydranium/protocol":"1.0.0-next.132","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.132","@hydranium/protocol":"1.0.0-next.132","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.132_1790635679466_0.7039725998891768","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.135":{"name":"@hydranium/core","version":"1.0.0-next.135","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.135","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"cb345c22f2edb8952bdb773af7f483281fd70784","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.135.tgz","fileCount":988,"integrity":"sha512-eJvabOZnjyR5+3t3xzn1CePh82p53PttXw7kEBqP5K98MuxbSzs62erAP7MOPbf3I7bRxzJy80Int2WCWUnQQA==","signatures":[{"sig":"MEQCIGWRG6A753pgVug3lF9PAuuQExRWcrDON7ycUx2YI6tGAiBaqK+4nbuf+Oy+U9dRLasX/WeIbJ0XPM+0kFJqXrRJNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICNYBBxipCVaJsvHTtxpYv+WBke+nN1mC4ZKg2kYITurAiEA2876ofqRRn9Ny6iyxaEoG/I9KIYtGp9EDegT/HPIi2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.135","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4805377},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"cf87c80702f9ec9b1c58bc1f3499cc87a8bd3ef4","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.135","@hydranium/protocol":"1.0.0-next.135","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.135","@hydranium/protocol":"1.0.0-next.135","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.135_1790636303944_0.4771680979815738","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.140":{"name":"@hydranium/core","version":"1.0.0-next.140","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.140","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"f7d1b32c005434f714568566ac62577bb4303ec6","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.140.tgz","fileCount":988,"integrity":"sha512-qp3UzYtJwK1vN9x2nmSYRlXrSgunGYllQ8HBPUAY4poez4AvuZXM5O8GzCr6xUx4ZPIp6YMCLtgZ1R+GNnnGHQ==","signatures":[{"sig":"MEQCIFC1ZXZZ/nDFMnoyS9gQtO/gWudIWTHGzBd6eilhiWm8AiA0zEAZK/DU4qBEwE1LsBpPK/U1W8jOF8ccrbuAd/cjcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCKfEGXVbiySxy5X57Cwa9TsSVm7oc9GGVSZxFCk+MY8AIhAJmqhx2F9rGTAzVJSZJmXFCQTvXZOw+K51BjfakjKuOr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.140","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4850465},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"427719cb511b0dcc901e7813ba7fde37573c6a7a","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.140","@hydranium/protocol":"1.0.0-next.140","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.140","@hydranium/protocol":"1.0.0-next.140","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.140_1790636797774_0.6378039944516525","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.148":{"name":"@hydranium/core","version":"1.0.0-next.148","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.148","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"81bf77fce2ad9687cfd01bffcb107f37e0894d17","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.148.tgz","fileCount":988,"integrity":"sha512-2jcxirVG45gdlItXMzvt8vYjlCxjUiyFDg69roUglvPGVXKuJ7L3tiwefc5iPQFp2WPBOhowptxE49JoaVjafA==","signatures":[{"sig":"MEUCIQDRr7AATQDeK+yBBxQo5l3WUSA+JLPeFsPP0bvFxEMYXwIgWBxXYhUU7fA6397Rr8RU/TpEsNQb+ijo7waO14kVjMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDraqJvqMPfwHZTdxzVN/W4MsWX0wcurWP3DNQaEniLJQIgaMuCf0+m60amr82Sjgq1sNGvE8MDtfccTjSYm6FsdcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.148","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4887518},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"9a0f51ac8c2a36bf898655aec9bc3abff8bab721","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.148","@hydranium/protocol":"1.0.0-next.148","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.148","@hydranium/protocol":"1.0.0-next.148","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.148_1790637648193_0.2122096092061656","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.155":{"name":"@hydranium/core","version":"1.0.0-next.155","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.155","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"b754a97531790d26b312b2cf627122a7bf5c04da","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.155.tgz","fileCount":988,"integrity":"sha512-PfZ751uJUFan0Ba9CCXcLbimD+VdB9Yxz+E0PqvbY/FHwg3hEmv7O76Wjvcq0FPqmmVGzn+F6vtU/bRja0TzYg==","signatures":[{"sig":"MEQCIESMrGKWvCGygP1OJ62a+a5tk045jBwndgppa5u0JDETAiB2qXNO110pWX1rRy64deEyhjVbABMTd9JfeETfBJIkoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFXz30WDwHS/87TK4g25E38Ip/8habbk9bXypCOKu680AiEAwjNaeulsaP6igVdqzth1kus0CeOdbh9vn4jIFrwSXek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.155","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4890708},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"2cb4a686814289a2d90c73f977358bd4c43f39b3","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.155","@hydranium/protocol":"1.0.0-next.155","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.155","@hydranium/protocol":"1.0.0-next.155","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.155_1790638734040_0.9850461531588723","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.157":{"name":"@hydranium/core","version":"1.0.0-next.157","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.157","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"da78d5ac5d0c1ec2d4fc4009d8836e0a1cd2ead0","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.157.tgz","fileCount":993,"integrity":"sha512-zQgZ/Nb8FdfFBvKMLRDe55ROuP+mZcHv6O2dsPKS7kp9tu0DGBiFsgPUEAmHOoIJz0hnH1U7AvigRi8hDRlPvg==","signatures":[{"sig":"MEUCIQDpi9x0pVAQaRqxmpNzuh4b0HH3VcuXU7UO0nu7b2NNXgIgCzRRi1vGbGRjw3fpGriRjGyJkx47ayGn5IL3eJ5aAdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDprW7qbXbW2g8TuzLvTKSNTOdHjM8Jq4sRiEDXX1NHrgIgY6ef29PJmVH4TTbA7d/ygHZVEEhRMhmsjTcHkBFITuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.157","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4920275},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"eae73ff47f93d344488d34b082f92732c93ad31c","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.157","@hydranium/protocol":"1.0.0-next.157","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.157","@hydranium/protocol":"1.0.0-next.157","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.157_1790639276057_0.03851259242605232","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.158":{"name":"@hydranium/core","version":"1.0.0-next.158","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.158","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"371a379852f006a4d0ff9a83674862e1b8461889","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.158.tgz","fileCount":993,"integrity":"sha512-cxN2QqGUS691Nqzk3clT9Eya6k0JS3JA65UMnOYzdQ+ASgpiDYSMFeBwUaKwo9N67eXBbn1pRX3fZMglrC5xFw==","signatures":[{"sig":"MEUCIBx6uNLt9nwULHngqr98raFbHZ3mrMWwDG5GpJuomheuAiEAnO1lh+p2VRkJRmoARF2aENRzc58F4nf1jZL1yRMhe04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAqfbdX3iZMawo1478xCE9KIbGoVPz6Q22QDmIqFaUz6AiANI6Up+fW8PL9d3iaLfSrHwqRR0Ztcmb9m64V776F+3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.158","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4920275},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"1ee20631bc2bc0164de8f4b0fec71bbf78b0a9c2","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.158","@hydranium/protocol":"1.0.0-next.158","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.158","@hydranium/protocol":"1.0.0-next.158","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.158_1790758156872_0.32906728271894825","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.160":{"name":"@hydranium/core","version":"1.0.0-next.160","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.160","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"536238e70b6b60e100427060d64ece0406b5e772","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.160.tgz","fileCount":993,"integrity":"sha512-yUpstJy0/fkCABrp2e4Lcoj6Hvf0X99nj5sT71FrtE9OuvXmelFdzrfavh0ig2HCnj/ead2aph6H/ns+GMRe0g==","signatures":[{"sig":"MEQCIHZDC8ymSrek7ZiUyVRF+0Ca/NbQSx273syPkktLnwN+AiANkLOuL+3pizW1evYOf58c2gEOoadYgjb+7+WvoLCoUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCAHTrVTeRlNjNocAKAvrZx7n/MfixjBO2TKIH10ycOJQIgQjM4agmsffPLVjMSh/2mtoDFDDHn+YxMqcpxwbyWD4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.160","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4921807},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"6cd23686acadcaf2dbb4ea757efb4ce32bacf77d","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.160","@hydranium/protocol":"1.0.0-next.160","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.160","@hydranium/protocol":"1.0.0-next.160","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.160_1790762569071_0.5163799924617156","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.168":{"name":"@hydranium/core","version":"1.0.0-next.168","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.168","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"e47be7d0a7b4a54ba14e5206a4c902a7289c97f8","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.168.tgz","fileCount":993,"integrity":"sha512-BDB+QxDgIcdkvNvIs135zjEJkhDi7eKttBpo+sMv8CeUDVEXeHqDXxtWiTlQSSWeL2tz2rFrwR3GVW1a6HYjLg==","signatures":[{"sig":"MEYCIQCwedzwHNKRjuRVOdMw5QY9mLW7oF1miS55ogN9Ec9MIgIhAIajZqSyhdFbCKYejIyYypKfqnZDuY6GFWoamoaffaBv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCuXy+5xu4s4vbChL2w7OmwvlrwNuWqqjNpf9yVGEGgCQIhANcw5W52PBjQHY6wgFYVyvBTp5sRQR6yk6OC8ZP/kuFn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.168","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4931809},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"30b7b26e0bb67f2a7b372b5a62e83d45905d8663","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.168","@hydranium/protocol":"1.0.0-next.168","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.168","@hydranium/protocol":"1.0.0-next.168","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.168_1790777253007_0.9431835151211019","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.169":{"name":"@hydranium/core","version":"1.0.0-next.169","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.169","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"a5b465972313bcea4409199af6c31b9f933fcfa4","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.169.tgz","fileCount":993,"integrity":"sha512-fDLHtMNXIi8DT1tXqaJiL1oTc151oETYub6wgJVQGMePOHAfq2M6j2rl7eT+YUcWDB2bDx0+jPxvnRmFzxVieA==","signatures":[{"sig":"MEQCIBhlYghWztxhQkWM9l9NS1oyjdxZSxPJHl272B8cVnzBAiAWoVJ+sR5d/gwlnckKKBkAEBwXA0Ti9zE4AfqB001s9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICr+5NTno7EFoF8ZlMedBxPwvBZYfDIxMKkwmIG1l+GFAiAno9oIY9S0GVaxdKaEBUNvASPPXHTYzX97qbp186CojQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.169","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4934601},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0a17cbf5e6bf32df0827e51ffbd602b4e722bf2c","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.169","@hydranium/protocol":"1.0.0-next.169","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.169","@hydranium/protocol":"1.0.0-next.169","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.169_1790783354497_0.8469440526036862","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.173":{"name":"@hydranium/core","version":"1.0.0-next.173","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.173","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"2d9655c652dfbc94bb3332a154ef42db0a0632ea","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.173.tgz","fileCount":993,"integrity":"sha512-li7IIQYVqKwe+SDj1SjIxPAlRpyDDLchpzsJBD2Q5rDX65IYqbFONR0B8LnQIykJJRc7iisCAAUBMEIApU+umA==","signatures":[{"sig":"MEUCIBBsWfD9tc4Pl82htxpYwMUDNFsdiw+e9CmfjXR7FJmtAiEAwMZtMQYyRSdyp6/oOlx3+RjCYtBYHSc8Hq+cZqj/C4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAxrIGs3DOJFaTvVxitW3oUysIM7/OvYvyTdy3Lo/q8OAiAwjsn5ySM6FSR9Qg09/r7VdqTV2GJAYIFKwGQmh0mQuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.173","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4942144},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"5bc225d4a40a2de4e9b175721db25ddb7e48c348","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.173","@hydranium/protocol":"1.0.0-next.173","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.173","@hydranium/protocol":"1.0.0-next.173","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.173_1790860545673_0.638675940766007","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.174":{"name":"@hydranium/core","version":"1.0.0-next.174","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.174","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"137b639be075de7aa6e2bcec2d1a768c2b7484f9","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.174.tgz","fileCount":993,"integrity":"sha512-Ygod0J26MrTswJVmiqlL7Ylrd/WfYfimh87O404b0J+k1r6TXLzXhn4C3QjMbC6tM0gKC/iyfsjthutJ71vZFA==","signatures":[{"sig":"MEYCIQDKSGdtZqR9O7H40myriWVzMsGHRHWuFZjmNKxsb7tJbQIhAOVhtD+VXfikw1ABiWDfR4XbFyABWA4mnTKCUswxNGhx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBPYsWvgLEA/s3CMMocycYfXJyiN3MzwfLmGgYtHY7Q7AiAIVmus7d0AaReLBznwPV6ATqLWLYjgcHQHHAHlVx88+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.174","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4942144},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"58cc70efba83953130a58afc689770123cd9a73f","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.174","@hydranium/protocol":"1.0.0-next.174","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.174","@hydranium/protocol":"1.0.0-next.174","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.174_1790926786766_0.20277694681966074","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.175":{"name":"@hydranium/core","version":"1.0.0-next.175","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.175","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"5ecfc13217d8424cbccb3a4379a27ab278b81ce4","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.175.tgz","fileCount":993,"integrity":"sha512-L49yLoFO+bQIEoyrW1muLpNRSrDCvrKmZ7XaoZebhCjfvxO9AbZb6dKG9+vTx7R00EHdnRmu3d2pju7X6NBL2g==","signatures":[{"sig":"MEYCIQDmYDK1r+nJDwqQJPvQj9ysHw1a5v/4qa/Gt1MSGE9DrgIhALn0C5sCOD9hxPnrvwOsD3tjC53krjrHbs6lwR3droWz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDXz9kYF79EVVdyeqVSl8PyHk5oVQ/6zjkWC1rkZFWdAQIhAPi7hxzGVuu+pQKgx7NS9ObUCTpxqUqzuEFx80V6eEY+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.175","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4942144},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"55d99da61a0fbe06d1225d170854d5d7ed7beb4c","scripts":{"lint":"eslint src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.175","@hydranium/protocol":"1.0.0-next.175","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.175","@hydranium/protocol":"1.0.0-next.175","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.175_1790927440082_0.4565930591266356","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.176":{"name":"@hydranium/core","version":"1.0.0-next.176","keywords":["hydranium","langium","language-server","lsp","ast","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.176","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"2b79d80169fd524023ce6ee8da5c796fa4fb66b3","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.176.tgz","fileCount":993,"integrity":"sha512-P0i8KYeiwAfwHsmaQNFV3JDdXg126W9cK9u8rL+mDz2MGJ45Lcgf3tCrrUebOuaICCt2a6qGWMBsUzAsA649Ow==","signatures":[{"sig":"MEUCIQCUWvwWHEUpkY1ljcU8ZfzW8uB9oRW3hHpLVtLzalI4LAIgeCgMgRxhorjz5C4E6STQur9YxiJZKYNrMCRqh3Ojqu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC5B707rwA0zAhtLjQRW2zBsUfy1dO7dKvXkUdbcc2qkgIgLiqJiVtiJkyLOftT8B9dfutLOgIUVqhER09OZla+KnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.176","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4942566},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"f2701eb5d00f38595d2099980346074d70ce4ee8","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.176","@hydranium/protocol":"1.0.0-next.176","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.176","@hydranium/protocol":"1.0.0-next.176","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.176_1790935510493_0.9733597129665625","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.177":{"name":"@hydranium/core","version":"1.0.0-next.177","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.177","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"729327b84492ac3c052076f3f30ab92bc06f4976","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.177.tgz","fileCount":993,"integrity":"sha512-1Y4TqdcQlBN7JB1Dv/bXr4q9Jw5dq0KIHoqGJAs1CuSdxNxwbFpVoBXfOJX+VrIwQ+DZ2NKccTMBFxMBzI69GA==","signatures":[{"sig":"MEQCIGji4j1FF1n18l9s8ZGdJZ7cgfp9XJJMo8ItExkVOaqwAiAZk4kDY3eU7QKpA6DNeL8Cns7qxvaBGHjp60ykYXRSzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIChhifYwxS3gNHTozJDuqFHPxSp3cZCPKxZmEO3r9n1oAiBHCJgCzUaYTYRdCR34dlbJVVOwsfBYQniMwZYtvbgXSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.177","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4942604},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0bd2ddad64f34cf251c80077f0755b69eae738b9","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^5.8.0","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.177","@hydranium/protocol":"1.0.0-next.177","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.177","@hydranium/protocol":"1.0.0-next.177","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.177_1790940588749_0.39468590751062305","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.179":{"name":"@hydranium/core","version":"1.0.0-next.179","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.179","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"81a3a30915cc1f5e54b895458a6ad28d4077c21a","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.179.tgz","fileCount":993,"integrity":"sha512-Xk3KbxgEYjvs2DtUzu0VeE5MawV0oA19HQNd8E3OTXHDp+OF4g3Lp5/xLfhxCiC7q2c6hVvqSJghzlbAlTQzMg==","signatures":[{"sig":"MEQCIFC4wxvg424c5TRzi6ie+5R6+tGMhCLYW8XYMXPaz2t0AiA4RWFeW3h31aatxFrxJcRjKrxxwGfn8xzsMQAX53yxbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCh83muUCkuM2k6mW3cUXVPVJQwUsrAtZnrlmgXKSDlHgIhAJMzlEFYOew/NfH9QqUIc3ojL61T5pkYXgxXrNzonedB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.179","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4946923},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"d98696eba7798a8392b601d15a66884764e59d9d","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^7.0.2","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.179","@hydranium/protocol":"1.0.0-next.179","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.179","@hydranium/protocol":"1.0.0-next.179","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.179_1790943494058_0.08462360500937116","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.180":{"name":"@hydranium/core","version":"1.0.0-next.180","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.180","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"dbdca26fbe2bba03f698388586716ece035bf4e0","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.180.tgz","fileCount":993,"integrity":"sha512-OUHytkodjfb9C4XY4RmQ/bvKCeAX8e1hSxXGdhK6LHloA3BMo4aMjh2Y4SLRMAvTSQt3IIQD9YL21utKZgzHAQ==","signatures":[{"sig":"MEUCIFQxsmN3Bv2rctUqrx5e8d+r5ZtwiGp32ySJ7MnY2D4wAiEAlJCgtk5gpov/DSA5LS1fgZLW4GxAmygSiWSNFBTaNDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD2T2MjQ1C3fVcXQokvmBSvowsIfaiir372bwmoBX47VQIhAIE19Tp3YEQkOtYVfFQHXmTvIm+l1XterBuGEZb6RjJk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.180","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4946923},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"c9ca6f89b51f3cc93e1316bda7710f30c130187f","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^7.0.2","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.180","@hydranium/protocol":"1.0.0-next.180","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.180","@hydranium/protocol":"1.0.0-next.180","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.180_1790944970171_0.7836918052077197","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.181":{"name":"@hydranium/core","version":"1.0.0-next.181","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.181","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"e13f6fdd07d0450b29c1ecab5672ca79acd23f8b","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.181.tgz","fileCount":993,"integrity":"sha512-Vv4NOEbY7gKXIr8nhJTypC8up7OcRpkUhwQreQn2BBGAXJ3YdJ5BIJFTCff6P03Dck2EVgSbrmVlcvnvpZauzg==","signatures":[{"sig":"MEUCIAftKm1K6nAS1lOnoNqmkTou640fSuJMizU35TI82CjCAiEAgbHLiRaP/e1jcsYD/DVdgG9mmr7sGu/d7JQzIquhRfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDRZxO5ejy0PnEEUS00WSBC0+nlKy59UYIXkKPANyBWXAIgONDrzYKxDbmvbNvfwoPmNQijKiWWfQDgj7WdpHULjVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.181","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4946923},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"2c50797f9ce8e785cd1f2269e6273bb4f6425662","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.13.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^7.0.2","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.181","@hydranium/protocol":"1.0.0-next.181","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.181","@hydranium/protocol":"1.0.0-next.181","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.181_1790945568209_0.6473093537330841","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.183":{"name":"@hydranium/core","version":"1.0.0-next.183","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"author":{"name":"Hydranium Team"},"license":"MIT","_id":"@hydranium/core@1.0.0-next.183","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"a73655b2053bb9c226fb03dba84544a77bd32dda","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.183.tgz","fileCount":993,"integrity":"sha512-7Kq24V6gFLesqyt+p8y1fR/P+ePulmjcprKfdB16NV/k/5orhyPk4xHiY97IhwyVf1pSTTHVjLNZMUMs3Ga0Tg==","signatures":[{"sig":"MEQCICLI4GEgv6tr0e5DpxbI5CHTMDTzRtIp2VR3Pb3A6XQbAiBpx94ZtDiZuX6aO6MLl3LnpacuXECxi/mDw5ACX1YXUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDhs/RmVFjcmzYXtilHH/JdSb8VTXRMjW+F7dDv/VljIgIhALm8J3ahY3Y+e/tE0iS8izH2+TcK3Hb03i+WBX+WhtCD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.183","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4946923},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"fe055eb63801c1e2f1943b55ff7821f2774b9ff7","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.18.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^7.0.2","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.183","@hydranium/protocol":"1.0.0-next.183","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.183","@hydranium/protocol":"1.0.0-next.183","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0-next.183_1790947759536_0.5602913961877165","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-next.185":{"_id":"@hydranium/core@1.0.0-next.185","bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"dist":{"shasum":"e195dc2a00d3b54d85ffe4ef3d1ece7ef8d80183","tarball":"https://registry.npmjs.org/@hydranium/core/-/core-1.0.0-next.185.tgz","fileCount":993,"integrity":"sha512-TbXj19t+PpKCdPgT6f3ENLMc64s2kqahb8V9t4nYI3r6XamoGqYp8/XXc3j9VecjJb6nuJpLZsAokYbJ6TXEtw==","signatures":[{"sig":"MEUCIQDH3jc6x6ulvP1H+fJkVZIsRoRUGhHNipuzpzHPO5SPPQIgHFHh0H7eBYrUefFTRc8AYUaaBtBAxLk6PxfaJDvEEf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDRc3KdkNCsxK9qlfmwyVV2QSXLElWoH+FuRzTHG9l2oAiABa08pSX9bIOCZ35XJxEye1evi+gDLMfA/YOW4ZWJi6g=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hydranium%2fcore@1.0.0-next.185","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4946923},"main":"lib/index.js","name":"@hydranium/core","type":"module","types":"lib/index.d.ts","author":{"name":"Hydranium Team"},"engines":{"node":">=22.13"},"exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./lib/lsp":{"types":"./lib/lsp/index.d.ts","default":"./lib/lsp/index.js"},"./testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/node":{"types":"./lib/node/index.d.ts","default":"./lib/node/index.js"},"./messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./lib/testing":{"types":"./lib/testing/index.d.ts","default":"./lib/testing/index.js"},"./lib/messages":{"types":"./lib/messages/index.d.ts","default":"./lib/messages/index.js"},"./testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./lib/testing/node":{"types":"./lib/testing/node/index.d.ts","default":"./lib/testing/node/index.js"},"./testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"},"./lib/testing/playwright":{"types":"./lib/testing/playwright/index.d.ts","default":"./lib/testing/playwright/index.js"}},"gitHead":"0c1f5de214bdd827a96cf271263260f8fb9759d3","license":"MIT","scripts":{"lint":"oxlint --format stylish --config ../../oxlint.config.cjs src test --max-warnings 0","test":"npm run typecheck:test && vitest run","build":"tsc -b","clean":"rimraf lib tsconfig.tsbuildinfo","watch":"tsc -b -w --preserveWatchOutput","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);}\"","audit:mutation":"stryker run","typecheck:test":"tsc --noEmit -p tsconfig.test.json","audit:mutation:quick":"stryker run --mutate src/langium/model-service/model-service.ts"},"version":"1.0.0-next.185","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"2dbccb9d-181b-4e98-9999-84bee32d7539"}},"homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"//prepack":"The publish guard, and it deliberately is NOT a `prepare`: npm runs a workspace `prepare` BEFORE the root `postinstall` that applies patches/vscode-jsonrpc+9.0.1.patch, so building there fails on a cold clone and npm rolls the entire install back. `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. It FAILS rather than rebuilds, because the rebuild is exactly the part that ordering defeats. 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.","repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"_npmVersion":"11.15.0","description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","directories":{},"maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"sideEffects":["./lib/node/index.js","./lib/util/index.js"],"_nodeVersion":"22.18.0","dependencies":{"diff":"^5.2.0"},"//sideEffects":"NOT `false`: two barrels do work at module load that their re-exports do not account for, and a bundler skips an unflagged re-export barrel outright. `node/index.js` calls `installNodeLogFileSink()` and `installNodeWriteLockScope()`, which is how a Node host gets the log file-tee and write-lock reentrancy detection merely by importing `@hydranium/core/node`. `util/index.js` carries a bare `import '@hydranium/langium'` so the `UriUtils` namespace augmentation stays loaded for anything importing from here. Both failures are runtime-only and silent — a missing log file, a `UriUtils.toUri` that is `undefined`.","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","typescript":"^7.0.2","@types/diff":"^5.2.0","vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.185","@hydranium/protocol":"1.0.0-next.185","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.2","vscode-languageserver-textdocument":"^1.0.12"},"peerDependencies":{"vscode-jsonrpc":"9.0.1","@playwright/test":"^1.40.0","@hydranium/langium":"1.0.0-next.185","@hydranium/protocol":"1.0.0-next.185","vscode-languageserver":"~10.0.1","vscode-languageserver-types":"^3.17.5","vscode-languageserver-protocol":"~3.18.1","vscode-languageserver-textdocument":"^1.0.12"},"//peerDependencies":"`vscode-jsonrpc` is EXACT rather than a range, because it is one link of an atomic chain with no independently movable link: `vscode-languageserver-protocol` depends on it at exactly 9.0.1, so any other value an adopter supplies is a SECOND physical copy rather than an upgrade. This wire stack breaks on copy identity rather than on structure — `ParameterStructures.auto` is a singleton compared by `===` in connection.js, so a request type built by one copy and sent over a connection owned by the other throws `Unknown parameter structure auto`. A caret or union range was rejected because npm then resolves a `vscode-jsonrpc@8.2.0` tree SILENTLY, with no diagnostic at all, and the failure surfaces only later at server init. Exact does not fail the install either — npm downgrades an unsatisfiable peer to a warning — but it is a NAMED ERESOLVE warning printing the required version beside the found one, and a hard error for anyone installing with `--strict-peer-deps`. It does NOT prevent a NESTED copy — `@eclipse-glsp/*` carries its own exact `vscode-jsonrpc@8.2.0` dependency and root `overrides` do not ship — so a consumer of the GLSP head must pin the chain in its own manifest, and docs/adopting/requirements.md carries the block to paste. This manifest declares the two links ABOVE the transport as well, and they carry `~` for the same reason: each admits exactly what `langium@4.3.1` itself admits, and a wider range reaches a `vscode-languageserver@9` / `vscode-languageserver-protocol@3.17.x` that depends on the 8.x transport, which is the same split one level up. `vscode-languageserver-types` and `vscode-languageserver-textdocument` are deliberately NOT narrowed: both declare zero dependencies and expose structural APIs, so a duplicate of either drags no transport in and no identity check reads it.","peerDependenciesMeta":{"@playwright/test":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.0.0-next.185_1790957373505_0.36842706916406476"}}},"time":{"created":"2026-09-08T23:04:26.913Z","modified":"2026-10-02T16:09:33.963Z","1.0.0-next.4":"2026-09-08T23:04:27.317Z","1.0.0-next.5":"2026-09-08T23:45:35.791Z","1.0.0-next.6":"2026-09-09T09:16:19.450Z","1.0.0-next.7":"2026-09-09T11:31:50.958Z","1.0.0-next.8":"2026-09-09T11:40:02.020Z","1.0.0-next.9":"2026-09-09T12:48:02.993Z","1.0.0-next.10":"2026-09-09T14:06:57.152Z","1.0.0-next.11":"2026-09-09T14:18:05.172Z","1.0.0-next.12":"2026-09-09T15:59:17.150Z","1.0.0-next.13":"2026-09-10T08:09:38.135Z","1.0.0-next.14":"2026-09-10T09:23:03.684Z","1.0.0-next.15":"2026-09-10T09:32:07.490Z","1.0.0-next.16":"2026-09-10T09:50:14.530Z","1.0.0-next.17":"2026-09-10T10:45:46.498Z","1.0.0-next.18":"2026-09-10T11:04:10.446Z","1.0.0-next.19":"2026-09-10T13:29:21.889Z","1.0.0-next.22":"2026-09-10T20:25:59.499Z","1.0.0-next.23":"2026-09-10T20:46:13.910Z","1.0.0-next.24":"2026-09-10T21:00:32.086Z","1.0.0-next.25":"2026-09-10T21:18:27.942Z","1.0.0-next.27":"2026-09-10T21:39:53.340Z","1.0.0-next.28":"2026-09-10T21:54:41.387Z","1.0.0-next.29":"2026-09-10T22:38:21.739Z","1.0.0-next.30":"2026-09-10T22:53:02.992Z","1.0.0-next.31":"2026-09-10T23:09:23.012Z","1.0.0-next.32":"2026-09-10T23:25:25.271Z","1.0.0-next.33":"2026-09-10T23:51:11.937Z","1.0.0-next.34":"2026-09-10T23:58:21.598Z","1.0.0-next.35":"2026-09-11T07:13:04.848Z","1.0.0-next.36":"2026-09-11T07:24:42.710Z","1.0.0-next.37":"2026-09-11T07:31:54.236Z","1.0.0-next.38":"2026-09-11T07:42:40.732Z","1.0.0-next.39":"2026-09-11T07:59:29.429Z","1.0.0-next.40":"2026-09-11T08:49:26.496Z","1.0.0-next.42":"2026-09-11T10:43:47.654Z","1.0.0-next.44":"2026-09-11T11:57:34.199Z","1.0.0-next.45":"2026-09-11T12:33:19.290Z","1.0.0-next.46":"2026-09-11T13:03:45.401Z","1.0.0-next.49":"2026-09-15T11:58:36.885Z","1.0.0-next.50":"2026-09-15T12:36:55.484Z","1.0.0-next.51":"2026-09-15T12:56:36.501Z","1.0.0-next.52":"2026-09-15T14:56:34.196Z","1.0.0-next.55":"2026-09-16T12:56:12.089Z","1.0.0-next.57":"2026-09-16T15:29:27.721Z","1.0.0-next.58":"2026-09-16T15:38:00.307Z","1.0.0-next.60":"2026-09-17T08:50:01.388Z","1.0.0-next.61":"2026-09-17T11:07:34.693Z","1.0.0-next.62":"2026-09-17T13:18:09.435Z","1.0.0-next.63":"2026-09-17T13:24:43.184Z","1.0.0-next.66":"2026-09-17T21:29:06.472Z","1.0.0-next.67":"2026-09-18T07:54:11.656Z","1.0.0-next.70":"2026-09-18T11:10:35.624Z","1.0.0-next.71":"2026-09-18T11:18:09.381Z","1.0.0-next.72":"2026-09-18T12:42:11.520Z","1.0.0-next.74":"2026-09-18T14:24:29.298Z","1.0.0-next.75":"2026-09-18T15:10:22.210Z","1.0.0-next.76":"2026-09-18T20:57:26.999Z","1.0.0-next.77":"2026-09-18T21:57:57.017Z","1.0.0-next.79":"2026-09-20T15:02:45.568Z","1.0.0-next.85":"2026-09-20T21:24:27.769Z","1.0.0-next.86":"2026-09-21T07:14:43.259Z","1.0.0-next.88":"2026-09-21T08:38:34.060Z","1.0.0-next.90":"2026-09-21T10:22:16.267Z","1.0.0-next.91":"2026-09-21T10:35:15.895Z","1.0.0-next.92":"2026-09-21T12:16:06.411Z","1.0.0-next.93":"2026-09-21T13:14:20.392Z","1.0.0-next.94":"2026-09-21T13:34:37.624Z","1.0.0-next.95":"2026-09-21T14:37:07.365Z","1.0.0-next.96":"2026-09-23T18:01:29.604Z","1.0.0-next.97":"2026-09-23T18:04:03.922Z","1.0.0-next.98":"2026-09-23T18:15:07.685Z","1.0.0-next.103":"2026-09-23T18:38:02.439Z","1.0.0-next.104":"2026-09-23T18:47:29.497Z","1.0.0-next.105":"2026-09-23T18:55:46.767Z","1.0.0-next.106":"2026-09-23T19:46:53.052Z","1.0.0-next.107":"2026-09-23T20:31:06.475Z","1.0.0-next.109":"2026-09-23T23:00:58.406Z","1.0.0-next.111":"2026-09-24T13:30:12.962Z","1.0.0-next.112":"2026-09-24T14:33:31.388Z","1.0.0-next.113":"2026-09-24T15:42:09.223Z","1.0.0-next.114":"2026-09-24T16:44:32.341Z","1.0.0-next.115":"2026-09-24T21:46:40.486Z","1.0.0-next.117":"2026-09-28T21:44:37.081Z","1.0.0-next.123":"2026-09-28T22:08:45.798Z","1.0.0-next.127":"2026-09-28T22:37:44.460Z","1.0.0-next.132":"2026-09-28T22:47:59.625Z","1.0.0-next.135":"2026-09-28T22:58:24.046Z","1.0.0-next.140":"2026-09-28T23:06:37.998Z","1.0.0-next.148":"2026-09-28T23:20:48.303Z","1.0.0-next.155":"2026-09-28T23:38:54.193Z","1.0.0-next.157":"2026-09-28T23:47:56.184Z","1.0.0-next.158":"2026-09-30T08:49:17.025Z","1.0.0-next.160":"2026-09-30T10:02:49.196Z","1.0.0-next.168":"2026-09-30T14:07:33.137Z","1.0.0-next.169":"2026-09-30T15:49:14.654Z","1.0.0-next.173":"2026-10-01T13:15:45.826Z","1.0.0-next.174":"2026-10-02T07:39:46.879Z","1.0.0-next.175":"2026-10-02T07:50:40.211Z","1.0.0-next.176":"2026-10-02T10:05:10.602Z","1.0.0-next.177":"2026-10-02T11:29:48.865Z","1.0.0-next.179":"2026-10-02T12:18:14.203Z","1.0.0-next.180":"2026-10-02T12:42:50.272Z","1.0.0-next.181":"2026-10-02T12:52:48.351Z","1.0.0-next.183":"2026-10-02T13:29:19.647Z","1.0.0-next.185":"2026-10-02T16:09:33.625Z"},"bugs":{"url":"https://github.com/eclipse-emfcloud/hydranium/issues"},"author":{"name":"Hydranium Team"},"license":"MIT","homepage":"https://github.com/eclipse-emfcloud/hydranium/tree/main/packages/core","keywords":["ast","hydranium","langium","language-server","lsp","serialization"],"repository":{"url":"git+https://github.com/eclipse-emfcloud/hydranium.git","type":"git","directory":"packages/core"},"description":"Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, ","maintainers":[{"name":"mfleck","email":"mfleck@eclipsesource.com"}],"readme":"# `@hydranium/core`\n\nThe framework runtime of [hydranium](../../README.md): the shared Langium\nworkspace an adopter's modeling-language server is built from, plus the LSP\ntextual head folded in at the `/lsp` subpath. Every adopter server installs it,\nand so does every other head package (`@hydranium/data-server`,\n`@hydranium/glsp-server`).\n\n## What it gives you\n\n- **A composable services tree.** `createServerSharedModule` and\n  `createServerLanguageModule` supply the shared- and language-tier DI slots;\n  `bootstrapLangium` registers a language on the shared `ServiceRegistry`,\n  asserts the core slots are bound, and eager-constructs the services that must\n  exist before the first build.\n- **Semantics layered onto the AST** that an adopter would otherwise rewrite per\n  language: tiered scoping (`HydraniumScopeProvider`,\n  `ReferenceCandidateProvider`), qualified naming (`NameProvider`), computed and\n  synthetic properties (`AstExtensionService`), AST-integrity rules\n  (`IntegrityRule`, `IntegrityRuleRegistry`), batch build passes\n  (`BuildPhasePassService`), and a CST-residency memory policy\n  (`CstResidencyService`).\n- **A build pipeline you can hook by phase.** `HydraniumDocumentBuilder` and\n  `BuildPipelineIntegration` dispatch work at Langium `DocumentState` phases,\n  while the project tier (`ProjectManager`) discovers and groups documents.\n- **Multi-client document coordination.** `AstDocumentManager`,\n  `HydraniumTextDocuments`, `WritableFileSystemProvider` and `SelfSaveRegistry`\n  generalise the LSP document lifecycle to several co-editing heads, so an edit\n  made on one surface is observable on the others without a head-to-head\n  synchronisation protocol. A participant works through a `ClientSession` from\n  `ModelService.createSession`, which writes only what it has open; see\n  [client sessions](../../docs/concepts/client-sessions.md).\n- **The projection the non-LSP heads build on:** `ModelService` (the in-process\n  workspace facade), `TransferEncoder` (AST → transfer model), and the\n  `Serializer` slot.\n- **The LSP head at `./lsp`:** `startLanguageServer`,\n  `createLspServerSharedModule` / `createLspServerLanguageModule`,\n  `HydraniumCompletionProvider`, `HydraniumDocumentUpdateHandler`, and\n  `AbstractHydraniumSemanticTokenProvider`.\n\n## Install\n\n```bash\nnpm install @hydranium/core\n```\n\nNothing is bundled for you — the peers must be present in the consuming project:\n\n- `@hydranium/protocol` (the wire contract) and `@hydranium/langium` (the pinned\n  Langium re-export). Import Langium through `@hydranium/langium` so the whole\n  workspace resolves one physical copy of it.\n- `vscode-jsonrpc`, `vscode-languageserver`, `vscode-languageserver-protocol`,\n  `vscode-languageserver-textdocument`, `vscode-languageserver-types`.\n- `@playwright/test` — optional, and needed only for `./testing/playwright`.\n\nThe single bundled runtime dependency is `diff`. You also need a Langium grammar\nand its generated AST already in place; `hydranium-cli init` scaffolds both.\n\n## Exports\n\n| subpath               | holds                                                                                                                                                                                                       | platform        |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |\n| `.`                   | The head-neutral framework core: DI modules, AST semantics, build pipeline, model coordination.                                                                                                              | browser-neutral |\n| `./lsp`               | The LSP textual head — `startLanguageServer`, its two DI modules, and the Langium-LSP overrides.                                                                                                             | browser-neutral |\n| `./node`              | Server-only: `DefaultFileSystemProvider` / `NodeFileSystem`, `startStdioServer`, `startSocketServer`, `publishPortOnLspConnection`, and the headless tools `validateWorkspace` / `reflectGrammar` / `lintGrammar`. | Node-only       |\n| `./testing`           | Langium-layer doubles plus `makeTestServices` and `makeFakeDocument`.                                                                                                                                        | browser-neutral |\n| `./testing/node`      | Test support that needs a real filesystem, a stream transport or a child process: scratch workspace, golden corpus, `makeLspHarness`, `startSpawnedServer`.                                                  | Node-only       |\n| `./testing/playwright`| Playwright fixtures for end-to-end profiling and server-log capture.                                                                                                                                        | Node-only       |\n\nThe browser-neutral entries are gated in CI (`scripts/check-neutral-bundles.mts`\nbundles them for the browser and fails on a `node:*` import, including a\ntransitive one) — see [what \"gated neutral\" does and does not promise](../../docs/concepts/browser-hosting.md#a-note-on-what-gated-neutral-does-and-does-not-promise).\nEach subpath also has a `./lib/…` twin, so a consumer on\n`moduleResolution: \"Node\"` can reach it.\n\nImporting `./node` has two deliberate side effects at module load: it installs\nthe `node:fs`-backed log-file sink and the `node:async_hooks`-backed write-lock\nreentrancy check, both of which the neutral tree can only declare.\n\n## Getting oriented\n\nA server composes one shared services tree per process and one language module\nper grammar, then hands that tree to whichever heads it wants to run. The\nworked, compiling version of that composition is in the\n[repository README](../../README.md#compose-a-server--minimal-example); the\nlayering behind it is described in\n[`docs/concepts/architecture.md`](../../docs/concepts/architecture.md), and\n[`docs/concepts/head-module-maps.md`](../../docs/concepts/head-module-maps.md) is\nthe module-by-module map of this package. The class-role naming, the `./node`\nboundary and the registration-contribution pattern the services follow are in\n[`docs/contributing/conventions.md`](../../docs/contributing/conventions.md).\n\n## Status\n\nAlpha — pre-v0, not yet published. The API is not stable and may change without a\ndeprecation cycle. See the [repository README](../../README.md) for the current\nstatus and known limitations.\n\nFor task-shaped adoption paths, start with the [validation check guide](../../docs/guides/add-validation-check.md). It shows the validation contribution boundary that this package supplies.\n\n## License\n\n`MIT` — see this package's [`LICENSE`](./LICENSE). Third-party notices for the\nrepository are recorded in [`NOTICE.md`](../../NOTICE.md).\n","readmeFilename":"README.md"}