@kyro-cms/core 0.10.18 → 0.10.20

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.
Files changed (69) hide show
  1. package/dist/{WebhookService-DpRB940h.d.ts → WebhookService-DREfF5Hm.d.ts} +1 -1
  2. package/dist/{WebhookService-Dj8pJ3sp.d.cts → WebhookService-Di_wX9gK.d.cts} +1 -1
  3. package/dist/api-handler-graphql.cjs +1 -1
  4. package/dist/api-handler-graphql.js +1 -1
  5. package/dist/api-handler-trpc.cjs +1 -1
  6. package/dist/api-handler-trpc.js +1 -1
  7. package/dist/api-handler.cjs +1 -1
  8. package/dist/api-handler.js +1 -1
  9. package/dist/{base-BjyoF6da.d.cts → base-CH7d01Yw.d.cts} +2 -2
  10. package/dist/{base-C2YR8lWt.d.ts → base-DRK_7V46.d.ts} +2 -2
  11. package/dist/{chunk-5H7LD62N.js → chunk-3RU6COLP.js} +2 -2
  12. package/dist/chunk-AG5BPMS5.js +86 -0
  13. package/dist/chunk-AWDITIFN.js +1 -0
  14. package/dist/chunk-BRJ77NA4.cjs +1 -0
  15. package/dist/{chunk-BL34J64W.cjs → chunk-DAQ2HLAB.cjs} +1 -1
  16. package/dist/chunk-HFU3VAUC.js +2 -0
  17. package/dist/{chunk-CFMATLA3.js → chunk-IH6MAFNI.js} +1 -1
  18. package/dist/{chunk-QIRWEE7V.cjs → chunk-OO6WEHO2.cjs} +1 -1
  19. package/dist/{chunk-YJRLS2Z3.js → chunk-PCEJHAJD.js} +1 -1
  20. package/dist/{chunk-RBZNQINT.cjs → chunk-QVQNJPIZ.cjs} +2 -2
  21. package/dist/chunk-T7IBSF5R.cjs +2 -0
  22. package/dist/chunk-U6R2W2SL.js +1 -0
  23. package/dist/chunk-V3M6TGVT.cjs +86 -0
  24. package/dist/chunk-V6LRMDKN.cjs +1 -0
  25. package/dist/cli/index.cjs +3 -3
  26. package/dist/cli/index.js +3 -3
  27. package/dist/client.d.cts +2 -2
  28. package/dist/client.d.ts +2 -2
  29. package/dist/drizzle/index.d.cts +3 -3
  30. package/dist/drizzle/index.d.ts +3 -3
  31. package/dist/fields/index.d.cts +1 -1
  32. package/dist/fields/index.d.ts +1 -1
  33. package/dist/graphql/index.cjs +1 -1
  34. package/dist/graphql/index.d.cts +3 -3
  35. package/dist/graphql/index.d.ts +3 -3
  36. package/dist/graphql/index.js +1 -1
  37. package/dist/{index-DuuUzWBq.d.cts → index-B52AAXcJ.d.cts} +2 -2
  38. package/dist/{index-DXr33e0x.d.ts → index-BTFBhepB.d.ts} +2 -2
  39. package/dist/index.cjs +2 -2
  40. package/dist/index.d.cts +9 -9
  41. package/dist/index.d.ts +9 -9
  42. package/dist/index.js +1 -1
  43. package/dist/mongodb/index.d.cts +3 -3
  44. package/dist/mongodb/index.d.ts +3 -3
  45. package/dist/rest/index.cjs +1 -1
  46. package/dist/rest/index.d.cts +4 -4
  47. package/dist/rest/index.d.ts +4 -4
  48. package/dist/rest/index.js +1 -1
  49. package/dist/templates/index.cjs +1 -1
  50. package/dist/templates/index.d.cts +2 -2
  51. package/dist/templates/index.d.ts +2 -2
  52. package/dist/templates/index.js +1 -1
  53. package/dist/trpc/index.cjs +1 -1
  54. package/dist/trpc/index.d.cts +3 -3
  55. package/dist/trpc/index.d.ts +3 -3
  56. package/dist/trpc/index.js +1 -1
  57. package/dist/{types-BzH3_rtP.d.ts → types-BH7tjlpR.d.ts} +1 -1
  58. package/dist/{types-CY_iNunL.d.cts → types-BMu-234T.d.cts} +1 -1
  59. package/dist/{types-C_rVxU2T.d.cts → types-C9izrwhZ.d.cts} +4 -0
  60. package/dist/{types-C_rVxU2T.d.ts → types-C9izrwhZ.d.ts} +4 -0
  61. package/package.json +1 -1
  62. package/dist/chunk-7N6NKCRT.js +0 -1
  63. package/dist/chunk-CVVW4LXZ.cjs +0 -1
  64. package/dist/chunk-GPKEOELO.js +0 -2
  65. package/dist/chunk-ISWMETHJ.cjs +0 -1
  66. package/dist/chunk-RXOAX7GO.cjs +0 -86
  67. package/dist/chunk-TRFBYBYC.js +0 -86
  68. package/dist/chunk-UVTS2IWM.js +0 -1
  69. package/dist/chunk-ZPUIRXKS.cjs +0 -2
@@ -1,7 +1,7 @@
1
- import { A as AbstractBaseAdapter } from '../base-BjyoF6da.cjs';
2
- import { F as FindArgs, b as FindResult, c as FindByIDArgs, d as CreateArgs, e as UpdateArgs, D as DeleteArgs, f as FindVersionsArgs, g as VersionRecord, h as CreateVersionArgs } from '../types-CY_iNunL.cjs';
1
+ import { A as AbstractBaseAdapter } from '../base-CH7d01Yw.cjs';
2
+ import { F as FindArgs, b as FindResult, c as FindByIDArgs, d as CreateArgs, e as UpdateArgs, D as DeleteArgs, f as FindVersionsArgs, g as VersionRecord, h as CreateVersionArgs } from '../types-BMu-234T.cjs';
3
3
  import { A as AuthAdapter, U as UserRole, c as AuthUser, S as Session, e as AuditLogFilter, d as AuditLog } from '../types-CpjuXbe7.cjs';
4
- import '../types-C_rVxU2T.cjs';
4
+ import '../types-C9izrwhZ.cjs';
5
5
 
