{"_id":"@bernierllc/site-builder-service","_rev":"5-bf02834d1025015b0fcc6b8aa4a02168","name":"@bernierllc/site-builder-service","dist-tags":{"latest":"0.1.3"},"versions":{"0.0.1":{"name":"@bernierllc/site-builder-service","version":"0.0.1","keywords":["oidc","trusted-publishing","setup"],"_id":"@bernierllc/site-builder-service@0.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"d39f5db66d3bb651d1ac8ba55597dba65248f361","tarball":"https://registry.npmjs.org/@bernierllc/site-builder-service/-/site-builder-service-0.0.1.tgz","fileCount":2,"integrity":"sha512-7uUZxCf3xG38FrnGoZm+2tR6BAdyZtWr5+4JWVODJfRgxq1ROqXzYvcZOXuOYH9Hk6Jc/wYhJOOG2xkkwiAcCQ==","signatures":[{"sig":"MEUCICt48uV93IOG8t8rb4mdYjixJ3HeyRZEhExZsT01/tuwAiEArt+0BDp5QBNW5Kg0tFp6bus3R6ilSnJ4/2HIYw7einw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2091},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_npmVersion":"11.12.1","description":"OIDC trusted publishing setup package for @bernierllc/site-builder-service","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/site-builder-service_0.0.1_1781976377309_0.9975497631839569","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bernierllc/site-builder-service","version":"0.1.0","keywords":["site-builder","website-builder","config-driven","tenant","service","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/site-builder-service@0.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"54dd74bfb58585685c763ac65505a1eeef402d58","tarball":"https://registry.npmjs.org/@bernierllc/site-builder-service/-/site-builder-service-0.1.0.tgz","fileCount":30,"integrity":"sha512-U7g2MUaTGzOJwJfMbSOFX87GB7Ut2/Whm1If7kywG67rFG1zN7Xf2gW+6rBKosfo9DqTlPRTe5AzLRBJen/p/w==","signatures":[{"sig":"MEUCIQD4AGZOVYmBlOIjYWUNoF5kAXb0QUjBv7k5swTyHNBUtQIgSoiKP6QrlzOnTP0Y6hEX1PXU34dDlBEs499oW+yunVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66045},"main":"dist/index.js","_from":"file:bernierllc-site-builder-service-0.1.0.tgz","types":"dist/index.d.ts","browser":false,"engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3109cc9-2696-400b-83eb-5342451f66d5"}},"_resolved":"/home/runner/work/tools/tools/packages/service/site-builder-service/bernierllc-site-builder-service-0.1.0.tgz","_integrity":"sha512-U7g2MUaTGzOJwJfMbSOFX87GB7Ut2/Whm1If7kywG67rFG1zN7Xf2gW+6rBKosfo9DqTlPRTe5AzLRBJen/p/w==","bernierllc":{"runtime":"node","category":"service","integration":{"logger":"integrated","neverhub":"required","neveradmin":"optional"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.17.0","description":"Orchestrator service resolving, rendering, and publishing config-driven website profiles via a SiteConfigStore adapter.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@bernierllc/logger":"1.7.0","@bernierllc/config-manager":"1.4.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/site-config-core":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/site-builder-service_0.1.0_1781977307961_0.8599328576088157","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bernierllc/site-builder-service","version":"0.1.1","keywords":["site-builder","website-builder","config-driven","tenant","service","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/site-builder-service@0.1.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"51d17ad6f746dd92110d412764498956b2c93525","tarball":"https://registry.npmjs.org/@bernierllc/site-builder-service/-/site-builder-service-0.1.1.tgz","fileCount":30,"integrity":"sha512-tdYeBO0JLG3YTgTZ+9+LEjYVG3cVkHYkPtFIUB7+jJs9WR2wvd6QVkUFiV0ukBmwXoToV+0fP0cpYoeam54xTA==","signatures":[{"sig":"MEQCIF6UR8ajJDsI6uXBmtYEv5doqGopkHTbv3C5AKSuJaXfAiByN27xEtf00QYRuy58zWNNCwCE3ddk4PifdojTD0pQIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64908},"main":"dist/index.js","_from":"file:bernierllc-site-builder-service-0.1.1.tgz","types":"dist/index.d.ts","browser":false,"engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3109cc9-2696-400b-83eb-5342451f66d5"}},"_resolved":"/home/runner/work/tools/tools/packages/service/site-builder-service/bernierllc-site-builder-service-0.1.1.tgz","_integrity":"sha512-tdYeBO0JLG3YTgTZ+9+LEjYVG3cVkHYkPtFIUB7+jJs9WR2wvd6QVkUFiV0ukBmwXoToV+0fP0cpYoeam54xTA==","bernierllc":{"runtime":"node","category":"service","integration":{"logger":"integrated","neverhub":"required","neveradmin":"optional"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.17.0","description":"Orchestrator service resolving, rendering, and publishing config-driven website profiles via a SiteConfigStore adapter.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@bernierllc/logger":"1.7.0","@bernierllc/config-manager":"1.4.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/site-config-core":"0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/site-builder-service_0.1.1_1781985956628_0.02550416674473377","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bernierllc/site-builder-service","version":"0.1.2","keywords":["site-builder","website-builder","config-driven","tenant","service","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/site-builder-service@0.1.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"42d16341539f7cd04c072ca1bc1761591a2ac372","tarball":"https://registry.npmjs.org/@bernierllc/site-builder-service/-/site-builder-service-0.1.2.tgz","fileCount":30,"integrity":"sha512-UYF4lUAXM1f+bkRS6lsRaM0xOdsR+jW48mU1THbpRsehBjgzHbYxR7MUKqgGQ8LeIoQLaJDrMwbYcDjTl5L/DQ==","signatures":[{"sig":"MEQCIB7EMmWjsgWrCrWb1RGGjaTttS3vMXvLvRkzNOWWlQiYAiAHEQWtkxZH/9XoAlznFA6a1D6f5Anlh4hv9wRf0xQ+7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64908},"main":"dist/index.js","_from":"file:bernierllc-site-builder-service-0.1.2.tgz","types":"dist/index.d.ts","browser":false,"engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d3109cc9-2696-400b-83eb-5342451f66d5"}},"_resolved":"/home/runner/work/tools/tools/packages/service/site-builder-service/bernierllc-site-builder-service-0.1.2.tgz","_integrity":"sha512-UYF4lUAXM1f+bkRS6lsRaM0xOdsR+jW48mU1THbpRsehBjgzHbYxR7MUKqgGQ8LeIoQLaJDrMwbYcDjTl5L/DQ==","bernierllc":{"runtime":"node","category":"service","integration":{"logger":"integrated","neverhub":"required","neveradmin":"optional"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"12.0.1","description":"Orchestrator service resolving, rendering, and publishing config-driven website profiles via a SiteConfigStore adapter.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@bernierllc/logger":"1.7.1","@bernierllc/config-manager":"1.4.0","@bernierllc/neverhub-adapter":"0.4.1","@bernierllc/site-config-core":"0.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"tmp":"tmp/site-builder-service_0.1.2_1784015989409_0.5053494423118183","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"_id":"@bernierllc/site-builder-service@0.1.3","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"b9100997494f6a29728cd5a2d6508f0b11db949c","tarball":"https://registry.npmjs.org/@bernierllc/site-builder-service/-/site-builder-service-0.1.3.tgz","fileCount":30,"integrity":"sha512-Ihz01Sav2ZoevWv/ljwJJlFddbBMSELwr3Z0iEZb+l3pfN7J57T6cmiqmeslUDUWNnHCHgJrw3bvEUlvjjrYdg==","signatures":[{"sig":"MEUCIHUEINlt+1N06l6q3ooBb9TnHwcaPLXjRu3wm7w8Ez9MAiEAl4dRqs9CInYyUJmtqwWpz7SiFNGhfqkGJ+eCm6i5oxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+FbqNFABq36uOMxja9Jax6fNw/fKOxg536qpcVRcqvQIgYmeVhZMgpR56kghmpZdXRK+hOTMn4csyf29doAiBSO8="}],"unpackedSize":64912},"main":"dist/index.js","name":"@bernierllc/site-builder-service","_from":"file:bernierllc-site-builder-service-0.1.3.tgz","types":"dist/index.d.ts","author":{"name":"Bernier LLC"},"browser":false,"engines":{"node":">=18.0.0"},"license":"Bernier LLC","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"version":"0.1.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d3109cc9-2696-400b-83eb-5342451f66d5"}},"homepage":"https://github.com/bernier-llc/tools#readme","keywords":["site-builder","website-builder","config-driven","tenant","service","bernierllc"],"_resolved":"/home/runner/work/tools/tools/packages/service/site-builder-service/bernierllc-site-builder-service-0.1.3.tgz","_integrity":"sha512-Ihz01Sav2ZoevWv/ljwJJlFddbBMSELwr3Z0iEZb+l3pfN7J57T6cmiqmeslUDUWNnHCHgJrw3bvEUlvjjrYdg==","bernierllc":{"runtime":"node","category":"service","integration":{"logger":"integrated","neverhub":"required","neveradmin":"optional"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"12.2.0","description":"Orchestrator service resolving, rendering, and publishing config-driven website profiles via a SiteConfigStore adapter.","directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/logger":"^1.7.1","@bernierllc/config-manager":"^1.4.0","@bernierllc/neverhub-adapter":"^0.4.1","@bernierllc/site-config-core":"^0.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/site-builder-service_0.1.3_1790884523908_0.25876948947752254"}}},"time":{"created":"2026-06-20T17:26:17.106Z","modified":"2026-10-01T19:55:24.166Z","0.0.1":"2026-06-20T17:26:17.446Z","0.1.0":"2026-06-20T17:41:48.128Z","0.1.1":"2026-06-20T20:05:56.774Z","0.1.2":"2026-07-14T07:59:49.546Z","0.1.3":"2026-10-01T19:55:23.988Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"Bernier LLC","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["site-builder","website-builder","config-driven","tenant","service","bernierllc"],"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"description":"Orchestrator service resolving, rendering, and publishing config-driven website profiles via a SiteConfigStore adapter.","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/site-builder-service\n\nOrchestrator service that resolves, renders, and publishes config-driven website profiles from a `SiteConfigStore` adapter.\n\n> **Status: scaffold — implementation pending.**\n\n## Overview\n\n`SiteBuilder` is the central orchestrator for the Website Builder cluster. It composes `@bernierllc/site-config-core` with a pluggable `SiteConfigStore` adapter, a `SectionResolutionPipeline` (injects live data readers), and a tenant resolver (slug/subdomain → tenantId). It exposes a publish lifecycle (`draft → ready → published`) and emits NeverHub events.\n\n## Installation\n\n```bash\nnpm install @bernierllc/site-builder-service\n```\n\n## Usage\n\n```typescript\nimport { SiteBuilder, InMemorySiteConfigStore } from '@bernierllc/site-builder-service';\n\nconst builder = new SiteBuilder({\n  store: new InMemorySiteConfigStore(),\n  dataReaders: { services: myServicesReader },\n  storage: myS3StorageAdapter,\n  neverhub: { enabled: true },\n});\n\nawait builder.initialize();\n\nconst model = await builder.loadBySlug('acme');\n// model.cssVariables, model.completeness, model.resolvedSections\n\nawait builder.save({ tenantId: 'tenant-1', slug: 'acme', branding: { name: 'Acme Plumbing' } });\nawait builder.publish('tenant-1');\n```\n\n## Next.js Middleware Recipe\n\n```typescript\n// middleware.ts (consumer's code)\nexport function middleware(request: NextRequest) {\n  const slug = request.headers.get('host')?.split('.')[0] ?? '';\n  const response = NextResponse.next();\n  response.headers.set('x-org-slug', slug);\n  return response;\n}\n```\n\n## Error Classes\n\n- `SiteBuilderError` — base error with `code` and optional `context`\n\nCommon error codes: `NOT_FOUND`, `INCOMPLETE`, `NO_STORAGE`, `SITE_BUILDER_ERROR`.\n\n## License\n\nCopyright (c) 2025 Bernier LLC. Limited-use license — see LICENSE for details.\n","readmeFilename":"README.md"}