@kyro-cms/core 0.13.8 → 0.13.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var chunkA7763NCF_cjs=require('./chunk-A7763NCF.cjs'),chunkJQ4V2MGJ_cjs=require('./chunk-JQ4V2MGJ.cjs'),chunkFIVTKI25_cjs=require('./chunk-FIVTKI25.cjs'),chunkN2BMGZIX_cjs=require('./chunk-N2BMGZIX.cjs'),chunkHCM2G674_cjs=require('./chunk-HCM2G674.cjs'),chunkMCK2QRAU_cjs=require('./chunk-MCK2QRAU.cjs'),chunkVPBGZW4P_cjs=require('./chunk-VPBGZW4P.cjs');require('./chunk-N7CDHWQH.cjs'),require('./chunk-DCKJT247.cjs');var chunk7KTPBTH5_cjs=require('./chunk-7KTPBTH5.cjs'),chunk24W5I6SJ_cjs=require('./chunk-24W5I6SJ.cjs'),chunkO2SA56P2_cjs=require('./chunk-O2SA56P2.cjs'),chunkH2IJDTA2_cjs=require('./chunk-H2IJDTA2.cjs'),chunkPW6Y5MQL_cjs=require('./chunk-PW6Y5MQL.cjs');require('./chunk-34LCWI5X.cjs');var chunkLXTVMP5F_cjs=require('./chunk-LXTVMP5F.cjs'),chunk2I2AXTKY_cjs=require('./chunk-2I2AXTKY.cjs');require('./chunk-GS4CMYKS.cjs');var chunkOJBL4CXK_cjs=require('./chunk-OJBL4CXK.cjs'),chunkDCFOVCJX_cjs=require('./chunk-DCFOVCJX.cjs'),chunkFU76HURF_cjs=require('./chunk-FU76HURF.cjs'),chunkGWUHIIPO_cjs=require('./chunk-GWUHIIPO.cjs'),chunkEG4SRTYS_cjs=require('./chunk-EG4SRTYS.cjs'),chunk3A5UO6OQ_cjs=require('./chunk-3A5UO6OQ.cjs');require('./chunk-23RSKVJP.cjs'),require('./chunk-YOJOVQIH.cjs');var chunkXL64URKD_cjs=require('./chunk-XL64URKD.cjs'),chunkUE7DTBD7_cjs=require('./chunk-UE7DTBD7.cjs'),chunkO4PPZOVI_cjs=require('./chunk-O4PPZOVI.cjs'),chunkJJY2F6NL_cjs=require('./chunk-JJY2F6NL.cjs');require('./chunk-OXEJCIOA.cjs'),require('./chunk-KOSR7235.cjs'),require('./chunk-JHFD3IAU.cjs');var W=require('crypto'),fs=require('fs'),$e=require('path'),zod=require('zod'),unstorage=require('unstorage'),po=require('unstorage/drivers/fs');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var W__default=/*#__PURE__*/_interopDefault(W);var $e__default=/*#__PURE__*/_interopDefault($e);var po__default=/*#__PURE__*/_interopDefault(po);async function Le(s,e){let t=e.data;for(let r of s){let o=await r({...e,data:t});o!==void 0&&(t=o);}return t}async function Or(s,e){return Le(s,e)}var L=class extends chunkO4PPZOVI_cjs.a{connectionString;constructor(e){super(),this.connectionString=e.connectionString;}async connect(){this.connected=true;}async disconnect(){this.connected=false;}async query(e,t=[]){if(!this.connectionString)throw new Error("NeonAdapter: Connection string is required.");try{let r=await fetch(`${this.connectionString}/sql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,params:t})});return r.ok?(await r.json()).rows||[]:[]}catch{return []}}async find(e){return {docs:[],totalDocs:0,limit:e.limit||10,totalPages:1,page:e.page||1,hasNextPage:false,hasPrevPage:false}}async findByID(e){return null}async create(e){return e.data}async update(e){return e.data}async delete(e){return {success:true,id:e.id}}async count(e){return 0}async findOne(e){return null}async findVersions(e){return {docs:[],totalDocs:0,limit:10,totalPages:1,page:1,hasNextPage:false,hasPrevPage:false}}async findVersionByID(e){return null}async createVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async updateLatestVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async deleteVersions(e){}};function Ee(s){return new L(s)}var E=class extends chunkO4PPZOVI_cjs.a{url;authToken;constructor(e){super(),this.url=e.url.replace(/^libsql:\/\//,"https://"),this.authToken=e.authToken;}async connect(){this.connected=true;}async disconnect(){this.connected=false;}async query(e,t=[]){if(!this.url)throw new Error("TursoAdapter: Database URL is required.");try{let r={"Content-Type":"application/json"};this.authToken&&(r.Authorization=`Bearer ${this.authToken}`);let o=await fetch(`${this.url}/v2/pipeline`,{method:"POST",headers:r,body:JSON.stringify({requests:[{type:"execute",stmt:{sql:e,args:t.map(c=>({type:"text",value:String(c)}))}},{type:"close"}]})});if(!o.ok)return [];let i=(await o.json())?.results?.[0]?.response?.result;if(!i||!i.rows)return [];let a=i.cols.map(c=>c.name);return i.rows.map(c=>{let m={};return a.forEach((g,d)=>{m[g]=c[d]?.value??null;}),m})}catch{return []}}async find(e){return {docs:[],totalDocs:0,limit:e.limit||10,totalPages:1,page:e.page||1,hasNextPage:false,hasPrevPage:false}}async findByID(e){return null}async create(e){return e.data}async update(e){return e.data}async delete(e){return {success:true,id:e.id}}async count(e){return 0}async findOne(e){return null}async findVersions(e){return {docs:[],totalDocs:0,limit:10,totalPages:1,page:1,hasNextPage:false,hasPrevPage:false}}async findVersionByID(e){return null}async createVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async updateLatestVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async deleteVersions(e){}};function Oe(s){return new E(s)}var K=class{constructor(e){this.config=e;}config;css=[];addRule(e,t){let r=Object.entries(t).map(([o,n])=>` ${o}: ${n};`).join(`
1
+ 'use strict';var chunkA7763NCF_cjs=require('./chunk-A7763NCF.cjs'),chunkJQ4V2MGJ_cjs=require('./chunk-JQ4V2MGJ.cjs'),chunkFIVTKI25_cjs=require('./chunk-FIVTKI25.cjs'),chunkN2BMGZIX_cjs=require('./chunk-N2BMGZIX.cjs'),chunkHCM2G674_cjs=require('./chunk-HCM2G674.cjs'),chunkHUZ3P5OC_cjs=require('./chunk-HUZ3P5OC.cjs'),chunkVPBGZW4P_cjs=require('./chunk-VPBGZW4P.cjs');require('./chunk-N7CDHWQH.cjs'),require('./chunk-DCKJT247.cjs');var chunk7KTPBTH5_cjs=require('./chunk-7KTPBTH5.cjs'),chunk24W5I6SJ_cjs=require('./chunk-24W5I6SJ.cjs'),chunkO2SA56P2_cjs=require('./chunk-O2SA56P2.cjs'),chunkH2IJDTA2_cjs=require('./chunk-H2IJDTA2.cjs'),chunkPW6Y5MQL_cjs=require('./chunk-PW6Y5MQL.cjs');require('./chunk-34LCWI5X.cjs');var chunkLXTVMP5F_cjs=require('./chunk-LXTVMP5F.cjs'),chunk2I2AXTKY_cjs=require('./chunk-2I2AXTKY.cjs');require('./chunk-GS4CMYKS.cjs');var chunkOJBL4CXK_cjs=require('./chunk-OJBL4CXK.cjs'),chunkDCFOVCJX_cjs=require('./chunk-DCFOVCJX.cjs'),chunkFU76HURF_cjs=require('./chunk-FU76HURF.cjs'),chunk7QZYK4MT_cjs=require('./chunk-7QZYK4MT.cjs'),chunkEG4SRTYS_cjs=require('./chunk-EG4SRTYS.cjs'),chunk3A5UO6OQ_cjs=require('./chunk-3A5UO6OQ.cjs');require('./chunk-23RSKVJP.cjs'),require('./chunk-YOJOVQIH.cjs');var chunkXL64URKD_cjs=require('./chunk-XL64URKD.cjs'),chunkUE7DTBD7_cjs=require('./chunk-UE7DTBD7.cjs'),chunkO4PPZOVI_cjs=require('./chunk-O4PPZOVI.cjs'),chunkJJY2F6NL_cjs=require('./chunk-JJY2F6NL.cjs');require('./chunk-OXEJCIOA.cjs'),require('./chunk-KOSR7235.cjs'),require('./chunk-JHFD3IAU.cjs');var W=require('crypto'),fs=require('fs'),$e=require('path'),zod=require('zod'),unstorage=require('unstorage'),po=require('unstorage/drivers/fs');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var W__default=/*#__PURE__*/_interopDefault(W);var $e__default=/*#__PURE__*/_interopDefault($e);var po__default=/*#__PURE__*/_interopDefault(po);async function Le(s,e){let t=e.data;for(let r of s){let o=await r({...e,data:t});o!==void 0&&(t=o);}return t}async function Or(s,e){return Le(s,e)}var L=class extends chunkO4PPZOVI_cjs.a{connectionString;constructor(e){super(),this.connectionString=e.connectionString;}async connect(){this.connected=true;}async disconnect(){this.connected=false;}async query(e,t=[]){if(!this.connectionString)throw new Error("NeonAdapter: Connection string is required.");try{let r=await fetch(`${this.connectionString}/sql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,params:t})});return r.ok?(await r.json()).rows||[]:[]}catch{return []}}async find(e){return {docs:[],totalDocs:0,limit:e.limit||10,totalPages:1,page:e.page||1,hasNextPage:false,hasPrevPage:false}}async findByID(e){return null}async create(e){return e.data}async update(e){return e.data}async delete(e){return {success:true,id:e.id}}async count(e){return 0}async findOne(e){return null}async findVersions(e){return {docs:[],totalDocs:0,limit:10,totalPages:1,page:1,hasNextPage:false,hasPrevPage:false}}async findVersionByID(e){return null}async createVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async updateLatestVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async deleteVersions(e){}};function Ee(s){return new L(s)}var E=class extends chunkO4PPZOVI_cjs.a{url;authToken;constructor(e){super(),this.url=e.url.replace(/^libsql:\/\//,"https://"),this.authToken=e.authToken;}async connect(){this.connected=true;}async disconnect(){this.connected=false;}async query(e,t=[]){if(!this.url)throw new Error("TursoAdapter: Database URL is required.");try{let r={"Content-Type":"application/json"};this.authToken&&(r.Authorization=`Bearer ${this.authToken}`);let o=await fetch(`${this.url}/v2/pipeline`,{method:"POST",headers:r,body:JSON.stringify({requests:[{type:"execute",stmt:{sql:e,args:t.map(c=>({type:"text",value:String(c)}))}},{type:"close"}]})});if(!o.ok)return [];let i=(await o.json())?.results?.[0]?.response?.result;if(!i||!i.rows)return [];let a=i.cols.map(c=>c.name);return i.rows.map(c=>{let m={};return a.forEach((g,d)=>{m[g]=c[d]?.value??null;}),m})}catch{return []}}async find(e){return {docs:[],totalDocs:0,limit:e.limit||10,totalPages:1,page:e.page||1,hasNextPage:false,hasPrevPage:false}}async findByID(e){return null}async create(e){return e.data}async update(e){return e.data}async delete(e){return {success:true,id:e.id}}async count(e){return 0}async findOne(e){return null}async findVersions(e){return {docs:[],totalDocs:0,limit:10,totalPages:1,page:1,hasNextPage:false,hasPrevPage:false}}async findVersionByID(e){return null}async createVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async updateLatestVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async deleteVersions(e){}};function Oe(s){return new E(s)}var K=class{constructor(e){this.config=e;}config;css=[];addRule(e,t){let r=Object.entries(t).map(([o,n])=>` ${o}: ${n};`).join(`
2
2
  `);return this.css.push(`${e} {
3
3
  ${r}
4
4
  }`),this}addMediaQuery(e,t){return this.css.push(`@media (min-width: ${e}) {
@@ -66,4 +66,4 @@ declare module 'kyro:collections' {
66
66
  `;}return t+=` }
67
67
  }
68
68
  `,t}function Ao(s={}){return {APP_SECRET:{context:"server",access:"secret",type:"string",optional:false},DATABASE_URL:{context:"server",access:"secret",type:"string",optional:!s.requireDatabase},PUBLIC_KYRO_URL:{context:"client",access:"public",type:"string",optional:true,default:"http://localhost:4321"}}}function wo(s,e={}){let{idField:t="id",parentField:r="parent",slugField:o="slug",slugPrefix:n=true,basePath:i="",maxDepth:a=10}=e,c=new Map,m=[];for(let d of s){let l=d[t];l!=null&&c.set(l,{doc:d,id:l,slug:d[o],depth:0,path:"",fullPath:"",children:[]});}for(let d of s){let l=d[t],y=c.get(l);if(!y)continue;let p=d[r];p&&typeof p=="object"&&(p=p[t]||p.id||p._id),p&&c.has(p)?c.get(p).children.push(y):m.push(y);}function g(d,l,y){if(!(l>a))for(let p of d){p.depth=l;let f=p.slug||String(p.id),h="";n?h=y?`${y}/${f}`:i?`${i.replace(/\/$/,"")}/${f}`:`/${f}`:h=i?`${i.replace(/\/$/,"")}/${f}`:`/${f}`,p.path=h,p.fullPath=h,p.children.length>0&&g(p.children,l+1,p.path);}}return g(m,0,""),m}function je(s,e,t={}){let r,o;Array.isArray(s)?(r=s,o=e):(o=s,r=e);let{idField:n="id",parentField:i="parent",labelField:a="title",slugField:c="slug",basePath:m=""}=t,g=new Map;for(let f of r){let h=f[n];h!=null&&g.set(h,f);}let d=[],l=o,y=new Set;for(;l!==void 0&&g.has(l)&&!y.has(l);){y.add(l);let f=g.get(l),h=f[a]||f.name||f.label||f[c]||String(l);d.unshift({id:l,label:h,slug:f[c]});let w=f[i];w&&typeof w=="object"&&(w=w[n]||w.id||w._id),l=w;}let p=m?m.replace(/\/$/,""):"";return d.map(f=>{let h=f.slug||String(f.id);return p=`${p}/${h}`,{...f,path:p}})}function xo(s,e,t={}){let r=je(s,e,t);return r[r.length-1]?.path||(t.basePath?t.basePath:"/")}function To(s){let e=[];function t(r){for(let o of r)e.push({doc:o.doc,id:o.id,depth:o.depth,path:o.path,fullPath:o.fullPath,hasChildren:o.children.length>0}),o.children.length>0&&t(o.children);}return t(s),e}
69
- Object.defineProperty(exports,"LocalAdapter",{enumerable:true,get:function(){return chunkA7763NCF_cjs.a}});Object.defineProperty(exports,"createLocalAdapter",{enumerable:true,get:function(){return chunkA7763NCF_cjs.b}});Object.defineProperty(exports,"RedisAuthAdapter",{enumerable:true,get:function(){return chunkJQ4V2MGJ_cjs.a}});Object.defineProperty(exports,"allGlobalSettings",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.k}});Object.defineProperty(exports,"blogCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.q}});Object.defineProperty(exports,"coreGlobalSettings",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.l}});Object.defineProperty(exports,"createTemplateConfig",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.V}});Object.defineProperty(exports,"ecommerceCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.r}});Object.defineProperty(exports,"ecommerceGlobals",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.s}});Object.defineProperty(exports,"kitchenSinkCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.t}});Object.defineProperty(exports,"mediaCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.v}});Object.defineProperty(exports,"minimalCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.a}});Object.defineProperty(exports,"templateCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.U}});Object.defineProperty(exports,"ALL_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.r}});Object.defineProperty(exports,"COMPLEX_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.o}});Object.defineProperty(exports,"LAYOUT_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.q}});Object.defineProperty(exports,"PRIMITIVE_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.n}});Object.defineProperty(exports,"RELATIONAL_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.p}});Object.defineProperty(exports,"isArrayField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.d}});Object.defineProperty(exports,"isBlocksField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.f}});Object.defineProperty(exports,"isGroupField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.e}});Object.defineProperty(exports,"isImageField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.h}});Object.defineProperty(exports,"isLayoutField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.k}});Object.defineProperty(exports,"isNumberField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.b}});Object.defineProperty(exports,"isRelationshipField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.c}});Object.defineProperty(exports,"isRichTextField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.i}});Object.defineProperty(exports,"isSelectField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.j}});Object.defineProperty(exports,"isTextField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.a}});Object.defineProperty(exports,"isUploadField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.g}});Object.defineProperty(exports,"normalizeRichTextValue",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.u}});Object.defineProperty(exports,"renderRichText",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.v}});Object.defineProperty(exports,"richTextStyles",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.t}});Object.defineProperty(exports,"kyro",{enumerable:true,get:function(){return chunkHCM2G674_cjs.a}});Object.defineProperty(exports,"AnalyticsPlugin",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.s}});Object.defineProperty(exports,"CommentsPlugin",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.t}});Object.defineProperty(exports,"ConfigValidationError",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.a}});Object.defineProperty(exports,"FIELD_DEFINITION_KEYS",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.x}});Object.defineProperty(exports,"Kyro",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.F}});Object.defineProperty(exports,"KyroPlugin",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.p}});Object.defineProperty(exports,"Logger",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.I}});Object.defineProperty(exports,"PluginManager",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.q}});Object.defineProperty(exports,"Registry",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.l}});Object.defineProperty(exports,"ReviewsPlugin",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.u}});Object.defineProperty(exports,"SEOPlugin",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.r}});Object.defineProperty(exports,"WishlistPlugin",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.v}});Object.defineProperty(exports,"applyBlocksOverrides",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.B}});Object.defineProperty(exports,"applyCollectionOverrides",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.D}});Object.defineProperty(exports,"applyGlobalOverrides",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.E}});Object.defineProperty(exports,"applyTabsOverrides",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.C}});Object.defineProperty(exports,"collectionToCreateZod",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.h}});Object.defineProperty(exports,"collectionToUpdateZod",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.i}});Object.defineProperty(exports,"collectionToWhereZod",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.j}});Object.defineProperty(exports,"collectionToZod",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.g}});Object.defineProperty(exports,"createKyro",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.G}});Object.defineProperty(exports,"createKyroHandler",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.H}});Object.defineProperty(exports,"createRegistry",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.o}});Object.defineProperty(exports,"fieldToZod",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.f}});Object.defineProperty(exports,"flattenFieldOverrides",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.z}});Object.defineProperty(exports,"getRegistry",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.m}});Object.defineProperty(exports,"globalToZod",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.k}});Object.defineProperty(exports,"isFieldOverrideDefinition",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.y}});Object.defineProperty(exports,"logger",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.J}});Object.defineProperty(exports,"presetPlugins",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.w}});Object.defineProperty(exports,"resetRegistry",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.n}});Object.defineProperty(exports,"updateFieldByPath",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.A}});Object.defineProperty(exports,"validateCollection",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.b}});Object.defineProperty(exports,"validateConfig",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.e}});Object.defineProperty(exports,"validateFields",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.d}});Object.defineProperty(exports,"validateGlobal",{enumerable:true,get:function(){return chunkMCK2QRAU_cjs.c}});Object.defineProperty(exports,"autoBootstrap",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.e}});Object.defineProperty(exports,"bootstrapAdmin",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.a}});Object.defineProperty(exports,"bootstrapWithRetry",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.f}});Object.defineProperty(exports,"getBootstrapFromEnv",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.d}});Object.defineProperty(exports,"createContext",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.a}});Object.defineProperty(exports,"createCountProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.g}});Object.defineProperty(exports,"createCreateProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.d}});Object.defineProperty(exports,"createDeleteProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.f}});Object.defineProperty(exports,"createDynamicRouter",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.h}});Object.defineProperty(exports,"createFindByIDProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.c}});Object.defineProperty(exports,"createFindProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.b}});Object.defineProperty(exports,"createKyroServer",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.i}});Object.defineProperty(exports,"createUpdateProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.e}});Object.defineProperty(exports,"buildGraphQLSchema",{enumerable:true,get:function(){return chunk24W5I6SJ_cjs.c}});Object.defineProperty(exports,"createGraphQLSchema",{enumerable:true,get:function(){return chunk24W5I6SJ_cjs.d}});Object.defineProperty(exports,"AuditLogger",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.g}});Object.defineProperty(exports,"InMemoryAuditLogger",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.i}});Object.defineProperty(exports,"InMemoryRateLimiter",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.f}});Object.defineProperty(exports,"MediaService",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.l}});Object.defineProperty(exports,"createAuditContext",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.h}});Object.defineProperty(exports,"createKyroApp",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.n}});Object.defineProperty(exports,"createLocalStorage",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.d}});Object.defineProperty(exports,"createRESTAPI",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.o}});Object.defineProperty(exports,"isEdgeRuntime",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.k}});Object.defineProperty(exports,"resolveProvider",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.c}});Object.defineProperty(exports,"PasswordPolicy",{enumerable:true,get:function(){return chunkH2IJDTA2_cjs.a}});Object.defineProperty(exports,"SQLiteAuthAdapter",{enumerable:true,get:function(){return chunkPW6Y5MQL_cjs.a}});Object.defineProperty(exports,"getAppSecret",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.c}});Object.defineProperty(exports,"getEncryptionKey",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.d}});Object.defineProperty(exports,"getSessionConfig",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.e}});Object.defineProperty(exports,"loadSecrets",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.b}});Object.defineProperty(exports,"setDbAdapter",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.a}});Object.defineProperty(exports,"ConfigService",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.p}});Object.defineProperty(exports,"EmailTransport",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.q}});Object.defineProperty(exports,"getEmailTemplates",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.o}});Object.defineProperty(exports,"renderAbandonedCart",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.n}});Object.defineProperty(exports,"renderAccountLocked",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.g}});Object.defineProperty(exports,"renderBaseLayout",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.a}});Object.defineProperty(exports,"renderMagicLink",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.f}});Object.defineProperty(exports,"renderNewLogin",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.i}});Object.defineProperty(exports,"renderOrderConfirmation",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.j}});Object.defineProperty(exports,"renderOrderDelivered",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.l}});Object.defineProperty(exports,"renderOrderRefunded",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.m}});Object.defineProperty(exports,"renderOrderShipped",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.k}});Object.defineProperty(exports,"renderPasswordChanged",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.e}});Object.defineProperty(exports,"renderResetPassword",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.c}});Object.defineProperty(exports,"renderUserInvite",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.h}});Object.defineProperty(exports,"renderVerifyEmail",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.b}});Object.defineProperty(exports,"renderWelcome",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.d}});Object.defineProperty(exports,"ALL_WEBHOOK_EVENTS",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.d}});Object.defineProperty(exports,"WEBHOOK_COLLECTION",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.e}});Object.defineProperty(exports,"WEBHOOK_DELIVERY_COLLECTION",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.f}});Object.defineProperty(exports,"WEBHOOK_EVENTS",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.c}});Object.defineProperty(exports,"WebhookService",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.m}});Object.defineProperty(exports,"buildDeliveryRecord",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.k}});Object.defineProperty(exports,"createTestPayload",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.l}});Object.defineProperty(exports,"createWebhookService",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.n}});Object.defineProperty(exports,"deliverWebhook",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.i}});Object.defineProperty(exports,"deliverWithRetry",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.j}});Object.defineProperty(exports,"generateWebhookSecret",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.h}});Object.defineProperty(exports,"signPayload",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.g}});Object.defineProperty(exports,"evaluateAccess",{enumerable:true,get:function(){return chunkDCFOVCJX_cjs.h}});Object.defineProperty(exports,"getWhereClause",{enumerable:true,get:function(){return chunkDCFOVCJX_cjs.j}});Object.defineProperty(exports,"mergeWhereClauses",{enumerable:true,get:function(){return chunkDCFOVCJX_cjs.i}});Object.defineProperty(exports,"KyroPubSub",{enumerable:true,get:function(){return chunkFU76HURF_cjs.b}});Object.defineProperty(exports,"KyroWSServer",{enumerable:true,get:function(){return chunkFU76HURF_cjs.d}});Object.defineProperty(exports,"PubSub",{enumerable:true,get:function(){return chunkFU76HURF_cjs.a}});Object.defineProperty(exports,"createWSServer",{enumerable:true,get:function(){return chunkFU76HURF_cjs.e}});Object.defineProperty(exports,"DrizzleAdapter",{enumerable:true,get:function(){return chunkGWUHIIPO_cjs.c}});Object.defineProperty(exports,"collectionToDrizzleSchema",{enumerable:true,get:function(){return chunkGWUHIIPO_cjs.b}});Object.defineProperty(exports,"createDrizzleAdapter",{enumerable:true,get:function(){return chunkGWUHIIPO_cjs.d}});Object.defineProperty(exports,"fieldToDrizzleType",{enumerable:true,get:function(){return chunkGWUHIIPO_cjs.a}});Object.defineProperty(exports,"createDatabase",{enumerable:true,get:function(){return chunkEG4SRTYS_cjs.b}});Object.defineProperty(exports,"runMigrations",{enumerable:true,get:function(){return chunkEG4SRTYS_cjs.c}});Object.defineProperty(exports,"seedDefaultRoles",{enumerable:true,get:function(){return chunkEG4SRTYS_cjs.d}});Object.defineProperty(exports,"PostgresAuthAdapter",{enumerable:true,get:function(){return chunk3A5UO6OQ_cjs.a}});Object.defineProperty(exports,"MongoDBAdapter",{enumerable:true,get:function(){return chunkXL64URKD_cjs.a}});Object.defineProperty(exports,"createMongoDBAdapter",{enumerable:true,get:function(){return chunkXL64URKD_cjs.b}});Object.defineProperty(exports,"getMongoClient",{enumerable:true,get:function(){return chunkXL64URKD_cjs.d}});Object.defineProperty(exports,"getMongoDb",{enumerable:true,get:function(){return chunkXL64URKD_cjs.c}});Object.defineProperty(exports,"MongoDBAuthAdapter",{enumerable:true,get:function(){return chunkUE7DTBD7_cjs.a}});Object.defineProperty(exports,"AbstractBaseAdapter",{enumerable:true,get:function(){return chunkO4PPZOVI_cjs.a}});Object.defineProperty(exports,"z",{enumerable:true,get:function(){return zod.z}});exports.AccountLockout=k;exports.Auth=M;exports.CSSGenerator=K;exports.InMemoryAccountLockout=v;exports.InMemoryAuthAdapter=R;exports.NeonAdapter=L;exports.RateLimiter=C;exports.TursoAdapter=E;exports.VersionManager=B;exports.authConfig=Fe;exports.buildDocumentTree=wo;exports.createAdminStyling=Fr;exports.createAuth=qr;exports.createAuthConfig=j;exports.createAuthStorage=Ke;exports.createNeonAdapter=Ee;exports.createStorage=G;exports.createTursoAdapter=Oe;exports.createVersionManager=Gr;exports.defaultDarkTheme=_r;exports.defaultFieldStyling=Mr;exports.defaultLightTheme=O;exports.defineConfig=Me;exports.defineKyroConfig=eo;exports.ecommerce2026Theme=Vr;exports.flattenDocumentTree=To;exports.generateAnalyticsTags=ro;exports.generateCSSVariables=Ue;exports.generateKyroAstroTypes=bo;exports.generateSeoTags=to;exports.generateTailwindConfig=Ur;exports.getBreadcrumbs=je;exports.getDefaultDraftPublishConfig=H;exports.getNestedPath=xo;exports.getPaymentConfig=ao;exports.getPaymentConfigFromSettings=Ne;exports.getSocialLinks=no;exports.getSocialLinksFromSettings=He;exports.getStoreConfig=io;exports.getStoreConfigFromSettings=Be;exports.isArchived=Jr;exports.isDraft=Qr;exports.isPublished=Yr;exports.kyroAction=ho;exports.kyroAuthMiddleware=yo;exports.kyroEnvSchema=Ao;exports.kyroLoader=mo;exports.runFieldHooks=Or;exports.runHooks=Le;
69
+ Object.defineProperty(exports,"LocalAdapter",{enumerable:true,get:function(){return chunkA7763NCF_cjs.a}});Object.defineProperty(exports,"createLocalAdapter",{enumerable:true,get:function(){return chunkA7763NCF_cjs.b}});Object.defineProperty(exports,"RedisAuthAdapter",{enumerable:true,get:function(){return chunkJQ4V2MGJ_cjs.a}});Object.defineProperty(exports,"allGlobalSettings",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.k}});Object.defineProperty(exports,"blogCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.q}});Object.defineProperty(exports,"coreGlobalSettings",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.l}});Object.defineProperty(exports,"createTemplateConfig",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.V}});Object.defineProperty(exports,"ecommerceCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.r}});Object.defineProperty(exports,"ecommerceGlobals",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.s}});Object.defineProperty(exports,"kitchenSinkCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.t}});Object.defineProperty(exports,"mediaCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.v}});Object.defineProperty(exports,"minimalCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.a}});Object.defineProperty(exports,"templateCollections",{enumerable:true,get:function(){return chunkFIVTKI25_cjs.U}});Object.defineProperty(exports,"ALL_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.r}});Object.defineProperty(exports,"COMPLEX_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.o}});Object.defineProperty(exports,"LAYOUT_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.q}});Object.defineProperty(exports,"PRIMITIVE_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.n}});Object.defineProperty(exports,"RELATIONAL_FIELD_TYPES",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.p}});Object.defineProperty(exports,"isArrayField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.d}});Object.defineProperty(exports,"isBlocksField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.f}});Object.defineProperty(exports,"isGroupField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.e}});Object.defineProperty(exports,"isImageField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.h}});Object.defineProperty(exports,"isLayoutField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.k}});Object.defineProperty(exports,"isNumberField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.b}});Object.defineProperty(exports,"isRelationshipField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.c}});Object.defineProperty(exports,"isRichTextField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.i}});Object.defineProperty(exports,"isSelectField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.j}});Object.defineProperty(exports,"isTextField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.a}});Object.defineProperty(exports,"isUploadField",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.g}});Object.defineProperty(exports,"normalizeRichTextValue",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.u}});Object.defineProperty(exports,"renderRichText",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.v}});Object.defineProperty(exports,"richTextStyles",{enumerable:true,get:function(){return chunkN2BMGZIX_cjs.t}});Object.defineProperty(exports,"kyro",{enumerable:true,get:function(){return chunkHCM2G674_cjs.a}});Object.defineProperty(exports,"AnalyticsPlugin",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.s}});Object.defineProperty(exports,"CommentsPlugin",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.t}});Object.defineProperty(exports,"ConfigValidationError",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.a}});Object.defineProperty(exports,"FIELD_DEFINITION_KEYS",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.x}});Object.defineProperty(exports,"Kyro",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.F}});Object.defineProperty(exports,"KyroPlugin",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.p}});Object.defineProperty(exports,"Logger",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.I}});Object.defineProperty(exports,"PluginManager",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.q}});Object.defineProperty(exports,"Registry",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.l}});Object.defineProperty(exports,"ReviewsPlugin",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.u}});Object.defineProperty(exports,"SEOPlugin",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.r}});Object.defineProperty(exports,"WishlistPlugin",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.v}});Object.defineProperty(exports,"applyBlocksOverrides",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.B}});Object.defineProperty(exports,"applyCollectionOverrides",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.D}});Object.defineProperty(exports,"applyGlobalOverrides",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.E}});Object.defineProperty(exports,"applyTabsOverrides",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.C}});Object.defineProperty(exports,"collectionToCreateZod",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.h}});Object.defineProperty(exports,"collectionToUpdateZod",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.i}});Object.defineProperty(exports,"collectionToWhereZod",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.j}});Object.defineProperty(exports,"collectionToZod",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.g}});Object.defineProperty(exports,"createKyro",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.G}});Object.defineProperty(exports,"createKyroHandler",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.H}});Object.defineProperty(exports,"createRegistry",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.o}});Object.defineProperty(exports,"fieldToZod",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.f}});Object.defineProperty(exports,"flattenFieldOverrides",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.z}});Object.defineProperty(exports,"getRegistry",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.m}});Object.defineProperty(exports,"globalToZod",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.k}});Object.defineProperty(exports,"isFieldOverrideDefinition",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.y}});Object.defineProperty(exports,"logger",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.J}});Object.defineProperty(exports,"presetPlugins",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.w}});Object.defineProperty(exports,"resetRegistry",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.n}});Object.defineProperty(exports,"updateFieldByPath",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.A}});Object.defineProperty(exports,"validateCollection",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.b}});Object.defineProperty(exports,"validateConfig",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.e}});Object.defineProperty(exports,"validateFields",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.d}});Object.defineProperty(exports,"validateGlobal",{enumerable:true,get:function(){return chunkHUZ3P5OC_cjs.c}});Object.defineProperty(exports,"autoBootstrap",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.e}});Object.defineProperty(exports,"bootstrapAdmin",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.a}});Object.defineProperty(exports,"bootstrapWithRetry",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.f}});Object.defineProperty(exports,"getBootstrapFromEnv",{enumerable:true,get:function(){return chunkVPBGZW4P_cjs.d}});Object.defineProperty(exports,"createContext",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.a}});Object.defineProperty(exports,"createCountProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.g}});Object.defineProperty(exports,"createCreateProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.d}});Object.defineProperty(exports,"createDeleteProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.f}});Object.defineProperty(exports,"createDynamicRouter",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.h}});Object.defineProperty(exports,"createFindByIDProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.c}});Object.defineProperty(exports,"createFindProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.b}});Object.defineProperty(exports,"createKyroServer",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.i}});Object.defineProperty(exports,"createUpdateProcedure",{enumerable:true,get:function(){return chunk7KTPBTH5_cjs.e}});Object.defineProperty(exports,"buildGraphQLSchema",{enumerable:true,get:function(){return chunk24W5I6SJ_cjs.c}});Object.defineProperty(exports,"createGraphQLSchema",{enumerable:true,get:function(){return chunk24W5I6SJ_cjs.d}});Object.defineProperty(exports,"AuditLogger",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.g}});Object.defineProperty(exports,"InMemoryAuditLogger",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.i}});Object.defineProperty(exports,"InMemoryRateLimiter",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.f}});Object.defineProperty(exports,"MediaService",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.l}});Object.defineProperty(exports,"createAuditContext",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.h}});Object.defineProperty(exports,"createKyroApp",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.n}});Object.defineProperty(exports,"createLocalStorage",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.d}});Object.defineProperty(exports,"createRESTAPI",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.o}});Object.defineProperty(exports,"isEdgeRuntime",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.k}});Object.defineProperty(exports,"resolveProvider",{enumerable:true,get:function(){return chunkO2SA56P2_cjs.c}});Object.defineProperty(exports,"PasswordPolicy",{enumerable:true,get:function(){return chunkH2IJDTA2_cjs.a}});Object.defineProperty(exports,"SQLiteAuthAdapter",{enumerable:true,get:function(){return chunkPW6Y5MQL_cjs.a}});Object.defineProperty(exports,"getAppSecret",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.c}});Object.defineProperty(exports,"getEncryptionKey",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.d}});Object.defineProperty(exports,"getSessionConfig",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.e}});Object.defineProperty(exports,"loadSecrets",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.b}});Object.defineProperty(exports,"setDbAdapter",{enumerable:true,get:function(){return chunkLXTVMP5F_cjs.a}});Object.defineProperty(exports,"ConfigService",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.p}});Object.defineProperty(exports,"EmailTransport",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.q}});Object.defineProperty(exports,"getEmailTemplates",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.o}});Object.defineProperty(exports,"renderAbandonedCart",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.n}});Object.defineProperty(exports,"renderAccountLocked",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.g}});Object.defineProperty(exports,"renderBaseLayout",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.a}});Object.defineProperty(exports,"renderMagicLink",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.f}});Object.defineProperty(exports,"renderNewLogin",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.i}});Object.defineProperty(exports,"renderOrderConfirmation",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.j}});Object.defineProperty(exports,"renderOrderDelivered",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.l}});Object.defineProperty(exports,"renderOrderRefunded",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.m}});Object.defineProperty(exports,"renderOrderShipped",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.k}});Object.defineProperty(exports,"renderPasswordChanged",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.e}});Object.defineProperty(exports,"renderResetPassword",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.c}});Object.defineProperty(exports,"renderUserInvite",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.h}});Object.defineProperty(exports,"renderVerifyEmail",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.b}});Object.defineProperty(exports,"renderWelcome",{enumerable:true,get:function(){return chunk2I2AXTKY_cjs.d}});Object.defineProperty(exports,"ALL_WEBHOOK_EVENTS",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.d}});Object.defineProperty(exports,"WEBHOOK_COLLECTION",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.e}});Object.defineProperty(exports,"WEBHOOK_DELIVERY_COLLECTION",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.f}});Object.defineProperty(exports,"WEBHOOK_EVENTS",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.c}});Object.defineProperty(exports,"WebhookService",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.m}});Object.defineProperty(exports,"buildDeliveryRecord",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.k}});Object.defineProperty(exports,"createTestPayload",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.l}});Object.defineProperty(exports,"createWebhookService",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.n}});Object.defineProperty(exports,"deliverWebhook",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.i}});Object.defineProperty(exports,"deliverWithRetry",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.j}});Object.defineProperty(exports,"generateWebhookSecret",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.h}});Object.defineProperty(exports,"signPayload",{enumerable:true,get:function(){return chunkOJBL4CXK_cjs.g}});Object.defineProperty(exports,"evaluateAccess",{enumerable:true,get:function(){return chunkDCFOVCJX_cjs.h}});Object.defineProperty(exports,"getWhereClause",{enumerable:true,get:function(){return chunkDCFOVCJX_cjs.j}});Object.defineProperty(exports,"mergeWhereClauses",{enumerable:true,get:function(){return chunkDCFOVCJX_cjs.i}});Object.defineProperty(exports,"KyroPubSub",{enumerable:true,get:function(){return chunkFU76HURF_cjs.b}});Object.defineProperty(exports,"KyroWSServer",{enumerable:true,get:function(){return chunkFU76HURF_cjs.d}});Object.defineProperty(exports,"PubSub",{enumerable:true,get:function(){return chunkFU76HURF_cjs.a}});Object.defineProperty(exports,"createWSServer",{enumerable:true,get:function(){return chunkFU76HURF_cjs.e}});Object.defineProperty(exports,"DrizzleAdapter",{enumerable:true,get:function(){return chunk7QZYK4MT_cjs.c}});Object.defineProperty(exports,"collectionToDrizzleSchema",{enumerable:true,get:function(){return chunk7QZYK4MT_cjs.b}});Object.defineProperty(exports,"createDrizzleAdapter",{enumerable:true,get:function(){return chunk7QZYK4MT_cjs.d}});Object.defineProperty(exports,"fieldToDrizzleType",{enumerable:true,get:function(){return chunk7QZYK4MT_cjs.a}});Object.defineProperty(exports,"createDatabase",{enumerable:true,get:function(){return chunkEG4SRTYS_cjs.b}});Object.defineProperty(exports,"runMigrations",{enumerable:true,get:function(){return chunkEG4SRTYS_cjs.c}});Object.defineProperty(exports,"seedDefaultRoles",{enumerable:true,get:function(){return chunkEG4SRTYS_cjs.d}});Object.defineProperty(exports,"PostgresAuthAdapter",{enumerable:true,get:function(){return chunk3A5UO6OQ_cjs.a}});Object.defineProperty(exports,"MongoDBAdapter",{enumerable:true,get:function(){return chunkXL64URKD_cjs.a}});Object.defineProperty(exports,"createMongoDBAdapter",{enumerable:true,get:function(){return chunkXL64URKD_cjs.b}});Object.defineProperty(exports,"getMongoClient",{enumerable:true,get:function(){return chunkXL64URKD_cjs.d}});Object.defineProperty(exports,"getMongoDb",{enumerable:true,get:function(){return chunkXL64URKD_cjs.c}});Object.defineProperty(exports,"MongoDBAuthAdapter",{enumerable:true,get:function(){return chunkUE7DTBD7_cjs.a}});Object.defineProperty(exports,"AbstractBaseAdapter",{enumerable:true,get:function(){return chunkO4PPZOVI_cjs.a}});Object.defineProperty(exports,"z",{enumerable:true,get:function(){return zod.z}});exports.AccountLockout=k;exports.Auth=M;exports.CSSGenerator=K;exports.InMemoryAccountLockout=v;exports.InMemoryAuthAdapter=R;exports.NeonAdapter=L;exports.RateLimiter=C;exports.TursoAdapter=E;exports.VersionManager=B;exports.authConfig=Fe;exports.buildDocumentTree=wo;exports.createAdminStyling=Fr;exports.createAuth=qr;exports.createAuthConfig=j;exports.createAuthStorage=Ke;exports.createNeonAdapter=Ee;exports.createStorage=G;exports.createTursoAdapter=Oe;exports.createVersionManager=Gr;exports.defaultDarkTheme=_r;exports.defaultFieldStyling=Mr;exports.defaultLightTheme=O;exports.defineConfig=Me;exports.defineKyroConfig=eo;exports.ecommerce2026Theme=Vr;exports.flattenDocumentTree=To;exports.generateAnalyticsTags=ro;exports.generateCSSVariables=Ue;exports.generateKyroAstroTypes=bo;exports.generateSeoTags=to;exports.generateTailwindConfig=Ur;exports.getBreadcrumbs=je;exports.getDefaultDraftPublishConfig=H;exports.getNestedPath=xo;exports.getPaymentConfig=ao;exports.getPaymentConfigFromSettings=Ne;exports.getSocialLinks=no;exports.getSocialLinksFromSettings=He;exports.getStoreConfig=io;exports.getStoreConfigFromSettings=Be;exports.isArchived=Jr;exports.isDraft=Qr;exports.isPublished=Yr;exports.kyroAction=ho;exports.kyroAuthMiddleware=yo;exports.kyroEnvSchema=Ao;exports.kyroLoader=mo;exports.runFieldHooks=Or;exports.runHooks=Le;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export{a as LocalAdapter,b as createLocalAdapter}from'./chunk-ZE2X3FBU.js';export{a as RedisAuthAdapter}from'./chunk-V4SR7DU5.js';export{k as allGlobalSettings,q as blogCollections,l as coreGlobalSettings,V as createTemplateConfig,r as ecommerceCollections,s as ecommerceGlobals,t as kitchenSinkCollections,v as mediaCollections,a as minimalCollections,U as templateCollections}from'./chunk-SEJ7LMYY.js';export{r as ALL_FIELD_TYPES,o as COMPLEX_FIELD_TYPES,q as LAYOUT_FIELD_TYPES,n as PRIMITIVE_FIELD_TYPES,p as RELATIONAL_FIELD_TYPES,d as isArrayField,f as isBlocksField,e as isGroupField,h as isImageField,k as isLayoutField,b as isNumberField,c as isRelationshipField,i as isRichTextField,j as isSelectField,a as isTextField,g as isUploadField,u as normalizeRichTextValue,v as renderRichText,t as richTextStyles}from'./chunk-5BUAWCU6.js';export{a as kyro}from'./chunk-SZY25KAE.js';export{s as AnalyticsPlugin,t as CommentsPlugin,a as ConfigValidationError,x as FIELD_DEFINITION_KEYS,F as Kyro,p as KyroPlugin,I as Logger,q as PluginManager,l as Registry,u as ReviewsPlugin,r as SEOPlugin,v as WishlistPlugin,B as applyBlocksOverrides,D as applyCollectionOverrides,E as applyGlobalOverrides,C as applyTabsOverrides,h as collectionToCreateZod,i as collectionToUpdateZod,j as collectionToWhereZod,g as collectionToZod,G as createKyro,H as createKyroHandler,o as createRegistry,f as fieldToZod,z as flattenFieldOverrides,m as getRegistry,k as globalToZod,y as isFieldOverrideDefinition,J as logger,w as presetPlugins,n as resetRegistry,A as updateFieldByPath,b as validateCollection,e as validateConfig,d as validateFields,c as validateGlobal}from'./chunk-SYE3OS5T.js';export{e as autoBootstrap,a as bootstrapAdmin,f as bootstrapWithRetry,d as getBootstrapFromEnv}from'./chunk-KUY4QDAL.js';import'./chunk-LGUHXOEW.js';import'./chunk-ZMH35QYG.js';export{a as createContext,g as createCountProcedure,d as createCreateProcedure,f as createDeleteProcedure,h as createDynamicRouter,c as createFindByIDProcedure,b as createFindProcedure,i as createKyroServer,e as createUpdateProcedure}from'./chunk-GTAKGVUY.js';export{c as buildGraphQLSchema,d as createGraphQLSchema}from'./chunk-5RBGM5N5.js';import {g,f,i,j as j$1}from'./chunk-3RIGRHON.js';export{g as AuditLogger,i as InMemoryAuditLogger,f as InMemoryRateLimiter,l as MediaService,h as createAuditContext,n as createKyroApp,d as createLocalStorage,o as createRESTAPI,k as isEdgeRuntime,c as resolveProvider}from'./chunk-3RIGRHON.js';import {a}from'./chunk-FAG2645P.js';export{a as PasswordPolicy}from'./chunk-FAG2645P.js';import {a as a$2}from'./chunk-IIVBEZC2.js';export{a as SQLiteAuthAdapter}from'./chunk-IIVBEZC2.js';import'./chunk-I22MSXGL.js';export{c as getAppSecret,d as getEncryptionKey,e as getSessionConfig,b as loadSecrets,a as setDbAdapter}from'./chunk-SBFVITY2.js';import {q}from'./chunk-5I3BM5TV.js';export{p as ConfigService,q as EmailTransport,o as getEmailTemplates,n as renderAbandonedCart,g as renderAccountLocked,a as renderBaseLayout,f as renderMagicLink,i as renderNewLogin,j as renderOrderConfirmation,l as renderOrderDelivered,m as renderOrderRefunded,k as renderOrderShipped,e as renderPasswordChanged,c as renderResetPassword,h as renderUserInvite,b as renderVerifyEmail,d as renderWelcome}from'./chunk-5I3BM5TV.js';import'./chunk-W5GDZG64.js';export{d as ALL_WEBHOOK_EVENTS,e as WEBHOOK_COLLECTION,f as WEBHOOK_DELIVERY_COLLECTION,c as WEBHOOK_EVENTS,m as WebhookService,k as buildDeliveryRecord,l as createTestPayload,n as createWebhookService,i as deliverWebhook,j as deliverWithRetry,h as generateWebhookSecret,g as signPayload}from'./chunk-OPKZYQV7.js';export{h as evaluateAccess,j as getWhereClause,i as mergeWhereClauses}from'./chunk-3N34WXBS.js';export{b as KyroPubSub,d as KyroWSServer,a as PubSub,e as createWSServer}from'./chunk-OXH6CANN.js';export{c as DrizzleAdapter,b as collectionToDrizzleSchema,d as createDrizzleAdapter,a as fieldToDrizzleType}from'./chunk-TJ6N5ZPZ.js';export{b as createDatabase,c as runMigrations,d as seedDefaultRoles}from'./chunk-JXJTFBHG.js';import {a as a$4}from'./chunk-IIPSXKNV.js';export{a as PostgresAuthAdapter}from'./chunk-IIPSXKNV.js';import'./chunk-7EY3GXRA.js';import'./chunk-WLSVS3NC.js';export{a as MongoDBAdapter,b as createMongoDBAdapter,d as getMongoClient,c as getMongoDb}from'./chunk-O6I26T6A.js';import {a as a$1}from'./chunk-YNBJGPIU.js';export{a as MongoDBAuthAdapter}from'./chunk-YNBJGPIU.js';import {a as a$5}from'./chunk-YNSKDTFG.js';export{a as AbstractBaseAdapter}from'./chunk-YNSKDTFG.js';import {a as a$3}from'./chunk-VLFM66BZ.js';import'./chunk-NGNXOXI5.js';import'./chunk-O4RKZQYQ.js';import'./chunk-RLW6AQF2.js';import q$1,{randomBytes}from'crypto';import {readFileSync}from'fs';import Ke,{join,resolve}from'path';import {z as z$1}from'zod';export{z}from'zod';import {createStorage}from'unstorage';import uo from'unstorage/drivers/fs';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
1
+ export{a as LocalAdapter,b as createLocalAdapter}from'./chunk-ZE2X3FBU.js';export{a as RedisAuthAdapter}from'./chunk-V4SR7DU5.js';export{k as allGlobalSettings,q as blogCollections,l as coreGlobalSettings,V as createTemplateConfig,r as ecommerceCollections,s as ecommerceGlobals,t as kitchenSinkCollections,v as mediaCollections,a as minimalCollections,U as templateCollections}from'./chunk-SEJ7LMYY.js';export{r as ALL_FIELD_TYPES,o as COMPLEX_FIELD_TYPES,q as LAYOUT_FIELD_TYPES,n as PRIMITIVE_FIELD_TYPES,p as RELATIONAL_FIELD_TYPES,d as isArrayField,f as isBlocksField,e as isGroupField,h as isImageField,k as isLayoutField,b as isNumberField,c as isRelationshipField,i as isRichTextField,j as isSelectField,a as isTextField,g as isUploadField,u as normalizeRichTextValue,v as renderRichText,t as richTextStyles}from'./chunk-5BUAWCU6.js';export{a as kyro}from'./chunk-SZY25KAE.js';export{s as AnalyticsPlugin,t as CommentsPlugin,a as ConfigValidationError,x as FIELD_DEFINITION_KEYS,F as Kyro,p as KyroPlugin,I as Logger,q as PluginManager,l as Registry,u as ReviewsPlugin,r as SEOPlugin,v as WishlistPlugin,B as applyBlocksOverrides,D as applyCollectionOverrides,E as applyGlobalOverrides,C as applyTabsOverrides,h as collectionToCreateZod,i as collectionToUpdateZod,j as collectionToWhereZod,g as collectionToZod,G as createKyro,H as createKyroHandler,o as createRegistry,f as fieldToZod,z as flattenFieldOverrides,m as getRegistry,k as globalToZod,y as isFieldOverrideDefinition,J as logger,w as presetPlugins,n as resetRegistry,A as updateFieldByPath,b as validateCollection,e as validateConfig,d as validateFields,c as validateGlobal}from'./chunk-FKJ7AX37.js';export{e as autoBootstrap,a as bootstrapAdmin,f as bootstrapWithRetry,d as getBootstrapFromEnv}from'./chunk-KUY4QDAL.js';import'./chunk-LGUHXOEW.js';import'./chunk-ZMH35QYG.js';export{a as createContext,g as createCountProcedure,d as createCreateProcedure,f as createDeleteProcedure,h as createDynamicRouter,c as createFindByIDProcedure,b as createFindProcedure,i as createKyroServer,e as createUpdateProcedure}from'./chunk-GTAKGVUY.js';export{c as buildGraphQLSchema,d as createGraphQLSchema}from'./chunk-5RBGM5N5.js';import {g,f,i,j as j$1}from'./chunk-3RIGRHON.js';export{g as AuditLogger,i as InMemoryAuditLogger,f as InMemoryRateLimiter,l as MediaService,h as createAuditContext,n as createKyroApp,d as createLocalStorage,o as createRESTAPI,k as isEdgeRuntime,c as resolveProvider}from'./chunk-3RIGRHON.js';import {a}from'./chunk-FAG2645P.js';export{a as PasswordPolicy}from'./chunk-FAG2645P.js';import {a as a$2}from'./chunk-IIVBEZC2.js';export{a as SQLiteAuthAdapter}from'./chunk-IIVBEZC2.js';import'./chunk-I22MSXGL.js';export{c as getAppSecret,d as getEncryptionKey,e as getSessionConfig,b as loadSecrets,a as setDbAdapter}from'./chunk-SBFVITY2.js';import {q}from'./chunk-5I3BM5TV.js';export{p as ConfigService,q as EmailTransport,o as getEmailTemplates,n as renderAbandonedCart,g as renderAccountLocked,a as renderBaseLayout,f as renderMagicLink,i as renderNewLogin,j as renderOrderConfirmation,l as renderOrderDelivered,m as renderOrderRefunded,k as renderOrderShipped,e as renderPasswordChanged,c as renderResetPassword,h as renderUserInvite,b as renderVerifyEmail,d as renderWelcome}from'./chunk-5I3BM5TV.js';import'./chunk-W5GDZG64.js';export{d as ALL_WEBHOOK_EVENTS,e as WEBHOOK_COLLECTION,f as WEBHOOK_DELIVERY_COLLECTION,c as WEBHOOK_EVENTS,m as WebhookService,k as buildDeliveryRecord,l as createTestPayload,n as createWebhookService,i as deliverWebhook,j as deliverWithRetry,h as generateWebhookSecret,g as signPayload}from'./chunk-OPKZYQV7.js';export{h as evaluateAccess,j as getWhereClause,i as mergeWhereClauses}from'./chunk-3N34WXBS.js';export{b as KyroPubSub,d as KyroWSServer,a as PubSub,e as createWSServer}from'./chunk-OXH6CANN.js';export{c as DrizzleAdapter,b as collectionToDrizzleSchema,d as createDrizzleAdapter,a as fieldToDrizzleType}from'./chunk-PMO2O77B.js';export{b as createDatabase,c as runMigrations,d as seedDefaultRoles}from'./chunk-JXJTFBHG.js';import {a as a$4}from'./chunk-IIPSXKNV.js';export{a as PostgresAuthAdapter}from'./chunk-IIPSXKNV.js';import'./chunk-7EY3GXRA.js';import'./chunk-WLSVS3NC.js';export{a as MongoDBAdapter,b as createMongoDBAdapter,d as getMongoClient,c as getMongoDb}from'./chunk-O6I26T6A.js';import {a as a$1}from'./chunk-YNBJGPIU.js';export{a as MongoDBAuthAdapter}from'./chunk-YNBJGPIU.js';import {a as a$5}from'./chunk-YNSKDTFG.js';export{a as AbstractBaseAdapter}from'./chunk-YNSKDTFG.js';import {a as a$3}from'./chunk-VLFM66BZ.js';import'./chunk-NGNXOXI5.js';import'./chunk-O4RKZQYQ.js';import'./chunk-RLW6AQF2.js';import q$1,{randomBytes}from'crypto';import {readFileSync}from'fs';import Ke,{join,resolve}from'path';import {z as z$1}from'zod';export{z}from'zod';import {createStorage}from'unstorage';import uo from'unstorage/drivers/fs';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  async function Ee(s,e){let t=e.data;for(let r of s){let o=await r({...e,data:t});o!==void 0&&(t=o);}return t}async function Ur(s,e){return Ee(s,e)}var E=class extends a$5{connectionString;constructor(e){super(),this.connectionString=e.connectionString;}async connect(){this.connected=true;}async disconnect(){this.connected=false;}async query(e,t=[]){if(!this.connectionString)throw new Error("NeonAdapter: Connection string is required.");try{let r=await fetch(`${this.connectionString}/sql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,params:t})});return r.ok?(await r.json()).rows||[]:[]}catch{return []}}async find(e){return {docs:[],totalDocs:0,limit:e.limit||10,totalPages:1,page:e.page||1,hasNextPage:false,hasPrevPage:false}}async findByID(e){return null}async create(e){return e.data}async update(e){return e.data}async delete(e){return {success:true,id:e.id}}async count(e){return 0}async findOne(e){return null}async findVersions(e){return {docs:[],totalDocs:0,limit:10,totalPages:1,page:1,hasNextPage:false,hasPrevPage:false}}async findVersionByID(e){return null}async createVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async updateLatestVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async deleteVersions(e){}};function Oe(s){return new E(s)}var O=class extends a$5{url;authToken;constructor(e){super(),this.url=e.url.replace(/^libsql:\/\//,"https://"),this.authToken=e.authToken;}async connect(){this.connected=true;}async disconnect(){this.connected=false;}async query(e,t=[]){if(!this.url)throw new Error("TursoAdapter: Database URL is required.");try{let r={"Content-Type":"application/json"};this.authToken&&(r.Authorization=`Bearer ${this.authToken}`);let o=await fetch(`${this.url}/v2/pipeline`,{method:"POST",headers:r,body:JSON.stringify({requests:[{type:"execute",stmt:{sql:e,args:t.map(c=>({type:"text",value:String(c)}))}},{type:"close"}]})});if(!o.ok)return [];let i=(await o.json())?.results?.[0]?.response?.result;if(!i||!i.rows)return [];let a=i.cols.map(c=>c.name);return i.rows.map(c=>{let f={};return a.forEach((m,d)=>{f[m]=c[d]?.value??null;}),f})}catch{return []}}async find(e){return {docs:[],totalDocs:0,limit:e.limit||10,totalPages:1,page:e.page||1,hasNextPage:false,hasPrevPage:false}}async findByID(e){return null}async create(e){return e.data}async update(e){return e.data}async delete(e){return {success:true,id:e.id}}async count(e){return 0}async findOne(e){return null}async findVersions(e){return {docs:[],totalDocs:0,limit:10,totalPages:1,page:1,hasNextPage:false,hasPrevPage:false}}async findVersionByID(e){return null}async createVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async updateLatestVersion(e){return {id:"v1",parentId:e.documentId,version:e.version||1,snapshot:e.snapshot||{},createdAt:new Date().toISOString()}}async deleteVersions(e){}};function Ue(s){return new O(s)}var j=class{constructor(e){this.config=e;}config;css=[];addRule(e,t){let r=Object.entries(t).map(([o,n])=>` ${o}: ${n};`).join(`
3
3
  `);return this.css.push(`${e} {
4
4
  ${r}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyro-cms/core",
3
- "version": "0.13.8",
3
+ "version": "0.13.9",
4
4
  "description": "Astro-native headless CMS with multi-database adapters, multi-protocol APIs, and multi-vendor support",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -1,132 +0,0 @@
1
- 'use strict';var chunkYOJOVQIH_cjs=require('./chunk-YOJOVQIH.cjs'),chunkO4PPZOVI_cjs=require('./chunk-O4PPZOVI.cjs'),chunkJJY2F6NL_cjs=require('./chunk-JJY2F6NL.cjs'),chunkOXEJCIOA_cjs=require('./chunk-OXEJCIOA.cjs'),drizzleOrm=require('drizzle-orm'),pgCore=require('drizzle-orm/pg-core'),sqliteCore=require('drizzle-orm/sqlite-core');function b(m,t="postgres"){switch(m.type){case "text":case "email":case "password":case "color":case "icon":return t==="sqlite"?"text":"varchar";case "textarea":case "code":case "markdown":case "secret":return "text";case "number":return m.integer?"integer":"decimal";case "checkbox":return "boolean";case "date":return "timestamp";case "select":case "radio":return t==="sqlite"?"text":"varchar";case "richtext":case "json":case "array":case "group":case "blocks":case "row":case "collapsible":case "tabs":return "jsonb";case "relationship":return t==="sqlite"?"text":"varchar";case "upload":return "jsonb";default:return "jsonb"}}function j(m,t="postgres"){let i=m.slug.replace(/-/g,"_"),e=[];e.push(`export const ${i} = pgTable('${i}', {`),e.push(" id: uuid('id').primaryKey().defaultRandom(),");for(let s of m.fields){if(s.name==="id"||s.type==="password")continue;let n=b(s,t),r=s.required,a=` ${s.name}: pg.${n}('${s.name}')`;s.unique&&(a+=".unique()"),r||(a+=".nullable()"),s.defaultValue!==void 0&&(typeof s.defaultValue=="string"?a+=`.default('${s.defaultValue}')`:typeof s.defaultValue=="boolean"?a+=`.default(${s.defaultValue})`:a+=`.default(sql\`${JSON.stringify(s.defaultValue)}\`)`),a+=",",e.push(a);}return m.timestamps&&(e.push(" createdAt: pg.timestamp('created_at').defaultNow(),"),e.push(" updatedAt: pg.timestamp('updated_at').defaultNow(),")),e.push(` status: ${t==="sqlite"?"sqlite":"pg"}.varchar('status').default('draft'),`),e.push(` hasDraft: ${t==="sqlite"?"sqlite":"pg"}.boolean('hasDraft').default(false),`),e.push("});"),e.join(`
2
- `)}function N(m){if(typeof m!="string")return m;let t=m.replace(/-/g,"").toLowerCase();return t.length===32?`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`:m}var I=class extends chunkO4PPZOVI_cjs.a{client;schema;_schemaEnsured=false;dialect;connectionString;versionsTableReady=false;rawClient;constructor(t){if(super(),this.schema=t.schema||{},t.connectionString){this.connectionString=t.connectionString;let i=t.connectionString.toLowerCase();i.startsWith("postgres://")||i.startsWith("postgresql://")?this.dialect="postgres":i.includes(".db")||i.includes("sqlite")||i.includes("file:")?this.dialect="sqlite":this.dialect=t.type||"postgres";}else this.rawClient=t.client,this.client=t.client,this.dialect=t.type||"sqlite";}prepareData(t,i){let e=super.prepareData(t,i);e.createdAt&&typeof e.createdAt=="string"&&(e.createdAt=new Date(e.createdAt)),e.updatedAt&&typeof e.updatedAt=="string"&&(e.updatedAt=new Date(e.updatedAt));for(let s of i.fields)if(s.type==="date"&&s.name){let n=e[s.name];n&&typeof n=="string"&&(e[s.name]=new Date(n));}for(let s of i.fields){let r=b(s,this.dialect)==="jsonb";if(s.type==="tabs"&&"tabs"in s&&s.name){let a=t[s.name];if(a&&typeof a=="object"){let o={};for(let[l,c]of Object.entries(a)){let u=s.tabs.flatMap(g=>g.fields).find(g=>g.name===l);(u?.type==="upload"||u?.type==="image"||u?.type==="list"||u?.type==="relationship-block")&&c?o[l]=Array.isArray(c)||typeof c=="object"?JSON.stringify(c):c:o[l]=c;}e[s.name]=this.dialect==="sqlite"||!r?JSON.stringify(o):o;}}else if(r&&s.name&&t[s.name]!==void 0&&t[s.name]!==null)e[s.name]=this.dialect==="sqlite"?JSON.stringify(t[s.name]):t[s.name];else if((s.type==="upload"||s.type==="image"||s.type==="list"||s.type==="relationship-block")&&s.name){let a=t[s.name];a!=null&&(e[s.name]=this.dialect==="sqlite"||!r?typeof a=="string"?a:JSON.stringify(a):a);}}for(let s of i.fields)if(s.name&&e[s.name]===""){let n=b(s,this.dialect);(n==="timestamp"||n==="jsonb"||n==="decimal"||n==="integer"||n==="numeric"||n==="boolean")&&(e[s.name]=null);}return e}async connect(){if(this.connectionString&&!this.client){if(this.dialect==="postgres"){let t,i;try{t=(await import('postgres')).default,i=(await import('drizzle-orm/postgres-js')).drizzle;}catch{chunkJJY2F6NL_cjs.a(["postgres","drizzle-orm"]),t=(await import('postgres')).default,i=(await import('drizzle-orm/postgres-js')).drizzle;}let e=t(this.connectionString,{onnotice:()=>{}});this.client=i(e,{schema:this.schema});}else if(this.dialect==="sqlite"){let t,i;try{t=(await import('better-sqlite3')).default,i=(await import('drizzle-orm/better-sqlite3')).drizzle;}catch{chunkJJY2F6NL_cjs.a(["better-sqlite3","drizzle-orm"]),t=(await import('better-sqlite3')).default,i=(await import('drizzle-orm/better-sqlite3')).drizzle;}let e=new t(this.connectionString.replace("file:",""));this.client=i(e,{schema:this.schema});}}if(this.rawClient&&typeof this.rawClient.prepare=="function"&&typeof this.client?.select!="function"){let{drizzle:t}=await import('drizzle-orm/d1');this.client=t(this.rawClient,{schema:this.schema});}this.connected=true;}async init(t,i=[]){if(await super.init(t,i),(this.connectionString&&!this.client||this.rawClient&&typeof this.client?.select!="function")&&await this.connect(),this.client&&!this._schemaEnsured){for(let s of t){let n=this.getTableName(s.slug);this.schema[n]||(this.schema[n]=this.createTableFromConfig(s));}await this.ensureCollectionTables(t);let e=i.map(s=>({slug:`_globals_${s.slug}`,fields:s.fields,label:s.label}));for(let s of e){let n=this.getTableName(s.slug);this.schema[n]||(this.schema[n]=this.createTableFromConfig(s,true)),this.collections.has(s.slug)||this.collections.set(s.slug,s);}await this.ensureCollectionTables(e),this._schemaEnsured=true;}}createTableFromConfig(t,i=false){let e=this.getTableName(t.slug),s={id:i?pgCore.text("id").primaryKey():pgCore.uuid("id").primaryKey().defaultRandom()};for(let n of t.fields){if(!n.name||n.name==="id"||n.type==="password")continue;let r=b(n,this.dialect),a=n.name.replace(/-/g,"_"),o=a.replace(/([A-Z])/g,"_$1").toLowerCase(),l;if(this.dialect==="sqlite")switch(r){case "varchar":case "text":l=sqliteCore.text(o);break;case "integer":l=sqliteCore.integer(o);break;case "decimal":case "numeric":l=sqliteCore.numeric(o);break;case "boolean":l=sqliteCore.integer(o,{mode:"boolean"});break;case "timestamp":l=sqliteCore.text(o);break;case "jsonb":l=sqliteCore.text(o);break;default:l=sqliteCore.text(o);}else switch(r){case "varchar":l=pgCore.varchar(o,{length:255});break;case "integer":l=pgCore.integer(o);break;case "decimal":l=pgCore.decimal(o);break;case "boolean":l=pgCore.boolean(o);break;case "timestamp":l=pgCore.timestamp(o);break;case "jsonb":l=pgCore.jsonb(o);break;default:l=pgCore.text(o);}n.required||(l=l.default(null)),s[a]=l;}return s.createdAt||(s.createdAt=this.dialect==="sqlite"?sqliteCore.text("created_at").default(new Date().toISOString()):pgCore.timestamp("created_at").defaultNow()),s.updatedAt||(s.updatedAt=this.dialect==="sqlite"?sqliteCore.text("updated_at").default(new Date().toISOString()):pgCore.timestamp("updated_at").defaultNow()),e!=="users"&&e!=="audit_logs"&&(s.status||(s.status=this.dialect==="sqlite"?sqliteCore.text("status").default("draft"):pgCore.varchar("status",{length:20}).default("draft")),s.hasDraft||(s.hasDraft=this.dialect==="sqlite"?sqliteCore.integer("hasDraft",{mode:"boolean"}).default(false):pgCore.boolean("hasDraft").default(false))),this.dialect==="sqlite"?sqliteCore.sqliteTable(e,s):pgCore.pgTable(e,s)}async ensureCollectionTables(t){let i=[];for(let e of t){let s=e.slug.startsWith("_globals_"),n=this.getTableName(e.slug),r=this.generateCreateColumns(e),a=e.fields.some(u=>u.name==="createdAt"),o=e.fields.some(u=>u.name==="updatedAt"),l=e.fields.some(u=>u.name==="status"),c=e.fields.some(u=>u.name==="hasDraft");if(this.dialect==="postgres"){let u=s?'"id" TEXT PRIMARY KEY':'"id" UUID PRIMARY KEY DEFAULT gen_random_uuid()';i.push(`
3
- CREATE TABLE IF NOT EXISTS "${n}" (
4
- ${u},
5
- ${r}
6
- ${a?"":'"created_at" TIMESTAMP NOT NULL DEFAULT NOW(),'}
7
- ${o?"":'"updated_at" TIMESTAMP NOT NULL DEFAULT NOW(),'}
8
- ${l?"":`"status" VARCHAR(20) DEFAULT 'draft',`}
9
- ${c?"":'"hasDraft" BOOLEAN DEFAULT false'}
10
- )
11
- `);}else i.push(`
12
- CREATE TABLE IF NOT EXISTS "${n}" (
13
- "id" TEXT PRIMARY KEY,
14
- ${r}
15
- ${a?"":`"created_at" TEXT NOT NULL DEFAULT (datetime('now')),`}
16
- ${o?"":`"updated_at" TEXT NOT NULL DEFAULT (datetime('now')),`}
17
- ${l?"":`"status" TEXT DEFAULT 'draft',`}
18
- ${c?"":'"hasDraft" INTEGER DEFAULT 0'}
19
- )
20
- `);}if(i.length>0)if(this.dialect==="postgres")await this.executeRaw(drizzleOrm.sql.raw(i.join(`;
21
- `)));else for(let e of i)await this.executeRaw(drizzleOrm.sql.raw(e));for(let e of t){let s=this.getTableName(e.slug);s==="users"||s==="audit_logs"||await this.syncTableColumns(e,s);}}getColumnSqlDefinition(t,i){let e=b(t,i),s=t.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase(),n=this.columnSqlType(e,i);return `"${s}" ${n} DEFAULT NULL`}columnSqlType(t,i){if(i==="sqlite")switch(t){case "varchar":return "TEXT";case "text":return "TEXT";case "integer":return "INTEGER";case "decimal":case "numeric":return "NUMERIC";case "boolean":return "INTEGER";case "timestamp":return "TEXT";case "jsonb":return "TEXT";default:return "TEXT"}switch(t){case "varchar":return "VARCHAR(255)";case "text":return "TEXT";case "integer":return "INTEGER";case "decimal":case "numeric":return "DECIMAL";case "boolean":return "BOOLEAN";case "timestamp":return "TIMESTAMP";case "jsonb":return "JSONB";default:return "TEXT"}}getExpectedColumnDefs(t,i){let e={},s=t.slug.startsWith("_globals_"),n=t.fields.some(l=>l.name==="createdAt"),r=t.fields.some(l=>l.name==="updatedAt"),a=t.fields.some(l=>l.name==="status"),o=t.fields.some(l=>l.name==="hasDraft");this.dialect==="postgres"?(e.id=s?'"id" TEXT PRIMARY KEY':'"id" UUID PRIMARY KEY DEFAULT gen_random_uuid()',n||(e.created_at='"created_at" TIMESTAMP DEFAULT NULL'),r||(e.updated_at='"updated_at" TIMESTAMP DEFAULT NULL'),a||(e.status='"status" VARCHAR(20) DEFAULT NULL'),o||(e.hasDraft='"hasDraft" BOOLEAN DEFAULT NULL')):(e.id='"id" TEXT PRIMARY KEY',n||(e.created_at='"created_at" TEXT DEFAULT NULL'),r||(e.updated_at='"updated_at" TEXT DEFAULT NULL'),a||(e.status='"status" TEXT DEFAULT NULL'),o||(e.hasDraft='"hasDraft" INTEGER DEFAULT NULL'));for(let l of t.fields){if(!l.name||l.name==="id")continue;let c=this.getColumnSqlDefinition(l,this.dialect),u=l.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase();e[u]=c;}return e}async syncTableColumns(t,i){let e;try{if(this.dialect==="postgres"){let r=await this.executeRaw(drizzleOrm.sql`SELECT column_name, data_type, character_maximum_length FROM information_schema.columns WHERE table_name = ${i}`);e=new Map(r.map(a=>[a.column_name,{type:a.data_type,maxLen:a.character_maximum_length}]));}else {let r=await this.executeRaw(drizzleOrm.sql`PRAGMA table_info("${drizzleOrm.sql.raw(i)}")`);e=new Map(r.map(a=>[a.name,{type:a.type,maxLen:null}]));}}catch{return}let s=this.getExpectedColumnDefs(t,i),n=Object.keys(s).filter(r=>!e.has(r));if(n.length>0){let r=n.map(a=>`ALTER TABLE "${i}" ADD COLUMN ${s[a]}`);await this.executeRaw(drizzleOrm.sql.raw(r.join(`;
22
- `)));}if(this.dialect==="postgres")for(let r of t.fields){if(!r.name||r.name==="id")continue;let a=b(r,this.dialect),o=r.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase(),l=e.get(o);!l||l.type!=="character varying"||(a==="text"?await this.executeRaw(drizzleOrm.sql.raw(`ALTER TABLE "${i}" ALTER COLUMN "${o}" TYPE TEXT`)):a==="jsonb"&&(await this.executeRaw(drizzleOrm.sql.raw(`ALTER TABLE "${i}" ALTER COLUMN "${o}" DROP DEFAULT`)),await this.executeRaw(drizzleOrm.sql.raw(`ALTER TABLE "${i}" ALTER COLUMN "${o}" TYPE JSONB USING (CASE WHEN "${o}" IS NULL THEN NULL WHEN "${o}"::text ~ '^\\s*\\{' THEN "${o}"::jsonb ELSE jsonb_build_object('id', "${o}"::text) END)`))));}}generateCreateColumns(t){let i=[];for(let e of t.fields){if(!e.name||e.name==="id")continue;let s=b(e,this.dialect),n=e.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase(),r=e.required?"NOT NULL":"DEFAULT NULL",a;if(this.dialect==="sqlite")switch(s){case "varchar":case "text":a=`TEXT ${r}`;break;case "integer":a=`INTEGER ${r}`;break;case "decimal":case "numeric":a=`NUMERIC ${r}`;break;case "boolean":a=`INTEGER ${r}`;break;case "timestamp":a=`TEXT ${r}`;break;case "jsonb":a=`TEXT ${r}`;break;default:a=`TEXT ${r}`;}else switch(s){case "varchar":a=`VARCHAR(255) ${r}`;break;case "integer":a=`INTEGER ${r}`;break;case "decimal":a=`DECIMAL ${r}`;break;case "boolean":a=`BOOLEAN ${r}`;break;case "timestamp":a=`TIMESTAMP ${r}`;break;case "jsonb":a=`JSONB ${r}`;break;default:a=`TEXT ${r}`;}i.push(`"${n}" ${a}`);}return i.join(`,
23
- `)+(i.length>0?",":"")}async disconnect(){this.connected=false;}async find(t){let{collection:i,where:e={},sort:s,limit:n=10,page:r=1,tenantId:a,select:o,draft:l}=t,c=this.getCollection(i),u=this.getTable(i),h={...e};this.tenantContext&&c.tenantScoped&&(h=chunkO4PPZOVI_cjs.c({where:h},i,this.tenantContext,chunkO4PPZOVI_cjs.b).where||{});let g=this.buildWhereClause(h,c,u,a),y=c.fields.find(p=>p.name==="status"),f=y?.type==="select"&&Array.isArray(y.options)&&y.options.some(p=>p.value==="published");!l&&u.status&&f&&g.push(drizzleOrm.eq(u.status,"published"));let E=this.parseSort(s),T=!l&&u.status&&f?{...h,status:"published"}:h,Y=await this.count({collection:i,where:T,tenantId:a}),J=(r-1)*n,F=[];try{let p=u[E.field]||u.createdAt||u.id,R=E.direction==="asc"?p:drizzleOrm.desc(p),_=this.client.select().from(u);g.length>0&&(_=_.where(drizzleOrm.and(...g))),F=await _.orderBy(R).limit(n).offset(J);}catch(p){console.error("[DrizzleAdapter] Query error:",p);}let C=F.map(p=>this.processResult(p,c));return this.tenantContext&&!this.tenantContext.isSuperAdmin&&(C=C.filter(p=>chunkO4PPZOVI_cjs.d(p,i,this.tenantContext,chunkO4PPZOVI_cjs.b))),l&&(C=await Promise.all(C.map(async p=>{let R=await this.executeRaw(drizzleOrm.sql`
24
- SELECT * FROM kyro_versions
25
- WHERE collection_slug = ${i}
26
- AND document_id = ${p.id}
27
- ORDER BY created_at DESC
28
- LIMIT 1
29
- `);if(R.length>0){let _=R[0],w=_.data;for(;typeof w=="string";)try{w=JSON.parse(w);}catch{break}return (!w||typeof w!="object"||Array.isArray(w))&&(w={}),{...p,...w,status:p.status,_hasUnpublishedChanges:_.status==="draft"}}return p}))),{docs:C,...this.calculatePagination(r,n,Y)}}async findByID(t){let{collection:i,id:e,tenantId:s,draft:n}=t,r=this.getCollection(i),a=this.getTable(i),o=this.dialect==="postgres"&&typeof e=="string"?N(e):e;if(this.tenantContext&&r.tenantScoped){let f={id:o,tenantId:this.tenantContext.tenantId};if(!chunkO4PPZOVI_cjs.d(f,i,this.tenantContext,chunkO4PPZOVI_cjs.b))return null}let l=[drizzleOrm.eq(a.id,o)];s&&a.tenantId&&l.push(drizzleOrm.eq(a.tenantId,s));let c=r.fields.find(f=>f.name==="status"),u=c?.type==="select"&&Array.isArray(c.options)&&c.options.some(f=>f.value==="published");!n&&a.status&&u&&l.push(drizzleOrm.eq(a.status,"published"));let h=l.length>1?drizzleOrm.and(...l):l[0],g=await this.client.select().from(a).where(h);if(g.length===0)return null;let y=this.processResult(g[0],r);if(n){let f=await this.executeRaw(drizzleOrm.sql`
30
- SELECT * FROM kyro_versions
31
- WHERE collection_slug = ${i}
32
- AND document_id = ${y.id}
33
- ORDER BY created_at DESC
34
- LIMIT 1
35
- `);if(f.length>0){let E=f[0],T=E.data;for(;typeof T=="string";)try{T=JSON.parse(T);}catch{break}(!T||typeof T!="object"||Array.isArray(T))&&(T={}),y={...y,...T,status:y.status,_hasUnpublishedChanges:E.status==="draft"};}}return y}async create(t){let{collection:i,data:e,tenantId:s}=t,n=this.getCollection(i),r=this.getTable(i),a=this.prepareData(e,n);s&&n.tenantScoped&&(a.tenantId=s);let o=await this.client.insert(r).values(a).returning();return this.processResult(o[0],n)}async update(t){let{collection:i,id:e,data:s,tenantId:n}=t,r=this.getCollection(i),a=this.getTable(i),o=this.prepareData(s,r),l=this.dialect==="postgres"&&typeof e=="string"?N(e):e,c=[drizzleOrm.eq(a.id,l)];n&&a.tenantId&&c.push(drizzleOrm.eq(a.tenantId,n));let u=await this.client.update(a).set(o).where(drizzleOrm.and(...c)).returning();if(u.length===0)throw new Error(`Document not found: ${i}/${e}`);return this.processResult(u[0],r)}async delete(t){let{collection:i,id:e,tenantId:s}=t,n=this.getCollection(i),r=this.getTable(i),a=this.dialect==="postgres"&&typeof e=="string"?N(e):e,o=[drizzleOrm.eq(r.id,a)];s&&r.tenantId&&o.push(drizzleOrm.eq(r.tenantId,s));let l=await this.client.delete(r).where(drizzleOrm.and(...o)).returning();if(l.length===0)throw new Error(`Document not found: ${i}/${e}`);return this.processResult(l[0],n)}async count(t){let{collection:i,where:e={},tenantId:s}=t,n=this.getCollection(i),r=this.getTable(i),a=this.buildWhereClause(e,n,r,s);try{let o=this.client.select({count:drizzleOrm.sql`count(*)`}).from(r);a.length>0&&(o=o.where(drizzleOrm.and(...a)));let l=await o;return Number(l[0]?.count||0)}catch{return 0}}async findOne(t){let{collection:i,where:e={},tenantId:s,draft:n}=t;if(i.startsWith("_globals_")){let a=i.replace("_globals_",""),o=this.globals.get(a);if(!o)throw new Error(`Global "${a}" not found`);let l=this.getTable(i),c=this.client.select().from(l),u=o.fields.find(f=>f.name==="status"),h=u?.type==="select"&&Array.isArray(u.options)&&u.options.some(f=>f.value==="published");!n&&l.status&&h&&(c=c.where(drizzleOrm.eq(l.status,"published")));let g=await c.limit(1);if(g.length===0)return null;let y=this.processResult(g[0],o);if(n){let f=await this.executeRaw(drizzleOrm.sql`
36
- SELECT * FROM kyro_versions
37
- WHERE collection_slug = ${i}
38
- AND document_id = ${a}
39
- ORDER BY created_at DESC
40
- LIMIT 1
41
- `);if(f.length>0){let E=f[0],T=typeof E.data=="string"?JSON.parse(E.data):E.data;y={...y,...T,status:y.status,_hasUnpublishedChanges:E.status==="draft"};}}return y}return (await this.find({...t,limit:1})).docs[0]||null}async findVersions(t){await this.ensureVersionsTable();let{collection:i,documentId:e,limit:s=10,page:n=1,tenantId:r}=t,a=(n-1)*s,o=this.getCollection(i),l=await this.executeRaw(drizzleOrm.sql`
42
- SELECT count(*) as count
43
- FROM kyro_versions
44
- WHERE collection_slug = ${i}
45
- AND document_id = ${e}
46
- AND autosave = 0
47
- ${r&&o.tenantScoped?drizzleOrm.sql`AND tenant_id = ${r}`:drizzleOrm.sql``}
48
- `),c=parseInt(l[0]?.count||"0");return {docs:(await this.executeRaw(drizzleOrm.sql`
49
- SELECT *
50
- FROM kyro_versions
51
- WHERE collection_slug = ${i}
52
- AND document_id = ${e}
53
- AND autosave = 0
54
- ${r&&o.tenantScoped?drizzleOrm.sql`AND tenant_id = ${r}`:drizzleOrm.sql``}
55
- ORDER BY created_at DESC
56
- LIMIT ${s}
57
- OFFSET ${a}
58
- `)).map(h=>({...h,data:typeof h.data=="string"?JSON.parse(h.data):h.data})),...this.calculatePagination(n,s,c)}}async findVersionByID(t){await this.ensureVersionsTable();let i=this.getCollection(t.collection),e=await this.executeRaw(drizzleOrm.sql`
59
- SELECT * FROM kyro_versions
60
- WHERE id = ${t.versionId}
61
- AND collection_slug = ${t.collection}
62
- ${t.tenantId&&i.tenantScoped?drizzleOrm.sql`AND tenant_id = ${t.tenantId}`:drizzleOrm.sql``}
63
- LIMIT 1
64
- `);if(e.length===0)return null;let s=e[0];return {...s,data:typeof s.data=="string"?JSON.parse(s.data):s.data}}async createVersion(t){await this.ensureVersionsTable();let i=this.getCollection(t.collection),e=new Date().toISOString();if(t.autosave){let r=await this.executeRaw(drizzleOrm.sql`
65
- SELECT * FROM kyro_versions
66
- WHERE collection_slug = ${t.collection}
67
- AND document_id = ${t.documentId}
68
- AND autosave = 1
69
- ${t.tenantId&&i.tenantScoped?drizzleOrm.sql`AND tenant_id = ${t.tenantId}`:drizzleOrm.sql``}
70
- LIMIT 1
71
- `);if(r.length>0)return await this.executeRaw(drizzleOrm.sql`
72
- UPDATE kyro_versions
73
- SET data = ${JSON.stringify(t.data)},
74
- status = ${t.status},
75
- updated_at = ${e}
76
- WHERE id = ${r[0].id}
77
- `),this.findVersionByID({collection:t.collection,versionId:r[0].id,tenantId:t.tenantId})}let s=Math.random().toString(36).substring(2,15),n=typeof t.data=="string"?t.data:JSON.stringify(t.data);if(await this.executeRaw(drizzleOrm.sql`
78
- INSERT INTO kyro_versions (
79
- id, collection_slug, document_id, tenant_id, data, status, autosave, created_by, change_description, created_at, updated_at
80
- ) VALUES (
81
- ${s}, ${t.collection}, ${t.documentId}, ${t.tenantId&&i.tenantScoped?t.tenantId:null},
82
- ${n}, ${t.status}, ${t.autosave?1:0}, ${t.createdBy||null},
83
- ${t.changeDescription||null}, ${e}, ${e}
84
- )
85
- `),!t.autosave){let r=this.getCollection(t.collection);r.versions?.maxPerDoc&&await this.deleteVersions({collection:t.collection,documentId:t.documentId,keepLatest:r.versions.maxPerDoc,tenantId:t.tenantId});}return this.findVersionByID({collection:t.collection,versionId:s,tenantId:t.tenantId})}async updateLatestVersion(t){return this.createVersion({...t,autosave:true})}async deleteVersions(t){await this.ensureVersionsTable();let i=this.getCollection(t.collection);if(t.keepLatest){let s=(await this.executeRaw(drizzleOrm.sql`
86
- SELECT id FROM kyro_versions
87
- WHERE collection_slug = ${t.collection}
88
- AND document_id = ${t.documentId}
89
- AND autosave = 0
90
- ${t.tenantId&&i.tenantScoped?drizzleOrm.sql`AND tenant_id = ${t.tenantId}`:drizzleOrm.sql``}
91
- ORDER BY created_at DESC
92
- LIMIT ${t.keepLatest}
93
- `)).map(n=>n.id);s.length>0&&await this.executeRaw(drizzleOrm.sql`
94
- DELETE FROM kyro_versions
95
- WHERE collection_slug = ${t.collection}
96
- AND document_id = ${t.documentId}
97
- AND autosave = 0
98
- AND id NOT IN (${drizzleOrm.sql.join(s.map(n=>drizzleOrm.sql`${n}`),drizzleOrm.sql`, `)})
99
- `);}else await this.executeRaw(drizzleOrm.sql`
100
- DELETE FROM kyro_versions
101
- WHERE collection_slug = ${t.collection}
102
- AND document_id = ${t.documentId}
103
- ${t.tenantId&&i.tenantScoped?drizzleOrm.sql`AND tenant_id = ${t.tenantId}`:drizzleOrm.sql``}
104
- `);}getTable(t){let i=this.getTableName(t),e=this.schema[i];if(!e)throw new Error(`Table "${i}" not found in schema`);return e}buildWhereClause(t,i,e,s){let n=[];s&&i.tenantScoped&&e.tenantId&&n.push(drizzleOrm.eq(e.tenantId,s));for(let[r,a]of Object.entries(t)){let o=r,l=o.toUpperCase();if(o==="id"&&this.dialect==="postgres"&&(typeof a=="string"?a=N(a):a&&typeof a=="object"&&(a.equals!==void 0&&typeof a.equals=="string"&&(a={...a,equals:N(a.equals)}),a.in&&Array.isArray(a.in)&&(a={...a,in:a.in.map(c=>typeof c=="string"?N(c):c)}))),l==="AND"&&Array.isArray(a)){let c=a.map(u=>this.buildWhereClause(u,i,e)).flat().filter(Boolean);c.length>0&&n.push(drizzleOrm.and(...c));}else if(l==="OR"&&Array.isArray(a)){let c=a.map(u=>this.buildWhereClause(u,i,e)).flat().filter(Boolean);c.length>0&&n.push(drizzleOrm.or(...c));}else if(typeof a=="object"&&a!==null&&!Array.isArray(a)){let c=e[o]||e[o.replace(/-/g,"_")]||e[o.replace(/([A-Z])/g,"_$1").toLowerCase()]||(o==="created_at"?e.createdAt:void 0)||(o==="createdAt"?e.created_at:void 0)||(o==="updated_at"?e.updatedAt:void 0)||(o==="updatedAt"?e.updated_at:void 0);if(!c)continue;a.equals!==void 0&&n.push(drizzleOrm.eq(c,a.equals)),a.not_equals!==void 0&&n.push(drizzleOrm.ne(c,a.not_equals)),a.in&&Array.isArray(a.in)&&(a.in.length===0?n.push(drizzleOrm.sql`1 = 0`):n.push(drizzleOrm.inArray(c,a.in))),a.like!==void 0&&(this.dialect==="postgres"?n.push(drizzleOrm.ilike(c,a.like)):n.push(drizzleOrm.like(c,a.like))),a.contains!==void 0&&(this.dialect==="postgres"?n.push(drizzleOrm.ilike(c,`%${a.contains}%`)):n.push(drizzleOrm.like(c,`%${a.contains}%`))),a.greater_than!==void 0&&n.push(drizzleOrm.gt(c,a.greater_than)),a.greater_than_equal!==void 0&&n.push(drizzleOrm.gte(c,a.greater_than_equal)),a.less_than!==void 0&&n.push(drizzleOrm.lt(c,a.less_than)),a.less_than_equal!==void 0&&n.push(drizzleOrm.lte(c,a.less_than_equal));}else {let c=e[o]||e[o.replace(/-/g,"_")]||e[o.replace(/([A-Z])/g,"_$1").toLowerCase()];c&&n.push(drizzleOrm.eq(c,a));}}return n}processResult(t,i){if(!t)return null;let e={...t};for(let s of Object.keys(e))/^\d+$/.test(s)&&delete e[s];t.id&&(e.id=String(t.id));for(let s of i.fields){if(!s.name)continue;let n=s.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase();n!==s.name&&e[n]!==void 0&&e[s.name]===void 0&&(e[s.name]=e[n],delete e[n]);}for(let s of i.fields){if(["json","richtext","array","group","blocks","upload","image","list","relationship-block"].includes(s.type)){let n=s;if(e[n.name]&&typeof e[n.name]=="string")try{let r=JSON.parse(e[n.name]);e[n.name]=r;}catch{}if(s.type==="blocks"&&e[n.name]&&Array.isArray(e[n.name])){let r=n.blocks||[];e[n.name]=chunkYOJOVQIH_cjs.d(e[n.name],r);}}if(s.type==="tabs"&&"tabs"in s&&s.name){if(typeof e[s.name]=="object"&&e[s.name]!==null&&!Array.isArray(e[s.name])){for(let r of s.tabs)for(let a of r.fields)if((a.type==="upload"||a.type==="image")&&a.name){let o=e[s.name][a.name];if(typeof o=="string")try{let l=JSON.parse(o);e[s.name][a.name]=Array.isArray(l)?l.map(c=>c&&typeof c=="object"&&typeof c.id=="string"?c.id:String(c||"")):typeof l.id=="string"?l.id:String(l.id||"");}catch{}else o&&typeof o=="object"&&(e[s.name][a.name]=Array.isArray(o)?o.map(l=>l&&typeof l=="object"&&typeof l.id=="string"?l.id:String(l||"")):typeof o.id=="string"?o.id:String(o.id||""));}continue}if(typeof e[s.name]=="string")try{let r=JSON.parse(e[s.name]);if(typeof r=="object"&&r!==null){e[s.name]=r;continue}}catch{}let n={};for(let r of s.tabs)for(let a of r.fields)if(a.name&&e[a.name]!==void 0){let o=e[a.name];if(["json","richtext","array","group","blocks","upload","image","list","relationship-block"].includes(a.type)){if(o&&typeof o=="string")try{o=JSON.parse(o);}catch{}(a.type==="upload"||a.type==="image")&&o&&typeof o=="object"&&(o=Array.isArray(o)?o.map(l=>l&&typeof l=="object"&&typeof l.id=="string"?l.id:String(l||"")):typeof o.id=="string"?o.id:String(o.id||""));}n[a.name]=o,delete e[a.name];}e[s.name]=n;}}return e.createdAt&&(e.createdAt=new Date(e.createdAt).toISOString()),e.updatedAt&&(e.updatedAt=new Date(e.updatedAt).toISOString()),chunkOXEJCIOA_cjs.a(e)}async ensureVersionsTable(){if(this.versionsTableReady)return;let t;this.dialect==="sqlite"?t=`
105
- CREATE TABLE IF NOT EXISTS kyro_versions (
106
- id text PRIMARY KEY,
107
- collection_slug text NOT NULL,
108
- document_id text NOT NULL,
109
- tenant_id text,
110
- data text NOT NULL,
111
- status text NOT NULL DEFAULT 'draft',
112
- autosave integer NOT NULL DEFAULT 0,
113
- created_by text,
114
- change_description text,
115
- created_at text DEFAULT (datetime('now')),
116
- updated_at text DEFAULT (datetime('now'))
117
- )
118
- `:t=`
119
- CREATE TABLE IF NOT EXISTS kyro_versions (
120
- id text PRIMARY KEY,
121
- collection_slug text NOT NULL,
122
- document_id text NOT NULL,
123
- tenant_id text,
124
- data text NOT NULL,
125
- status text NOT NULL,
126
- autosave integer NOT NULL DEFAULT 0,
127
- created_by text,
128
- change_description text,
129
- created_at text NOT NULL,
130
- updated_at text NOT NULL
131
- )
132
- `,await this.executeRaw(drizzleOrm.sql.raw(t));try{this.dialect==="postgres"?await this.executeRaw(drizzleOrm.sql.raw("ALTER TABLE kyro_versions ADD COLUMN IF NOT EXISTS autosave integer NOT NULL DEFAULT 0")):await this.executeRaw(drizzleOrm.sql.raw("ALTER TABLE kyro_versions ADD COLUMN autosave integer NOT NULL DEFAULT 0"));}catch{}this.versionsTableReady=true;}async execute(t){return this.executeRaw(t)}async executeRaw(t){let i="",e=[];if(typeof t=="string")i=t;else if(t&&(t.queryChunks||t.decoder))if(this.dialect==="postgres"){let n=new pgCore.PgDialect().sqlToQuery(t);i=n.sql,e=n.params;}else {let n=new sqliteCore.SQLiteSyncDialect().sqlToQuery(t);i=n.sql,e=n.params;}else if(t&&typeof t.toSQL=="function"){let n=t.toSQL();i=n.sql,e=n.params||[];}else i=String(t);let s=this.rawClient||this.client;if(s?.prepare&&typeof s.prepare=="function"){let n=s.prepare(i);return (e.length>0?await n.bind(...e).all():await n.all()).results||[]}if(typeof this.client?.execute=="function"){let n=await this.client.execute(t);return Array.isArray(n)?n:Array.isArray(n?.rows)?n.rows:Array.isArray(n?.[0])?n[0]:[]}return []}};function fe(m){return new I(m)}exports.a=b;exports.b=j;exports.c=I;exports.d=fe;
@@ -1,133 +0,0 @@
1
- import {d as d$1}from'./chunk-WLSVS3NC.js';import {a,c,b as b$1,d}from'./chunk-YNSKDTFG.js';import {a as a$1}from'./chunk-VLFM66BZ.js';import {a as a$2}from'./chunk-NGNXOXI5.js';import {sql,eq,desc,and,or,ne,inArray,ilike,like,gt,gte,lt,lte}from'drizzle-orm';import {text,uuid,jsonb,timestamp,boolean,decimal,integer as integer$1,varchar,pgTable,PgDialect}from'drizzle-orm/pg-core';import {text as text$1,integer,numeric,sqliteTable,SQLiteSyncDialect}from'drizzle-orm/sqlite-core';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
- function b(m,t="postgres"){switch(m.type){case "text":case "email":case "password":case "color":case "icon":return t==="sqlite"?"text":"varchar";case "textarea":case "code":case "markdown":case "secret":return "text";case "number":return m.integer?"integer":"decimal";case "checkbox":return "boolean";case "date":return "timestamp";case "select":case "radio":return t==="sqlite"?"text":"varchar";case "richtext":case "json":case "array":case "group":case "blocks":case "row":case "collapsible":case "tabs":return "jsonb";case "relationship":return t==="sqlite"?"text":"varchar";case "upload":return "jsonb";default:return "jsonb"}}function z(m,t="postgres"){let i=m.slug.replace(/-/g,"_"),e=[];e.push(`export const ${i} = pgTable('${i}', {`),e.push(" id: uuid('id').primaryKey().defaultRandom(),");for(let s of m.fields){if(s.name==="id"||s.type==="password")continue;let n=b(s,t),r=s.required,a=` ${s.name}: pg.${n}('${s.name}')`;s.unique&&(a+=".unique()"),r||(a+=".nullable()"),s.defaultValue!==void 0&&(typeof s.defaultValue=="string"?a+=`.default('${s.defaultValue}')`:typeof s.defaultValue=="boolean"?a+=`.default(${s.defaultValue})`:a+=`.default(sql\`${JSON.stringify(s.defaultValue)}\`)`),a+=",",e.push(a);}return m.timestamps&&(e.push(" createdAt: pg.timestamp('created_at').defaultNow(),"),e.push(" updatedAt: pg.timestamp('updated_at').defaultNow(),")),e.push(` status: ${t==="sqlite"?"sqlite":"pg"}.varchar('status').default('draft'),`),e.push(` hasDraft: ${t==="sqlite"?"sqlite":"pg"}.boolean('hasDraft').default(false),`),e.push("});"),e.join(`
3
- `)}function N(m){if(typeof m!="string")return m;let t=m.replace(/-/g,"").toLowerCase();return t.length===32?`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`:m}var I=class extends a{client;schema;_schemaEnsured=false;dialect;connectionString;versionsTableReady=false;rawClient;constructor(t){if(super(),this.schema=t.schema||{},t.connectionString){this.connectionString=t.connectionString;let i=t.connectionString.toLowerCase();i.startsWith("postgres://")||i.startsWith("postgresql://")?this.dialect="postgres":i.includes(".db")||i.includes("sqlite")||i.includes("file:")?this.dialect="sqlite":this.dialect=t.type||"postgres";}else this.rawClient=t.client,this.client=t.client,this.dialect=t.type||"sqlite";}prepareData(t,i){let e=super.prepareData(t,i);e.createdAt&&typeof e.createdAt=="string"&&(e.createdAt=new Date(e.createdAt)),e.updatedAt&&typeof e.updatedAt=="string"&&(e.updatedAt=new Date(e.updatedAt));for(let s of i.fields)if(s.type==="date"&&s.name){let n=e[s.name];n&&typeof n=="string"&&(e[s.name]=new Date(n));}for(let s of i.fields){let r=b(s,this.dialect)==="jsonb";if(s.type==="tabs"&&"tabs"in s&&s.name){let a=t[s.name];if(a&&typeof a=="object"){let o={};for(let[l,c]of Object.entries(a)){let u=s.tabs.flatMap(g=>g.fields).find(g=>g.name===l);(u?.type==="upload"||u?.type==="image"||u?.type==="list"||u?.type==="relationship-block")&&c?o[l]=Array.isArray(c)||typeof c=="object"?JSON.stringify(c):c:o[l]=c;}e[s.name]=this.dialect==="sqlite"||!r?JSON.stringify(o):o;}}else if(r&&s.name&&t[s.name]!==void 0&&t[s.name]!==null)e[s.name]=this.dialect==="sqlite"?JSON.stringify(t[s.name]):t[s.name];else if((s.type==="upload"||s.type==="image"||s.type==="list"||s.type==="relationship-block")&&s.name){let a=t[s.name];a!=null&&(e[s.name]=this.dialect==="sqlite"||!r?typeof a=="string"?a:JSON.stringify(a):a);}}for(let s of i.fields)if(s.name&&e[s.name]===""){let n=b(s,this.dialect);(n==="timestamp"||n==="jsonb"||n==="decimal"||n==="integer"||n==="numeric"||n==="boolean")&&(e[s.name]=null);}return e}async connect(){if(this.connectionString&&!this.client){if(this.dialect==="postgres"){let t,i;try{t=(await import('postgres')).default,i=(await import('drizzle-orm/postgres-js')).drizzle;}catch{a$1(["postgres","drizzle-orm"]),t=(await import('postgres')).default,i=(await import('drizzle-orm/postgres-js')).drizzle;}let e=t(this.connectionString,{onnotice:()=>{}});this.client=i(e,{schema:this.schema});}else if(this.dialect==="sqlite"){let t,i;try{t=(await import('better-sqlite3')).default,i=(await import('drizzle-orm/better-sqlite3')).drizzle;}catch{a$1(["better-sqlite3","drizzle-orm"]),t=(await import('better-sqlite3')).default,i=(await import('drizzle-orm/better-sqlite3')).drizzle;}let e=new t(this.connectionString.replace("file:",""));this.client=i(e,{schema:this.schema});}}if(this.rawClient&&typeof this.rawClient.prepare=="function"&&typeof this.client?.select!="function"){let{drizzle:t}=await import('drizzle-orm/d1');this.client=t(this.rawClient,{schema:this.schema});}this.connected=true;}async init(t,i=[]){if(await super.init(t,i),(this.connectionString&&!this.client||this.rawClient&&typeof this.client?.select!="function")&&await this.connect(),this.client&&!this._schemaEnsured){for(let s of t){let n=this.getTableName(s.slug);this.schema[n]||(this.schema[n]=this.createTableFromConfig(s));}await this.ensureCollectionTables(t);let e=i.map(s=>({slug:`_globals_${s.slug}`,fields:s.fields,label:s.label}));for(let s of e){let n=this.getTableName(s.slug);this.schema[n]||(this.schema[n]=this.createTableFromConfig(s,true)),this.collections.has(s.slug)||this.collections.set(s.slug,s);}await this.ensureCollectionTables(e),this._schemaEnsured=true;}}createTableFromConfig(t,i=false){let e=this.getTableName(t.slug),s={id:i?text("id").primaryKey():uuid("id").primaryKey().defaultRandom()};for(let n of t.fields){if(!n.name||n.name==="id"||n.type==="password")continue;let r=b(n,this.dialect),a=n.name.replace(/-/g,"_"),o=a.replace(/([A-Z])/g,"_$1").toLowerCase(),l;if(this.dialect==="sqlite")switch(r){case "varchar":case "text":l=text$1(o);break;case "integer":l=integer(o);break;case "decimal":case "numeric":l=numeric(o);break;case "boolean":l=integer(o,{mode:"boolean"});break;case "timestamp":l=text$1(o);break;case "jsonb":l=text$1(o);break;default:l=text$1(o);}else switch(r){case "varchar":l=varchar(o,{length:255});break;case "integer":l=integer$1(o);break;case "decimal":l=decimal(o);break;case "boolean":l=boolean(o);break;case "timestamp":l=timestamp(o);break;case "jsonb":l=jsonb(o);break;default:l=text(o);}n.required||(l=l.default(null)),s[a]=l;}return s.createdAt||(s.createdAt=this.dialect==="sqlite"?text$1("created_at").default(new Date().toISOString()):timestamp("created_at").defaultNow()),s.updatedAt||(s.updatedAt=this.dialect==="sqlite"?text$1("updated_at").default(new Date().toISOString()):timestamp("updated_at").defaultNow()),e!=="users"&&e!=="audit_logs"&&(s.status||(s.status=this.dialect==="sqlite"?text$1("status").default("draft"):varchar("status",{length:20}).default("draft")),s.hasDraft||(s.hasDraft=this.dialect==="sqlite"?integer("hasDraft",{mode:"boolean"}).default(false):boolean("hasDraft").default(false))),this.dialect==="sqlite"?sqliteTable(e,s):pgTable(e,s)}async ensureCollectionTables(t){let i=[];for(let e of t){let s=e.slug.startsWith("_globals_"),n=this.getTableName(e.slug),r=this.generateCreateColumns(e),a=e.fields.some(u=>u.name==="createdAt"),o=e.fields.some(u=>u.name==="updatedAt"),l=e.fields.some(u=>u.name==="status"),c=e.fields.some(u=>u.name==="hasDraft");if(this.dialect==="postgres"){let u=s?'"id" TEXT PRIMARY KEY':'"id" UUID PRIMARY KEY DEFAULT gen_random_uuid()';i.push(`
4
- CREATE TABLE IF NOT EXISTS "${n}" (
5
- ${u},
6
- ${r}
7
- ${a?"":'"created_at" TIMESTAMP NOT NULL DEFAULT NOW(),'}
8
- ${o?"":'"updated_at" TIMESTAMP NOT NULL DEFAULT NOW(),'}
9
- ${l?"":`"status" VARCHAR(20) DEFAULT 'draft',`}
10
- ${c?"":'"hasDraft" BOOLEAN DEFAULT false'}
11
- )
12
- `);}else i.push(`
13
- CREATE TABLE IF NOT EXISTS "${n}" (
14
- "id" TEXT PRIMARY KEY,
15
- ${r}
16
- ${a?"":`"created_at" TEXT NOT NULL DEFAULT (datetime('now')),`}
17
- ${o?"":`"updated_at" TEXT NOT NULL DEFAULT (datetime('now')),`}
18
- ${l?"":`"status" TEXT DEFAULT 'draft',`}
19
- ${c?"":'"hasDraft" INTEGER DEFAULT 0'}
20
- )
21
- `);}if(i.length>0)if(this.dialect==="postgres")await this.executeRaw(sql.raw(i.join(`;
22
- `)));else for(let e of i)await this.executeRaw(sql.raw(e));for(let e of t){let s=this.getTableName(e.slug);s==="users"||s==="audit_logs"||await this.syncTableColumns(e,s);}}getColumnSqlDefinition(t,i){let e=b(t,i),s=t.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase(),n=this.columnSqlType(e,i);return `"${s}" ${n} DEFAULT NULL`}columnSqlType(t,i){if(i==="sqlite")switch(t){case "varchar":return "TEXT";case "text":return "TEXT";case "integer":return "INTEGER";case "decimal":case "numeric":return "NUMERIC";case "boolean":return "INTEGER";case "timestamp":return "TEXT";case "jsonb":return "TEXT";default:return "TEXT"}switch(t){case "varchar":return "VARCHAR(255)";case "text":return "TEXT";case "integer":return "INTEGER";case "decimal":case "numeric":return "DECIMAL";case "boolean":return "BOOLEAN";case "timestamp":return "TIMESTAMP";case "jsonb":return "JSONB";default:return "TEXT"}}getExpectedColumnDefs(t,i){let e={},s=t.slug.startsWith("_globals_"),n=t.fields.some(l=>l.name==="createdAt"),r=t.fields.some(l=>l.name==="updatedAt"),a=t.fields.some(l=>l.name==="status"),o=t.fields.some(l=>l.name==="hasDraft");this.dialect==="postgres"?(e.id=s?'"id" TEXT PRIMARY KEY':'"id" UUID PRIMARY KEY DEFAULT gen_random_uuid()',n||(e.created_at='"created_at" TIMESTAMP DEFAULT NULL'),r||(e.updated_at='"updated_at" TIMESTAMP DEFAULT NULL'),a||(e.status='"status" VARCHAR(20) DEFAULT NULL'),o||(e.hasDraft='"hasDraft" BOOLEAN DEFAULT NULL')):(e.id='"id" TEXT PRIMARY KEY',n||(e.created_at='"created_at" TEXT DEFAULT NULL'),r||(e.updated_at='"updated_at" TEXT DEFAULT NULL'),a||(e.status='"status" TEXT DEFAULT NULL'),o||(e.hasDraft='"hasDraft" INTEGER DEFAULT NULL'));for(let l of t.fields){if(!l.name||l.name==="id")continue;let c=this.getColumnSqlDefinition(l,this.dialect),u=l.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase();e[u]=c;}return e}async syncTableColumns(t,i){let e;try{if(this.dialect==="postgres"){let r=await this.executeRaw(sql`SELECT column_name, data_type, character_maximum_length FROM information_schema.columns WHERE table_name = ${i}`);e=new Map(r.map(a=>[a.column_name,{type:a.data_type,maxLen:a.character_maximum_length}]));}else {let r=await this.executeRaw(sql`PRAGMA table_info("${sql.raw(i)}")`);e=new Map(r.map(a=>[a.name,{type:a.type,maxLen:null}]));}}catch{return}let s=this.getExpectedColumnDefs(t,i),n=Object.keys(s).filter(r=>!e.has(r));if(n.length>0){let r=n.map(a=>`ALTER TABLE "${i}" ADD COLUMN ${s[a]}`);await this.executeRaw(sql.raw(r.join(`;
23
- `)));}if(this.dialect==="postgres")for(let r of t.fields){if(!r.name||r.name==="id")continue;let a=b(r,this.dialect),o=r.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase(),l=e.get(o);!l||l.type!=="character varying"||(a==="text"?await this.executeRaw(sql.raw(`ALTER TABLE "${i}" ALTER COLUMN "${o}" TYPE TEXT`)):a==="jsonb"&&(await this.executeRaw(sql.raw(`ALTER TABLE "${i}" ALTER COLUMN "${o}" DROP DEFAULT`)),await this.executeRaw(sql.raw(`ALTER TABLE "${i}" ALTER COLUMN "${o}" TYPE JSONB USING (CASE WHEN "${o}" IS NULL THEN NULL WHEN "${o}"::text ~ '^\\s*\\{' THEN "${o}"::jsonb ELSE jsonb_build_object('id', "${o}"::text) END)`))));}}generateCreateColumns(t){let i=[];for(let e of t.fields){if(!e.name||e.name==="id")continue;let s=b(e,this.dialect),n=e.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase(),r=e.required?"NOT NULL":"DEFAULT NULL",a;if(this.dialect==="sqlite")switch(s){case "varchar":case "text":a=`TEXT ${r}`;break;case "integer":a=`INTEGER ${r}`;break;case "decimal":case "numeric":a=`NUMERIC ${r}`;break;case "boolean":a=`INTEGER ${r}`;break;case "timestamp":a=`TEXT ${r}`;break;case "jsonb":a=`TEXT ${r}`;break;default:a=`TEXT ${r}`;}else switch(s){case "varchar":a=`VARCHAR(255) ${r}`;break;case "integer":a=`INTEGER ${r}`;break;case "decimal":a=`DECIMAL ${r}`;break;case "boolean":a=`BOOLEAN ${r}`;break;case "timestamp":a=`TIMESTAMP ${r}`;break;case "jsonb":a=`JSONB ${r}`;break;default:a=`TEXT ${r}`;}i.push(`"${n}" ${a}`);}return i.join(`,
24
- `)+(i.length>0?",":"")}async disconnect(){this.connected=false;}async find(t){let{collection:i,where:e={},sort:s,limit:n=10,page:r=1,tenantId:a,select:o,draft:l}=t,c$1=this.getCollection(i),u=this.getTable(i),h={...e};this.tenantContext&&c$1.tenantScoped&&(h=c({where:h},i,this.tenantContext,b$1).where||{});let g=this.buildWhereClause(h,c$1,u,a),y=c$1.fields.find(p=>p.name==="status"),f=y?.type==="select"&&Array.isArray(y.options)&&y.options.some(p=>p.value==="published");!l&&u.status&&f&&g.push(eq(u.status,"published"));let E=this.parseSort(s),T=!l&&u.status&&f?{...h,status:"published"}:h,J=await this.count({collection:i,where:T,tenantId:a}),H=(r-1)*n,F=[];try{let p=u[E.field]||u.createdAt||u.id,R=E.direction==="asc"?p:desc(p),_=this.client.select().from(u);g.length>0&&(_=_.where(and(...g))),F=await _.orderBy(R).limit(n).offset(H);}catch(p){console.error("[DrizzleAdapter] Query error:",p);}let C=F.map(p=>this.processResult(p,c$1));return this.tenantContext&&!this.tenantContext.isSuperAdmin&&(C=C.filter(p=>d(p,i,this.tenantContext,b$1))),l&&(C=await Promise.all(C.map(async p=>{let R=await this.executeRaw(sql`
25
- SELECT * FROM kyro_versions
26
- WHERE collection_slug = ${i}
27
- AND document_id = ${p.id}
28
- ORDER BY created_at DESC
29
- LIMIT 1
30
- `);if(R.length>0){let _=R[0],w=_.data;for(;typeof w=="string";)try{w=JSON.parse(w);}catch{break}return (!w||typeof w!="object"||Array.isArray(w))&&(w={}),{...p,...w,status:p.status,_hasUnpublishedChanges:_.status==="draft"}}return p}))),{docs:C,...this.calculatePagination(r,n,J)}}async findByID(t){let{collection:i,id:e,tenantId:s,draft:n}=t,r=this.getCollection(i),a=this.getTable(i),o=this.dialect==="postgres"&&typeof e=="string"?N(e):e;if(this.tenantContext&&r.tenantScoped){let f={id:o,tenantId:this.tenantContext.tenantId};if(!d(f,i,this.tenantContext,b$1))return null}let l=[eq(a.id,o)];s&&a.tenantId&&l.push(eq(a.tenantId,s));let c=r.fields.find(f=>f.name==="status"),u=c?.type==="select"&&Array.isArray(c.options)&&c.options.some(f=>f.value==="published");!n&&a.status&&u&&l.push(eq(a.status,"published"));let h=l.length>1?and(...l):l[0],g=await this.client.select().from(a).where(h);if(g.length===0)return null;let y=this.processResult(g[0],r);if(n){let f=await this.executeRaw(sql`
31
- SELECT * FROM kyro_versions
32
- WHERE collection_slug = ${i}
33
- AND document_id = ${y.id}
34
- ORDER BY created_at DESC
35
- LIMIT 1
36
- `);if(f.length>0){let E=f[0],T=E.data;for(;typeof T=="string";)try{T=JSON.parse(T);}catch{break}(!T||typeof T!="object"||Array.isArray(T))&&(T={}),y={...y,...T,status:y.status,_hasUnpublishedChanges:E.status==="draft"};}}return y}async create(t){let{collection:i,data:e,tenantId:s}=t,n=this.getCollection(i),r=this.getTable(i),a=this.prepareData(e,n);s&&n.tenantScoped&&(a.tenantId=s);let o=await this.client.insert(r).values(a).returning();return this.processResult(o[0],n)}async update(t){let{collection:i,id:e,data:s,tenantId:n}=t,r=this.getCollection(i),a=this.getTable(i),o=this.prepareData(s,r),l=this.dialect==="postgres"&&typeof e=="string"?N(e):e,c=[eq(a.id,l)];n&&a.tenantId&&c.push(eq(a.tenantId,n));let u=await this.client.update(a).set(o).where(and(...c)).returning();if(u.length===0)throw new Error(`Document not found: ${i}/${e}`);return this.processResult(u[0],r)}async delete(t){let{collection:i,id:e,tenantId:s}=t,n=this.getCollection(i),r=this.getTable(i),a=this.dialect==="postgres"&&typeof e=="string"?N(e):e,o=[eq(r.id,a)];s&&r.tenantId&&o.push(eq(r.tenantId,s));let l=await this.client.delete(r).where(and(...o)).returning();if(l.length===0)throw new Error(`Document not found: ${i}/${e}`);return this.processResult(l[0],n)}async count(t){let{collection:i,where:e={},tenantId:s}=t,n=this.getCollection(i),r=this.getTable(i),a=this.buildWhereClause(e,n,r,s);try{let o=this.client.select({count:sql`count(*)`}).from(r);a.length>0&&(o=o.where(and(...a)));let l=await o;return Number(l[0]?.count||0)}catch{return 0}}async findOne(t){let{collection:i,where:e={},tenantId:s,draft:n}=t;if(i.startsWith("_globals_")){let a=i.replace("_globals_",""),o=this.globals.get(a);if(!o)throw new Error(`Global "${a}" not found`);let l=this.getTable(i),c=this.client.select().from(l),u=o.fields.find(f=>f.name==="status"),h=u?.type==="select"&&Array.isArray(u.options)&&u.options.some(f=>f.value==="published");!n&&l.status&&h&&(c=c.where(eq(l.status,"published")));let g=await c.limit(1);if(g.length===0)return null;let y=this.processResult(g[0],o);if(n){let f=await this.executeRaw(sql`
37
- SELECT * FROM kyro_versions
38
- WHERE collection_slug = ${i}
39
- AND document_id = ${a}
40
- ORDER BY created_at DESC
41
- LIMIT 1
42
- `);if(f.length>0){let E=f[0],T=typeof E.data=="string"?JSON.parse(E.data):E.data;y={...y,...T,status:y.status,_hasUnpublishedChanges:E.status==="draft"};}}return y}return (await this.find({...t,limit:1})).docs[0]||null}async findVersions(t){await this.ensureVersionsTable();let{collection:i,documentId:e,limit:s=10,page:n=1,tenantId:r}=t,a=(n-1)*s,o=this.getCollection(i),l=await this.executeRaw(sql`
43
- SELECT count(*) as count
44
- FROM kyro_versions
45
- WHERE collection_slug = ${i}
46
- AND document_id = ${e}
47
- AND autosave = 0
48
- ${r&&o.tenantScoped?sql`AND tenant_id = ${r}`:sql``}
49
- `),c=parseInt(l[0]?.count||"0");return {docs:(await this.executeRaw(sql`
50
- SELECT *
51
- FROM kyro_versions
52
- WHERE collection_slug = ${i}
53
- AND document_id = ${e}
54
- AND autosave = 0
55
- ${r&&o.tenantScoped?sql`AND tenant_id = ${r}`:sql``}
56
- ORDER BY created_at DESC
57
- LIMIT ${s}
58
- OFFSET ${a}
59
- `)).map(h=>({...h,data:typeof h.data=="string"?JSON.parse(h.data):h.data})),...this.calculatePagination(n,s,c)}}async findVersionByID(t){await this.ensureVersionsTable();let i=this.getCollection(t.collection),e=await this.executeRaw(sql`
60
- SELECT * FROM kyro_versions
61
- WHERE id = ${t.versionId}
62
- AND collection_slug = ${t.collection}
63
- ${t.tenantId&&i.tenantScoped?sql`AND tenant_id = ${t.tenantId}`:sql``}
64
- LIMIT 1
65
- `);if(e.length===0)return null;let s=e[0];return {...s,data:typeof s.data=="string"?JSON.parse(s.data):s.data}}async createVersion(t){await this.ensureVersionsTable();let i=this.getCollection(t.collection),e=new Date().toISOString();if(t.autosave){let r=await this.executeRaw(sql`
66
- SELECT * FROM kyro_versions
67
- WHERE collection_slug = ${t.collection}
68
- AND document_id = ${t.documentId}
69
- AND autosave = 1
70
- ${t.tenantId&&i.tenantScoped?sql`AND tenant_id = ${t.tenantId}`:sql``}
71
- LIMIT 1
72
- `);if(r.length>0)return await this.executeRaw(sql`
73
- UPDATE kyro_versions
74
- SET data = ${JSON.stringify(t.data)},
75
- status = ${t.status},
76
- updated_at = ${e}
77
- WHERE id = ${r[0].id}
78
- `),this.findVersionByID({collection:t.collection,versionId:r[0].id,tenantId:t.tenantId})}let s=Math.random().toString(36).substring(2,15),n=typeof t.data=="string"?t.data:JSON.stringify(t.data);if(await this.executeRaw(sql`
79
- INSERT INTO kyro_versions (
80
- id, collection_slug, document_id, tenant_id, data, status, autosave, created_by, change_description, created_at, updated_at
81
- ) VALUES (
82
- ${s}, ${t.collection}, ${t.documentId}, ${t.tenantId&&i.tenantScoped?t.tenantId:null},
83
- ${n}, ${t.status}, ${t.autosave?1:0}, ${t.createdBy||null},
84
- ${t.changeDescription||null}, ${e}, ${e}
85
- )
86
- `),!t.autosave){let r=this.getCollection(t.collection);r.versions?.maxPerDoc&&await this.deleteVersions({collection:t.collection,documentId:t.documentId,keepLatest:r.versions.maxPerDoc,tenantId:t.tenantId});}return this.findVersionByID({collection:t.collection,versionId:s,tenantId:t.tenantId})}async updateLatestVersion(t){return this.createVersion({...t,autosave:true})}async deleteVersions(t){await this.ensureVersionsTable();let i=this.getCollection(t.collection);if(t.keepLatest){let s=(await this.executeRaw(sql`
87
- SELECT id FROM kyro_versions
88
- WHERE collection_slug = ${t.collection}
89
- AND document_id = ${t.documentId}
90
- AND autosave = 0
91
- ${t.tenantId&&i.tenantScoped?sql`AND tenant_id = ${t.tenantId}`:sql``}
92
- ORDER BY created_at DESC
93
- LIMIT ${t.keepLatest}
94
- `)).map(n=>n.id);s.length>0&&await this.executeRaw(sql`
95
- DELETE FROM kyro_versions
96
- WHERE collection_slug = ${t.collection}
97
- AND document_id = ${t.documentId}
98
- AND autosave = 0
99
- AND id NOT IN (${sql.join(s.map(n=>sql`${n}`),sql`, `)})
100
- `);}else await this.executeRaw(sql`
101
- DELETE FROM kyro_versions
102
- WHERE collection_slug = ${t.collection}
103
- AND document_id = ${t.documentId}
104
- ${t.tenantId&&i.tenantScoped?sql`AND tenant_id = ${t.tenantId}`:sql``}
105
- `);}getTable(t){let i=this.getTableName(t),e=this.schema[i];if(!e)throw new Error(`Table "${i}" not found in schema`);return e}buildWhereClause(t,i,e,s){let n=[];s&&i.tenantScoped&&e.tenantId&&n.push(eq(e.tenantId,s));for(let[r,a]of Object.entries(t)){let o=r,l=o.toUpperCase();if(o==="id"&&this.dialect==="postgres"&&(typeof a=="string"?a=N(a):a&&typeof a=="object"&&(a.equals!==void 0&&typeof a.equals=="string"&&(a={...a,equals:N(a.equals)}),a.in&&Array.isArray(a.in)&&(a={...a,in:a.in.map(c=>typeof c=="string"?N(c):c)}))),l==="AND"&&Array.isArray(a)){let c=a.map(u=>this.buildWhereClause(u,i,e)).flat().filter(Boolean);c.length>0&&n.push(and(...c));}else if(l==="OR"&&Array.isArray(a)){let c=a.map(u=>this.buildWhereClause(u,i,e)).flat().filter(Boolean);c.length>0&&n.push(or(...c));}else if(typeof a=="object"&&a!==null&&!Array.isArray(a)){let c=e[o]||e[o.replace(/-/g,"_")]||e[o.replace(/([A-Z])/g,"_$1").toLowerCase()]||(o==="created_at"?e.createdAt:void 0)||(o==="createdAt"?e.created_at:void 0)||(o==="updated_at"?e.updatedAt:void 0)||(o==="updatedAt"?e.updated_at:void 0);if(!c)continue;a.equals!==void 0&&n.push(eq(c,a.equals)),a.not_equals!==void 0&&n.push(ne(c,a.not_equals)),a.in&&Array.isArray(a.in)&&(a.in.length===0?n.push(sql`1 = 0`):n.push(inArray(c,a.in))),a.like!==void 0&&(this.dialect==="postgres"?n.push(ilike(c,a.like)):n.push(like(c,a.like))),a.contains!==void 0&&(this.dialect==="postgres"?n.push(ilike(c,`%${a.contains}%`)):n.push(like(c,`%${a.contains}%`))),a.greater_than!==void 0&&n.push(gt(c,a.greater_than)),a.greater_than_equal!==void 0&&n.push(gte(c,a.greater_than_equal)),a.less_than!==void 0&&n.push(lt(c,a.less_than)),a.less_than_equal!==void 0&&n.push(lte(c,a.less_than_equal));}else {let c=e[o]||e[o.replace(/-/g,"_")]||e[o.replace(/([A-Z])/g,"_$1").toLowerCase()];c&&n.push(eq(c,a));}}return n}processResult(t,i){if(!t)return null;let e={...t};for(let s of Object.keys(e))/^\d+$/.test(s)&&delete e[s];t.id&&(e.id=String(t.id));for(let s of i.fields){if(!s.name)continue;let n=s.name.replace(/-/g,"_").replace(/([A-Z])/g,"_$1").toLowerCase();n!==s.name&&e[n]!==void 0&&e[s.name]===void 0&&(e[s.name]=e[n],delete e[n]);}for(let s of i.fields){if(["json","richtext","array","group","blocks","upload","image","list","relationship-block"].includes(s.type)){let n=s;if(e[n.name]&&typeof e[n.name]=="string")try{let r=JSON.parse(e[n.name]);e[n.name]=r;}catch{}if(s.type==="blocks"&&e[n.name]&&Array.isArray(e[n.name])){let r=n.blocks||[];e[n.name]=d$1(e[n.name],r);}}if(s.type==="tabs"&&"tabs"in s&&s.name){if(typeof e[s.name]=="object"&&e[s.name]!==null&&!Array.isArray(e[s.name])){for(let r of s.tabs)for(let a of r.fields)if((a.type==="upload"||a.type==="image")&&a.name){let o=e[s.name][a.name];if(typeof o=="string")try{let l=JSON.parse(o);e[s.name][a.name]=Array.isArray(l)?l.map(c=>c&&typeof c=="object"&&typeof c.id=="string"?c.id:String(c||"")):typeof l.id=="string"?l.id:String(l.id||"");}catch{}else o&&typeof o=="object"&&(e[s.name][a.name]=Array.isArray(o)?o.map(l=>l&&typeof l=="object"&&typeof l.id=="string"?l.id:String(l||"")):typeof o.id=="string"?o.id:String(o.id||""));}continue}if(typeof e[s.name]=="string")try{let r=JSON.parse(e[s.name]);if(typeof r=="object"&&r!==null){e[s.name]=r;continue}}catch{}let n={};for(let r of s.tabs)for(let a of r.fields)if(a.name&&e[a.name]!==void 0){let o=e[a.name];if(["json","richtext","array","group","blocks","upload","image","list","relationship-block"].includes(a.type)){if(o&&typeof o=="string")try{o=JSON.parse(o);}catch{}(a.type==="upload"||a.type==="image")&&o&&typeof o=="object"&&(o=Array.isArray(o)?o.map(l=>l&&typeof l=="object"&&typeof l.id=="string"?l.id:String(l||"")):typeof o.id=="string"?o.id:String(o.id||""));}n[a.name]=o,delete e[a.name];}e[s.name]=n;}}return e.createdAt&&(e.createdAt=new Date(e.createdAt).toISOString()),e.updatedAt&&(e.updatedAt=new Date(e.updatedAt).toISOString()),a$2(e)}async ensureVersionsTable(){if(this.versionsTableReady)return;let t;this.dialect==="sqlite"?t=`
106
- CREATE TABLE IF NOT EXISTS kyro_versions (
107
- id text PRIMARY KEY,
108
- collection_slug text NOT NULL,
109
- document_id text NOT NULL,
110
- tenant_id text,
111
- data text NOT NULL,
112
- status text NOT NULL DEFAULT 'draft',
113
- autosave integer NOT NULL DEFAULT 0,
114
- created_by text,
115
- change_description text,
116
- created_at text DEFAULT (datetime('now')),
117
- updated_at text DEFAULT (datetime('now'))
118
- )
119
- `:t=`
120
- CREATE TABLE IF NOT EXISTS kyro_versions (
121
- id text PRIMARY KEY,
122
- collection_slug text NOT NULL,
123
- document_id text NOT NULL,
124
- tenant_id text,
125
- data text NOT NULL,
126
- status text NOT NULL,
127
- autosave integer NOT NULL DEFAULT 0,
128
- created_by text,
129
- change_description text,
130
- created_at text NOT NULL,
131
- updated_at text NOT NULL
132
- )
133
- `,await this.executeRaw(sql.raw(t));try{this.dialect==="postgres"?await this.executeRaw(sql.raw("ALTER TABLE kyro_versions ADD COLUMN IF NOT EXISTS autosave integer NOT NULL DEFAULT 0")):await this.executeRaw(sql.raw("ALTER TABLE kyro_versions ADD COLUMN autosave integer NOT NULL DEFAULT 0"));}catch{}this.versionsTableReady=true;}async execute(t){return this.executeRaw(t)}async executeRaw(t){let i="",e=[];if(typeof t=="string")i=t;else if(t&&(t.queryChunks||t.decoder))if(this.dialect==="postgres"){let n=new PgDialect().sqlToQuery(t);i=n.sql,e=n.params;}else {let n=new SQLiteSyncDialect().sqlToQuery(t);i=n.sql,e=n.params;}else if(t&&typeof t.toSQL=="function"){let n=t.toSQL();i=n.sql,e=n.params||[];}else i=String(t);let s=this.rawClient||this.client;if(s?.prepare&&typeof s.prepare=="function"){let n=s.prepare(i);return (e.length>0?await n.bind(...e).all():await n.all()).results||[]}if(typeof this.client?.execute=="function"){let n=await this.client.execute(t);return Array.isArray(n)?n:Array.isArray(n?.rows)?n.rows:Array.isArray(n?.[0])?n[0]:[]}return []}};function pe(m){return new I(m)}export{b as a,z as b,I as c,pe as d};