6
6
  declare class MongoDBAdapter extends AbstractBaseAdapter {
7
7
  client: any;
@@ -1,7 +1,7 @@
1
- import { A as AbstractBaseAdapter } from '../base-C2YR8lWt.js';
2
- import { F as FindArgs, b as FindResult, c as FindByIDArgs, d as CreateArgs, e as UpdateArgs, D as DeleteArgs, f as FindVersionsArgs, g as VersionRecord, h as CreateVersionArgs } from '../types-BzH3_rtP.js';
1
+ import { A as AbstractBaseAdapter } from '../base-DRK_7V46.js';
2
+ import { F as FindArgs, b as FindResult, c as FindByIDArgs, d as CreateArgs, e as UpdateArgs, D as DeleteArgs, f as FindVersionsArgs, g as VersionRecord, h as CreateVersionArgs } from '../types-BH7tjlpR.js';
3
3
  import { A as AuthAdapter, U as UserRole, c as AuthUser, S as Session, e as AuditLogFilter, d as AuditLog } from '../types-CpjuXbe7.js';
4
- import '../types-C_rVxU2T.js';
4
+ import '../types-C9izrwhZ.js';
5
5
 
6
6
  declare class MongoDBAdapter extends AbstractBaseAdapter {
7
7
  client: any;
@@ -1 +1 @@
1
- 'use strict';var chunkRXOAX7GO_cjs=require('../chunk-RXOAX7GO.cjs');require('../chunk-AJAZ7D3W.cjs'),require('../chunk-WIZ6C5QZ.cjs'),require('../chunk-GFU7AOI3.cjs'),require('../chunk-ET6NN2V2.cjs'),require('../chunk-HVXO3OFB.cjs'),require('../chunk-ISWMETHJ.cjs'),require('../chunk-NY47CFVP.cjs'),require('../chunk-X3RRRWIN.cjs'),require('../chunk-GYQMNXXW.cjs'),require('../chunk-MIOMMB23.cjs'),require('../chunk-WMY7BDPK.cjs'),require('../chunk-ATLSIYRH.cjs'),require('../chunk-W4ZDETHA.cjs'),require('../chunk-Q3Q7BJVQ.cjs'),require('../chunk-AHSFSERC.cjs');Object.defineProperty(exports,"createHonoApp",{enumerable:true,get:function(){return chunkRXOAX7GO_cjs.s}});Object.defineProperty(exports,"createRESTAPI",{enumerable:true,get:function(){return chunkRXOAX7GO_cjs.t}});
1
+ 'use strict';var chunkV3M6TGVT_cjs=require('../chunk-V3M6TGVT.cjs');require('../chunk-AJAZ7D3W.cjs'),require('../chunk-WIZ6C5QZ.cjs'),require('../chunk-GFU7AOI3.cjs'),require('../chunk-ET6NN2V2.cjs'),require('../chunk-HVXO3OFB.cjs'),require('../chunk-V6LRMDKN.cjs'),require('../chunk-NY47CFVP.cjs'),require('../chunk-X3RRRWIN.cjs'),require('../chunk-GYQMNXXW.cjs'),require('../chunk-MIOMMB23.cjs'),require('../chunk-WMY7BDPK.cjs'),require('../chunk-ATLSIYRH.cjs'),require('../chunk-W4ZDETHA.cjs'),require('../chunk-Q3Q7BJVQ.cjs'),require('../chunk-AHSFSERC.cjs');Object.defineProperty(exports,"createHonoApp",{enumerable:true,get:function(){return chunkV3M6TGVT_cjs.s}});Object.defineProperty(exports,"createRESTAPI",{enumerable:true,get:function(){return chunkV3M6TGVT_cjs.t}});
@@ -1,8 +1,8 @@
1
1
  import { Hono } from 'hono';
2
- import { B as BaseAdapter, i as User } from '../types-CY_iNunL.cjs';
3
- import { R as Registry } from '../index-DuuUzWBq.cjs';
4
- import { i as createWebhookService } from '../WebhookService-Dj8pJ3sp.cjs';
5
- import '../types-C_rVxU2T.cjs';
2
+ import { B as BaseAdapter, i as User } from '../types-BMu-234T.cjs';
3
+ import { R as Registry } from '../index-B52AAXcJ.cjs';
4
+ import { i as createWebhookService } from '../WebhookService-Di_wX9gK.cjs';
5
+ import '../types-C9izrwhZ.cjs';
6
6
  import 'zod';
7
7
 
8
8
  interface HonoAppOptions {
@@ -1,8 +1,8 @@
1
1
  import { Hono } from 'hono';
2
- import { B as BaseAdapter, i as User } from '../types-BzH3_rtP.js';
3
- import { R as Registry } from '../index-DXr33e0x.js';
4
- import { i as createWebhookService } from '../WebhookService-DpRB940h.js';
5
- import '../types-C_rVxU2T.js';
2
+ import { B as BaseAdapter, i as User } from '../types-BH7tjlpR.js';
3
+ import { R as Registry } from '../index-BTFBhepB.js';
4
+ import { i as createWebhookService } from '../WebhookService-DREfF5Hm.js';
5
+ import '../types-C9izrwhZ.js';
6
6
  import 'zod';
7
7
 
8
8
  interface HonoAppOptions {
@@ -1 +1 @@
1
- export{s as createHonoApp,t as createRESTAPI}from'../chunk-TRFBYBYC.js';import'../chunk-7WOX27LK.js';import'../chunk-K6WUOU6P.js';import'../chunk-AE6GXUT7.js';import'../chunk-2W4FK6CJ.js';import'../chunk-NRLIGDYF.js';import'../chunk-UVTS2IWM.js';import'../chunk-HLSB2MCK.js';import'../chunk-MBUUNROA.js';import'../chunk-RHCWCG3O.js';import'../chunk-OG7CNQGU.js';import'../chunk-TYOVXKQP.js';import'../chunk-P7CESLDJ.js';import'../chunk-4YYBWCDJ.js';import'../chunk-KDNYHLD2.js';import'../chunk-5J6HXUF6.js';
1
+ export{s as createHonoApp,t as createRESTAPI}from'../chunk-AG5BPMS5.js';import'../chunk-7WOX27LK.js';import'../chunk-K6WUOU6P.js';import'../chunk-AE6GXUT7.js';import'../chunk-2W4FK6CJ.js';import'../chunk-NRLIGDYF.js';import'../chunk-AWDITIFN.js';import'../chunk-HLSB2MCK.js';import'../chunk-MBUUNROA.js';import'../chunk-RHCWCG3O.js';import'../chunk-OG7CNQGU.js';import'../chunk-TYOVXKQP.js';import'../chunk-P7CESLDJ.js';import'../chunk-4YYBWCDJ.js';import'../chunk-KDNYHLD2.js';import'../chunk-5J6HXUF6.js';
@@ -1 +1 @@
1
- 'use strict';var chunkQIRWEE7V_cjs=require('../chunk-QIRWEE7V.cjs'),chunk65G73T7Z_cjs=require('../chunk-65G73T7Z.cjs'),chunkGFU7AOI3_cjs=require('../chunk-GFU7AOI3.cjs');require('../chunk-AHSFSERC.cjs');Object.defineProperty(exports,"accessSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.J}});Object.defineProperty(exports,"allSettingsGlobals",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.P}});Object.defineProperty(exports,"blogCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.c}});Object.defineProperty(exports,"blogGlobals",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.d}});Object.defineProperty(exports,"categoriesCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.p}});Object.defineProperty(exports,"categoriesCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.q}});Object.defineProperty(exports,"coreSettingsGlobals",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.Q}});Object.defineProperty(exports,"couponsCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.z}});Object.defineProperty(exports,"couponsCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.A}});Object.defineProperty(exports,"createTemplateConfig",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.U}});Object.defineProperty(exports,"customersCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.v}});Object.defineProperty(exports,"customersCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.w}});Object.defineProperty(exports,"ecommerceCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.e}});Object.defineProperty(exports,"ecommerceGlobals",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.f}});Object.defineProperty(exports,"emailSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.I}});Object.defineProperty(exports,"footerSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.O}});Object.defineProperty(exports,"formEntriesCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.D}});Object.defineProperty(exports,"formEntriesCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.E}});Object.defineProperty(exports,"formsCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.B}});Object.defineProperty(exports,"formsCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.C}});Object.defineProperty(exports,"getSettingsForTemplate",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.S}});Object.defineProperty(exports,"headerSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.N}});Object.defineProperty(exports,"kitchenSinkCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.g}});Object.defineProperty(exports,"mediaCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.h}});Object.defineProperty(exports,"mediaCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.i}});Object.defineProperty(exports,"menuCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.j}});Object.defineProperty(exports,"menuCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.k}});Object.defineProperty(exports,"minimalCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.a}});Object.defineProperty(exports,"ordersCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.x}});Object.defineProperty(exports,"ordersCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.y}});Object.defineProperty(exports,"pageCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.n}});Object.defineProperty(exports,"pageCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.o}});Object.defineProperty(exports,"paymentSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.L}});Object.defineProperty(exports,"postsCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.l}});Object.defineProperty(exports,"postsCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.m}});Object.defineProperty(exports,"productCategoriesCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.r}});Object.defineProperty(exports,"productCategoriesCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.s}});Object.defineProperty(exports,"productsCollection",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.t}});Object.defineProperty(exports,"productsCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.u}});Object.defineProperty(exports,"seoSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.G}});Object.defineProperty(exports,"settingsBySlug",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.R}});Object.defineProperty(exports,"siteSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.F}});Object.defineProperty(exports,"socialSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.H}});Object.defineProperty(exports,"starterCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.b}});Object.defineProperty(exports,"storeSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.K}});Object.defineProperty(exports,"systemSettingsGlobal",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.M}});Object.defineProperty(exports,"templateCollections",{enumerable:true,get:function(){return chunkQIRWEE7V_cjs.T}});Object.defineProperty(exports,"storageSettingsGlobal",{enumerable:true,get:function(){return chunk65G73T7Z_cjs.a}});Object.defineProperty(exports,"authCollections",{enumerable:true,get:function(){return chunkGFU7AOI3_cjs.b}});
1
+ 'use strict';var chunkOO6WEHO2_cjs=require('../chunk-OO6WEHO2.cjs'),chunk65G73T7Z_cjs=require('../chunk-65G73T7Z.cjs'),chunkGFU7AOI3_cjs=require('../chunk-GFU7AOI3.cjs');require('../chunk-AHSFSERC.cjs');Object.defineProperty(exports,"accessSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.J}});Object.defineProperty(exports,"allSettingsGlobals",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.P}});Object.defineProperty(exports,"blogCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.c}});Object.defineProperty(exports,"blogGlobals",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.d}});Object.defineProperty(exports,"categoriesCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.p}});Object.defineProperty(exports,"categoriesCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.q}});Object.defineProperty(exports,"coreSettingsGlobals",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.Q}});Object.defineProperty(exports,"couponsCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.z}});Object.defineProperty(exports,"couponsCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.A}});Object.defineProperty(exports,"createTemplateConfig",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.U}});Object.defineProperty(exports,"customersCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.v}});Object.defineProperty(exports,"customersCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.w}});Object.defineProperty(exports,"ecommerceCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.e}});Object.defineProperty(exports,"ecommerceGlobals",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.f}});Object.defineProperty(exports,"emailSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.I}});Object.defineProperty(exports,"footerSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.O}});Object.defineProperty(exports,"formEntriesCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.D}});Object.defineProperty(exports,"formEntriesCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.E}});Object.defineProperty(exports,"formsCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.B}});Object.defineProperty(exports,"formsCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.C}});Object.defineProperty(exports,"getSettingsForTemplate",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.S}});Object.defineProperty(exports,"headerSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.N}});Object.defineProperty(exports,"kitchenSinkCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.g}});Object.defineProperty(exports,"mediaCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.h}});Object.defineProperty(exports,"mediaCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.i}});Object.defineProperty(exports,"menuCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.j}});Object.defineProperty(exports,"menuCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.k}});Object.defineProperty(exports,"minimalCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.a}});Object.defineProperty(exports,"ordersCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.x}});Object.defineProperty(exports,"ordersCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.y}});Object.defineProperty(exports,"pageCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.n}});Object.defineProperty(exports,"pageCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.o}});Object.defineProperty(exports,"paymentSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.L}});Object.defineProperty(exports,"postsCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.l}});Object.defineProperty(exports,"postsCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.m}});Object.defineProperty(exports,"productCategoriesCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.r}});Object.defineProperty(exports,"productCategoriesCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.s}});Object.defineProperty(exports,"productsCollection",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.t}});Object.defineProperty(exports,"productsCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.u}});Object.defineProperty(exports,"seoSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.G}});Object.defineProperty(exports,"settingsBySlug",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.R}});Object.defineProperty(exports,"siteSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.F}});Object.defineProperty(exports,"socialSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.H}});Object.defineProperty(exports,"starterCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.b}});Object.defineProperty(exports,"storeSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.K}});Object.defineProperty(exports,"systemSettingsGlobal",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.M}});Object.defineProperty(exports,"templateCollections",{enumerable:true,get:function(){return chunkOO6WEHO2_cjs.T}});Object.defineProperty(exports,"storageSettingsGlobal",{enumerable:true,get:function(){return chunk65G73T7Z_cjs.a}});Object.defineProperty(exports,"authCollections",{enumerable:true,get:function(){return chunkGFU7AOI3_cjs.b}});
@@ -1,5 +1,5 @@
1
- import { G as GlobalConfig, C as CollectionConfig } from '../types-CY_iNunL.cjs';
2
- import '../types-C_rVxU2T.cjs';
1
+ import { G as GlobalConfig, C as CollectionConfig } from '../types-BMu-234T.cjs';
2
+ import '../types-C9izrwhZ.cjs';
3
3
 
4
4
  declare const minimalCollections: Record<string, any>;
5
5
 
@@ -1,5 +1,5 @@
1
- import { G as GlobalConfig, C as CollectionConfig } from '../types-BzH3_rtP.js';
2
- import '../types-C_rVxU2T.js';
1
+ import { G as GlobalConfig, C as CollectionConfig } from '../types-BH7tjlpR.js';
2
+ import '../types-C9izrwhZ.js';
3
3
 
4
4
  declare const minimalCollections: Record<string, any>;
5
5
 
@@ -1 +1 @@
1
- export{J as accessSettingsGlobal,P as allSettingsGlobals,c as blogCollections,d as blogGlobals,p as categoriesCollection,q as categoriesCollections,Q as coreSettingsGlobals,z as couponsCollection,A as couponsCollections,U as createTemplateConfig,v as customersCollection,w as customersCollections,e as ecommerceCollections,f as ecommerceGlobals,I as emailSettingsGlobal,O as footerSettingsGlobal,D as formEntriesCollection,E as formEntriesCollections,B as formsCollection,C as formsCollections,S as getSettingsForTemplate,N as headerSettingsGlobal,g as kitchenSinkCollections,h as mediaCollection,i as mediaCollections,j as menuCollection,k as menuCollections,a as minimalCollections,x as ordersCollection,y as ordersCollections,n as pageCollection,o as pageCollections,L as paymentSettingsGlobal,l as postsCollection,m as postsCollections,r as productCategoriesCollection,s as productCategoriesCollections,t as productsCollection,u as productsCollections,G as seoSettingsGlobal,R as settingsBySlug,F as siteSettingsGlobal,H as socialSettingsGlobal,b as starterCollections,K as storeSettingsGlobal,M as systemSettingsGlobal,T as templateCollections}from'../chunk-YJRLS2Z3.js';export{a as storageSettingsGlobal}from'../chunk-NZ35PV5R.js';export{b as authCollections}from'../chunk-AE6GXUT7.js';import'../chunk-5J6HXUF6.js';
1
+ export{J as accessSettingsGlobal,P as allSettingsGlobals,c as blogCollections,d as blogGlobals,p as categoriesCollection,q as categoriesCollections,Q as coreSettingsGlobals,z as couponsCollection,A as couponsCollections,U as createTemplateConfig,v as customersCollection,w as customersCollections,e as ecommerceCollections,f as ecommerceGlobals,I as emailSettingsGlobal,O as footerSettingsGlobal,D as formEntriesCollection,E as formEntriesCollections,B as formsCollection,C as formsCollections,S as getSettingsForTemplate,N as headerSettingsGlobal,g as kitchenSinkCollections,h as mediaCollection,i as mediaCollections,j as menuCollection,k as menuCollections,a as minimalCollections,x as ordersCollection,y as ordersCollections,n as pageCollection,o as pageCollections,L as paymentSettingsGlobal,l as postsCollection,m as postsCollections,r as productCategoriesCollection,s as productCategoriesCollections,t as productsCollection,u as productsCollections,G as seoSettingsGlobal,R as settingsBySlug,F as siteSettingsGlobal,H as socialSettingsGlobal,b as starterCollections,K as storeSettingsGlobal,M as systemSettingsGlobal,T as templateCollections}from'../chunk-PCEJHAJD.js';export{a as storageSettingsGlobal}from'../chunk-NZ35PV5R.js';export{b as authCollections}from'../chunk-AE6GXUT7.js';import'../chunk-5J6HXUF6.js';
@@ -1 +1 @@
1
- 'use strict';var chunkCVVW4LXZ_cjs=require('../chunk-CVVW4LXZ.cjs');require('../chunk-ISWMETHJ.cjs'),require('../chunk-NY47CFVP.cjs'),require('../chunk-Q3Q7BJVQ.cjs'),require('../chunk-AHSFSERC.cjs');Object.defineProperty(exports,"createContext",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.a}});Object.defineProperty(exports,"createCountProcedure",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.g}});Object.defineProperty(exports,"createCreateProcedure",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.d}});Object.defineProperty(exports,"createDeleteProcedure",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.f}});Object.defineProperty(exports,"createDynamicRouter",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.h}});Object.defineProperty(exports,"createFindByIDProcedure",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.c}});Object.defineProperty(exports,"createFindProcedure",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.b}});Object.defineProperty(exports,"createKyroServer",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.i}});Object.defineProperty(exports,"createUpdateProcedure",{enumerable:true,get:function(){return chunkCVVW4LXZ_cjs.e}});
1
+ 'use strict';var chunkBRJ77NA4_cjs=require('../chunk-BRJ77NA4.cjs');require('../chunk-V6LRMDKN.cjs'),require('../chunk-NY47CFVP.cjs'),require('../chunk-Q3Q7BJVQ.cjs'),require('../chunk-AHSFSERC.cjs');Object.defineProperty(exports,"createContext",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.a}});Object.defineProperty(exports,"createCountProcedure",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.g}});Object.defineProperty(exports,"createCreateProcedure",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.d}});Object.defineProperty(exports,"createDeleteProcedure",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.f}});Object.defineProperty(exports,"createDynamicRouter",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.h}});Object.defineProperty(exports,"createFindByIDProcedure",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.c}});Object.defineProperty(exports,"createFindProcedure",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.b}});Object.defineProperty(exports,"createKyroServer",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.i}});Object.defineProperty(exports,"createUpdateProcedure",{enumerable:true,get:function(){return chunkBRJ77NA4_cjs.e}});
@@ -1,6 +1,6 @@
1
- import { B as BaseAdapter, R as Request, i as User, b as FindResult } from '../types-CY_iNunL.cjs';
2
- import { i as createWebhookService } from '../WebhookService-Dj8pJ3sp.cjs';
3
- import '../types-C_rVxU2T.cjs';
1
+ import { B as BaseAdapter, R as Request, i as User, b as FindResult } from '../types-BMu-234T.cjs';
2
+ import { i as createWebhookService } from '../WebhookService-Di_wX9gK.cjs';
3
+ import '../types-C9izrwhZ.cjs';
4
4
 
