{"_id":"@aopslabs/host-core","_rev":"6-bd7bdc3cc4ee617df3e449b618f8674e","name":"@aopslabs/host-core","dist-tags":{"latest":"0.3.3"},"versions":{"0.2.0":{"name":"@aopslabs/host-core","version":"0.2.0","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/host-core@0.2.0","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"dist":{"shasum":"6431792184bd4099c17969551b8db1a9f79cf7bb","tarball":"https://registry.npmjs.org/@aopslabs/host-core/-/host-core-0.2.0.tgz","fileCount":22,"integrity":"sha512-OamxHmS/ScnCZ5YQk/bfyS2pGKQu7TWz4AZULlOpS+AwfCQ9DJsLb14l0KbM/2M2XtZkz7TqlNNwyhrAGOQHcw==","signatures":[{"sig":"MEUCIBsOH0Xw+ic3ppMSImxSrZKFPeunNA5sx6AO9RALF3DEAiEA1wpGcXGXjWieCWTfOr7vjywIheTAWp8fODeEavDzf+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45712},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"build":"tsc -p tsconfig.lib.json"},"_npmUser":{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"},"repository":{"url":"https://github.com/eeemzs/xf-packages.git","type":"git"},"directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/host-core_0.2.0_1785856757672_0.9480823220642041","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aopslabs/host-core","version":"0.2.1","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/host-core@0.2.1","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"homepage":"https://github.com/eeemzs/xf-packages#readme","bugs":{"url":"https://github.com/eeemzs/xf-packages/issues"},"dist":{"shasum":"cf5fb0f3650583cb54c6e9be3b2d83d40b6fe409","tarball":"https://registry.npmjs.org/@aopslabs/host-core/-/host-core-0.2.1.tgz","fileCount":22,"integrity":"sha512-IvaHw8CXBk0sP6QwuH1yZBGy4eJRQJCglS6agbZcdo5J9iCjU92CGw8j+1kaBeatWUMPKD/GNqaOYFy+h8M2Mw==","signatures":[{"sig":"MEQCIFYXzyJfm5ks8w7lQGPrDEuXgilqBPj7da1ghnOTQe46AiBJV5FAavaHZbAqzBASLs8u/Jl3VVtqoXJvnNMsayzE3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49829},"main":"./dist/index.js","type":"module","_from":"file:/tmp/xf-private-release-eUv2tz/aopslabs-host-core-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"build":"tsc -p tsconfig.lib.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7491e360-0af1-4a95-adf3-ccd9ffa961d9"}},"_resolved":"/tmp/xf-private-release-eUv2tz/aopslabs-host-core-0.2.1.tgz","_integrity":"sha512-IvaHw8CXBk0sP6QwuH1yZBGy4eJRQJCglS6agbZcdo5J9iCjU92CGw8j+1kaBeatWUMPKD/GNqaOYFy+h8M2Mw==","repository":{"url":"git+https://github.com/eeemzs/xf-packages.git","type":"git"},"_npmVersion":"11.9.0","description":"A framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/host-core_0.2.1_1786220794718_0.3805417936032185","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aopslabs/host-core","version":"0.3.0","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/host-core@0.3.0","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"homepage":"https://github.com/eeemzs/xf-packages#readme","bugs":{"url":"https://github.com/eeemzs/xf-packages/issues"},"dist":{"shasum":"566caa3e42a419edc4b5f0b7529945dc07e8f622","tarball":"https://registry.npmjs.org/@aopslabs/host-core/-/host-core-0.3.0.tgz","fileCount":24,"integrity":"sha512-nU++fcUUzUlG6vb7vma5yTKMZsGjvoY/yK4w0K6bQujNPsuk1nt/uL6pGN8ecgdM7nbFw0mJG/IYQWZNouC+Ng==","signatures":[{"sig":"MEYCIQCRpEiCYtIKXv402CNh4Aj9FSrHlqdSbFkfQD5bP+I6BAIhAIKBjxKiskN0BxoYydwUKHvpcAUZymkibBCamOpog+fA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73235},"main":"./dist/index.js","type":"module","_from":"file:/tmp/xf-private-release-NhnMNZ/aopslabs-host-core-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.lib.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7491e360-0af1-4a95-adf3-ccd9ffa961d9"}},"_resolved":"/tmp/xf-private-release-NhnMNZ/aopslabs-host-core-0.3.0.tgz","_integrity":"sha512-nU++fcUUzUlG6vb7vma5yTKMZsGjvoY/yK4w0K6bQujNPsuk1nt/uL6pGN8ecgdM7nbFw0mJG/IYQWZNouC+Ng==","repository":{"url":"git+https://github.com/eeemzs/xf-packages.git","type":"git"},"_npmVersion":"11.9.0","description":"A framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/host-core_0.3.0_1786271884327_0.7964392114840144","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aopslabs/host-core","version":"0.3.1","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/host-core@0.3.1","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"homepage":"https://github.com/eeemzs/xf-packages#readme","bugs":{"url":"https://github.com/eeemzs/xf-packages/issues"},"dist":{"shasum":"3db1528e40b7b231f5aafc9c11e1e094a3e82c3f","tarball":"https://registry.npmjs.org/@aopslabs/host-core/-/host-core-0.3.1.tgz","fileCount":24,"integrity":"sha512-bCrQGS1QWOF+vvjPJ00QLyFnPbWshvGnPmQXA7KJ6AnLtJ42XuroFf3OteP0yRzOKTZF4ItFRCoAz6np9sVfdA==","signatures":[{"sig":"MEUCIQCLtL23Buw5xwElKlZsZEBoH0FE8rhtOhvJsFoiOdt75AIgTxELM03JBInQAZ844x0T0k4EH9fV2QtbcgT01hFpIa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74692},"main":"./dist/index.js","type":"module","_from":"file:/tmp/xf-private-release-LV3ccA/aopslabs-host-core-0.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"test":"pnpm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.lib.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7491e360-0af1-4a95-adf3-ccd9ffa961d9"}},"_resolved":"/tmp/xf-private-release-LV3ccA/aopslabs-host-core-0.3.1.tgz","_integrity":"sha512-bCrQGS1QWOF+vvjPJ00QLyFnPbWshvGnPmQXA7KJ6AnLtJ42XuroFf3OteP0yRzOKTZF4ItFRCoAz6np9sVfdA==","repository":{"url":"git+https://github.com/eeemzs/xf-packages.git","type":"git"},"_npmVersion":"11.9.0","description":"A framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/host-core_0.3.1_1787261197174_0.7664282800538362","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@aopslabs/host-core","version":"0.3.2","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/host-core@0.3.2","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"homepage":"https://github.com/eeemzs/tsapps#readme","bugs":{"url":"https://github.com/eeemzs/tsapps/issues"},"dist":{"shasum":"4bebabb8971d07086a13c77f2174f19035161169","tarball":"https://registry.npmjs.org/@aopslabs/host-core/-/host-core-0.3.2.tgz","fileCount":24,"integrity":"sha512-3Hby/yaBN6igEVpyq1nXHr/d/Q2t/ElATNxvwRE4Z+tn2fjbj7D5F+0VZQdYQVD+18xK443xYU0GhoTMUlzsVw==","signatures":[{"sig":"MEQCIE6r2z64+ULodOlg9H1alqbe1av9M7fIFnAkMdB++KpjAiBjIBoW5BkE8tkwe8SU/yG/OILSGqgF2KjfPin2NZ1oHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80453},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-candidates/aopslabs-host-core-0.3.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"eslint . --max-warnings=0","test":"node --test test/*.test.mjs","build":"tsc -p tsconfig.lib.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd43cfef-59a2-4ad1-a36d-b4f4b3c5f8a1"}},"_resolved":"/home/runner/work/_temp/release-candidates/aopslabs-host-core-0.3.2.tgz","_integrity":"sha512-3Hby/yaBN6igEVpyq1nXHr/d/Q2t/ElATNxvwRE4Z+tn2fjbj7D5F+0VZQdYQVD+18xK443xYU0GhoTMUlzsVw==","repository":{"url":"git+https://github.com/eeemzs/tsapps.git","type":"git","directory":"packages/xf-packages/xf-host-core"},"_npmVersion":"11.9.0","description":"A framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.5","typescript":"5.9.3","@aopslabs/eslint-config":"0.0.0","@aopslabs/typescript-config":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/host-core_0.3.2_1788791223389_0.4445924839610942","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@aopslabs/host-core","version":"0.3.3","private":false,"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"repository":{"type":"git","url":"git+https://github.com/eeemzs/tsapps.git","directory":"packages/xf-packages/xf-host-core"},"license":"SEE LICENSE IN LICENSE","devDependencies":{"eslint":"9.39.5","typescript":"5.9.3","@aopslabs/eslint-config":"0.0.0","@aopslabs/typescript-config":"0.0.0"},"scripts":{"build":"tsc -p tsconfig.lib.json","test":"node --test test/*.test.mjs","lint":"eslint . --max-warnings=0"},"_id":"@aopslabs/host-core@0.3.3","description":"A framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.","bugs":{"url":"https://github.com/eeemzs/tsapps/issues"},"homepage":"https://github.com/eeemzs/tsapps#readme","_integrity":"sha512-ZRYc2ea0flY7zQuMLaYX87VPfC0OHkqRF+9jeJqhBcQxtxnQcbd+l3uLJWBELWL/d3mtvHnpEhMEG9fOFVSTQQ==","_resolved":"/home/runner/work/_temp/release-candidates/aopslabs-host-core-0.3.3.tgz","_from":"file:/home/runner/work/_temp/release-candidates/aopslabs-host-core-0.3.3.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-ZRYc2ea0flY7zQuMLaYX87VPfC0OHkqRF+9jeJqhBcQxtxnQcbd+l3uLJWBELWL/d3mtvHnpEhMEG9fOFVSTQQ==","shasum":"627e29693231a1ecceb038279415733115b39780","tarball":"https://registry.npmjs.org/@aopslabs/host-core/-/host-core-0.3.3.tgz","fileCount":24,"unpackedSize":80671,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAWzFZxpt7Ov/ksOenYeBZwtFwi62AphPqHvUQKHBsDcAiA2WyJ6cW6ptMkIixUvplLxjEQffIECvTrT2nd3zJUk8A=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd43cfef-59a2-4ad1-a36d-b4f4b3c5f8a1"}},"directories":{},"maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/host-core_0.3.3_1789257749826_0.5769547341560168"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T15:19:17.513Z","modified":"2026-09-13T00:02:30.181Z","0.2.0":"2026-08-04T15:19:17.810Z","0.2.1":"2026-08-08T20:26:34.879Z","0.3.0":"2026-08-09T10:38:04.474Z","0.3.1":"2026-08-20T21:26:37.335Z","0.3.2":"2026-09-07T14:27:03.512Z","0.3.3":"2026-09-13T00:02:29.966Z"},"bugs":{"url":"https://github.com/eeemzs/tsapps/issues"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/eeemzs/tsapps#readme","repository":{"type":"git","url":"git+https://github.com/eeemzs/tsapps.git","directory":"packages/xf-packages/xf-host-core"},"description":"A framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"readme":"# @aopslabs/host-core\n\nA framework-neutral runtime for registering domain plugins, matching routes, applying access policies, and dispatching structured requests.\n\n## Installation\n\n```bash\nnpm install @aopslabs/host-core\n```\n\n## Usage\n\n```typescript\nimport {\n  DomainPluginRegistry,\n  dispatchDomainRequest\n} from '@aopslabs/host-core';\n\nconst registry = new DomainPluginRegistry();\nregistry.register(contentPlugin);\n\nconst response = await dispatchDomainRequest({\n  registry,\n  request: {\n    method: 'POST',\n    domain: 'content',\n    path: ['documents', 'create'],\n    body: { title: 'Example' },\n    context: { tenantId: 'tenant-1' }\n  }\n});\n```\n\n## Main surfaces\n\n- `DomainPluginRegistry` for plugin registration and setup\n- `dispatchDomainRequest` for request routing and execution\n- Route matching against declarative manifests\n- Public, authenticated, and role-based policies\n- Additive authenticated-route requirements: `requiredCapabilities` uses\n  all-of semantics, `requiredRoles` uses any-of semantics, and both must pass\n  when declared. Routes without these fields retain their existing behavior.\n- Plugin-contract and configuration validation\n- Tool-provider adapters for catalog-driven invocation\n- Opt-in `host.route-safety.v2` manifests with an author-declared\n  `gateClass` (`read`, `write`, or `destructive`). V2 declarations preserve\n  raw domain `sideEffect` and `policy.safety` evidence and fail closed when\n  required fields conflict.\n\nPlugins without the capability retain the legacy route contract. HTTP method\nor operation-name inference is never an authority for a v2 route.\n\nThe package has no runtime dependencies and does not require a particular HTTP framework.\n\n## License\n\nCopyright (c) 2026 Mehmet Zeki Sönmez.\n\nLicensed under the [PolyForm Strict License 1.0.0](https://polyformproject.org/licenses/strict/1.0.0). The license permits noncommercial use and does not grant permission to modify or redistribute the package.\n","readmeFilename":"README.md"}