@kyro-cms/core 0.5.4 → 0.5.5
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/WebhookService-118ZTFis.d.ts +112 -0
- package/dist/WebhookService-AefJfqX0.d.cts +112 -0
- package/dist/adapter-BSvBudTG.d.cts +65 -0
- package/dist/adapter-CXGB2Elb.d.ts +65 -0
- package/dist/api-handler.cjs +26 -8
- package/dist/api-handler.cjs.map +1 -1
- package/dist/api-handler.d.cts +9 -0
- package/dist/api-handler.d.ts +9 -0
- package/dist/api-handler.js +25 -7
- package/dist/api-handler.js.map +1 -1
- package/dist/base-DvvNqnM-.d.cts +73 -0
- package/dist/base-eVegJ_Pr.d.ts +73 -0
- package/dist/bootstrap-4MH44YKG.js +6 -0
- package/dist/{bootstrap-PBMMLBQC.js.map → bootstrap-4MH44YKG.js.map} +1 -1
- package/dist/bootstrap-EE6BJZWL.cjs +31 -0
- package/dist/{bootstrap-QN77EVI3.cjs.map → bootstrap-EE6BJZWL.cjs.map} +1 -1
- package/dist/chunk-3YELQL7Z.cjs +4 -0
- package/dist/chunk-3YELQL7Z.cjs.map +1 -0
- package/dist/{chunk-AGAIUDAV.cjs → chunk-55BNRTLW.cjs} +7 -7
- package/dist/chunk-55BNRTLW.cjs.map +1 -0
- package/dist/{chunk-XJ2VYR47.cjs → chunk-5HA5OMFH.cjs} +10 -7
- package/dist/chunk-5HA5OMFH.cjs.map +1 -0
- package/dist/{chunk-C4JJEE42.js → chunk-6WXQRYTW.js} +262 -43
- package/dist/chunk-6WXQRYTW.js.map +1 -0
- package/dist/{chunk-SO25EHOE.js → chunk-AM4JKIPP.js} +180 -77
- package/dist/chunk-AM4JKIPP.js.map +1 -0
- package/dist/{chunk-VSTRLXMQ.cjs → chunk-CKVOU6MX.cjs} +4 -2
- package/dist/chunk-CKVOU6MX.cjs.map +1 -0
- package/dist/chunk-GTGRLD4Y.js +3 -0
- package/dist/chunk-GTGRLD4Y.js.map +1 -0
- package/dist/chunk-MTIRYI7F.cjs +4 -0
- package/dist/chunk-MTIRYI7F.cjs.map +1 -0
- package/dist/{chunk-342BJNBI.js → chunk-QKVA2SOG.js} +300 -6
- package/dist/chunk-QKVA2SOG.js.map +1 -0
- package/dist/chunk-QU2RFFH4.js +3 -0
- package/dist/chunk-QU2RFFH4.js.map +1 -0
- package/dist/{chunk-ATVNYGRQ.js → chunk-QYZKIPSD.js} +7 -18
- package/dist/chunk-QYZKIPSD.js.map +1 -0
- package/dist/{chunk-SYRDCLH7.cjs → chunk-R2YHJN6W.cjs} +184 -81
- package/dist/chunk-R2YHJN6W.cjs.map +1 -0
- package/dist/{chunk-IX3ABYKZ.cjs → chunk-RALQO47U.cjs} +170 -2
- package/dist/chunk-RALQO47U.cjs.map +1 -0
- package/dist/{chunk-EVEJC22G.cjs → chunk-RDRJVCL5.cjs} +37 -5
- package/dist/chunk-RDRJVCL5.cjs.map +1 -0
- package/dist/{chunk-6COM32WF.js → chunk-RP7VZUEL.js} +5 -3
- package/dist/chunk-RP7VZUEL.js.map +1 -0
- package/dist/{chunk-XR5EJS3C.js → chunk-S3FG2NY7.js} +7 -4
- package/dist/chunk-S3FG2NY7.js.map +1 -0
- package/dist/{chunk-WH4Y5MT6.js → chunk-TP5YQFIX.js} +36 -4
- package/dist/chunk-TP5YQFIX.js.map +1 -0
- package/dist/{chunk-DBUYB32X.js → chunk-TVVYZ2TH.js} +171 -3
- package/dist/chunk-TVVYZ2TH.js.map +1 -0
- package/dist/{chunk-GBH6DN5C.cjs → chunk-WBCIEYHC.cjs} +8 -18
- package/dist/chunk-WBCIEYHC.cjs.map +1 -0
- package/dist/{chunk-3ZZPZYCM.cjs → chunk-WVPOPOEQ.cjs} +269 -41
- package/dist/chunk-WVPOPOEQ.cjs.map +1 -0
- package/dist/{chunk-W3KPQX7V.cjs → chunk-XAEBVZTI.cjs} +304 -4
- package/dist/chunk-XAEBVZTI.cjs.map +1 -0
- package/dist/{chunk-Q4DNT7FO.js → chunk-XU7AFF6V.js} +6 -6
- package/dist/chunk-XU7AFF6V.js.map +1 -0
- package/dist/cli/index.cjs +6 -4
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +6 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.cts +12 -0
- package/dist/client.d.ts +12 -0
- package/dist/drizzle/index.cjs +18 -18
- package/dist/drizzle/index.d.cts +152 -0
- package/dist/drizzle/index.d.ts +152 -0
- package/dist/drizzle/index.js +3 -3
- package/dist/fields/index.d.cts +27 -0
- package/dist/fields/index.d.ts +27 -0
- package/dist/graphql/index.d.cts +22 -0
- package/dist/graphql/index.d.ts +22 -0
- package/dist/index-Bz9JqRGI.d.cts +86 -0
- package/dist/index-Bz9JqRGI.d.ts +86 -0
- package/dist/index-CLp-DRKA.d.ts +64 -0
- package/dist/index-DfO7G4kN.d.cts +64 -0
- package/dist/index.cjs +118 -86
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1368 -0
- package/dist/index.d.ts +1368 -0
- package/dist/index.js +48 -14
- package/dist/index.js.map +1 -1
- package/dist/integration.cjs +2 -2
- package/dist/integration.d.cts +27 -0
- package/dist/integration.d.ts +27 -0
- package/dist/integration.js +1 -1
- package/dist/media-GPPTZ43E.js +4 -0
- package/dist/{media-HOT3O7RW.js.map → media-GPPTZ43E.js.map} +1 -1
- package/dist/media-XNTUFJZR.cjs +17 -0
- package/dist/{media-WKP5AOX2.cjs.map → media-XNTUFJZR.cjs.map} +1 -1
- package/dist/mongodb/index.cjs +12 -3
- package/dist/mongodb/index.d.cts +59 -0
- package/dist/mongodb/index.d.ts +59 -0
- package/dist/mongodb/index.js +2 -1
- package/dist/postgres-auth-adapter-6742WDCF.cjs +14 -0
- package/dist/{postgres-auth-adapter-Z463NYJZ.cjs.map → postgres-auth-adapter-6742WDCF.cjs.map} +1 -1
- package/dist/postgres-auth-adapter-B65BULNS.js +5 -0
- package/dist/{postgres-auth-adapter-7F3ECO7I.js.map → postgres-auth-adapter-B65BULNS.js.map} +1 -1
- package/dist/rest/index.cjs +9 -5
- package/dist/rest/index.d.cts +57 -0
- package/dist/rest/index.d.ts +57 -0
- package/dist/rest/index.js +7 -3
- package/dist/{schema-TIYTCIKX.cjs → schema-37SE2F4B.cjs} +5 -5
- package/dist/{schema-TIYTCIKX.cjs.map → schema-37SE2F4B.cjs.map} +1 -1
- package/dist/{schema-6Q4W6AE6.js → schema-5PHL5IVB.js} +3 -3
- package/dist/{schema-6Q4W6AE6.js.map → schema-5PHL5IVB.js.map} +1 -1
- package/dist/templates/index.d.cts +59 -0
- package/dist/templates/index.d.ts +59 -0
- package/dist/trpc/index.d.cts +136 -0
- package/dist/trpc/index.d.ts +136 -0
- package/dist/types-Bs1up4yP.d.ts +461 -0
- package/dist/types-DqN4ckOC.d.cts +130 -0
- package/dist/types-DqN4ckOC.d.ts +130 -0
- package/dist/types-J3R9nVsZ.d.cts +461 -0
- package/dist/types-VtjUxIMp.d.cts +246 -0
- package/dist/types-VtjUxIMp.d.ts +246 -0
- package/dist/ws/index.d.cts +88 -0
- package/dist/ws/index.d.ts +88 -0
- package/package.json +3 -2
- package/dist/bootstrap-PBMMLBQC.js +0 -6
- package/dist/bootstrap-QN77EVI3.cjs +0 -31
- package/dist/chunk-342BJNBI.js.map +0 -1
- package/dist/chunk-3ZZPZYCM.cjs.map +0 -1
- package/dist/chunk-6COM32WF.js.map +0 -1
- package/dist/chunk-7SXPHG3M.cjs +0 -67
- package/dist/chunk-7SXPHG3M.cjs.map +0 -1
- package/dist/chunk-AGAIUDAV.cjs.map +0 -1
- package/dist/chunk-ATVNYGRQ.js.map +0 -1
- package/dist/chunk-C4JJEE42.js.map +0 -1
- package/dist/chunk-DBUYB32X.js.map +0 -1
- package/dist/chunk-EVEJC22G.cjs.map +0 -1
- package/dist/chunk-GBH6DN5C.cjs.map +0 -1
- package/dist/chunk-IX3ABYKZ.cjs.map +0 -1
- package/dist/chunk-L4E76X2K.js +0 -57
- package/dist/chunk-L4E76X2K.js.map +0 -1
- package/dist/chunk-Q4DNT7FO.js.map +0 -1
- package/dist/chunk-SO25EHOE.js.map +0 -1
- package/dist/chunk-SYRDCLH7.cjs.map +0 -1
- package/dist/chunk-VSTRLXMQ.cjs.map +0 -1
- package/dist/chunk-W3KPQX7V.cjs.map +0 -1
- package/dist/chunk-WH4Y5MT6.js.map +0 -1
- package/dist/chunk-XJ2VYR47.cjs.map +0 -1
- package/dist/chunk-XR5EJS3C.js.map +0 -1
- package/dist/media-HOT3O7RW.js +0 -4
- package/dist/media-WKP5AOX2.cjs +0 -17
- package/dist/postgres-auth-adapter-7F3ECO7I.js +0 -5
- package/dist/postgres-auth-adapter-Z463NYJZ.cjs +0 -14
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/generate.ts","../../src/cli/index.ts"],"names":["__filename","__dirname","readFileSync","join","Command"],"mappings":";;;;;;;;AAyBA,SAAS,YAAY,KAAA,EAA4B;AAC/C,EAAA,QAAQ,MAAM,IAAA;AAAM,IAClB,KAAK,MAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,UAAA;AAAA,IACL,KAAK,UAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL,KAAK,UAAA;AAAA,IACL,KAAK,MAAA;AAAA,IACL,KAAK,UAAA;AAAA,IACL,KAAK,MAAA;AACH,MAAA,OAAO,KAAA,CAAM,UAAU,UAAA,GAAa,QAAA;AAAA,IACtC,KAAK,QAAA;AACH,MAAA,OAAO,KAAA,CAAM,UAAU,UAAA,GAAa,QAAA;AAAA,IACtC,KAAK,UAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,QAAA;AAAA,IACL,KAAK,OAAA;AACH,MAAA,IAAI,MAAM,OAAA,EAAS;AACjB,QAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAA,EAAI,CAAA,CAAE,KAAK,CAAA,CAAA,CAAG,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA;AAChE,QAAA,OAAO,KAAA,CAAM,OAAA,GAAU,CAAA,CAAA,EAAI,MAAM,CAAA,GAAA,CAAA,GAAQ,MAAA;AAAA,MAC3C;AACA,MAAA,OAAO,KAAA,CAAM,UAAU,UAAA,GAAa,QAAA;AAAA,IACtC,KAAK,cAAA;AACH,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,UAAU,CAAA,EAAG;AACnC,QAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,UAAA,CAAW,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,EAAG,UAAA,CAAW,CAAC,CAAC,CAAA,SAAA,CAAW,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA;AAC/E,QAAA,OAAO,MAAM,OAAA,GAAU,CAAA,CAAA,EAAI,KAAK,CAAA,GAAA,CAAA,GAAQ,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,MACnD;AACA,MAAA,MAAM,KAAA,GAAQ,MAAM,UAAA,IAAc,SAAA;AAClC,MAAA,OAAO,KAAA,CAAM,OAAA,GAAU,CAAA,CAAA,EAAI,UAAA,CAAW,KAAK,CAAC,CAAA,YAAA,CAAA,GAAiB,CAAA,EAAG,UAAA,CAAW,KAAK,CAAC,CAAA,SAAA,CAAA;AAAA,IACnF,KAAK,QAAA;AACH,MAAA,OAAO,KAAA,CAAM,UAAU,oBAAA,GAAuB,gBAAA;AAAA,IAChD,KAAK,OAAA;AACH,MAAA,IAAI,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA,EAAG;AAC3C,QAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,MAAA,CAAO,OAAK,CAAA,CAAE,IAAI,CAAA,CAAE,GAAA,CAAI,CAAA,CAAA,KAAK;AAC3D,UAAA,MAAM,IAAA,GAAO,YAAY,CAAC,CAAA;AAC1B,UAAA,OAAO,CAAA,IAAA,EAAO,EAAE,IAAI,CAAA,EAAG,EAAE,QAAA,GAAW,EAAA,GAAK,GAAG,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,CAAA;AAAA,QACvD,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AACZ,QAAA,OAAO,CAAA;AAAA,EAAY,UAAU;AAAA,IAAA,CAAA;AAAA,MAC/B;AACA,MAAA,OAAO,uBAAA;AAAA,IACT,KAAK,OAAA;AACH,MAAA,IAAI,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA,EAAG;AAC3C,QAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,MAAA,CAAO,OAAK,CAAA,CAAE,IAAI,CAAA,CAAE,GAAA,CAAI,CAAA,CAAA,KAAK;AAC3D,UAAA,MAAM,IAAA,GAAO,YAAY,CAAC,CAAA;AAC1B,UAAA,OAAO,CAAA,EAAA,EAAK,EAAE,IAAI,CAAA,EAAG,EAAE,QAAA,GAAW,EAAA,GAAK,GAAG,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,CAAA;AAAA,QACrD,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AACZ,QAAA,OAAO,CAAA;AAAA,EAAM,UAAU;AAAA,CAAA,CAAA;AAAA,MACzB;AACA,MAAA,OAAO,qBAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT;AACE,MAAA,OAAO,KAAA;AAAA;AAEb;AAEA,SAAS,WAAW,GAAA,EAAqB;AACvC,EAAA,OAAO,IAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,KAAgB,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA,CAAE,QAAQ,WAAA,EAAa,CAAC,GAAG,MAAA,KAAW,MAAA,CAAO,aAAa,CAAA;AAC5G;AAEA,SAAS,sBAAsB,UAAA,EAAsC;AACnE,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,UAAA,CAAW,IAAI,CAAA;AACvC,EAAA,MAAM,MAAA,GAAS,WAAW,MAAA,CAAO,MAAA,CAAO,OAAK,CAAA,CAAE,IAAI,CAAA,CAAE,GAAA,CAAI,CAAA,CAAA,KAAK;AAC5D,IAAA,MAAM,IAAA,GAAO,YAAY,CAAC,CAAA;AAC1B,IAAA,OAAO,CAAA,EAAA,EAAK,EAAE,IAAI,CAAA,EAAG,EAAE,QAAA,GAAW,EAAA,GAAK,GAAG,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,CAAA;AAAA,EACrD,CAAC,CAAA;AAGD,EAAA,MAAA,CAAO,QAAQ,eAAe,CAAA;AAC9B,EAAA,MAAA,CAAO,KAAK,sBAAsB,CAAA;AAClC,EAAA,MAAA,CAAO,KAAK,sBAAsB,CAAA;AAElC,EAAA,OAAO,oBAAoB,IAAI,CAAA;AAAA,EAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC;AAAA,CAAA,CAAA;AACzD;AAEA,SAAS,cAAc,WAAA,EAAyC;AAC9D,EAAA,MAAM,aAAa,WAAA,CAAY,GAAA,CAAI,CAAA,CAAA,KAAK,qBAAA,CAAsB,CAAC,CAAC,CAAA;AAEhE,EAAA,MAAM,MAAA,GAAS,CAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA,CAAA;AAyBf,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,IAAA,CAAK,MAAM,CAAA;AAEnC,EAAA,MAAM,MAAA,GAAS;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,EA+Df,WAAA,CAAY,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,EAAA,EAAK,EAAE,IAAI,CAAA,EAAA,EAAK,UAAA,CAAW,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,EAiBtE,WAAA,CAAY,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,EAAA,EAAK,CAAA,CAAE,IAAI,CAAA,mBAAA,EAAsB,CAAA,CAAE,IAAI,CAAA,GAAA,CAAK,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAS7E,EAAA,OAAO,SAAS,IAAA,GAAO,MAAA;AACzB;AAMO,SAAS,qBAAA,GAAiC;AAC/C,EAAA,MAAM,QAAA,GAAW,IAAI,OAAA,CAAQ,UAAU,CAAA,CACpC,YAAY,mDAAmD,CAAA,CAC/D,MAAA,CAAO,qBAAA,EAAuB,kCAAA,EAAoC,YAAY,EAC9E,MAAA,CAAO,qBAAA,EAAuB,kBAAA,EAAoB,uBAAuB,CAAA,CACzE,MAAA,CAAO,eAAe,kCAAkC,CAAA,CACxD,MAAA,CAAO,OAAO,OAAA,KAAY;AACzB,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,CAAQ,MAAM,CAAA;AACzC,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,CAAQ,MAAM,CAAA;AAEzC,IAAA,OAAA,CAAQ,GAAA,CAAI,oCAA6B,UAAU,CAAA;AAEnD,IAAA,IAAI;AAEF,MAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,CAAA,EAAG,UAAU,CAAA,aAAA,CAAe,CAAA;AAE3D,MAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,QAAA,OAAA,CAAQ,KAAA,CAAM,oCAA+B,UAAU,CAAA;AACvD,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,MAChB;AAGA,MAAA,MAAM,cAAkC,EAAC;AAEzC,MAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,QAAA,IAAI;AAEF,UAAA,MAAM,GAAA,GAAM,MAAM,OAAO,IAAA,CAAA;AACzB,UAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAW,CAAA,IAAK,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,MAAM,CAAA;AAC7E,UAAA,WAAA,CAAY,IAAA,CAAK,GAAI,OAA8B,CAAA;AAAA,QACrD,SAAS,KAAA,EAAO;AACd,UAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,+BAAA,EAAwB,IAAI,CAAA,CAAE,CAAA;AAAA,QAC7C;AAAA,MACF;AAEA,MAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,QAAA,OAAA,CAAQ,MAAM,0CAAqC,CAAA;AACnD,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,MAChB;AAEA,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,gBAAA,EAAY,WAAA,CAAY,MAAM,CAAA,eAAA,CAAiB,CAAA;AAC3D,MAAA,WAAA,CAAY,OAAA,CAAQ,OAAK,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,CAAE,IAAI,EAAE,CAAC,CAAA;AAGtD,MAAA,MAAM,KAAA,GAAQ,cAAc,WAAW,CAAA;AAGvC,MAAA,MAAM,SAAA,GAAY,IAAA,CAAK,UAAA,EAAY,IAAI,CAAA;AACvC,MAAA,IAAI,CAAC,UAAA,CAAW,SAAS,CAAA,EAAG;AAC1B,QAAA,SAAA,CAAU,SAAA,EAAW,EAAE,SAAA,EAAW,IAAA,EAAM,CAAA;AAAA,MAC1C;AAEA,MAAA,aAAA,CAAc,YAAY,KAAK,CAAA;AAC/B,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,2BAAA,EAAyB,UAAU,CAAA,CAAE,CAAA;AAGjD,MAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,QAAA,OAAA,CAAQ,IAAI,4CAAgC,CAAA;AAC5C,QAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAM,OAAO,IAAI,CAAA;AACnC,QAAA,KAAA,CAAM,YAAY,EAAE,SAAA,EAAW,MAAK,EAAG,OAAO,WAAW,QAAA,KAAa;AACpE,UAAA,OAAA,CAAQ,GAAA,CAAI;AAAA,wBAAA,EAAsB,QAAQ,CAAA,CAAE,CAAA;AAE5C,UAAA,MAAM,iBAAqC,EAAC;AAC5C,UAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,YAAA,IAAI;AACF,cAAA,MAAM,MAAM,MAAM,OAAO,OAAO,CAAA,GAAA,EAAM,IAAA,CAAK,KAAK,CAAA,CAAA,CAAA;AAChD,cAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAW,CAAA,IAAK,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,MAAM,CAAA;AAC7E,cAAA,cAAA,CAAe,IAAA,CAAK,GAAI,OAA8B,CAAA;AAAA,YACxD,CAAA,CAAA,MAAQ;AAAA,YAAC;AAAA,UACX;AACA,UAAA,MAAM,QAAA,GAAW,cAAc,cAAc,CAAA;AAC7C,UAAA,aAAA,CAAc,YAAY,QAAQ,CAAA;AAClC,UAAA,OAAA,CAAQ,IAAI,0BAAqB,CAAA;AAAA,QACnC,CAAC,CAAA;AAAA,MACH;AAAA,IACF,SAAS,KAAA,EAAY;AACnB,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,EAAY,KAAA,CAAM,OAAO,CAAA;AACvC,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,OAAO,QAAA;AACT;;;AC9SA,IAAMA,YAAA,GAAa,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AAChD,IAAMC,WAAA,GAAY,QAAQD,YAAU,CAAA;AAGpC,IAAI,OAAA,GAAU,OAAA;AACd,IAAI;AACF,EAAA,MAAM,MAAM,IAAA,CAAK,KAAA;AAAA,IACfE,YAAAA,CAAaC,IAAAA,CAAKF,WAAA,EAAW,oBAAoB,GAAG,OAAO;AAAA,GAC7D;AACA,EAAA,OAAA,GAAU,GAAA,CAAI,OAAA;AAChB,CAAA,CAAA,MAAQ;AAAC;AAET,IAAM,OAAA,GAAU,IAAIG,OAAAA,EAAQ;AAE5B,OAAA,CACG,KAAK,MAAM,CAAA,CACX,YAAY,sCAAsC,CAAA,CAClD,QAAQ,OAAO,CAAA;AAGlB,OAAA,CAAQ,UAAA,CAAW,uBAAuB,CAAA;AAG1C,IAAM,YAAY,OAAA,CACf,OAAA,CAAQ,IAAI,CAAA,CACZ,YAAY,8BAA8B,CAAA;AAG7C,SAAA,CACG,QAAQ,UAAU,CAAA,CAClB,YAAY,iCAAiC,CAAA,CAC7C,OAAO,YAAY;AAClB,EAAA,OAAA,CAAQ,IAAI,oCAA6B,CAAA;AACzC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,OAAO,eAAe,CAAA;AAC7C,EAAA,IAAA,CAAK,0BAAA,EAA4B,CAAC,KAAA,EAAO,MAAA,EAAQ,MAAA,KAAW;AAC1D,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,2BAAA,EAAwB,KAAA,CAAM,OAAO,CAAA;AACnD,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAA,OAAA,CAAQ,IAAI,MAAM,CAAA;AAAA,EACpB,CAAC,CAAA;AACH,CAAC,CAAA;AAGH,SAAA,CACG,QAAQ,SAAS,CAAA,CACjB,YAAY,yBAAyB,CAAA,CACrC,OAAO,YAAY;AAClB,EAAA,OAAA,CAAQ,IAAI,iCAA0B,CAAA;AACtC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,OAAO,eAAe,CAAA;AAC7C,EAAA,IAAA,CAAK,yBAAA,EAA2B,CAAC,KAAA,EAAO,MAAA,EAAQ,MAAA,KAAW;AACzD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,0BAAA,EAAuB,KAAA,CAAM,OAAO,CAAA;AAClD,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAA,OAAA,CAAQ,IAAI,MAAM,CAAA;AAAA,EACpB,CAAC,CAAA;AACH,CAAC,CAAA;AAGH,SAAA,CACG,QAAQ,MAAM,CAAA,CACd,YAAY,uCAAuC,CAAA,CACnD,OAAO,YAAY;AAClB,EAAA,OAAA,CAAQ,IAAI,6BAAsB,CAAA;AAClC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,OAAO,eAAe,CAAA;AAC7C,EAAA,IAAA,CAAK,sBAAA,EAAwB,CAAC,KAAA,EAAO,MAAA,EAAQ,MAAA,KAAW;AACtD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,qBAAA,EAAkB,KAAA,CAAM,OAAO,CAAA;AAC7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAA,OAAA,CAAQ,IAAI,MAAM,CAAA;AAAA,EACpB,CAAC,CAAA;AACH,CAAC,CAAA;AAGH,SAAA,CACG,QAAQ,MAAM,CAAA,CACd,YAAY,iCAAiC,CAAA,CAC7C,OAAO,YAAY;AAClB,EAAA,OAAA,CAAQ,IAAI,+BAAwB,CAAA;AACpC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,OAAO,eAAe,CAAA;AAC7C,EAAA,IAAA,CAAK,sCAAA,EAAwC,CAAC,KAAA,EAAO,MAAA,EAAQ,MAAA,KAAW;AACtE,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,wBAAA,EAAqB,KAAA,CAAM,OAAO,CAAA;AAChD,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAA,OAAA,CAAQ,IAAI,MAAM,CAAA;AAAA,EACpB,CAAC,CAAA;AACH,CAAC,CAAA;AAGH,SAAA,CACG,QAAQ,QAAQ,CAAA,CAChB,YAAY,qBAAqB,CAAA,CACjC,OAAO,YAAY;AAClB,EAAA,OAAA,CAAQ,IAAI,qCAA8B,CAAA;AAC1C,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,OAAO,eAAe,CAAA;AAC7C,EAAA,IAAA,CAAK,wBAAA,EAA0B,CAAC,KAAA,EAAO,MAAA,EAAQ,MAAA,KAAW;AACxD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,uBAAA,EAAoB,KAAA,CAAM,OAAO,CAAA;AAC/C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AAAA,EACF,CAAC,CAAA;AACH,CAAC,CAAA;AAGH,IAAM,cAAc,OAAA,CACjB,OAAA,CAAQ,MAAM,CAAA,CACd,YAAY,oCAAoC,CAAA;AAGnD,WAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,2BAA2B,CAAA,CACvC,MAAA,CAAO,qBAAA,EAAuB,aAAA,EAAe,OAAA,CAAQ,GAAA,CAAI,gBAAgB,CAAA,CACzE,MAAA;AAAA,EACC,2BAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAQ,GAAA,CAAI;AACd,CAAA,CACC,MAAA;AAAA,EACC,mBAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA,CAAQ,IAAI,eAAA,IAAmB;AACjC,CAAA,CACC,MAAA,CAAO,OAAO,OAAA,KAAY;AACzB,EAAA,IAAI,CAAC,OAAA,CAAQ,KAAA,IAAS,CAAC,QAAQ,QAAA,EAAU;AACvC,IAAA,OAAA,CAAQ,KAAA;AAAA,MACN;AAAA,KACF;AACA,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,OAAA,CAAQ,IAAI,kCAA2B,CAAA;AACvC,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,UAAA,EAAa,OAAA,CAAQ,KAAK,CAAA,CAAE,CAAA;AACxC,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAY,OAAA,CAAQ,IAAI,CAAA,CAAE,CAAA;AAEtC,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,cAAA,EAAe,GAAI,MAAM,OAAO,0BAAsB,CAAA;AAC9D,IAAA,MAAM,EAAE,mBAAA,EAAoB,GAC1B,MAAM,OAAO,sCAA8C,CAAA;AAC7D,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAM,OAAO,yBAAyB,CAAA;AAC1D,IAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,MAAM,OAAO,UAAU,CAAA;AACrD,IAAA,MAAM,WAAA,GACJ,OAAA,CAAQ,GAAA,CAAI,YAAA,IACZ,wDAAA;AACF,IAAA,MAAM,SAAS,QAAA,CAAS,WAAA,EAAa,EAAE,GAAA,EAAK,GAAG,CAAA;AAC/C,IAAA,MAAM,EAAA,GAAK,QAAQ,MAAM,CAAA;AACzB,IAAA,MAAM,OAAA,GAAU,IAAI,mBAAA,CAAoB,EAAE,IAAI,CAAA;AAE9C,IAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe;AAAA,MAClC,WAAA,EAAa,OAAA;AAAA,MACb,YAAY,OAAA,CAAQ,KAAA;AAAA,MACpB,eAAe,OAAA,CAAQ,QAAA;AAAA,MACvB,WAAW,OAAA,CAAQ;AAAA,KACpB,CAAA;AAED,IAAA,MAAM,OAAO,GAAA,EAAI;AAEjB,IAAA,IAAI,OAAO,OAAA,EAAS;AAClB,MAAA,OAAA,CAAQ,IAAI,yCAAoC,CAAA;AAAA,IAClD,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,KAAA,CAAM,gCAAA,EAA6B,MAAA,CAAO,KAAK,CAAA;AACvD,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,4BAAuB,KAAK,CAAA;AAC1C,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AACF,CAAC,CAAA;AAGH,OAAA,CACG,QAAQ,QAAQ,CAAA,CAChB,YAAY,qBAAqB,CAAA,CACjC,OAAO,YAAY;AAClB,EAAA,OAAA,CAAQ,IAAI,+BAAwB,CAAA;AAEpC,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,MAAM,OAAO,UAAU,CAAA;AACrD,IAAA,MAAM,WAAA,GACJ,OAAA,CAAQ,GAAA,CAAI,YAAA,IACZ,wDAAA;AACF,IAAA,MAAM,SAAS,QAAA,CAAS,WAAA,EAAa,EAAE,GAAA,EAAK,GAAG,CAAA;AAC/C,IAAA,MAAM,MAAA,CAAO,OAAO,UAAU,CAAA;AAC9B,IAAA,OAAA,CAAQ,IAAI,+BAA0B,CAAA;AACtC,IAAA,MAAM,OAAO,GAAA,EAAI;AAAA,EACnB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAA,CAAQ,IAAI,mCAA8B,CAAA;AAAA,EAC5C;AAEA,EAAA,OAAA,CAAQ,IAAI,wBAAmB,CAAA;AACjC,CAAC,CAAA;AAGH,OAAA,CAAQ,KAAA,EAAM;AAGd,IAAI,CAAC,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,CAAC,EAAE,MAAA,EAAQ;AACjC,EAAA,OAAA,CAAQ,UAAA,EAAW;AACrB","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';\nimport { join, resolve } from 'path';\nimport { glob } from 'glob';\n\n// ============================================================================\n// Type Generator\n// ============================================================================\n\ninterface FieldConfig {\n name?: string;\n type: string;\n required?: boolean;\n fields?: FieldConfig[];\n relationTo?: string | string[];\n hasMany?: boolean;\n options?: Array<{ label: string; value: string }>;\n}\n\ninterface CollectionConfig {\n slug: string;\n label?: string;\n fields: FieldConfig[];\n}\n\nfunction fieldToType(field: FieldConfig): string {\n switch (field.type) {\n case 'text':\n case 'email':\n case 'password':\n case 'textarea':\n case 'color':\n case 'code':\n case 'markdown':\n case 'date':\n case 'richtext':\n case 'json':\n return field.hasMany ? 'string[]' : 'string';\n case 'number':\n return field.hasMany ? 'number[]' : 'number';\n case 'checkbox':\n return 'boolean';\n case 'select':\n case 'radio':\n if (field.options) {\n const values = field.options.map(o => `'${o.value}'`).join(' | ');\n return field.hasMany ? `(${values})[]` : values;\n }\n return field.hasMany ? 'string[]' : 'string';\n case 'relationship':\n if (Array.isArray(field.relationTo)) {\n const types = field.relationTo.map(r => `${capitalize(r)} | string`).join(' | ');\n return field.hasMany ? `(${types})[]` : `(${types})`;\n }\n const relTo = field.relationTo || 'unknown';\n return field.hasMany ? `(${capitalize(relTo)} | string)[]` : `${capitalize(relTo)} | string`;\n case 'upload':\n return field.hasMany ? '(Media | string)[]' : 'Media | string';\n case 'array':\n if (field.fields && field.fields.length > 0) {\n const itemFields = field.fields.filter(f => f.name).map(f => {\n const type = fieldToType(f);\n return ` ${f.name}${f.required ? '' : '?'}: ${type};`;\n }).join('\\n');\n return `Array<{\\n${itemFields}\\n }>`;\n }\n return 'Record<string, any>[]';\n case 'group':\n if (field.fields && field.fields.length > 0) {\n const itemFields = field.fields.filter(f => f.name).map(f => {\n const type = fieldToType(f);\n return ` ${f.name}${f.required ? '' : '?'}: ${type};`;\n }).join('\\n');\n return `{\\n${itemFields}\\n}`;\n }\n return 'Record<string, any>';\n case 'blocks':\n return 'Block[]';\n default:\n return 'any';\n }\n}\n\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1).replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\nfunction collectionToInterface(collection: CollectionConfig): string {\n const name = capitalize(collection.slug);\n const fields = collection.fields.filter(f => f.name).map(f => {\n const type = fieldToType(f);\n return ` ${f.name}${f.required ? '' : '?'}: ${type};`;\n });\n\n // Add default fields\n fields.unshift(' id: string;');\n fields.push(' createdAt: string;');\n fields.push(' updatedAt: string;');\n\n return `export interface ${name} {\\n${fields.join('\\n')}\\n}`;\n}\n\nfunction generateTypes(collections: CollectionConfig[]): string {\n const interfaces = collections.map(c => collectionToInterface(c));\n \n const header = `// ============================================================================\n// Auto-generated by kyro generate\n// ============================================================================\n\nimport type { RichTextBlock } from '@kyro-cms/core';\n\nexport interface Media {\n id: string;\n url: string;\n filename: string;\n mimeType: string;\n filesize: number;\n width?: number;\n height?: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface Block {\n blockType: string;\n [key: string]: any;\n}\n\n`;\n\n const body = interfaces.join('\\n\\n');\n\n const footer = `\n\n// ============================================================================\n// Query Types\n// ============================================================================\n\nexport interface KyroWhereClause {\n [field: string]: {\n equals?: any;\n not_equals?: any;\n in?: any[];\n not_in?: any[];\n greater_than?: number;\n greater_than_equal?: number;\n less_than?: number;\n less_than_equal?: number;\n like?: string;\n exists?: boolean;\n };\n}\n\nexport interface KyroFindArgs {\n where?: KyroWhereClause;\n sort?: string;\n limit?: number;\n page?: number;\n depth?: number;\n select?: string[];\n}\n\nexport interface KyroFindResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nexport interface KyroCreateResult<T> {\n doc: T;\n message?: string;\n}\n\nexport interface KyroUpdateResult<T> {\n doc: T;\n message?: string;\n}\n\nexport interface KyroDeleteResult<T> {\n doc: T;\n message: string;\n}\n\n// ============================================================================\n// Collection Map\n// ============================================================================\n\nexport interface KyroCollections {\n${collections.map(c => ` ${c.slug}: ${capitalize(c.slug)};`).join('\\n')}\n}\n\n// ============================================================================\n// Typed Client\n// ============================================================================\n\nexport interface KyroTypedClient<C extends keyof KyroCollections> {\n find: (args?: KyroFindArgs) => Promise<KyroFindResult<KyroCollections[C]>>;\n findByID: (id: string, args?: { depth?: number; select?: string[] }) => Promise<KyroCollections[C]>;\n create: (data: Partial<KyroCollections[C]>) => Promise<KyroCreateResult<KyroCollections[C]>>;\n update: (id: string, data: Partial<KyroCollections[C]>) => Promise<KyroUpdateResult<KyroCollections[C]>>;\n delete: (id: string) => Promise<KyroDeleteResult<KyroCollections[C]>>;\n count: (args?: { where?: KyroWhereClause }) => Promise<{ totalDocs: number }>;\n}\n\nexport interface KyroClient {\n${collections.map(c => ` ${c.slug}: KyroTypedClient<'${c.slug}'>;`).join('\\n')}\n}\n\nexport function createClient(config: { url: string; token?: string }): KyroClient {\n // Client implementation would be here\n throw new Error('Not implemented');\n}\n`;\n\n return header + body + footer;\n}\n\n// ============================================================================\n// CLI Command\n// ============================================================================\n\nexport function createGenerateCommand(): Command {\n const generate = new Command('generate')\n .description('Generate TypeScript types from collection configs')\n .option('-c, --config <path>', 'Path to config file or directory', './src/kyro')\n .option('-o, --output <path>', 'Output file path', './src/types/kyro.d.ts')\n .option('-w, --watch', 'Watch for changes and regenerate')\n .action(async (options) => {\n const configPath = resolve(options.config);\n const outputPath = resolve(options.output);\n\n console.log('🔧 Generating types from:', configPath);\n\n try {\n // Find all config files\n const configFiles = await glob(`${configPath}/**/*.{ts,js}`);\n \n if (configFiles.length === 0) {\n console.error('❌ No config files found at:', configPath);\n process.exit(1);\n }\n\n // Parse configs\n const collections: CollectionConfig[] = [];\n \n for (const file of configFiles) {\n try {\n // Dynamic import of config file\n const mod = await import(file);\n const configs = Object.values(mod).filter((v: any) => v && v.slug && v.fields);\n collections.push(...(configs as CollectionConfig[]));\n } catch (error) {\n console.warn(`⚠️ Could not parse: ${file}`);\n }\n }\n\n if (collections.length === 0) {\n console.error('❌ No valid collection configs found');\n process.exit(1);\n }\n\n console.log(`📦 Found ${collections.length} collection(s):`);\n collections.forEach(c => console.log(` - ${c.slug}`));\n\n // Generate types\n const types = generateTypes(collections);\n\n // Write output\n const outputDir = join(outputPath, '..');\n if (!existsSync(outputDir)) {\n mkdirSync(outputDir, { recursive: true });\n }\n\n writeFileSync(outputPath, types);\n console.log(`✅ Types generated at: ${outputPath}`);\n\n // Watch mode\n if (options.watch) {\n console.log('\\n👁️ Watching for changes...');\n const { watch } = await import('fs');\n watch(configPath, { recursive: true }, async (eventType, filename) => {\n console.log(`\\n🔄 File changed: ${filename}`);\n // Regenerate\n const newCollections: CollectionConfig[] = [];\n for (const file of configFiles) {\n try {\n const mod = await import(file + `?t=${Date.now()}`);\n const configs = Object.values(mod).filter((v: any) => v && v.slug && v.fields);\n newCollections.push(...(configs as CollectionConfig[]));\n } catch {}\n }\n const newTypes = generateTypes(newCollections);\n writeFileSync(outputPath, newTypes);\n console.log('✅ Types regenerated');\n });\n }\n } catch (error: any) {\n console.error('❌ Error:', error.message);\n process.exit(1);\n }\n });\n\n return generate;\n}\n\nexport default createGenerateCommand;\n","#!/usr/bin/env node\n\nimport { Command } from \"commander\";\nimport { readFileSync } from \"fs\";\nimport { join, dirname } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { createGenerateCommand } from \"./generate.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n// Read version from package.json\nlet version = \"0.1.0\";\ntry {\n const pkg = JSON.parse(\n readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"),\n );\n version = pkg.version;\n} catch {}\n\nconst program = new Command();\n\nprogram\n .name(\"kyro\")\n .description(\"Kyro CMS - Astro-native headless CMS\")\n .version(version);\n\n// Register commands\nprogram.addCommand(createGenerateCommand());\n\n// DB command group\nconst dbCommand = program\n .command(\"db\")\n .description(\"Database management commands\");\n\n// DB Generate\ndbCommand\n .command(\"generate\")\n .description(\"Generate migrations from schema\")\n .action(async () => {\n console.log(\"📝 Generating migrations...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit generate\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Generation failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Migrate\ndbCommand\n .command(\"migrate\")\n .description(\"Run database migrations\")\n .action(async () => {\n console.log(\"🔄 Running migrations...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit migrate\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Migration failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Push\ndbCommand\n .command(\"push\")\n .description(\"Push schema to database (development)\")\n .action(async () => {\n console.log(\"🔄 Pushing schema...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit push\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Push failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Seed\ndbCommand\n .command(\"seed\")\n .description(\"Seed database with initial data\")\n .action(async () => {\n console.log(\"🌱 Seeding database...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx tsx src/database/drizzle/seed.ts\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Seeding failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Studio\ndbCommand\n .command(\"studio\")\n .description(\"Open Drizzle Studio\")\n .action(async () => {\n console.log(\"🔓 Opening Drizzle Studio...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit studio\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Studio failed:\", error.message);\n process.exit(1);\n }\n });\n });\n\n// Auth command group\nconst authCommand = program\n .command(\"auth\")\n .description(\"Authentication management commands\");\n\n// Bootstrap admin\nauthCommand\n .command(\"bootstrap\")\n .description(\"Create initial admin user\")\n .option(\"-e, --email <email>\", \"Admin email\", process.env.KYRO_ADMIN_EMAIL)\n .option(\n \"-p, --password <password>\",\n \"Admin password\",\n process.env.KYRO_ADMIN_PASSWORD,\n )\n .option(\n \"-r, --role <role>\",\n \"Admin role\",\n process.env.KYRO_ADMIN_ROLE || \"admin\",\n )\n .action(async (options) => {\n if (!options.email || !options.password) {\n console.error(\n \"❌ Email and password are required. Set KYRO_ADMIN_EMAIL and KYRO_ADMIN_PASSWORD env vars or use -e and -p options.\",\n );\n process.exit(1);\n }\n\n console.log(\"👤 Creating admin user...\");\n console.log(` Email: ${options.email}`);\n console.log(` Role: ${options.role}`);\n\n try {\n const { bootstrapAdmin } = await import(\"../auth/bootstrap.js\");\n const { PostgresAuthAdapter } =\n await import(\"../database/drizzle/postgres-auth-adapter.js\");\n const { drizzle } = await import(\"drizzle-orm/postgres-js\");\n const { default: postgres } = await import(\"postgres\");\n const databaseUrl =\n process.env.DATABASE_URL ||\n \"postgresql://postgres:postgres@localhost:5432/kyro_cms\";\n const client = postgres(databaseUrl, { max: 1 });\n const db = drizzle(client);\n const adapter = new PostgresAuthAdapter({ db });\n\n const result = await bootstrapAdmin({\n authAdapter: adapter,\n adminEmail: options.email,\n adminPassword: options.password,\n adminRole: options.role,\n });\n\n await client.end();\n\n if (result.success) {\n console.log(\"✅ Admin user created successfully!\");\n } else {\n console.error(\"❌ Failed to create admin:\", result.error);\n process.exit(1);\n }\n } catch (error) {\n console.error(\"❌ Bootstrap failed:\", error);\n process.exit(1);\n }\n });\n\n// Health command\nprogram\n .command(\"health\")\n .description(\"Check system health\")\n .action(async () => {\n console.log(\"🏥 System Health Check\");\n\n try {\n const { default: postgres } = await import(\"postgres\");\n const databaseUrl =\n process.env.DATABASE_URL ||\n \"postgresql://postgres:postgres@localhost:5432/kyro_cms\";\n const client = postgres(databaseUrl, { max: 1 });\n await client.unsafe(\"SELECT 1\");\n console.log(\" ✅ Database: Connected\");\n await client.end();\n } catch {\n console.log(\" ❌ Database: Not connected\");\n }\n\n console.log(\" ✅ API: Running\");\n });\n\n// Parse arguments\nprogram.parse();\n\n// Show help if no command\nif (!process.argv.slice(2).length) {\n program.outputHelp();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/generate.ts","../../src/cli/index.ts"],"names":["__filename","__dirname","readFileSync","join","Command"],"mappings":"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","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';\nimport { join, resolve } from 'path';\nimport { glob } from 'glob';\n\n// ============================================================================\n// Type Generator\n// ============================================================================\n\ninterface FieldConfig {\n name?: string;\n type: string;\n required?: boolean;\n fields?: FieldConfig[];\n relationTo?: string | string[];\n hasMany?: boolean;\n options?: Array<{ label: string; value: string }>;\n}\n\ninterface CollectionConfig {\n slug: string;\n label?: string;\n fields: FieldConfig[];\n}\n\nfunction fieldToType(field: FieldConfig): string {\n switch (field.type) {\n case 'text':\n case 'email':\n case 'password':\n case 'textarea':\n case 'color':\n case 'code':\n case 'markdown':\n case 'date':\n case 'richtext':\n case 'json':\n return field.hasMany ? 'string[]' : 'string';\n case 'number':\n return field.hasMany ? 'number[]' : 'number';\n case 'checkbox':\n return 'boolean';\n case 'select':\n case 'radio':\n if (field.options) {\n const values = field.options.map(o => `'${o.value}'`).join(' | ');\n return field.hasMany ? `(${values})[]` : values;\n }\n return field.hasMany ? 'string[]' : 'string';\n case 'relationship':\n if (Array.isArray(field.relationTo)) {\n const types = field.relationTo.map(r => `${capitalize(r)} | string`).join(' | ');\n return field.hasMany ? `(${types})[]` : `(${types})`;\n }\n const relTo = field.relationTo || 'unknown';\n return field.hasMany ? `(${capitalize(relTo)} | string)[]` : `${capitalize(relTo)} | string`;\n case 'upload':\n return field.hasMany ? '(Media | string)[]' : 'Media | string';\n case 'array':\n if (field.fields && field.fields.length > 0) {\n const itemFields = field.fields.filter(f => f.name).map(f => {\n const type = fieldToType(f);\n return ` ${f.name}${f.required ? '' : '?'}: ${type};`;\n }).join('\\n');\n return `Array<{\\n${itemFields}\\n }>`;\n }\n return 'Record<string, any>[]';\n case 'group':\n if (field.fields && field.fields.length > 0) {\n const itemFields = field.fields.filter(f => f.name).map(f => {\n const type = fieldToType(f);\n return ` ${f.name}${f.required ? '' : '?'}: ${type};`;\n }).join('\\n');\n return `{\\n${itemFields}\\n}`;\n }\n return 'Record<string, any>';\n case 'blocks':\n return 'Block[]';\n default:\n return 'any';\n }\n}\n\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1).replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\nfunction collectionToInterface(collection: CollectionConfig): string {\n const name = capitalize(collection.slug);\n const fields = collection.fields.filter(f => f.name).map(f => {\n const type = fieldToType(f);\n return ` ${f.name}${f.required ? '' : '?'}: ${type};`;\n });\n\n // Add default fields\n fields.unshift(' id: string;');\n fields.push(' createdAt: string;');\n fields.push(' updatedAt: string;');\n\n return `export interface ${name} {\\n${fields.join('\\n')}\\n}`;\n}\n\nfunction generateTypes(collections: CollectionConfig[]): string {\n const interfaces = collections.map(c => collectionToInterface(c));\n \n const header = `// ============================================================================\n// Auto-generated by kyro generate\n// ============================================================================\n\nimport type { RichTextBlock } from '@kyro-cms/core';\n\nexport interface Media {\n id: string;\n url: string;\n filename: string;\n mimeType: string;\n filesize: number;\n width?: number;\n height?: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface Block {\n blockType: string;\n [key: string]: any;\n}\n\n`;\n\n const body = interfaces.join('\\n\\n');\n\n const footer = `\n\n// ============================================================================\n// Query Types\n// ============================================================================\n\nexport interface KyroWhereClause {\n [field: string]: {\n equals?: any;\n not_equals?: any;\n in?: any[];\n not_in?: any[];\n greater_than?: number;\n greater_than_equal?: number;\n less_than?: number;\n less_than_equal?: number;\n like?: string;\n exists?: boolean;\n };\n}\n\nexport interface KyroFindArgs {\n where?: KyroWhereClause;\n sort?: string;\n limit?: number;\n page?: number;\n depth?: number;\n select?: string[];\n}\n\nexport interface KyroFindResult<T> {\n docs: T[];\n totalDocs: number;\n limit: number;\n totalPages: number;\n page: number;\n pagingCounter: number;\n hasPrevPage: boolean;\n hasNextPage: boolean;\n prevPage: number | null;\n nextPage: number | null;\n}\n\nexport interface KyroCreateResult<T> {\n doc: T;\n message?: string;\n}\n\nexport interface KyroUpdateResult<T> {\n doc: T;\n message?: string;\n}\n\nexport interface KyroDeleteResult<T> {\n doc: T;\n message: string;\n}\n\n// ============================================================================\n// Collection Map\n// ============================================================================\n\nexport interface KyroCollections {\n${collections.map(c => ` ${c.slug}: ${capitalize(c.slug)};`).join('\\n')}\n}\n\n// ============================================================================\n// Typed Client\n// ============================================================================\n\nexport interface KyroTypedClient<C extends keyof KyroCollections> {\n find: (args?: KyroFindArgs) => Promise<KyroFindResult<KyroCollections[C]>>;\n findByID: (id: string, args?: { depth?: number; select?: string[] }) => Promise<KyroCollections[C]>;\n create: (data: Partial<KyroCollections[C]>) => Promise<KyroCreateResult<KyroCollections[C]>>;\n update: (id: string, data: Partial<KyroCollections[C]>) => Promise<KyroUpdateResult<KyroCollections[C]>>;\n delete: (id: string) => Promise<KyroDeleteResult<KyroCollections[C]>>;\n count: (args?: { where?: KyroWhereClause }) => Promise<{ totalDocs: number }>;\n}\n\nexport interface KyroClient {\n${collections.map(c => ` ${c.slug}: KyroTypedClient<'${c.slug}'>;`).join('\\n')}\n}\n\nexport function createClient(config: { url: string; token?: string }): KyroClient {\n // Client implementation would be here\n throw new Error('Not implemented');\n}\n`;\n\n return header + body + footer;\n}\n\n// ============================================================================\n// CLI Command\n// ============================================================================\n\nexport function createGenerateCommand(): Command {\n const generate = new Command('generate')\n .description('Generate TypeScript types from collection configs')\n .option('-c, --config <path>', 'Path to config file or directory', './src/kyro')\n .option('-o, --output <path>', 'Output file path', './src/types/kyro.d.ts')\n .option('-w, --watch', 'Watch for changes and regenerate')\n .action(async (options) => {\n const configPath = resolve(options.config);\n const outputPath = resolve(options.output);\n\n console.log('🔧 Generating types from:', configPath);\n\n try {\n // Find all config files\n const configFiles = await glob(`${configPath}/**/*.{ts,js}`);\n \n if (configFiles.length === 0) {\n console.error('❌ No config files found at:', configPath);\n process.exit(1);\n }\n\n // Parse configs\n const collections: CollectionConfig[] = [];\n \n for (const file of configFiles) {\n try {\n // Dynamic import of config file\n const mod = await import(file);\n const configs = Object.values(mod).filter((v: any) => v && v.slug && v.fields);\n collections.push(...(configs as CollectionConfig[]));\n } catch (error) {\n console.warn(`⚠️ Could not parse: ${file}`);\n }\n }\n\n if (collections.length === 0) {\n console.error('❌ No valid collection configs found');\n process.exit(1);\n }\n\n console.log(`📦 Found ${collections.length} collection(s):`);\n collections.forEach(c => console.log(` - ${c.slug}`));\n\n // Generate types\n const types = generateTypes(collections);\n\n // Write output\n const outputDir = join(outputPath, '..');\n if (!existsSync(outputDir)) {\n mkdirSync(outputDir, { recursive: true });\n }\n\n writeFileSync(outputPath, types);\n console.log(`✅ Types generated at: ${outputPath}`);\n\n // Watch mode\n if (options.watch) {\n console.log('\\n👁️ Watching for changes...');\n const { watch } = await import('fs');\n watch(configPath, { recursive: true }, async (eventType, filename) => {\n console.log(`\\n🔄 File changed: ${filename}`);\n // Regenerate\n const newCollections: CollectionConfig[] = [];\n for (const file of configFiles) {\n try {\n const mod = await import(file + `?t=${Date.now()}`);\n const configs = Object.values(mod).filter((v: any) => v && v.slug && v.fields);\n newCollections.push(...(configs as CollectionConfig[]));\n } catch {}\n }\n const newTypes = generateTypes(newCollections);\n writeFileSync(outputPath, newTypes);\n console.log('✅ Types regenerated');\n });\n }\n } catch (error: any) {\n console.error('❌ Error:', error.message);\n process.exit(1);\n }\n });\n\n return generate;\n}\n\nexport default createGenerateCommand;\n","#!/usr/bin/env node\n\nimport { Command } from \"commander\";\nimport { readFileSync } from \"fs\";\nimport { join, dirname } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { createGenerateCommand } from \"./generate.js\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n// Read version from package.json\nlet version = \"0.1.0\";\ntry {\n const pkg = JSON.parse(\n readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"),\n );\n version = pkg.version;\n} catch {}\n\nconst program = new Command();\n\nprogram\n .name(\"kyro\")\n .description(\"Kyro CMS - Astro-native headless CMS\")\n .version(version);\n\n// Register commands\nprogram.addCommand(createGenerateCommand());\n\n// DB command group\nconst dbCommand = program\n .command(\"db\")\n .description(\"Database management commands\");\n\n// DB Generate\ndbCommand\n .command(\"generate\")\n .description(\"Generate migrations from schema\")\n .action(async () => {\n console.log(\"📝 Generating migrations...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit generate\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Generation failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Migrate\ndbCommand\n .command(\"migrate\")\n .description(\"Run database migrations\")\n .action(async () => {\n console.log(\"🔄 Running migrations...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit migrate\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Migration failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Push\ndbCommand\n .command(\"push\")\n .description(\"Push schema to database (development)\")\n .action(async () => {\n console.log(\"🔄 Pushing schema...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit push\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Push failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Seed\ndbCommand\n .command(\"seed\")\n .description(\"Seed database with initial data\")\n .action(async () => {\n console.log(\"🌱 Seeding database...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx tsx src/database/drizzle/seed.ts\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Seeding failed:\", error.message);\n process.exit(1);\n }\n console.log(stdout);\n });\n });\n\n// DB Studio\ndbCommand\n .command(\"studio\")\n .description(\"Open Drizzle Studio\")\n .action(async () => {\n console.log(\"🔓 Opening Drizzle Studio...\");\n const { exec } = await import(\"child_process\");\n exec(\"npx drizzle-kit studio\", (error, stdout, stderr) => {\n if (error) {\n console.error(\"❌ Studio failed:\", error.message);\n process.exit(1);\n }\n });\n });\n\n// Auth command group\nconst authCommand = program\n .command(\"auth\")\n .description(\"Authentication management commands\");\n\n// Bootstrap admin\nauthCommand\n .command(\"bootstrap\")\n .description(\"Create initial admin user\")\n .option(\"-e, --email <email>\", \"Admin email\", process.env.KYRO_ADMIN_EMAIL)\n .option(\n \"-p, --password <password>\",\n \"Admin password\",\n process.env.KYRO_ADMIN_PASSWORD,\n )\n .option(\n \"-r, --role <role>\",\n \"Admin role\",\n process.env.KYRO_ADMIN_ROLE || \"admin\",\n )\n .action(async (options) => {\n if (!options.email || !options.password) {\n console.error(\n \"❌ Email and password are required. Set KYRO_ADMIN_EMAIL and KYRO_ADMIN_PASSWORD env vars or use -e and -p options.\",\n );\n process.exit(1);\n }\n\n console.log(\"👤 Creating admin user...\");\n console.log(` Email: ${options.email}`);\n console.log(` Role: ${options.role}`);\n\n try {\n const { bootstrapAdmin } = await import(\"../auth/bootstrap.js\");\n const { PostgresAuthAdapter } =\n await import(\"../database/drizzle/postgres-auth-adapter.js\");\n const { drizzle } = await import(\"drizzle-orm/postgres-js\");\n const { default: postgres } = await import(\"postgres\");\n const databaseUrl =\n process.env.DATABASE_URL ||\n \"postgresql://postgres:postgres@localhost:5432/kyro_cms\";\n const client = postgres(databaseUrl, { max: 1, onnotice: () => {} });\n const db = drizzle(client);\n const adapter = new PostgresAuthAdapter({ db });\n\n const result = await bootstrapAdmin({\n authAdapter: adapter,\n adminEmail: options.email,\n adminPassword: options.password,\n adminRole: options.role,\n });\n\n await client.end();\n\n if (result.success) {\n console.log(\"✅ Admin user created successfully!\");\n } else {\n console.error(\"❌ Failed to create admin:\", result.error);\n process.exit(1);\n }\n } catch (error) {\n console.error(\"❌ Bootstrap failed:\", error);\n process.exit(1);\n }\n });\n\n// Health command\nprogram\n .command(\"health\")\n .description(\"Check system health\")\n .action(async () => {\n console.log(\"🏥 System Health Check\");\n\n try {\n const { default: postgres } = await import(\"postgres\");\n const databaseUrl =\n process.env.DATABASE_URL ||\n \"postgresql://postgres:postgres@localhost:5432/kyro_cms\";\n const client = postgres(databaseUrl, { max: 1, onnotice: () => {} });\n await client.unsafe(\"SELECT 1\");\n console.log(\" ✅ Database: Connected\");\n await client.end();\n } catch {\n console.log(\" ❌ Database: Not connected\");\n }\n\n console.log(\" ✅ API: Running\");\n });\n\n// Parse arguments\nprogram.parse();\n\n// Show help if no command\nif (!process.argv.slice(2).length) {\n program.outputHelp();\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { A as AdminConfig, a as AuthConfig, C as CollectionConfig, G as GlobalConfig, I as ImageSize, K as KyroConfig, U as UploadConfig, V as VersionConfig } from './types-J3R9nVsZ.cjs';
|
|
2
|
+
export { A as ArrayField, B as BaseField, a as Block, b as BlockAdmin, c as BlockImage, d as BlocksField, C as CheckboxField, e as CodeField, f as CollapsibleField, g as ColorField, D as DateField, E as EmailField, F as Field, h as FieldAdmin, i as FieldType, G as GroupField, I as ImageField, J as JSONField, M as MarkdownField, N as NumberField, P as PasswordField, R as RadioField, j as RelationshipField, k as RichTextBlock, l as RichTextField, m as RowField, S as SelectField, T as TabsField, n as TextField, o as TextareaField, U as UploadField } from './types-VtjUxIMp.cjs';
|
|
3
|
+
export { renderRichText, richTextStyles } from './fields/index.cjs';
|
|
4
|
+
export { A as AuthAdapter, a as AuthResult, S as AuthSession, b as AuthTokenConfig, c as AuthUser, J as JWTPayload, L as LoginCredentials, R as RegisterData, S as Session, U as UserRole } from './types-DqN4ckOC.cjs';
|
|
5
|
+
export { A as AdminStylingConfig, C as CSSGenerator, F as FieldStyling, S as StylingConfig, a as StylingMode, T as ThemeBorderRadius, b as ThemeColors, c as ThemeConfig, d as ThemeFonts, e as ThemeShadows, f as ThemeSpacing, g as createAdminStyling, h as defaultDarkTheme, i as defaultFieldStyling, j as defaultLightTheme, k as ecommerce2026Theme, l as generateCSSVariables, m as generateTailwindConfig } from './index-Bz9JqRGI.cjs';
|
|
6
|
+
|
|
7
|
+
declare function createAuditContext(req: Request): {
|
|
8
|
+
ipAddress: string;
|
|
9
|
+
userAgent: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { createAuditContext };
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { A as AdminConfig, a as AuthConfig, C as CollectionConfig, G as GlobalConfig, I as ImageSize, K as KyroConfig, U as UploadConfig, V as VersionConfig } from './types-Bs1up4yP.js';
|
|
2
|
+
export { A as ArrayField, B as BaseField, a as Block, b as BlockAdmin, c as BlockImage, d as BlocksField, C as CheckboxField, e as CodeField, f as CollapsibleField, g as ColorField, D as DateField, E as EmailField, F as Field, h as FieldAdmin, i as FieldType, G as GroupField, I as ImageField, J as JSONField, M as MarkdownField, N as NumberField, P as PasswordField, R as RadioField, j as RelationshipField, k as RichTextBlock, l as RichTextField, m as RowField, S as SelectField, T as TabsField, n as TextField, o as TextareaField, U as UploadField } from './types-VtjUxIMp.js';
|
|
3
|
+
export { renderRichText, richTextStyles } from './fields/index.js';
|
|
4
|
+
export { A as AuthAdapter, a as AuthResult, S as AuthSession, b as AuthTokenConfig, c as AuthUser, J as JWTPayload, L as LoginCredentials, R as RegisterData, S as Session, U as UserRole } from './types-DqN4ckOC.js';
|
|
5
|
+
export { A as AdminStylingConfig, C as CSSGenerator, F as FieldStyling, S as StylingConfig, a as StylingMode, T as ThemeBorderRadius, b as ThemeColors, c as ThemeConfig, d as ThemeFonts, e as ThemeShadows, f as ThemeSpacing, g as createAdminStyling, h as defaultDarkTheme, i as defaultFieldStyling, j as defaultLightTheme, k as ecommerce2026Theme, l as generateCSSVariables, m as generateTailwindConfig } from './index-Bz9JqRGI.js';
|
|
6
|
+
|
|
7
|
+
declare function createAuditContext(req: Request): {
|
|
8
|
+
ipAddress: string;
|
|
9
|
+
userAgent: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { createAuditContext };
|
package/dist/drizzle/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
var
|
|
3
|
+
require('../chunk-3YELQL7Z.cjs');
|
|
4
|
+
var chunkWVPOPOEQ_cjs = require('../chunk-WVPOPOEQ.cjs');
|
|
5
|
+
var chunkRALQO47U_cjs = require('../chunk-RALQO47U.cjs');
|
|
5
6
|
require('../chunk-WQBRWOQT.cjs');
|
|
6
|
-
var chunk7SXPHG3M_cjs = require('../chunk-7SXPHG3M.cjs');
|
|
7
7
|
require('../chunk-KOCTZKPV.cjs');
|
|
8
8
|
require('../chunk-G7VZBCD6.cjs');
|
|
9
9
|
|
|
@@ -11,39 +11,39 @@ require('../chunk-G7VZBCD6.cjs');
|
|
|
11
11
|
|
|
12
12
|
Object.defineProperty(exports, "DrizzleAdapter", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkWVPOPOEQ_cjs.DrizzleAdapter; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "collectionToDrizzleSchema", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkWVPOPOEQ_cjs.collectionToDrizzleSchema; }
|
|
19
19
|
});
|
|
20
|
-
Object.defineProperty(exports, "
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function () { return chunk3ZZPZYCM_cjs.createDrizzleAdapter; }
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(exports, "fieldToDrizzleType", {
|
|
20
|
+
Object.defineProperty(exports, "createDatabase", {
|
|
25
21
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkWVPOPOEQ_cjs.createDatabase; }
|
|
27
23
|
});
|
|
28
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "createDrizzleAdapter", {
|
|
29
25
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkWVPOPOEQ_cjs.createDrizzleAdapter; }
|
|
31
27
|
});
|
|
32
|
-
Object.defineProperty(exports, "
|
|
28
|
+
Object.defineProperty(exports, "fieldToDrizzleType", {
|
|
33
29
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkWVPOPOEQ_cjs.fieldToDrizzleType; }
|
|
35
31
|
});
|
|
36
32
|
Object.defineProperty(exports, "genId", {
|
|
37
33
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkWVPOPOEQ_cjs.genId; }
|
|
39
35
|
});
|
|
40
36
|
Object.defineProperty(exports, "runMigrations", {
|
|
41
37
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunkWVPOPOEQ_cjs.runMigrations; }
|
|
43
39
|
});
|
|
44
40
|
Object.defineProperty(exports, "seedDefaultRoles", {
|
|
45
41
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkWVPOPOEQ_cjs.seedDefaultRoles; }
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "PostgresAuthAdapter", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () { return chunkRALQO47U_cjs.PostgresAuthAdapter; }
|
|
47
47
|
});
|
|
48
48
|
//# sourceMappingURL=index.cjs.map
|
|
49
49
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { A as AbstractBaseAdapter } from '../base-DvvNqnM-.cjs';
|
|
2
|
+
import { C as CollectionConfig, G as GlobalConfig, F as FindArgs, b as FindResult, c as FindByIDArgs, d as CreateArgs, e as UpdateArgs, D as DeleteArgs, i as DraftFindArgs, j as DraftSnapshot, k as DraftUpsertArgs, l as DraftDeleteArgs } from '../types-J3R9nVsZ.cjs';
|
|
3
|
+
import { F as Field } from '../types-VtjUxIMp.cjs';
|
|
4
|
+
import { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
|
|
5
|
+
import { A as AuthAdapter, U as UserRole, c as AuthUser, S as Session, d as AuditLogFilter, e as AuditLog } from '../types-DqN4ckOC.cjs';
|
|
6
|
+
|
|
7
|
+
declare function fieldToDrizzleType(field: Field, dialect?: 'postgres' | 'sqlite'): string;
|
|
8
|
+
declare function collectionToDrizzleSchema(collection: CollectionConfig, dialect?: 'postgres' | 'sqlite'): string;
|
|
9
|
+
declare class DrizzleAdapter extends AbstractBaseAdapter {
|
|
10
|
+
client: any;
|
|
11
|
+
private schema;
|
|
12
|
+
dialect: 'postgres' | 'sqlite';
|
|
13
|
+
private connectionString?;
|
|
14
|
+
private draftsTableReady;
|
|
15
|
+
private versionsTableReady;
|
|
16
|
+
constructor(options: {
|
|
17
|
+
type?: 'postgres' | 'sqlite';
|
|
18
|
+
client?: any;
|
|
19
|
+
schema?: any;
|
|
20
|
+
connectionString?: string;
|
|
21
|
+
});
|
|
22
|
+
protected prepareData(data: Record<string, any>, config: CollectionConfig): Record<string, any>;
|
|
23
|
+
connect(): Promise<void>;
|
|
24
|
+
init(collections: CollectionConfig[], globals?: GlobalConfig[]): Promise<void>;
|
|
25
|
+
private createTableFromConfig;
|
|
26
|
+
private ensureCollectionTables;
|
|
27
|
+
private generateCreateColumns;
|
|
28
|
+
disconnect(): Promise<void>;
|
|
29
|
+
find<T>(args: FindArgs): Promise<FindResult<T>>;
|
|
30
|
+
findByID<T>(args: FindByIDArgs): Promise<T | null>;
|
|
31
|
+
create<T>(args: CreateArgs): Promise<T>;
|
|
32
|
+
update<T>(args: UpdateArgs): Promise<T>;
|
|
33
|
+
delete<T>(args: DeleteArgs): Promise<T>;
|
|
34
|
+
count(args: {
|
|
35
|
+
collection: string;
|
|
36
|
+
where?: Record<string, any>;
|
|
37
|
+
tenantID?: string;
|
|
38
|
+
}): Promise<number>;
|
|
39
|
+
findOne(args: {
|
|
40
|
+
collection: string;
|
|
41
|
+
where: Record<string, any>;
|
|
42
|
+
tenantID?: string;
|
|
43
|
+
draft?: boolean;
|
|
44
|
+
}): Promise<any>;
|
|
45
|
+
findVersions(args: any): Promise<FindResult<any>>;
|
|
46
|
+
findVersionByID(args: {
|
|
47
|
+
collection: string;
|
|
48
|
+
versionId: string;
|
|
49
|
+
tenantID?: string;
|
|
50
|
+
}): Promise<any>;
|
|
51
|
+
createVersion(args: any): Promise<any>;
|
|
52
|
+
deleteVersions(args: {
|
|
53
|
+
collection: string;
|
|
54
|
+
documentId: string;
|
|
55
|
+
keepLatest?: number;
|
|
56
|
+
tenantID?: string;
|
|
57
|
+
}): Promise<void>;
|
|
58
|
+
findDraft<T>(args: DraftFindArgs): Promise<DraftSnapshot<T> | null>;
|
|
59
|
+
upsertDraft<T>(args: DraftUpsertArgs<T>): Promise<DraftSnapshot<T>>;
|
|
60
|
+
deleteDraft(args: DraftDeleteArgs): Promise<void>;
|
|
61
|
+
private getTable;
|
|
62
|
+
private buildWhereClause;
|
|
63
|
+
private processResult;
|
|
64
|
+
private ensureDraftsTable;
|
|
65
|
+
private ensureVersionsTable;
|
|
66
|
+
private getDraftId;
|
|
67
|
+
private executeRaw;
|
|
68
|
+
private rowToDraft;
|
|
69
|
+
}
|
|
70
|
+
declare function createDrizzleAdapter(options: {
|
|
71
|
+
type?: 'postgres' | 'sqlite';
|
|
72
|
+
client?: any;
|
|
73
|
+
schema?: any;
|
|
74
|
+
connectionString?: string;
|
|
75
|
+
}): DrizzleAdapter;
|
|
76
|
+
|
|
77
|
+
interface PostgresAuthAdapterOptions {
|
|
78
|
+
db: PostgresJsDatabase;
|
|
79
|
+
prefix?: string;
|
|
80
|
+
sessionTTL?: number;
|
|
81
|
+
refreshTokenTTL?: number;
|
|
82
|
+
}
|
|
83
|
+
declare class PostgresAuthAdapter implements AuthAdapter {
|
|
84
|
+
private db;
|
|
85
|
+
private prefix;
|
|
86
|
+
private sessionTTL;
|
|
87
|
+
private refreshTokenTTL;
|
|
88
|
+
constructor(options: PostgresAuthAdapterOptions);
|
|
89
|
+
connect(): Promise<void>;
|
|
90
|
+
disconnect(): Promise<void>;
|
|
91
|
+
createUser(data: {
|
|
92
|
+
email: string;
|
|
93
|
+
password: string;
|
|
94
|
+
name?: string;
|
|
95
|
+
role?: UserRole;
|
|
96
|
+
tenantId?: string;
|
|
97
|
+
}): Promise<AuthUser>;
|
|
98
|
+
findUserByEmail(email: string): Promise<AuthUser | null>;
|
|
99
|
+
findUserById(id: string): Promise<AuthUser | null>;
|
|
100
|
+
updateUser(id: string, data: Partial<AuthUser>): Promise<AuthUser | null>;
|
|
101
|
+
deleteUser(id: string): Promise<boolean>;
|
|
102
|
+
findUsers(options?: {
|
|
103
|
+
page?: number;
|
|
104
|
+
limit?: number;
|
|
105
|
+
search?: string;
|
|
106
|
+
}): Promise<{
|
|
107
|
+
users: AuthUser[];
|
|
108
|
+
total: number;
|
|
109
|
+
}>;
|
|
110
|
+
verifyPassword(email: string, password: string): Promise<AuthUser | null>;
|
|
111
|
+
hashPassword(password: string): Promise<string>;
|
|
112
|
+
createSession(userId: string, data?: {
|
|
113
|
+
ipAddress?: string;
|
|
114
|
+
userAgent?: string;
|
|
115
|
+
}): Promise<Session>;
|
|
116
|
+
findSessionByToken(token: string): Promise<Session | null>;
|
|
117
|
+
findSessionByRefreshToken(refreshToken: string): Promise<Session | null>;
|
|
118
|
+
deleteSession(sessionId: string): Promise<boolean>;
|
|
119
|
+
deleteUserSessions(userId: string): Promise<number>;
|
|
120
|
+
addPasswordToHistory(userId: string, passwordHash: string): Promise<void>;
|
|
121
|
+
getPasswordHistory(userId: string, count?: number): Promise<string[]>;
|
|
122
|
+
isPasswordInHistory(password: string, userId: string, historyCount?: number): Promise<boolean>;
|
|
123
|
+
isLocked(userId: string): Promise<boolean>;
|
|
124
|
+
getLockout(userId: string): Promise<{
|
|
125
|
+
lockedUntil: Date;
|
|
126
|
+
} | null>;
|
|
127
|
+
recordFailedAttempt(userId: string, ipAddress?: string): Promise<{
|
|
128
|
+
attempts: number;
|
|
129
|
+
locked: boolean;
|
|
130
|
+
}>;
|
|
131
|
+
resetAttempts(userId: string): Promise<void>;
|
|
132
|
+
findAuditLogs(filter: AuditLogFilter): Promise<{
|
|
133
|
+
logs: AuditLog[];
|
|
134
|
+
total: number;
|
|
135
|
+
}>;
|
|
136
|
+
createAuditLog(data: Omit<AuditLog, "id" | "timestamp">): Promise<AuditLog>;
|
|
137
|
+
private userToAuthUser;
|
|
138
|
+
private sessionToSession;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
type Dialect = "sqlite" | "postgres";
|
|
142
|
+
declare function genId(): string;
|
|
143
|
+
interface DatabaseResult {
|
|
144
|
+
db: any;
|
|
145
|
+
dialect: Dialect;
|
|
146
|
+
genId: () => string;
|
|
147
|
+
}
|
|
148
|
+
declare function createDatabase(): Promise<DatabaseResult>;
|
|
149
|
+
declare function runMigrations(_db: any, _dialect?: Dialect): Promise<void>;
|
|
150
|
+
declare function seedDefaultRoles(db: any): Promise<void>;
|
|
151
|
+
|
|
152
|
+
export { type Dialect, DrizzleAdapter, PostgresAuthAdapter, collectionToDrizzleSchema, createDatabase, createDrizzleAdapter, fieldToDrizzleType, genId, runMigrations, seedDefaultRoles };
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { A as AbstractBaseAdapter } from '../base-eVegJ_Pr.js';
|
|
2
|
+
import { C as CollectionConfig, G as GlobalConfig, F as FindArgs, b as FindResult, c as FindByIDArgs, d as CreateArgs, e as UpdateArgs, D as DeleteArgs, i as DraftFindArgs, j as DraftSnapshot, k as DraftUpsertArgs, l as DraftDeleteArgs } from '../types-Bs1up4yP.js';
|
|
3
|
+
import { F as Field } from '../types-VtjUxIMp.js';
|
|
4
|
+
import { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
|
|
5
|
+
import { A as AuthAdapter, U as UserRole, c as AuthUser, S as Session, d as AuditLogFilter, e as AuditLog } from '../types-DqN4ckOC.js';
|
|
6
|
+
|
|
7
|
+
declare function fieldToDrizzleType(field: Field, dialect?: 'postgres' | 'sqlite'): string;
|
|
8
|
+
declare function collectionToDrizzleSchema(collection: CollectionConfig, dialect?: 'postgres' | 'sqlite'): string;
|
|
9
|
+
declare class DrizzleAdapter extends AbstractBaseAdapter {
|
|
10
|
+
client: any;
|
|
11
|
+
private schema;
|
|
12
|
+
dialect: 'postgres' | 'sqlite';
|
|
13
|
+
private connectionString?;
|
|
14
|
+
private draftsTableReady;
|
|
15
|
+
private versionsTableReady;
|
|
16
|
+
constructor(options: {
|
|
17
|
+
type?: 'postgres' | 'sqlite';
|
|
18
|
+
client?: any;
|
|
19
|
+
schema?: any;
|
|
20
|
+
connectionString?: string;
|
|
21
|
+
});
|
|
22
|
+
protected prepareData(data: Record<string, any>, config: CollectionConfig): Record<string, any>;
|
|
23
|
+
connect(): Promise<void>;
|
|
24
|
+
init(collections: CollectionConfig[], globals?: GlobalConfig[]): Promise<void>;
|
|
25
|
+
private createTableFromConfig;
|
|
26
|
+
private ensureCollectionTables;
|
|
27
|
+
private generateCreateColumns;
|
|
28
|
+
disconnect(): Promise<void>;
|
|
29
|
+
find<T>(args: FindArgs): Promise<FindResult<T>>;
|
|
30
|
+
findByID<T>(args: FindByIDArgs): Promise<T | null>;
|
|
31
|
+
create<T>(args: CreateArgs): Promise<T>;
|
|
32
|
+
update<T>(args: UpdateArgs): Promise<T>;
|
|
33
|
+
delete<T>(args: DeleteArgs): Promise<T>;
|
|
34
|
+
count(args: {
|
|
35
|
+
collection: string;
|
|
36
|
+
where?: Record<string, any>;
|
|
37
|
+
tenantID?: string;
|
|
38
|
+
}): Promise<number>;
|
|
39
|
+
findOne(args: {
|
|
40
|
+
collection: string;
|
|
41
|
+
where: Record<string, any>;
|
|
42
|
+
tenantID?: string;
|
|
43
|
+
draft?: boolean;
|
|
44
|
+
}): Promise<any>;
|
|
45
|
+
findVersions(args: any): Promise<FindResult<any>>;
|
|
46
|
+
findVersionByID(args: {
|
|
47
|
+
collection: string;
|
|
48
|
+
versionId: string;
|
|
49
|
+
tenantID?: string;
|
|
50
|
+
}): Promise<any>;
|
|
51
|
+
createVersion(args: any): Promise<any>;
|
|
52
|
+
deleteVersions(args: {
|
|
53
|
+
collection: string;
|
|
54
|
+
documentId: string;
|
|
55
|
+
keepLatest?: number;
|
|
56
|
+
tenantID?: string;
|
|
57
|
+
}): Promise<void>;
|
|
58
|
+
findDraft<T>(args: DraftFindArgs): Promise<DraftSnapshot<T> | null>;
|
|
59
|
+
upsertDraft<T>(args: DraftUpsertArgs<T>): Promise<DraftSnapshot<T>>;
|
|
60
|
+
deleteDraft(args: DraftDeleteArgs): Promise<void>;
|
|
61
|
+
private getTable;
|
|
62
|
+
private buildWhereClause;
|
|
63
|
+
private processResult;
|
|
64
|
+
private ensureDraftsTable;
|
|
65
|
+
private ensureVersionsTable;
|
|
66
|
+
private getDraftId;
|
|
67
|
+
private executeRaw;
|
|
68
|
+
private rowToDraft;
|
|
69
|
+
}
|
|
70
|
+
declare function createDrizzleAdapter(options: {
|
|
71
|
+
type?: 'postgres' | 'sqlite';
|
|
72
|
+
client?: any;
|
|
73
|
+
schema?: any;
|
|
74
|
+
connectionString?: string;
|
|
75
|
+
}): DrizzleAdapter;
|
|
76
|
+
|
|
77
|
+
interface PostgresAuthAdapterOptions {
|
|
78
|
+
db: PostgresJsDatabase;
|
|
79
|
+
prefix?: string;
|
|
80
|
+
sessionTTL?: number;
|
|
81
|
+
refreshTokenTTL?: number;
|
|
82
|
+
}
|
|
83
|
+
declare class PostgresAuthAdapter implements AuthAdapter {
|
|
84
|
+
private db;
|
|
85
|
+
private prefix;
|
|
86
|
+
private sessionTTL;
|
|
87
|
+
private refreshTokenTTL;
|
|
88
|
+
constructor(options: PostgresAuthAdapterOptions);
|
|
89
|
+
connect(): Promise<void>;
|
|
90
|
+
disconnect(): Promise<void>;
|
|
91
|
+
createUser(data: {
|
|
92
|
+
email: string;
|
|
93
|
+
password: string;
|
|
94
|
+
name?: string;
|
|
95
|
+
role?: UserRole;
|
|
96
|
+
tenantId?: string;
|
|
97
|
+
}): Promise<AuthUser>;
|
|
98
|
+
findUserByEmail(email: string): Promise<AuthUser | null>;
|
|
99
|
+
findUserById(id: string): Promise<AuthUser | null>;
|
|
100
|
+
updateUser(id: string, data: Partial<AuthUser>): Promise<AuthUser | null>;
|
|
101
|
+
deleteUser(id: string): Promise<boolean>;
|
|
102
|
+
findUsers(options?: {
|
|
103
|
+
page?: number;
|
|
104
|
+
limit?: number;
|
|
105
|
+
search?: string;
|
|
106
|
+
}): Promise<{
|
|
107
|
+
users: AuthUser[];
|
|
108
|
+
total: number;
|
|
109
|
+
}>;
|
|
110
|
+
verifyPassword(email: string, password: string): Promise<AuthUser | null>;
|
|
111
|
+
hashPassword(password: string): Promise<string>;
|
|
112
|
+
createSession(userId: string, data?: {
|
|
113
|
+
ipAddress?: string;
|
|
114
|
+
userAgent?: string;
|
|
115
|
+
}): Promise<Session>;
|
|
116
|
+
findSessionByToken(token: string): Promise<Session | null>;
|
|
117
|
+
findSessionByRefreshToken(refreshToken: string): Promise<Session | null>;
|
|
118
|
+
deleteSession(sessionId: string): Promise<boolean>;
|
|
119
|
+
deleteUserSessions(userId: string): Promise<number>;
|
|
120
|
+
addPasswordToHistory(userId: string, passwordHash: string): Promise<void>;
|
|
121
|
+
getPasswordHistory(userId: string, count?: number): Promise<string[]>;
|
|
122
|
+
isPasswordInHistory(password: string, userId: string, historyCount?: number): Promise<boolean>;
|
|
123
|
+
isLocked(userId: string): Promise<boolean>;
|
|
124
|
+
getLockout(userId: string): Promise<{
|
|
125
|
+
lockedUntil: Date;
|
|
126
|
+
} | null>;
|
|
127
|
+
recordFailedAttempt(userId: string, ipAddress?: string): Promise<{
|
|
128
|
+
attempts: number;
|
|
129
|
+
locked: boolean;
|
|
130
|
+
}>;
|
|
131
|
+
resetAttempts(userId: string): Promise<void>;
|
|
132
|
+
findAuditLogs(filter: AuditLogFilter): Promise<{
|
|
133
|
+
logs: AuditLog[];
|
|
134
|
+
total: number;
|
|
135
|
+
}>;
|
|
136
|
+
createAuditLog(data: Omit<AuditLog, "id" | "timestamp">): Promise<AuditLog>;
|
|
137
|
+
private userToAuthUser;
|
|
138
|
+
private sessionToSession;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
type Dialect = "sqlite" | "postgres";
|
|
142
|
+
declare function genId(): string;
|
|
143
|
+
interface DatabaseResult {
|
|
144
|
+
db: any;
|
|
145
|
+
dialect: Dialect;
|
|
146
|
+
genId: () => string;
|
|
147
|
+
}
|
|
148
|
+
declare function createDatabase(): Promise<DatabaseResult>;
|
|
149
|
+
declare function runMigrations(_db: any, _dialect?: Dialect): Promise<void>;
|
|
150
|
+
declare function seedDefaultRoles(db: any): Promise<void>;
|
|
151
|
+
|
|
152
|
+
export { type Dialect, DrizzleAdapter, PostgresAuthAdapter, collectionToDrizzleSchema, createDatabase, createDrizzleAdapter, fieldToDrizzleType, genId, runMigrations, seedDefaultRoles };
|
package/dist/drizzle/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
1
|
+
import '../chunk-QU2RFFH4.js';
|
|
2
|
+
export { DrizzleAdapter, collectionToDrizzleSchema, createDatabase, createDrizzleAdapter, fieldToDrizzleType, genId, runMigrations, seedDefaultRoles } from '../chunk-6WXQRYTW.js';
|
|
3
|
+
export { PostgresAuthAdapter } from '../chunk-TVVYZ2TH.js';
|
|
3
4
|
import '../chunk-WOWUL7ZY.js';
|
|
4
|
-
export { createDatabase, genId, runMigrations, seedDefaultRoles } from '../chunk-L4E76X2K.js';
|
|
5
5
|
import '../chunk-A4USRVTQ.js';
|
|
6
6
|
import '../chunk-Z6ZWNWWR.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { p as ALL_FIELD_TYPES, A as ArrayField, B as BaseField, a as Block, b as BlockAdmin, c as BlockImage, d as BlocksField, W as ButtonField, q as COMPLEX_FIELD_TYPES, C as CheckboxField, e as CodeField, f as CollapsibleField, g as ColorField, D as DateField, E as EmailField, F as Field, h as FieldAdmin, i as FieldType, G as GroupField, X as Hook, I as ImageField, J as JSONField, L as LAYOUT_FIELD_TYPES, Y as ListField, M as MarkdownField, N as NumberField, r as PRIMITIVE_FIELD_TYPES, P as PasswordField, s as RELATIONAL_FIELD_TYPES, R as RadioField, j as RelationshipField, k as RichTextBlock, l as RichTextField, m as RowField, S as SelectField, T as TabsField, n as TextField, Z as TextFieldVariant, o as TextareaField, U as UploadField, V as ValidateOptions, _ as createRelationshipFieldConfig, t as isArrayField, u as isBlocksField, v as isGroupField, w as isImageField, x as isLayoutField, y as isNumberField, z as isRelationshipField, H as isRichTextField, K as isSelectField, O as isTextField, Q as isUploadField } from '../types-VtjUxIMp.cjs';
|
|
2
|
+
|
|
3
|
+
interface RichTextMark {
|
|
4
|
+
type: string;
|
|
5
|
+
attrs?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
interface RichTextNode {
|
|
8
|
+
type?: string;
|
|
9
|
+
attrs?: Record<string, unknown>;
|
|
10
|
+
content?: RichTextNode[];
|
|
11
|
+
text?: string;
|
|
12
|
+
marks?: RichTextMark[];
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
interface RichTextDocument extends RichTextNode {
|
|
16
|
+
type: "doc";
|
|
17
|
+
content: RichTextNode[];
|
|
18
|
+
}
|
|
19
|
+
declare const richTextStyles: string;
|
|
20
|
+
declare function createEmptyParagraphNode(): RichTextNode;
|
|
21
|
+
declare function createColumnNode(content?: RichTextNode[]): RichTextNode;
|
|
22
|
+
declare function createColumnsNode(columns?: number): RichTextNode;
|
|
23
|
+
declare function normalizeRichTextDocument(value: unknown): RichTextDocument;
|
|
24
|
+
declare function normalizeRichTextValue<T>(value: T): T;
|
|
25
|
+
declare function renderRichText(value: unknown): string;
|
|
26
|
+
|
|
27
|
+
export { type RichTextDocument, type RichTextMark, type RichTextNode, createColumnNode, createColumnsNode, createEmptyParagraphNode, normalizeRichTextDocument, normalizeRichTextValue, renderRichText, richTextStyles };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { p as ALL_FIELD_TYPES, A as ArrayField, B as BaseField, a as Block, b as BlockAdmin, c as BlockImage, d as BlocksField, W as ButtonField, q as COMPLEX_FIELD_TYPES, C as CheckboxField, e as CodeField, f as CollapsibleField, g as ColorField, D as DateField, E as EmailField, F as Field, h as FieldAdmin, i as FieldType, G as GroupField, X as Hook, I as ImageField, J as JSONField, L as LAYOUT_FIELD_TYPES, Y as ListField, M as MarkdownField, N as NumberField, r as PRIMITIVE_FIELD_TYPES, P as PasswordField, s as RELATIONAL_FIELD_TYPES, R as RadioField, j as RelationshipField, k as RichTextBlock, l as RichTextField, m as RowField, S as SelectField, T as TabsField, n as TextField, Z as TextFieldVariant, o as TextareaField, U as UploadField, V as ValidateOptions, _ as createRelationshipFieldConfig, t as isArrayField, u as isBlocksField, v as isGroupField, w as isImageField, x as isLayoutField, y as isNumberField, z as isRelationshipField, H as isRichTextField, K as isSelectField, O as isTextField, Q as isUploadField } from '../types-VtjUxIMp.js';
|
|
2
|
+
|
|
3
|
+
interface RichTextMark {
|
|
4
|
+
type: string;
|
|
5
|
+
attrs?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
interface RichTextNode {
|
|
8
|
+
type?: string;
|
|
9
|
+
attrs?: Record<string, unknown>;
|
|
10
|
+
content?: RichTextNode[];
|
|
11
|
+
text?: string;
|
|
12
|
+
marks?: RichTextMark[];
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
interface RichTextDocument extends RichTextNode {
|
|
16
|
+
type: "doc";
|
|
17
|
+
content: RichTextNode[];
|
|
18
|
+
}
|
|
19
|
+
declare const richTextStyles: string;
|
|
20
|
+
declare function createEmptyParagraphNode(): RichTextNode;
|
|
21
|
+
declare function createColumnNode(content?: RichTextNode[]): RichTextNode;
|
|
22
|
+
declare function createColumnsNode(columns?: number): RichTextNode;
|
|
23
|
+
declare function normalizeRichTextDocument(value: unknown): RichTextDocument;
|
|
24
|
+
declare function normalizeRichTextValue<T>(value: T): T;
|
|
25
|
+
declare function renderRichText(value: unknown): string;
|
|
26
|
+
|
|
27
|
+
export { type RichTextDocument, type RichTextMark, type RichTextNode, createColumnNode, createColumnsNode, createEmptyParagraphNode, normalizeRichTextDocument, normalizeRichTextValue, renderRichText, richTextStyles };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GraphQLSchema } from 'graphql';
|
|
2
|
+
import { B as BaseAdapter, m as User, R as Request } from '../types-J3R9nVsZ.cjs';
|
|
3
|
+
import { R as Registry } from '../index-DfO7G4kN.cjs';
|
|
4
|
+
import '../types-VtjUxIMp.cjs';
|
|
5
|
+
import 'zod';
|
|
6
|
+
|
|
7
|
+
interface GraphQLSchemaOptions {
|
|
8
|
+
registry: Registry;
|
|
9
|
+
db: BaseAdapter;
|
|
10
|
+
user?: User;
|
|
11
|
+
req?: Request;
|
|
12
|
+
tenantID?: string;
|
|
13
|
+
settings?: Record<string, any>;
|
|
14
|
+
}
|
|
15
|
+
declare function buildGraphQLSchema(options: GraphQLSchemaOptions): GraphQLSchema;
|
|
16
|
+
declare function createGraphQLSchema(registry: Registry, db: BaseAdapter, options?: {
|
|
17
|
+
user?: User;
|
|
18
|
+
req?: Request;
|
|
19
|
+
tenantID?: string;
|
|
20
|
+
}): GraphQLSchema;
|
|
21
|
+
|
|
22
|
+
export { type GraphQLSchemaOptions, buildGraphQLSchema, createGraphQLSchema };
|