{"_id":"@dloizides/site-template-kit","_rev":"6-bad965ab8d593b7e88f115efdaf4f187","name":"@dloizides/site-template-kit","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"@dloizides/site-template-kit","version":"0.1.0","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"author":{"name":"dloizides"},"license":"MIT","_id":"@dloizides/site-template-kit@0.1.0","maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"homepage":"https://github.com/openmindednewby/site-template-kit#readme","bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"dist":{"shasum":"158e819b09b8bb83c61f6fc04615f9b4d99f32b0","tarball":"https://registry.npmjs.org/@dloizides/site-template-kit/-/site-template-kit-0.1.0.tgz","fileCount":10,"integrity":"sha512-08aZSvN/s+WBQGRLvIwQkY99GAs/lWPI6v9ZtoslUr8cYog52JnnX3iOcoaRsOTNdsQOuRAp/OOClLYd6DRruw==","signatures":[{"sig":"MEUCIHtQX7OacV/NAMlifz2QCxsK69/XREIq9hsIrB4yp0HpAiEAhc2+W6tJtJW0c66PADqiYUAmUkGFW6KRHxAqQg5wfR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389147},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"a887ec9f8d02fdff45d59154e13b940b81dfd03e","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"rimraf dist && npm run gen:schema && tsup","clean":"rimraf dist","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","gen:schema":"ts-json-schema-generator --path src/schema/tenantSite.ts --type TenantSite --out src/schema/tenantSite.schema.json --tsconfig tsconfig.json","test:watch":"jest --watch","build:watch":"tsup --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","security:audit":"npm audit --audit-level=high"},"_npmUser":{"name":"dloizides","email":"loizidesdemetris@gmail.com"},"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"_npmVersion":"10.9.3","description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.0","eslint":"^8.57.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.19.32","ts-json-schema-generator":"^2.9.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/site-template-kit_0.1.0_1787679181112_0.7392989247192938","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dloizides/site-template-kit","version":"0.2.0","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"author":{"name":"dloizides"},"license":"MIT","_id":"@dloizides/site-template-kit@0.2.0","maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"homepage":"https://github.com/openmindednewby/site-template-kit#readme","bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"dist":{"shasum":"ae85807a4d3901927715452324adfb4168bb37fe","tarball":"https://registry.npmjs.org/@dloizides/site-template-kit/-/site-template-kit-0.2.0.tgz","fileCount":10,"integrity":"sha512-A0lUXWX9TzR7b1v2mFw5fBqIdFmY8W4LgJRxHGbVMknidjjvGobTMX4ngzMRtUC5IZntaIv9MPU9pLiKvjbKFA==","signatures":[{"sig":"MEYCIQCfNSBhEewy07R38ZIzx87IskzLSZoV3XWCZ15ZFo+zYQIhAKCMdqSOGe2ZnzWlDF1o9UEOJvBFpkDU9fRq2b4R4Om8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392291},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5563aad2d5c3a3edb05120686c18691f85170755","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"rimraf dist && npm run gen:schema && tsup","clean":"rimraf dist","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","gen:schema":"ts-json-schema-generator --path src/schema/tenantSite.ts --type TenantSite --out src/schema/tenantSite.schema.json --tsconfig tsconfig.json","test:watch":"jest --watch","build:watch":"tsup --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","security:audit":"npm audit --audit-level=high"},"_npmUser":{"name":"dloizides","email":"loizidesdemetris@gmail.com"},"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"_npmVersion":"10.9.3","description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.0","eslint":"^8.57.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.19.32","ts-json-schema-generator":"^2.9.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/site-template-kit_0.2.0_1787961582653_0.9018290417037835","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@dloizides/site-template-kit","version":"0.3.1","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"author":{"name":"dloizides"},"license":"MIT","_id":"@dloizides/site-template-kit@0.3.1","maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"homepage":"https://github.com/openmindednewby/site-template-kit#readme","bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"dist":{"shasum":"bc321fddc6a5760171a854f2097a2d7426b93d2f","tarball":"https://registry.npmjs.org/@dloizides/site-template-kit/-/site-template-kit-0.3.1.tgz","fileCount":10,"integrity":"sha512-UocXMe7iaC413klOl16sVI+PnqdoPnyEMGi/sG7qPDBMXGyyh9mQTkIB4JIDlIXIyRnlkiryZdkozpVd/mBvRA==","signatures":[{"sig":"MEYCIQD+XdKw3/WlXBsSRxS5kvP6y8XHVUMLp4Hq4EcpCXyV1QIhAJPrrn5XC1pPqRGZgBhLVpCGen4AXTi8BrFDNaIjHSBO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":399025},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"3fc3c678dbb36abf95bbe8d7bc82c3c3a10ed17f","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"rimraf dist && npm run gen:schema && tsup","clean":"rimraf dist","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","gen:schema":"ts-json-schema-generator --path src/schema/tenantSite.ts --type TenantSite --out src/schema/tenantSite.schema.json --tsconfig tsconfig.json","test:watch":"jest --watch","build:watch":"tsup --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","security:audit":"npm audit --audit-level=high"},"_npmUser":{"name":"dloizides","email":"loizidesdemetris@gmail.com"},"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"_npmVersion":"10.9.3","description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.0","eslint":"^8.57.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.19.32","ts-json-schema-generator":"^2.9.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/site-template-kit_0.3.1_1788334368702_0.5690219648998018","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dloizides/site-template-kit","version":"0.4.0","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"author":{"name":"dloizides"},"license":"MIT","_id":"@dloizides/site-template-kit@0.4.0","maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"homepage":"https://github.com/openmindednewby/site-template-kit#readme","bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"dist":{"shasum":"cc8d40bca2fa810af977a783fb18456f8ae6b101","tarball":"https://registry.npmjs.org/@dloizides/site-template-kit/-/site-template-kit-0.4.0.tgz","fileCount":18,"integrity":"sha512-JYQCIuchMG2mVnulkpnbYOQ7axieQHyKTbGobYqr8Rb2svAOpRGqEFTK7hGSXN2WgWiOj53z2OnwM472dWjsow==","signatures":[{"sig":"MEYCIQD7NX9oqFtJp8fVX7Li5p6Qo8lfPwRkhP/kutwNZcCGvAIhANGzhclf01iUKLvpsCRxh25l1F4IB0baEzxNufq+QxPr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDR53mN0Z6cmyBkiQlbXXAGpGlVBCTFbctiNlmPvkkU4gIgSAFPq15ZVG9nvUGr0GTx+n/hgO0OKPNFWjdqLyOGpRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427775},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./framing":{"import":{"types":"./dist/framing.d.mts","default":"./dist/framing.mjs"},"default":{"types":"./dist/framing.d.ts","default":"./dist/framing.js"},"require":{"types":"./dist/framing.d.ts","default":"./dist/framing.js"}}},"gitHead":"765b78e583f29ea692cdb74154f3b942927e7ce3","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"rimraf dist && npm run gen:schema && tsup","clean":"rimraf dist","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","gen:schema":"ts-json-schema-generator --path src/schema/tenantSite.ts --type TenantSite --out src/schema/tenantSite.schema.json --tsconfig tsconfig.json","test:watch":"jest --watch","build:watch":"tsup --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","security:audit":"npm audit --audit-level=high"},"_npmUser":{"name":"dloizides","email":"loizidesdemetris@gmail.com"},"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"_npmVersion":"10.9.3","description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.0","eslint":"^8.57.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.19.32","ts-json-schema-generator":"^2.9.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/site-template-kit_0.4.0_1790495633597_0.9342694352138279","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dloizides/site-template-kit","version":"0.5.0","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"author":{"name":"dloizides"},"license":"MIT","_id":"@dloizides/site-template-kit@0.5.0","maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"homepage":"https://github.com/openmindednewby/site-template-kit#readme","bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"dist":{"shasum":"a4e9c4a9860327573fea26aecabd1579e12938ca","tarball":"https://registry.npmjs.org/@dloizides/site-template-kit/-/site-template-kit-0.5.0.tgz","fileCount":26,"integrity":"sha512-sSO8g4X4UR3P+JUpCu9IsCfmN3tptKoFK7CJ+jxegCONR9zYGYmZ77BM6z8AC+7ID4AXgjbzTfDpW+o2kKaz5w==","signatures":[{"sig":"MEUCIQDG7NPsH/+c+33ku76i8AaUEYtkysQu1lTwRIWvLUfpRQIgRNnuD3q4s0bBKPqpHxZ5vr719g7CJuAq29qRxfz+4LE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEKscJkPFew6Zpt4Wujpsn9k8Q+gBKAjP3cray+cahHcAiEA1lbOiMVUF3FkCwxvok4W+T6rTXwfZbfaNBjSCqfG0GA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":453732},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./social":{"import":{"types":"./dist/social.d.mts","default":"./dist/social.mjs"},"default":{"types":"./dist/social.d.ts","default":"./dist/social.js"},"require":{"types":"./dist/social.d.ts","default":"./dist/social.js"}},"./framing":{"import":{"types":"./dist/framing.d.mts","default":"./dist/framing.mjs"},"default":{"types":"./dist/framing.d.ts","default":"./dist/framing.js"},"require":{"types":"./dist/framing.d.ts","default":"./dist/framing.js"}}},"gitHead":"632fa875cefe3bc5e9f3ae4ed22b96bc8b367fa5","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"rimraf dist && npm run gen:schema && tsup","clean":"rimraf dist","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","gen:schema":"ts-json-schema-generator --path src/schema/tenantSite.ts --type TenantSite --out src/schema/tenantSite.schema.json --tsconfig tsconfig.json","test:watch":"jest --watch","build:watch":"tsup --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","security:audit":"npm audit --audit-level=high"},"_npmUser":{"name":"dloizides","email":"loizidesdemetris@gmail.com"},"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"_npmVersion":"10.9.3","description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.0","eslint":"^8.57.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.19.32","ts-json-schema-generator":"^2.9.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/site-template-kit_0.5.0_1790510108876_0.8805753335851509","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"_id":"@dloizides/site-template-kit@0.5.1","bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"dist":{"shasum":"e03a9f0837711d7effc93c83df40d31650238242","tarball":"https://registry.npmjs.org/@dloizides/site-template-kit/-/site-template-kit-0.5.1.tgz","fileCount":26,"integrity":"sha512-q4niEcuH4N4IxClZx7UHLP6xw9IYhyJHXpdnl+88ehJlh58RhMMJUx3Y6zvVC2mLCjtKIH3dzBn5RiWzJUEIpg==","signatures":[{"sig":"MEUCIQCz3j1xV8wSYv3bvJTVjwn2TJgmJ/lXQQtOVGKcifK+xQIgPCiF/Yrd8ZRL24Zh83pKICPB8mftiP+6kMe2mQdDZ94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDcOhd8NfT5tdSG+KiajBWmhDzVvhiE//CrYZ4KvVi6ZAiBQmVozb7pXHKcDFd1HyhfUSmqH2vlKCUVpMa/cmVDfPQ=="}],"unpackedSize":453622},"main":"./dist/index.js","name":"@dloizides/site-template-kit","types":"./dist/index.d.ts","author":{"name":"dloizides"},"module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./social":{"import":{"types":"./dist/social.d.mts","default":"./dist/social.mjs"},"default":{"types":"./dist/social.d.ts","default":"./dist/social.js"},"require":{"types":"./dist/social.d.ts","default":"./dist/social.js"}},"./framing":{"import":{"types":"./dist/framing.d.mts","default":"./dist/framing.mjs"},"default":{"types":"./dist/framing.d.ts","default":"./dist/framing.js"},"require":{"types":"./dist/framing.d.ts","default":"./dist/framing.js"}}},"gitHead":"4664a3631cab4bb5066376c938968ae6ac0a3ba0","license":"MIT","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"rimraf dist && npm run gen:schema && tsup","clean":"rimraf dist","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","gen:schema":"ts-json-schema-generator --path src/schema/tenantSite.ts --type TenantSite --out src/schema/tenantSite.schema.json --tsconfig tsconfig.json","test:watch":"jest --watch","build:watch":"tsup --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","security:audit":"npm audit --audit-level=high"},"version":"0.5.1","_npmUser":{"name":"dloizides","email":"loizidesdemetris@gmail.com"},"homepage":"https://github.com/openmindednewby/site-template-kit#readme","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"_npmVersion":"10.9.3","description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","directories":{},"maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.0","eslint":"^8.57.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.19.32","ts-json-schema-generator":"^2.9.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/site-template-kit_0.5.1_1790515174236_0.8400756488692733"}}},"time":{"created":"2026-08-25T17:33:00.657Z","modified":"2026-09-27T13:19:34.498Z","0.1.0":"2026-08-25T17:33:01.262Z","0.2.0":"2026-08-28T23:59:42.789Z","0.3.1":"2026-09-02T07:32:48.844Z","0.4.0":"2026-09-27T07:53:53.724Z","0.5.0":"2026-09-27T11:55:08.973Z","0.5.1":"2026-09-27T13:19:34.327Z"},"bugs":{"url":"https://github.com/openmindednewby/site-template-kit/issues"},"author":{"name":"dloizides"},"license":"MIT","homepage":"https://github.com/openmindednewby/site-template-kit#readme","keywords":["template","site-config","json-schema","landing-page","tenant","framework-neutral"],"repository":{"url":"git+https://github.com/openmindednewby/site-template-kit.git","type":"git"},"description":"Framework-neutral Template Contract for dloizides.com landing/site templates: the TenantSite config types (relocated from kefi-landings), the TemplateManifest, a manifest registry loader, the JSON Schema generated from the types, and an ajv validator. No ","maintainers":[{"name":"dloizides","email":"loizidesdemetris@gmail.com"}],"readme":"# @dloizides/site-template-kit\n\nFramework-neutral **Template Contract** for dloizides.com landing/site templates.\n\nThis is a pure Node/TypeScript data library — **no renderer, no framework, no browser\nbundle**. The Astro renderer stays in `kefi-landings`; this package owns only the\ncontract that describes what a site template is.\n\n## Scope (built up over Phase 0)\n\n- The `TenantSite` config types (relocated from `kefi-landings`).\n- The `TemplateManifest` and a manifest registry loader.\n- A JSON Schema generated from the types.\n- An `ajv` validator over that schema.\n\n> Note: `gen:schema` deliberately omits `--additional-properties false`. This is a\n> considered leniency — persisted tenant configs that carry extra fields are NOT\n> rejected by `validateConfig --gate`. Intentional and on-the-record.\n\nIt is the foundation for the site editor, the authoring SDK, and the template\nmarketplace.\n\n## Status\n\nPhase 0, step 1: **scaffold only.** The package builds and tests green with a\nplaceholder barrel. Types, manifest loader, schema generation and the validator land in\nsubsequent tasks.\n\n## Install\n\n```bash\nnpm install @dloizides/site-template-kit\n```\n\n## Usage\n\n```ts\nimport { SITE_TEMPLATE_KIT_VERSION } from '@dloizides/site-template-kit';\n```\n\n## Build & test\n\n```bash\nnpm run build   # tsup → dist/index.{js,mjs,d.ts}\nnpm test        # jest\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}