5
5
  interface ApiKeyContext {
6
6
  userId: string;
@@ -1,6 +1,6 @@
1
- import { B as BaseAdapter, R as Request, i as User, b as FindResult } from '../types-BzH3_rtP.js';
2
- import { i as createWebhookService } from '../WebhookService-DpRB940h.js';
3
- import '../types-C_rVxU2T.js';
1
+ import { B as BaseAdapter, R as Request, i as User, b as FindResult } from '../types-BH7tjlpR.js';
2
+ import { i as createWebhookService } from '../WebhookService-DREfF5Hm.js';
3
+ import '../types-C9izrwhZ.js';
4
4
 
5
5
  interface ApiKeyContext {
6
6
  userId: string;
@@ -1 +1 @@
1
- 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-7N6NKCRT.js';import'../chunk-UVTS2IWM.js';import'../chunk-HLSB2MCK.js';import'../chunk-KDNYHLD2.js';import'../chunk-5J6HXUF6.js';
1
+ 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-U6R2W2SL.js';import'../chunk-AWDITIFN.js';import'../chunk-HLSB2MCK.js';import'../chunk-KDNYHLD2.js';import'../chunk-5J6HXUF6.js';
@@ -1,4 +1,4 @@
1
- import { F as Field } from './types-C_rVxU2T.js';
1
+ import { F as Field } from './types-C9izrwhZ.js';
2
2
 
3
3
  interface Request {
4
4
  body?: any;
@@ -1,4 +1,4 @@
1
- import { F as Field } from './types-C_rVxU2T.cjs';
1
+ import { F as Field } from './types-C9izrwhZ.cjs';
2
2
 
3
3
  interface Request {
4
4
  body?: any;
@@ -150,6 +150,10 @@ interface MarkdownField extends BaseField {
150
150
  }
151
151
  interface RelationshipField extends BaseField {
152
152
  type: "relationship";
153
+ /**
154
+ * The collection slug(s) to relate to.
155
+ * Use "*" to allow relating to ANY registered collection.
156
+ */
153
157
  relationTo: string | string[];
154
158
  hasMany?: boolean;
155
159
  maxDepth?: number;
@@ -150,6 +150,10 @@ interface MarkdownField extends BaseField {
150
150
  }
151
151
  interface RelationshipField extends BaseField {
152
152
  type: "relationship";
153
+ /**
154
+ * The collection slug(s) to relate to.
155
+ * Use "*" to allow relating to ANY registered collection.
156
+ */
153
157
  relationTo: string | string[];
154
158
  hasMany?: boolean;
155
159
  maxDepth?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyro-cms/core",
3
- "version": "0.10.18",
3
+ "version": "0.10.20",
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 +0,0 @@
1
- import {c,n,a,b as b$1}from'./chunk-UVTS2IWM.js';import {f,e,g}from'./chunk-HLSB2MCK.js';async function $(e$1){let o=n(e$1.db),t={db:e$1.db,registry:e$1.registry,req:e$1.req,user:e$1.user,tenantID:e$1.tenantID,webhookService:o,settings:e$1.settings},n$1=f(e$1.req);if(n$1){let r=await e(n$1,e$1.db,async a=>{try{return await e$1.db.findByID({collection:"users",id:a})||null}catch{return null}});r.valid&&(t.user=r.user||e$1.user,t.tenantID=r.tenantId||e$1.tenantID,t.apiKey=g(r));}return t}var T={_media:{create:c.MEDIA_UPLOAD,update:c.MEDIA_UPLOAD,delete:c.MEDIA_DELETE}};function w(e,o){let t=T[e];return t?t[o]:`collection.${o}`}async function k(e,o,t){if(e.webhookService)try{await e.webhookService.trigger(o,{collection:t.collection,operation:t.operation,data:t.data,previousData:t.previousData,user:e.user?{id:e.user.id,email:e.user.email,role:e.user.role}:void 0,tenantId:e.tenantID});}catch(n){console.error(`[Webhook] Failed to trigger ${o}:`,n);}}function b(e,o){if(!(!e||typeof e!="object"))for(let t of o){if(!t.name||!(t.name in e))continue;if(e[t.name]===""&&(t.type==="text"||t.type==="textarea"||t.type==="code"||t.type==="markdown"||t.type==="email"||t.type==="password"||t.type==="color"||(e[t.name]=null)),t.type==="tabs"&&t.name&&Array.isArray(t.tabs)&&e[t.name]&&typeof e[t.name]=="object")for(let r of t.tabs)Array.isArray(r.fields)&&b(e[t.name],r.fields);else if((t.type==="group"||t.type==="collapsible")&&t.name&&Array.isArray(t.fields)&&e[t.name]&&typeof e[t.name]=="object")b(e[t.name],t.fields);else if(t.type==="array"&&t.name&&Array.isArray(t.fields)&&Array.isArray(e[t.name]))for(let r of e[t.name])r&&typeof r=="object"&&b(r,t.fields);else if(t.type==="blocks"&&t.name&&Array.isArray(t.blocks)&&Array.isArray(e[t.name]))for(let r of e[t.name]){if(!r||typeof r!="object")continue;let a=r.type||r.blockType;if(!a)continue;let s=t.blocks.find(i=>i.slug===a);if(!s||!Array.isArray(s.fields))continue;let l=r.data&&typeof r.data=="object"?r.data:r;b(l,s.fields);}}}async function p(e,o,t){let n=await a(e,o,{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey});if(!n.allowed)throw new Error(n.error||"Access denied");t.tenantID&&t.db.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});}function A(e){return async o=>{let{collection:t,where:n,sort:r,limit:a,page:s,depth:l,select:i,draft:d}=o,c=e.registry.getCollection(t);if(await p(c,"read",e),c.hooks?.beforeRead)for(let f of c.hooks.beforeRead)await f({collection:t,req:e.req,user:e.user,tenantID:e.tenantID,operation:"read",where:n});let u=d??!!e.user,D=await e.db.find({collection:t,where:n||{},sort:r,limit:a||10,page:s||1,depth:l||0,tenantID:e.tenantID,select:i,draft:u});if(c.hooks?.afterRead)for(let f of D.docs)for(let I of c.hooks.afterRead)await I({collection:t,doc:f,req:e.req,user:e.user,tenantID:e.tenantID,operation:"read"});return D}}function C(e){return async o=>{let{collection:t,id:n,depth:r,select:a,draft:s}=o,l=e.registry.getCollection(t);await p(l,"read",e);let i=s??!!e.user,d=await e.db.findByID({collection:t,id:n,depth:r||0,tenantID:e.tenantID,select:a,draft:i});if(!d)throw new Error(`Document not found: ${t}/${n}`);if(l.hooks?.afterRead)for(let c of l.hooks.afterRead)await c({collection:t,doc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"read",id:n});return d}}function R(e){return async o=>{let{collection:t,data:n,depth:r,select:a}=o,s=e.registry.getCollection(t);await p(s,"create",e);let i=e.registry.getCreateZodSchema(t).parse(n);if(s.tenantScoped&&e.tenantID&&(i.tenantID=e.tenantID),s.hooks?.beforeValidate)for(let c of s.hooks.beforeValidate){let u=await c({collection:t,data:i,req:e.req,user:e.user,tenantID:e.tenantID,operation:"create"});u&&Object.assign(i,u);}if(s.hooks?.beforeChange)for(let c of s.hooks.beforeChange){let u=await c({collection:t,data:i,req:e.req,user:e.user,tenantID:e.tenantID,operation:"create"});u&&Object.assign(i,u);}let d=await e.db.create({collection:t,data:i,depth:r||0,tenantID:e.tenantID,select:a});if(s.hooks?.afterChange)for(let c of s.hooks.afterChange)await c({collection:t,doc:d,data:i,req:e.req,user:e.user,tenantID:e.tenantID,operation:"create"});return await k(e,w(t,"create"),{collection:t,data:d,operation:"create"}),{doc:d}}}function q(e){return async o=>{let{collection:t,id:n,data:r,depth:a,select:s,baseUpdatedAt:l}=o,i=e.registry.getCollection(t);await p(i,"update",e);let d=await e.db.findByID({collection:t,id:n,tenantID:e.tenantID,draft:true});if(!d)throw new Error(`Document not found: ${t}/${n}`);if(l&&d.updatedAt&&l!==d.updatedAt)throw new Error(`Revision conflict: document has changed since ${l}. Current updatedAt: ${d.updatedAt}`);b(r,i.fields);let u=e.registry.getUpdateZodSchema(t).parse(r);if(i.tenantScoped&&e.tenantID&&(u.tenantID=e.tenantID),i.hooks?.beforeValidate)for(let g of i.hooks.beforeValidate){let h=await g({collection:t,data:u,originalDoc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"update",id:n});h&&Object.assign(u,h);}if(i.hooks?.beforeChange)for(let g of i.hooks.beforeChange){let h=await g({collection:t,data:u,originalDoc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"update",id:n});h&&Object.assign(u,h);}let D=e.req&&typeof e.req.headers?.get=="function"&&e.req.headers.get("x-draft")==="true"||o.draft===true,f=i.versions?.drafts===true,I=e.req?.query?.autosave==="true"||e.req?.url?.includes("autosave=true")||o.autosave===true,y;if(f&&D?(await e.db.createVersion({collection:t,documentId:n,data:u,status:"draft",autosave:I,createdBy:e.user?.id,tenantID:e.tenantID}),y=await e.db.findByID({collection:t,id:n,tenantID:e.tenantID,draft:true})):f?(y=await e.db.update({collection:t,id:n,data:{...u,status:"published"},depth:a||0,tenantID:e.tenantID,select:s}),await e.db.createVersion({collection:t,documentId:n,data:u,status:"published",createdBy:e.user?.id,tenantID:e.tenantID})):y=await e.db.update({collection:t,id:n,data:u,depth:a||0,tenantID:e.tenantID,select:s}),i.hooks?.afterChange)for(let g of i.hooks.afterChange)await g({collection:t,doc:y,data:u,originalDoc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"update",id:n});return await k(e,w(t,"update"),{collection:t,data:y,previousData:d,operation:"update"}),{doc:y}}}function P(e){return async o=>{let{collection:t,id:n}=o,r=e.registry.getCollection(t);await p(r,"delete",e);let a=await e.db.findByID({collection:t,id:n,tenantID:e.tenantID,draft:true});if(!a)throw new Error(`Document not found: ${t}/${n}`);if(r.hooks?.beforeDelete)for(let l of r.hooks.beforeDelete)await l({collection:t,doc:a,req:e.req,user:e.user,tenantID:e.tenantID,operation:"delete",id:n});let s=await e.db.delete({collection:t,id:n,tenantID:e.tenantID});if(r.hooks?.afterDelete)for(let l of r.hooks.afterDelete)await l({collection:t,doc:s,req:e.req,user:e.user,tenantID:e.tenantID,operation:"delete",id:n});return await k(e,w(t,"delete"),{collection:t,data:s,previousData:a,operation:"delete"}),{doc:s,message:"Deleted successfully"}}}function v(e){return async o=>{let{collection:t,where:n}=o,r=e.registry.getCollection(t);return await p(r,"read",e),{totalDocs:await e.db.count({collection:t,where:n||{},tenantID:e.tenantID})}}}async function F(e,o,t){let n=await b$1(e,o,{user:t.user,req:t.req,tenantID:t.tenantID});if(!n.allowed)throw new Error(n.error||"Access denied");t.tenantID&&t.db.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});}function U(e){let o={},t=e.registry.getCollections();for(let r of t){let a=r.slug;o[a]={find:A(e),findByID:C(e),create:R(e),update:q(e),delete:P(e),count:v(e)};}let n=e.registry.getGlobals();for(let r of n){let a=r.slug;o[`_globals_${a}`]={get:async()=>(await F(r,"read",e),await e.db.findOne({collection:`_globals_${a}`,where:{},tenantID:e.tenantID})),update:async s=>{await F(r,"update",e);let i=e.registry.getZodSchema(a).parse(s.data),d=await e.db.findOne({collection:`_globals_${a}`,where:{},tenantID:e.tenantID,draft:true}),c;return d?c=await e.db.update({collection:`_globals_${a}`,id:d.id,data:i,tenantID:e.tenantID}):c=await e.db.create({collection:`_globals_${a}`,data:{...i,id:a},tenantID:e.tenantID}),c}};}return o}function W(e){if(e.settings?.access?.apiAccess?.trpcEnabled===false)throw new Error("tRPC API is disabled");return U(e)}export{$ as a,A as b,C as c,R as d,q as e,P as f,v as g,U as h,W as i};
@@ -1 +0,0 @@
1
- 'use strict';var chunkISWMETHJ_cjs=require('./chunk-ISWMETHJ.cjs'),chunkNY47CFVP_cjs=require('./chunk-NY47CFVP.cjs');async function $(e){let o=chunkISWMETHJ_cjs.n(e.db),t={db:e.db,registry:e.registry,req:e.req,user:e.user,tenantID:e.tenantID,webhookService:o,settings:e.settings},n=chunkNY47CFVP_cjs.f(e.req);if(n){let r=await chunkNY47CFVP_cjs.e(n,e.db,async a=>{try{return await e.db.findByID({collection:"users",id:a})||null}catch{return null}});r.valid&&(t.user=r.user||e.user,t.tenantID=r.tenantId||e.tenantID,t.apiKey=chunkNY47CFVP_cjs.g(r));}return t}var T={_media:{create:chunkISWMETHJ_cjs.c.MEDIA_UPLOAD,update:chunkISWMETHJ_cjs.c.MEDIA_UPLOAD,delete:chunkISWMETHJ_cjs.c.MEDIA_DELETE}};function w(e,o){let t=T[e];return t?t[o]:`collection.${o}`}async function k(e,o,t){if(e.webhookService)try{await e.webhookService.trigger(o,{collection:t.collection,operation:t.operation,data:t.data,previousData:t.previousData,user:e.user?{id:e.user.id,email:e.user.email,role:e.user.role}:void 0,tenantId:e.tenantID});}catch(n){console.error(`[Webhook] Failed to trigger ${o}:`,n);}}function b(e,o){if(!(!e||typeof e!="object"))for(let t of o){if(!t.name||!(t.name in e))continue;if(e[t.name]===""&&(t.type==="text"||t.type==="textarea"||t.type==="code"||t.type==="markdown"||t.type==="email"||t.type==="password"||t.type==="color"||(e[t.name]=null)),t.type==="tabs"&&t.name&&Array.isArray(t.tabs)&&e[t.name]&&typeof e[t.name]=="object")for(let r of t.tabs)Array.isArray(r.fields)&&b(e[t.name],r.fields);else if((t.type==="group"||t.type==="collapsible")&&t.name&&Array.isArray(t.fields)&&e[t.name]&&typeof e[t.name]=="object")b(e[t.name],t.fields);else if(t.type==="array"&&t.name&&Array.isArray(t.fields)&&Array.isArray(e[t.name]))for(let r of e[t.name])r&&typeof r=="object"&&b(r,t.fields);else if(t.type==="blocks"&&t.name&&Array.isArray(t.blocks)&&Array.isArray(e[t.name]))for(let r of e[t.name]){if(!r||typeof r!="object")continue;let a=r.type||r.blockType;if(!a)continue;let s=t.blocks.find(i=>i.slug===a);if(!s||!Array.isArray(s.fields))continue;let l=r.data&&typeof r.data=="object"?r.data:r;b(l,s.fields);}}}async function p(e,o,t){let n=await chunkISWMETHJ_cjs.a(e,o,{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey});if(!n.allowed)throw new Error(n.error||"Access denied");t.tenantID&&t.db.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});}function A(e){return async o=>{let{collection:t,where:n,sort:r,limit:a,page:s,depth:l,select:i,draft:d}=o,c=e.registry.getCollection(t);if(await p(c,"read",e),c.hooks?.beforeRead)for(let f of c.hooks.beforeRead)await f({collection:t,req:e.req,user:e.user,tenantID:e.tenantID,operation:"read",where:n});let u=d??!!e.user,D=await e.db.find({collection:t,where:n||{},sort:r,limit:a||10,page:s||1,depth:l||0,tenantID:e.tenantID,select:i,draft:u});if(c.hooks?.afterRead)for(let f of D.docs)for(let I of c.hooks.afterRead)await I({collection:t,doc:f,req:e.req,user:e.user,tenantID:e.tenantID,operation:"read"});return D}}function C(e){return async o=>{let{collection:t,id:n,depth:r,select:a,draft:s}=o,l=e.registry.getCollection(t);await p(l,"read",e);let i=s??!!e.user,d=await e.db.findByID({collection:t,id:n,depth:r||0,tenantID:e.tenantID,select:a,draft:i});if(!d)throw new Error(`Document not found: ${t}/${n}`);if(l.hooks?.afterRead)for(let c of l.hooks.afterRead)await c({collection:t,doc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"read",id:n});return d}}function R(e){return async o=>{let{collection:t,data:n,depth:r,select:a}=o,s=e.registry.getCollection(t);await p(s,"create",e);let i=e.registry.getCreateZodSchema(t).parse(n);if(s.tenantScoped&&e.tenantID&&(i.tenantID=e.tenantID),s.hooks?.beforeValidate)for(let c of s.hooks.beforeValidate){let u=await c({collection:t,data:i,req:e.req,user:e.user,tenantID:e.tenantID,operation:"create"});u&&Object.assign(i,u);}if(s.hooks?.beforeChange)for(let c of s.hooks.beforeChange){let u=await c({collection:t,data:i,req:e.req,user:e.user,tenantID:e.tenantID,operation:"create"});u&&Object.assign(i,u);}let d=await e.db.create({collection:t,data:i,depth:r||0,tenantID:e.tenantID,select:a});if(s.hooks?.afterChange)for(let c of s.hooks.afterChange)await c({collection:t,doc:d,data:i,req:e.req,user:e.user,tenantID:e.tenantID,operation:"create"});return await k(e,w(t,"create"),{collection:t,data:d,operation:"create"}),{doc:d}}}function q(e){return async o=>{let{collection:t,id:n,data:r,depth:a,select:s,baseUpdatedAt:l}=o,i=e.registry.getCollection(t);await p(i,"update",e);let d=await e.db.findByID({collection:t,id:n,tenantID:e.tenantID,draft:true});if(!d)throw new Error(`Document not found: ${t}/${n}`);if(l&&d.updatedAt&&l!==d.updatedAt)throw new Error(`Revision conflict: document has changed since ${l}. Current updatedAt: ${d.updatedAt}`);b(r,i.fields);let u=e.registry.getUpdateZodSchema(t).parse(r);if(i.tenantScoped&&e.tenantID&&(u.tenantID=e.tenantID),i.hooks?.beforeValidate)for(let g of i.hooks.beforeValidate){let h=await g({collection:t,data:u,originalDoc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"update",id:n});h&&Object.assign(u,h);}if(i.hooks?.beforeChange)for(let g of i.hooks.beforeChange){let h=await g({collection:t,data:u,originalDoc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"update",id:n});h&&Object.assign(u,h);}let D=e.req&&typeof e.req.headers?.get=="function"&&e.req.headers.get("x-draft")==="true"||o.draft===true,f=i.versions?.drafts===true,I=e.req?.query?.autosave==="true"||e.req?.url?.includes("autosave=true")||o.autosave===true,y;if(f&&D?(await e.db.createVersion({collection:t,documentId:n,data:u,status:"draft",autosave:I,createdBy:e.user?.id,tenantID:e.tenantID}),y=await e.db.findByID({collection:t,id:n,tenantID:e.tenantID,draft:true})):f?(y=await e.db.update({collection:t,id:n,data:{...u,status:"published"},depth:a||0,tenantID:e.tenantID,select:s}),await e.db.createVersion({collection:t,documentId:n,data:u,status:"published",createdBy:e.user?.id,tenantID:e.tenantID})):y=await e.db.update({collection:t,id:n,data:u,depth:a||0,tenantID:e.tenantID,select:s}),i.hooks?.afterChange)for(let g of i.hooks.afterChange)await g({collection:t,doc:y,data:u,originalDoc:d,req:e.req,user:e.user,tenantID:e.tenantID,operation:"update",id:n});return await k(e,w(t,"update"),{collection:t,data:y,previousData:d,operation:"update"}),{doc:y}}}function P(e){return async o=>{let{collection:t,id:n}=o,r=e.registry.getCollection(t);await p(r,"delete",e);let a=await e.db.findByID({collection:t,id:n,tenantID:e.tenantID,draft:true});if(!a)throw new Error(`Document not found: ${t}/${n}`);if(r.hooks?.beforeDelete)for(let l of r.hooks.beforeDelete)await l({collection:t,doc:a,req:e.req,user:e.user,tenantID:e.tenantID,operation:"delete",id:n});let s=await e.db.delete({collection:t,id:n,tenantID:e.tenantID});if(r.hooks?.afterDelete)for(let l of r.hooks.afterDelete)await l({collection:t,doc:s,req:e.req,user:e.user,tenantID:e.tenantID,operation:"delete",id:n});return await k(e,w(t,"delete"),{collection:t,data:s,previousData:a,operation:"delete"}),{doc:s,message:"Deleted successfully"}}}function v(e){return async o=>{let{collection:t,where:n}=o,r=e.registry.getCollection(t);return await p(r,"read",e),{totalDocs:await e.db.count({collection:t,where:n||{},tenantID:e.tenantID})}}}async function F(e,o,t){let n=await chunkISWMETHJ_cjs.b(e,o,{user:t.user,req:t.req,tenantID:t.tenantID});if(!n.allowed)throw new Error(n.error||"Access denied");t.tenantID&&t.db.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});}function U(e){let o={},t=e.registry.getCollections();for(let r of t){let a=r.slug;o[a]={find:A(e),findByID:C(e),create:R(e),update:q(e),delete:P(e),count:v(e)};}let n=e.registry.getGlobals();for(let r of n){let a=r.slug;o[`_globals_${a}`]={get:async()=>(await F(r,"read",e),await e.db.findOne({collection:`_globals_${a}`,where:{},tenantID:e.tenantID})),update:async s=>{await F(r,"update",e);let i=e.registry.getZodSchema(a).parse(s.data),d=await e.db.findOne({collection:`_globals_${a}`,where:{},tenantID:e.tenantID,draft:true}),c;return d?c=await e.db.update({collection:`_globals_${a}`,id:d.id,data:i,tenantID:e.tenantID}):c=await e.db.create({collection:`_globals_${a}`,data:{...i,id:a},tenantID:e.tenantID}),c}};}return o}function W(e){if(e.settings?.access?.apiAccess?.trpcEnabled===false)throw new Error("tRPC API is disabled");return U(e)}exports.a=$;exports.b=A;exports.c=C;exports.d=R;exports.e=q;exports.f=P;exports.g=v;exports.h=U;exports.i=W;
@@ -1,2 +0,0 @@
1
- import {h,a}from'./chunk-HLSB2MCK.js';import {a as a$1}from'./chunk-KDNYHLD2.js';import {GraphQLScalarType,Kind,GraphQLObjectType,GraphQLString,GraphQLInputObjectType,GraphQLBoolean,GraphQLInt,GraphQLList,GraphQLNonNull,GraphQLSchema,GraphQLUnionType,GraphQLFloat}from'graphql';export{printSchema as e}from'graphql';var H=class{db;tenantID;user;caches=new Map;pending=new Map;waiting=new Map;flushScheduled=false;constructor(n){this.db=n.db,this.tenantID=n.tenantID,this.user=n.user;}getCacheKey(n){return n}async load(n,a){let l=this.getCacheKey(n),p=this.caches.get(l);if(p||(p=new Map,this.caches.set(l,p)),p.has(a))return p.get(a);let s=this.pending.get(l);return s||(s=new Set,this.pending.set(l,s)),s.add(a),p.set(a,void 0),this.flushScheduled||(this.flushScheduled=true,queueMicrotask(()=>{this.flushScheduled=false,this.flushAll();})),new Promise(o=>{let i=this.waiting.get(`${l}:${a}`);i||(i=[],this.waiting.set(`${l}:${a}`,i)),i.push(o);})}async flushAll(){for(let[n,a]of this.pending){if(a.size===0)continue;let l=this.caches.get(n),p=await this.db.find({collection:n,where:{id:{in:Array.from(a)}},limit:a.size,tenantID:this.tenantID,draft:!!this.user});for(let s of p.docs||[])if(s&&s.id){l.set(s.id,s);let o=this.waiting.get(`${n}:${s.id}`);o&&(o.forEach(i=>i(s)),this.waiting.delete(`${n}:${s.id}`));}}for(let[n,a]of this.waiting)a.forEach(l=>l(void 0));this.waiting.clear(),this.pending.clear();}resolveOne(n,a){return this.caches.get(this.getCacheKey(n))?.get(a)}},R=new GraphQLScalarType({name:"JSON",description:"Arbitrary JSON value",serialize(e){return e},parseValue(e){return e},parseLiteral(e){switch(e.kind){case Kind.STRING:return e.value;case Kind.INT:case Kind.FLOAT:return parseFloat(e.value);case Kind.BOOLEAN:return e.value;case Kind.OBJECT:{let n={};for(let a of e.fields)n[a.name.value]=R.parseLiteral(a.value);return n}case Kind.LIST:return e.values.map(n=>R.parseLiteral(n));case Kind.NULL:return null;default:return null}}});function se(e){return n=>{let a=0;return {Field(){a++,a>e&&n.reportError(new Error(`Query exceeds max depth of ${e}`));},leaveField(){a--;}}}}function D(e){return e.split(/[-_]/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join("")}function z(e){let n=D(e);return n.charAt(0).toLowerCase()+n.slice(1)}function v(e){return e.endsWith("s")&&e.length>1?e.slice(0,-1):e}async function j(e,n,a$2){let l=e.access?.[n];if(a$2.apiKey){if(a$2.apiKey.permissions?.length>0){let s=e.slug,i=`${s}:${n==="read"?"read":n==="create"?"create":"update"}`;return !h(a$2.apiKey.permissions,i)&&!h(a$2.apiKey.permissions,`${s}:admin`)?{allowed:false}:{allowed:true}}if(l){let s=await a(l,{req:a$2.req,user:a$2.user,tenantID:a$2.tenantID});return typeof s=="boolean"?{allowed:s}:{allowed:true,extraWhere:s}}return {allowed:true}}if(a$2.user){let s=e.slug,i=`${s}:${n==="read"?"read":n==="create"?"create":n==="update"?"update":"delete"}`;if(!a$1({id:a$2.user.id,email:a$2.user.email,role:a$2.user.role},i)&&!a$1({id:a$2.user.id,email:a$2.user.email,role:a$2.user.role},`${s}:admin`)&&!l)return {allowed:false}}if(!l)return a$2.user?{allowed:true}:{allowed:false};let p=await a(l,{req:a$2.req,user:a$2.user,tenantID:a$2.tenantID});return typeof p=="boolean"?{allowed:p}:{allowed:true,extraWhere:p}}async function Y(e,n,a$1){let l=e.access?.[n];if(a$1.apiKey){if(a$1.apiKey.permissions?.length>0){let s=e.slug,o=`${s}:${n}`;return !h(a$1.apiKey.permissions,o)&&!h(a$1.apiKey.permissions,`${s}:admin`)&&!h(a$1.apiKey.permissions,`${s}:*`)?{allowed:false}:{allowed:true}}if(l){let s=await a(l,{req:a$1.req,user:a$1.user,tenantID:a$1.tenantID});return {allowed:typeof s=="boolean"?s:true}}return {allowed:true}}if(!l){if(!a$1.user)return {allowed:false};let s=a$1.user.role;return s==="super_admin"||s==="admin"?{allowed:true}:{allowed:false}}let p=await a(l,{req:a$1.req,user:a$1.user,tenantID:a$1.tenantID});return typeof p=="boolean"?{allowed:p}:{allowed:true}}function X(e,n){return e?e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:")||e.startsWith("data:")?e:`${(process.env.KYRO_BASE_URL||n||"http://localhost:4321").replace(/\/+$/,"")}${e.startsWith("/")?"":"/"}${e}`:null}function K(e,n){return e&&(e.url&&(e.url=X(e.url,n)),e.thumbnailUrl&&(e.thumbnailUrl=X(e.thumbnailUrl,n)),e)}function k(e,n,a,l=false,p="Root",s=new Map){switch(e.type){case "text":case "email":case "password":case "textarea":case "color":case "code":case "markdown":case "date":case "select":case "radio":return GraphQLString;case "upload":{let o=e;if(l)return o.hasMany?new GraphQLList(GraphQLString):GraphQLString;if(o.relationTo&&a?.[o.relationTo]){let i=a[o.relationTo];return o.hasMany?new GraphQLList(i):i}return R}case "image":{if(l)return GraphQLString;let o=e;return o.relationTo&&a?.[o.relationTo]?a[o.relationTo]:R}case "number":return e.integer?GraphQLInt:GraphQLFloat;case "checkbox":return GraphQLBoolean;case "json":case "richtext":return R;case "blocks":{if(l)return R;let o=e,i=(o.blocks||[]).map(I=>{let b=`Block_${D(I.slug)}`,w=s.get(b);return w||(w=new GraphQLObjectType({name:b,fields:()=>{let f=M(I.fields||[],n,a,b,s);return f.blockType={type:GraphQLString},f.name={type:GraphQLString},f}}),s.set(b,w)),w});if(i.length===0)return R;let d=`${p}_${D(o.name)}_Blocks`,T=s.get(d);return T||(T=new GraphQLUnionType({name:d,types:i,resolveType:I=>`Block_${D(I.blockType||I.type)}`}),s.set(d,T)),new GraphQLList(T)}case "tabs":{if(l)return R;let o=e,i=`${p}_${D(o.name)}_Tabs`,d=s.get(i);return d||(d=new GraphQLObjectType({name:i,fields:()=>M(o.tabs?.flatMap(T=>T.fields||[])||[],n,a,i,s)}),s.set(i,d)),d}case "relationship":if(typeof e.relationTo=="string"){if(l)return e.hasMany?new GraphQLList(GraphQLString):GraphQLString;if(a?.[e.relationTo])return e.hasMany?new GraphQLList(a[e.relationTo]):a[e.relationTo];let o=n.getCollection(e.relationTo);if(o)return new GraphQLObjectType({name:`${D(e.relationTo)}Ref`,fields:()=>({id:{type:GraphQLString},...Z(o,n,a,s)})})}return R;case "array":{if(l)return new GraphQLList(R);let o=e,i=`${p}_${D(o.name)}_ArrayItem`,d=s.get(i);return d||(d=new GraphQLObjectType({name:i,fields:()=>{let T=M(o.fields||[],n,a,i,s);return T.id={type:GraphQLString},T}}),s.set(i,d)),new GraphQLList(d)}case "group":{if(l)return R;let o=e,i=`${p}_${D(o.name)}_Group`,d=s.get(i);return d||(d=new GraphQLObjectType({name:i,fields:()=>M(o.fields||[],n,a,i,s)}),s.set(i,d)),d}default:return GraphQLString}}function M(e,n,a,l,p=new Map){let s={};for(let o of e){if(o.type==="tabs"&&!o.name){for(let i of o.tabs||[]){let d=M(i.fields||[],n,a,l,p);Object.assign(s,d);}continue}if(o.type==="row"||o.type==="collapsible"){let i=M(o.fields||[],n,a,l,p);Object.assign(s,i);continue}if(o.name&&o.admin?.hidden!==true){let i=ie(o,n,a,l,p);i&&(s[o.name]=i);}}return s}function Z(e,n,a,l=new Map){return M(e.fields,n,a,D(v(e.slug)),l)}function ie(e,n,a,l,p=new Map){if(!e.name)return null;let s=e.deprecated||void 0;if(e.type==="upload"){let i=k(e,n,a,false,l,p),d=e;return {type:e.required?new GraphQLNonNull(i):i,description:e.admin?.description||e.label,deprecationReason:s,resolve:async(T,I,b)=>{let w=b?.relationLoader,f=T?.[d.name],c=b?.req?.url?new URL(b.req.url).origin:void 0;if(!f)return null;if(d.hasMany){let g=Array.isArray(f)?f:[];return Promise.all(g.map(async h=>{let G=typeof h=="string"?h:h?.id;if(!G||typeof h=="object"&&h?.url)return K(h,c);if(w){let S=w.resolveOne(d.relationTo,G);if(S)return K(S,c);let r=await w.load(d.relationTo,G);if(r)return K(r,c)}return {id:G}}))}let m=typeof f=="string"?f:f?.id;if(!m||typeof f=="object"&&f?.url)return K(f,c);if(w){let g=w.resolveOne(d.relationTo,m);if(g)return K(g,c);let h=await w.load(d.relationTo,m);if(h)return K(h,c)}return {id:m}}}}if(e.type==="relationship"&&!e.hasMany){let i=k(e,n,a,false,l,p);return {type:e.required?new GraphQLNonNull(i):i,description:e.admin?.description||e.label,deprecationReason:s,resolve:async(d,T,I)=>{let b=I?.relationLoader,w=e,f=d?.[w.name];if(!f)return null;let c=Array.isArray(w.relationTo),m=c?f?.relationTo:w.relationTo,g=c?f?.value:f;if(c&&typeof f=="string"&&(m=w.relationTo[0],g=f),b&&typeof g=="string"&&typeof m=="string"){let h=b.resolveOne(m,g);if(h)return c?{relationTo:m,value:h}:h;let G=await b.load(m,g);if(G)return c?{relationTo:m,value:G}:G}return c?{relationTo:m,value:{id:g}}:{id:g}}}}if(e.type==="relationship"&&e.hasMany)return {type:k(e,n,a,false,l,p),description:e.admin?.description||e.label,deprecationReason:s,resolve:async(d,T,I)=>{let b=I?.relationLoader,w=e,f=d?.[w.name]||[];if(!f.length)return [];let c=Array.isArray(w.relationTo);if(b){let m=[];for(let g of f){let h=c?g?.relationTo:w.relationTo,G=c?g?.value:g;if(c&&typeof g=="string"&&(h=w.relationTo[0],G=g),typeof G!="string"||typeof h!="string"){m.push(g);continue}let S=b.resolveOne(h,G);if(S)m.push(c?{relationTo:h,value:S}:S);else {let r=await b.load(h,G);m.push(c?{relationTo:h,value:r||{id:G}}:r||{id:G});}}return m}return f.map(m=>{let g=c?m?.relationTo:w.relationTo,h=c?m?.value:m;return c&&typeof m=="string"&&(g=w.relationTo[0],h=m),c?{relationTo:g,value:{id:h}}:{id:h}})}};if(e.type==="blocks"){let i=k(e,n,a,false,l,p);return {type:e.required?new GraphQLNonNull(i):i,description:e.admin?.description||e.label,deprecationReason:s,resolve:d=>{let T=d?.[e.name];return Array.isArray(T)?T.map(I=>I&&I.data&&I.type?{...I.data,id:I.id,type:I.type,blockType:I.type,name:I.name}:I):T}}}let o=k(e,n,a,false,l,p);return {type:e.required?new GraphQLNonNull(o):o,description:e.admin?.description||e.label,deprecationReason:s}}function x(e){let{registry:n,db:a,user:l,req:p,tenantID:s,apiKey:o,settings:i}=e;if(i?.access?.apiAccess?.graphqlEnabled===false)throw new Error("GraphQL API is disabled");let T=n.getCollections(),I=n.getGlobals(),b={},w={},f=new Map;for(let r of T){b[r.slug]=new GraphQLObjectType({name:D(v(r.slug)),fields:()=>({id:{type:GraphQLString},...Z(r,n,b,f),...r.timestamps?{createdAt:{type:GraphQLString},updatedAt:{type:GraphQLString}}:{},...r.tenantScoped?{tenantID:{type:GraphQLString}}:{}})});let Q={};for(let q of r.fields)q.name&&q.name!=="id"&&(Q[q.name]={type:k(q,n,b,true)});w[r.slug]=new GraphQLInputObjectType({name:`${D(v(r.slug))}Input`,fields:()=>Q});}let c={},m={};for(let r of I)c[r.slug]=new GraphQLObjectType({name:`${D(r.slug)}Global`,fields:()=>({id:{type:GraphQLString},...Z({slug:r.slug,fields:r.fields},n,b)})}),m[r.slug]=new GraphQLInputObjectType({name:`${D(r.slug)}GlobalInput`,fields:()=>{let Q={};for(let q of r.fields)q.name&&q.name!=="id"&&(Q[q.name]={type:k(q,n,b,true)});return Q}});let g={};for(let r of T){let Q=b[r.slug];Q&&(g[z(r.slug)]={type:new GraphQLObjectType({name:`${D(v(r.slug))}FindResult`,fields:{docs:{type:new GraphQLList(Q)},totalDocs:{type:GraphQLInt},page:{type:GraphQLInt},totalPages:{type:GraphQLInt},hasNextPage:{type:GraphQLBoolean},hasPrevPage:{type:GraphQLBoolean}}}),args:{where:{type:GraphQLString},sort:{type:GraphQLString},limit:{type:GraphQLInt},page:{type:GraphQLInt},draft:{type:GraphQLBoolean}},resolve:async(q,L,t)=>{let u=await j(r,"read",{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey});if(!u.allowed)throw new Error("Access denied");t.tenantID&&a.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});let A={};if(L.where)try{A=JSON.parse(L.where);}catch{}u.extraWhere&&(A={...A,...u.extraWhere});let F=L.draft??!!t.user;return a.find({collection:r.slug,where:A,sort:L.sort,limit:L.limit||10,page:L.page||1,tenantID:t.tenantID,draft:F})}},g[z(v(r.slug))]={type:Q,args:{id:{type:GraphQLString},slug:{type:GraphQLString},draft:{type:GraphQLBoolean}},resolve:async(q,L,t)=>{if(!L.id&&!L.slug)throw new Error("Either id or slug is required");if(!(await j(r,"read",{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey})).allowed)throw new Error("Access denied");t.tenantID&&a.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});let A=L.draft??!!t.user;return L.id?a.findByID({collection:r.slug,id:L.id,tenantID:t.tenantID,draft:A}):(await a.find({collection:r.slug,where:{slug:{equals:L.slug}},limit:1,page:1,tenantID:t.tenantID,draft:A})).docs?.[0]||null}},g[`count${D(r.slug)}`]={type:new GraphQLObjectType({name:`${D(v(r.slug))}Count`,fields:{totalDocs:{type:GraphQLInt}}}),args:{where:{type:GraphQLString}},resolve:async(q,L,t)=>{if(!(await j(r,"read",{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey})).allowed)return {totalDocs:0};let A={};if(L.where)try{A=JSON.parse(L.where);}catch{}return {totalDocs:await a.count({collection:r.slug,where:A,tenantID:t.tenantID})}}});}for(let r of I){let Q=c[r.slug];Q&&(g[z(v(r.slug))]={type:Q,resolve:async(q,L,t)=>{if(!(await Y(r,"read",{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey})).allowed)throw new Error("Access denied: cannot read global");return t.tenantID&&a.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"}),a.findOne({collection:`_globals_${r.slug}`,where:{},tenantID:t.tenantID})}});}let h=new GraphQLObjectType({name:"Query",fields:g}),G={};for(let r of T){let Q=b[r.slug],q=w[r.slug];!Q||!q||(G[`create${D(v(r.slug))}`]={type:new GraphQLObjectType({name:`${D(v(r.slug))}CreateResult`,fields:{doc:{type:Q},message:{type:GraphQLString}}}),args:{data:{type:new GraphQLNonNull(q)}},resolve:async(L,t,u)=>{if(!(await j(r,"create",{user:u.user,req:u.req,tenantID:u.tenantID,apiKey:u.apiKey})).allowed)throw new Error("Access denied: cannot create");u.tenantID&&a.setTenantContext({tenantId:u.tenantID,userId:u.user?.id??"",role:u.user?.role,isSuperAdmin:u.user?.role==="super_admin"});let N=n.getCreateZodSchema(r.slug).parse(t.data);return {doc:await a.create({collection:r.slug,data:N,tenantID:u.tenantID}),message:"Created successfully"}}},G[`update${D(v(r.slug))}`]={type:new GraphQLObjectType({name:`${D(v(r.slug))}UpdateResult`,fields:{doc:{type:Q},message:{type:GraphQLString}}}),args:{id:{type:new GraphQLNonNull(GraphQLString)},data:{type:new GraphQLNonNull(q)},baseUpdatedAt:{type:GraphQLString}},resolve:async(L,t,u)=>{if(!(await j(r,"update",{user:u.user,req:u.req,tenantID:u.tenantID,apiKey:u.apiKey})).allowed)throw new Error("Access denied: cannot update");if(u.tenantID&&a.setTenantContext({tenantId:u.tenantID,userId:u.user?.id??"",role:u.user?.role,isSuperAdmin:u.user?.role==="super_admin"}),t.baseUpdatedAt){let W=await a.findByID({collection:r.slug,id:t.id,tenantID:u.tenantID,draft:true});if(W&&W.updatedAt&&t.baseUpdatedAt!==W.updatedAt)throw new Error(`Revision conflict: document has changed since ${t.baseUpdatedAt}. Current updatedAt: ${W.updatedAt}`)}let N=n.getUpdateZodSchema(r.slug).parse(t.data);return {doc:await a.update({collection:r.slug,id:t.id,data:N,tenantID:u.tenantID}),message:"Updated successfully"}}},G[`delete${D(v(r.slug))}`]={type:new GraphQLObjectType({name:`${D(v(r.slug))}DeleteResult`,fields:{doc:{type:Q},message:{type:GraphQLString}}}),args:{id:{type:new GraphQLNonNull(GraphQLString)}},resolve:async(L,t,u)=>{if(!(await j(r,"delete",{user:u.user,req:u.req,tenantID:u.tenantID,apiKey:u.apiKey})).allowed)throw new Error("Access denied: cannot delete");return u.tenantID&&a.setTenantContext({tenantId:u.tenantID,userId:u.user?.id??"",role:u.user?.role,isSuperAdmin:u.user?.role==="super_admin"}),{doc:await a.delete({collection:r.slug,id:t.id,tenantID:u.tenantID}),message:"Deleted successfully"}}});}for(let r of I){let Q=m[r.slug];Q&&(G[`update${D(r.slug)}`]={type:new GraphQLObjectType({name:`${D(r.slug)}UpdateResult`,fields:{doc:{type:c[r.slug]||GraphQLString},message:{type:GraphQLString}}}),args:{data:{type:new GraphQLNonNull(Q)}},resolve:async(q,L,t)=>{if(!(await Y(r,"update",{user:t.user,req:t.req,tenantID:t.tenantID,apiKey:t.apiKey})).allowed)throw new Error("Access denied: cannot update global");t.tenantID&&a.setTenantContext({tenantId:t.tenantID,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});let A=await a.findOne({collection:`_globals_${r.slug}`,where:{},tenantID:t.tenantID}),F;return A?F=await a.update({collection:`_globals_${r.slug}`,id:A.id,data:L.data,tenantID:t.tenantID}):F=await a.create({collection:`_globals_${r.slug}`,data:L.data,tenantID:t.tenantID}),{doc:F,message:"Updated successfully"}}});}let S=new GraphQLObjectType({name:"Mutation",fields:G});return new GraphQLSchema({query:h,mutation:S})}function oe(e,n,a){return x({registry:e,db:n,user:a?.user,req:a?.req,tenantID:a?.tenantID,apiKey:a?.apiKey})}
2
- export{H as a,se as b,x as c,oe as d};
@@ -1 +0,0 @@
1
- 'use strict';var chunkNY47CFVP_cjs=require('./chunk-NY47CFVP.cjs'),chunkQ3Q7BJVQ_cjs=require('./chunk-Q3Q7BJVQ.cjs'),crypto=require('crypto');var O={COLLECTION_CREATE:"collection.create",COLLECTION_UPDATE:"collection.update",COLLECTION_DELETE:"collection.delete",MEDIA_UPLOAD:"media.upload",MEDIA_DELETE:"media.delete",AUTH_LOGIN:"auth.login",AUTH_REGISTER:"auth.register",AUTH_LOGOUT:"auth.logout",ORDER_CREATED:"order.created",ORDER_PAID:"order.paid",ORDER_SHIPPED:"order.shipped",ORDER_DELIVERED:"order.delivered"},I=Object.values(O),h="_webhooks",b="_webhook_deliveries";function R(o,e){return `sha256=${crypto.createHmac("sha256",e).update(o).digest("hex")}`}function v(){return crypto.randomBytes(32).toString("hex")}async function A(o,e,s={}){let r=s.timeout||3e4,t=Date.now(),n=JSON.stringify(e),a={"Content-Type":"application/json","User-Agent":"Kyro-CMS-Webhook/1.0","X-Webhook-Event":e.event,"X-Webhook-Delivery":e.id,"X-Webhook-Timestamp":e.timestamp,...o.headers||{}};if(o.secret){let c=R(n,o.secret);a["X-Webhook-Signature"]=c;}let i=new AbortController,u=setTimeout(()=>i.abort(),r);try{let c=await fetch(o.url,{method:"POST",headers:a,body:n,signal:i.signal});clearTimeout(u);let g=Date.now()-t,d;try{d=(await c.text()).slice(0,1e3);}catch{}let l={success:c.ok,status:c.status,statusText:c.statusText,body:d,duration:g};return l.success&&s.onSuccess?s.onSuccess(l):!l.success&&s.onFailure&&s.onFailure(`HTTP ${c.status}: ${c.statusText}`),l}catch(c){clearTimeout(u);let g=Date.now()-t,d=c.name==="AbortError"?`Request timed out after ${r}ms`:c.message||"Unknown error";return s.onFailure&&s.onFailure(d),{success:false,status:0,duration:g,error:d}}}async function E(o,e,s,r={}){let t=r.maxRetries??5,n=r.retryDelay??1e3,a=null;for(let i=0;i<=t;i++){if(i>0){let u=Math.min(n*Math.pow(2,i-1),3e4);r.onRetry&&r.onRetry(i,`Retrying in ${u}ms...`),await _(u);}if(r.onRetry&&i>0&&r.onRetry(i,`Attempt ${i+1}/${t+1}`),a=await A(o,e,{...r,onRetry:void 0,onSuccess:void 0,onFailure:void 0}),a.success)return a;if(!(a.error?.includes("timed out")&&i<t)&&a.status>=400&&a.status<500)return a}return a||{success:false,status:0,duration:0,error:"All delivery attempts failed"}}function D(o,e,s,r,t,n){return {id:o,webhookId:e,event:s,payload:r,attempt:t,status:n.success?"success":"failed",responseStatus:n.status||void 0,responseBody:n.body,duration:n.duration,error:n.error,createdAt:new Date().toISOString(),deliveredAt:n.success?new Date().toISOString():void 0}}function _(o){return new Promise(e=>setTimeout(e,o))}function L(){return {id:`test_${Date.now()}`,event:"collection.create",timestamp:new Date().toISOString(),collection:"test",operation:"create",data:{message:"This is a test webhook delivery"},user:{id:"system",email:"system@kyro.dev",role:"super_admin"}}}var f=class{db;constructor(e){this.db=e;}async getWebhooks(e){let r=(await this.db.find({collection:h,where:e?.status?{status:{equals:e.status}}:{},limit:100,page:1,draft:true})).docs;return e?.event?r.filter(t=>t.events.includes(e.event)):r}async getWebhookById(e){return this.db.findByID({collection:h,id:e,draft:true})}async createWebhook(e){let s=new Date().toISOString(),r=e.secret||v(),t={id:crypto.randomUUID(),name:e.name,url:e.url,events:e.events,status:e.status||"active",secret:r,headers:e.headers||{},createdAt:s,updatedAt:s};return await this.db.create({collection:h,data:t}),t}async updateWebhook(e,s){let r=await this.getWebhookById(e);if(!r)return null;let t={...r,...s,updatedAt:new Date().toISOString()};return s.secret===""&&"secret"in s&&delete t.secret,await this.db.update({collection:h,id:e,data:t}),t}async deleteWebhook(e){await this.db.delete({collection:h,id:e});}async trigger(e,s){let r=await this.getWebhooks({status:"active",event:e});if(r.length===0)return [];let t={id:`wh_${Date.now()}_${crypto.randomUUID().slice(0,8)}`,event:e,timestamp:new Date().toISOString(),...s},n=[];for(let a of r){let i=await this.triggerWebhook(a,t);n.push(i);}return n}async triggerWebhook(e,s){let r=`dlv_${Date.now()}_${crypto.randomUUID().slice(0,8)}`;try{let t=await E(e,s,r,{maxRetries:5,retryDelay:1e3}),n=D(r,e.id,e.events[0],s,1,t);try{await this.db.create({collection:b,data:n});}catch{console.warn("[WebhookService] Failed to save delivery record:",r);}return t.success?await this.updateWebhook(e.id,{status:"active",lastTriggered:new Date().toISOString()}).catch(()=>{}):await this.updateWebhook(e.id,{status:"error",lastError:t.error}).catch(()=>{}),{deliveryId:r,webhookId:e.id,event:e.events[0],status:t.success?"success":"failed",responseStatus:t.status,duration:t.duration,error:t.error}}catch(t){return {deliveryId:r,webhookId:e.id,event:e.events[0],status:"failed",error:t.message}}}async testWebhook(e){let s=await this.getWebhookById(e);if(!s)return null;let r={id:`test_${Date.now()}`,event:s.events[0]||"collection.create",timestamp:new Date().toISOString(),collection:"test",operation:"create",data:{message:"This is a test webhook delivery from Kyro CMS"},user:{id:"system",email:"system@kyro.dev",role:"super_admin"}};return this.triggerWebhook(s,r)}async getDeliveryHistory(e,s=50){return (await this.db.find({collection:b,where:{webhookId:{equals:e}},sort:"-createdAt",limit:s,page:1})).docs}async retryDelivery(e){let s=await this.db.findByID({collection:b,id:e});if(!s)return null;let r=await this.getWebhookById(s.webhookId);return r?this.triggerWebhook(r,s.payload):null}};function B(o){return new f(o)}function C(o){return o==="read"?"read":o==="create"?"create":o==="update"?"update":"delete"}function H(o,e){return {none:false,read:o==="read",create:o==="read"||o==="create",update:o==="read"||o==="create"||o==="update",delete:o==="read"||o==="create"||o==="update"||o==="delete",admin:true}[e]||false}async function Q(o,e,s,r={}){let{user:t,req:n,tenantID:a,apiKey:i}=s,{enablePublicAccess:u=true,defaultAccess:c="none"}=r,g=o.access?.[e];if(g){let l=await chunkNY47CFVP_cjs.a(g,{req:n,user:t,tenantID:a});return l===false?{allowed:false,error:"Access denied",status:403}:typeof l=="object"?{allowed:true,extraWhere:l}:{allowed:true}}if(i?.permissions?.length>0){let l=o.slug,m=C(e),p=`${l}:${m}`;return !chunkNY47CFVP_cjs.h(i.permissions,p)&&!chunkNY47CFVP_cjs.h(i.permissions,`${l}:admin`)?{allowed:false,error:"Access denied: insufficient permissions",status:403}:{allowed:true}}if(t){let l=o.slug,m=C(e),p=`${l}:${m}`,T=chunkQ3Q7BJVQ_cjs.a({id:t.id,email:t.email,role:t.role},p),x=chunkQ3Q7BJVQ_cjs.a({id:t.id,email:t.email,role:t.role},`${l}:admin`);return T||x?{allowed:true}:{allowed:false,error:"Access denied: missing RBAC permission",status:403}}let d=H(e,c);return u&&d?{allowed:true}:{allowed:false,error:"Authentication required",status:401}}async function Z(o,e,s,r={}){let{user:t,req:n,tenantID:a}=s,{enablePublicAccess:i=true}=r,u=o.access?.[e];if(u)return await chunkNY47CFVP_cjs.a(u,{req:n,user:t,tenantID:a})===false?{allowed:false,error:"Access denied",status:403}:{allowed:true};if(t){let c=`globals:${e}`,g=chunkQ3Q7BJVQ_cjs.a({id:t.id,email:t.email,role:t.role},c),d=chunkQ3Q7BJVQ_cjs.a({id:t.id,email:t.email,role:t.role},"globals:admin");return g||d?{allowed:true}:{allowed:false,error:"Access denied: missing RBAC permission",status:403}}return i?{allowed:true}:{allowed:false,error:"Authentication required",status:401}}exports.a=Q;exports.b=Z;exports.c=O;exports.d=I;exports.e=h;exports.f=b;exports.g=R;exports.h=v;exports.i=A;exports.j=E;exports.k=D;exports.l=L;exports.m=f;exports.n=B;