{"_id":"@7k-inari/ui-plugin-sdk","_rev":"4-8aa2db0552e01fd3d81a637ebabb2622","name":"@7k-inari/ui-plugin-sdk","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.1":{"name":"@7k-inari/ui-plugin-sdk","version":"0.1.1","license":"Apache-2.0","_id":"@7k-inari/ui-plugin-sdk@0.1.1","maintainers":[{"name":"joaodss","email":"joaodss@live.com.pt"}],"bin":{"inari-ui-ext":"bin/inari-ui-ext.mjs","create-inari-ui-extension":"bin/create-inari-ui-extension.mjs"},"dist":{"shasum":"08892f9bd1d12e90b95acc34c804ae8e4fd2db34","tarball":"https://registry.npmjs.org/@7k-inari/ui-plugin-sdk/-/ui-plugin-sdk-0.1.1.tgz","fileCount":39,"integrity":"sha512-LtmTc4CAkJjqDr4Z8qdAgTW1CZvBSBgI5D9QWOxWX5ydg0Lex8QSkQNzq22T/j2bPsM3c1/Nzu/LO+jJTGBiUA==","signatures":[{"sig":"MEYCIQCrw+d0GJnh7YYCzcjkp3RselBwrniVcabq9pXuk3pnRAIhAOYmUSzhtHvwOkalN5OT8s5cxRI66sd8aSW1D5cvSO+j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145863},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens":{"types":"./dist/tokens/index.d.ts","import":"./dist/tokens/index.js","require":"./dist/tokens/index.cjs"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js","require":"./dist/harness/index.cjs"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.cjs"},"./tokens.css":"./src/tokens/tokens.css"},"gitHead":"01ded30b6ecc55534a737b0c61af08952fe54cbc","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"joaodss","email":"joaodss@live.com.pt"},"_npmVersion":"12.0.2","description":"TypeScript SDK for Inari UI extensions: extension-point blueprints, host APIs, dev harness","directories":{},"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","tsup":"^8.3.5","vite":"^5.4.21","jsdom":"^25.0.1","react":"^18.3.1","eslint":"^9.13.0","vitest":"^2.1.3","react-dom":"^18.3.1","@eslint/js":"^9.13.0","typescript":"^5.9.3","@types/node":"^22.8.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","react-router-dom":"^6.30.4","typescript-eslint":"^8.11.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.0.1"},"peerDependencies":{"zod":">=3","react":">=18","react-dom":">=18"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ui-plugin-sdk_0.1.1_1787312598208_0.24224549753138258","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@7k-inari/ui-plugin-sdk","version":"0.1.5","license":"Apache-2.0","_id":"@7k-inari/ui-plugin-sdk@0.1.5","maintainers":[{"name":"joaodss","email":"joaodss@live.com.pt"}],"homepage":"https://github.com/7K-Inari/inari-ui-plugin-sdk#readme","bugs":{"url":"https://github.com/7K-Inari/inari-ui-plugin-sdk/issues"},"bin":{"inari-ui-ext":"bin/inari-ui-ext.mjs","create-inari-ui-extension":"bin/create-inari-ui-extension.mjs"},"dist":{"shasum":"61375107402d80ba628b9a87316303d7b7d5b532","tarball":"https://registry.npmjs.org/@7k-inari/ui-plugin-sdk/-/ui-plugin-sdk-0.1.5.tgz","fileCount":39,"integrity":"sha512-jZx/sJMPUXNdWX7M+IDJa1paf5JV+1K66CuLM7boRyUB7Dkn340z7bb0qBzx0T98us4JtGQLTyjfwl4oD7PV9w==","signatures":[{"sig":"MEQCIBqzBBR5s8DfSmq2LKSvhquM9DRo0ueWUZv2FjSqrU4+AiBabJjFsVt6I85JDo/LJGJq87MP1emMSHjn7y8aZwr7Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@7k-inari%2fui-plugin-sdk@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145978},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens":{"types":"./dist/tokens/index.d.ts","import":"./dist/tokens/index.js","require":"./dist/tokens/index.cjs"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js","require":"./dist/harness/index.cjs"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.cjs"},"./tokens.css":"./src/tokens/tokens.css"},"gitHead":"e2143acb2460dadd6bde9ee56873a0d1a7f92fdb","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66202c2c-aca0-47cf-b1e7-6129fa49f3ba"}},"repository":{"url":"git+https://github.com/7K-Inari/inari-ui-plugin-sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"TypeScript SDK for Inari UI extensions: extension-point blueprints, host APIs, dev harness","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","tsup":"^8.3.5","vite":"^5.4.21","jsdom":"^25.0.1","react":"^18.3.1","eslint":"^9.13.0","vitest":"^2.1.3","react-dom":"^18.3.1","@eslint/js":"^9.13.0","typescript":"^5.9.3","@types/node":"^22.8.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","react-router-dom":"^6.30.4","typescript-eslint":"^8.11.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.0.1"},"peerDependencies":{"zod":">=3","react":">=18","react-dom":">=18"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ui-plugin-sdk_0.1.5_1787320655120_0.28975010345656305","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@7k-inari/ui-plugin-sdk","version":"0.1.6","license":"Apache-2.0","_id":"@7k-inari/ui-plugin-sdk@0.1.6","maintainers":[{"name":"joaodss","email":"joaodss@live.com.pt"}],"homepage":"https://github.com/7K-Inari/inari-ui-plugin-sdk#readme","bugs":{"url":"https://github.com/7K-Inari/inari-ui-plugin-sdk/issues"},"bin":{"inari-ui-ext":"bin/inari-ui-ext.mjs","create-inari-ui-extension":"bin/create-inari-ui-extension.mjs"},"dist":{"shasum":"6993dc79549d15c976ae8d4a570ea8039cec71b2","tarball":"https://registry.npmjs.org/@7k-inari/ui-plugin-sdk/-/ui-plugin-sdk-0.1.6.tgz","fileCount":39,"integrity":"sha512-+f5FUHXFedBubPAZtLPTVPTzbjwx9POnMzArgJ1kDnlZqyeh9Oh5cn25En/xUKJLU7fkNV08isoDnaxz/bNX2Q==","signatures":[{"sig":"MEUCIQDMwv3ThXalHqROfiDirLKeLyRREC2bp2JVuPAike5pmQIgQ5LT58cVP9rIy0B36g4c5rpAZqv2EpUtnaGslqeMzOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE4/P6YiSL7AssIHrbqi0sS92WWnRjxAZ+zICMji6Bo7AiEA9f1fV5Vu7sJDwj/SWJu3SA+m+tcTZ1csro7D5HBQokA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@7k-inari%2fui-plugin-sdk@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147920},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens":{"types":"./dist/tokens/index.d.ts","import":"./dist/tokens/index.js","require":"./dist/tokens/index.cjs"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js","require":"./dist/harness/index.cjs"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.cjs"},"./tokens.css":"./src/tokens/tokens.css"},"gitHead":"ad1b0c74a91971a7600d8aa9d1a58d0d75314ca1","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66202c2c-aca0-47cf-b1e7-6129fa49f3ba"}},"repository":{"url":"git+https://github.com/7K-Inari/inari-ui-plugin-sdk.git","type":"git"},"_npmVersion":"11.20.0","description":"TypeScript SDK for Inari UI extensions: extension-point blueprints, host APIs, dev harness","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","tsup":"^8.3.5","vite":"^5.4.21","jsdom":"^25.0.1","react":"^18.3.1","eslint":"^9.13.0","vitest":"^2.1.3","react-dom":"^18.3.1","@eslint/js":"^9.13.0","typescript":"^5.9.3","@types/node":"^22.8.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","react-router-dom":"^6.30.4","typescript-eslint":"^8.11.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.0.1"},"peerDependencies":{"zod":">=3","react":">=18","react-dom":">=18"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ui-plugin-sdk_0.1.6_1790275725266_0.9377093948091202","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"_id":"@7k-inari/ui-plugin-sdk@0.1.7","bin":{"inari-ui-ext":"bin/inari-ui-ext.mjs","create-inari-ui-extension":"bin/create-inari-ui-extension.mjs"},"bugs":{"url":"https://github.com/7K-Inari/inari-ui-plugin-sdk/issues"},"dist":{"shasum":"6a426693857d9df9c96811390569ff7ef8989142","tarball":"https://registry.npmjs.org/@7k-inari/ui-plugin-sdk/-/ui-plugin-sdk-0.1.7.tgz","fileCount":39,"integrity":"sha512-haFOnV9Tc0RP6f49ykCj4FNRO+7zIsJyKIjK+kMbFbiIx4KtSH1AK83n4Hm8sYqSU4UOoKL+n4oXE5TPQmFFtA==","signatures":[{"sig":"MEUCIQDyffUegD68PU1TtzXeEsWzkfv0vtoM7z7eNTQrs/XGFgIgLeSqNnRCLmEBumR6EDBGDs3Ncgg/alfkT8QCad5cqME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCH0a9BT6qx2E0FLtTueiTfY0H5UP3fqd9TpIUghFBcMQIgDEKa/1J/Vje9+/RZL/fSuWaaJKXXzzn86s6yk+WdfEM="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@7k-inari%2fui-plugin-sdk@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":198378},"name":"@7k-inari/ui-plugin-sdk","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens":{"types":"./dist/tokens/index.d.ts","import":"./dist/tokens/index.js","require":"./dist/tokens/index.cjs"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js","require":"./dist/harness/index.cjs"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.cjs"},"./tokens.css":"./src/tokens/tokens.css"},"gitHead":"6e4016f6b51e59b013fe1813e9872dcf7642f7e7","license":"Apache-2.0","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.1.7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66202c2c-aca0-47cf-b1e7-6129fa49f3ba"}},"homepage":"https://github.com/7K-Inari/inari-ui-plugin-sdk#readme","repository":{"url":"git+https://github.com/7K-Inari/inari-ui-plugin-sdk.git","type":"git"},"_npmVersion":"11.20.0","description":"TypeScript SDK for Inari UI extensions: extension-point blueprints, host APIs, dev harness","directories":{},"maintainers":[{"name":"joaodss","email":"joaodss@live.com.pt"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","tsup":"^8.3.5","vite":"^5.4.21","jsdom":"^25.0.1","react":"^18.3.1","eslint":"^9.13.0","vitest":"^2.1.3","react-dom":"^18.3.1","@eslint/js":"^9.13.0","typescript":"^5.9.3","@types/node":"^22.8.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","react-router-dom":"^6.30.4","typescript-eslint":"^8.11.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.0.1"},"peerDependencies":{"zod":">=3","react":">=18","react-dom":">=18"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui-plugin-sdk_0.1.7_1790515381741_0.6459857091593078"}}},"time":{"created":"2026-08-21T11:43:18.051Z","modified":"2026-09-27T13:23:02.176Z","0.1.1":"2026-08-21T11:43:18.358Z","0.1.5":"2026-08-21T13:57:35.268Z","0.1.6":"2026-09-24T18:48:45.364Z","0.1.7":"2026-09-27T13:23:01.828Z"},"bugs":{"url":"https://github.com/7K-Inari/inari-ui-plugin-sdk/issues"},"license":"Apache-2.0","homepage":"https://github.com/7K-Inari/inari-ui-plugin-sdk#readme","repository":{"url":"git+https://github.com/7K-Inari/inari-ui-plugin-sdk.git","type":"git"},"description":"TypeScript SDK for Inari UI extensions: extension-point blueprints, host APIs, dev harness","maintainers":[{"name":"joaodss","email":"joaodss@live.com.pt"}],"readme":"# inari-ui-plugin-sdk\n\nTypeScript SDK for Inari UI extensions: extension-point blueprints, host APIs, dev harness to run an extension standalone against a dev control plane (plan §6 #7, §5.8, §8.4).\n\nStack: TypeScript, npm package\n\n## Quickstart\n\n```sh\nnpm create inari-ui-extension my-extension\ncd my-extension && npm install && npm run dev\n```\n\n## Writing an extension\n\n```tsx\nimport { createExtension, NavItemBlueprint, PageBlueprint } from '@7k-inari/ui-plugin-sdk';\n\nexport default createExtension({\n  manifest: { name: 'my-extension', version: '0.1.0', kind: 'ui' },\n  slots: [\n    NavItemBlueprint({ name: 'my-nav', title: 'Mine', path: '/mine' }),\n    PageBlueprint({ name: 'my-page', path: '/mine', component: MyPage }),\n  ],\n});\n```\n\n## Docs\n\n- [Blueprint contract](docs/blueprints.md) — typed slots, zod manifests\n- [Host APIs](docs/host-apis.md) — auth/tenant contexts, API client, design tokens, testing mocks\n- [Dev harness](docs/harness.md) — standalone dev against a mock control plane\n- [Shared dependencies](docs/shared-dependencies.md) — React singleton contract\n\n## Package entry points\n\n| Import | Contents |\n|---|---|\n| `@7k-inari/ui-plugin-sdk` | blueprints, `createExtension`, manifest, host APIs |\n| `@7k-inari/ui-plugin-sdk/tokens` | design tokens (TS object) |\n| `@7k-inari/ui-plugin-sdk/tokens.css` | design tokens (CSS custom properties) |\n| `@7k-inari/ui-plugin-sdk/testing` | mock host contexts for unit tests |\n| `@7k-inari/ui-plugin-sdk/harness` | `startDevHarness`, mock control plane |\n\nPart of the **Inari** multi-tenant Internal Developer Platform (GitHub org `7K-Inari`).\nCanonical architecture & development plan: [inari-docs/docs/architecture/inari-platform-plan.md](https://github.com/7K-Inari/inari-docs/blob/main/docs/architecture/inari-platform-plan.md)\n","readmeFilename":"README.md"}