@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.
- package/dist/{WebhookService-DpRB940h.d.ts → WebhookService-DREfF5Hm.d.ts} +1 -1
- package/dist/{WebhookService-Dj8pJ3sp.d.cts → WebhookService-Di_wX9gK.d.cts} +1 -1
- package/dist/api-handler-graphql.cjs +1 -1
- package/dist/api-handler-graphql.js +1 -1
- package/dist/api-handler-trpc.cjs +1 -1
- package/dist/api-handler-trpc.js +1 -1
- package/dist/api-handler.cjs +1 -1
- package/dist/api-handler.js +1 -1
- package/dist/{base-BjyoF6da.d.cts → base-CH7d01Yw.d.cts} +2 -2
- package/dist/{base-C2YR8lWt.d.ts → base-DRK_7V46.d.ts} +2 -2
- package/dist/{chunk-5H7LD62N.js → chunk-3RU6COLP.js} +2 -2
- package/dist/chunk-AG5BPMS5.js +86 -0
- package/dist/chunk-AWDITIFN.js +1 -0
- package/dist/chunk-BRJ77NA4.cjs +1 -0
- package/dist/{chunk-BL34J64W.cjs → chunk-DAQ2HLAB.cjs} +1 -1
- package/dist/chunk-HFU3VAUC.js +2 -0
- package/dist/{chunk-CFMATLA3.js → chunk-IH6MAFNI.js} +1 -1
- package/dist/{chunk-QIRWEE7V.cjs → chunk-OO6WEHO2.cjs} +1 -1
- package/dist/{chunk-YJRLS2Z3.js → chunk-PCEJHAJD.js} +1 -1
- package/dist/{chunk-RBZNQINT.cjs → chunk-QVQNJPIZ.cjs} +2 -2
- package/dist/chunk-T7IBSF5R.cjs +2 -0
- package/dist/chunk-U6R2W2SL.js +1 -0
- package/dist/chunk-V3M6TGVT.cjs +86 -0
- package/dist/chunk-V6LRMDKN.cjs +1 -0
- package/dist/cli/index.cjs +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/client.d.cts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/drizzle/index.d.cts +3 -3
- package/dist/drizzle/index.d.ts +3 -3
- package/dist/fields/index.d.cts +1 -1
- package/dist/fields/index.d.ts +1 -1
- package/dist/graphql/index.cjs +1 -1
- package/dist/graphql/index.d.cts +3 -3
- package/dist/graphql/index.d.ts +3 -3
- package/dist/graphql/index.js +1 -1
- package/dist/{index-DuuUzWBq.d.cts → index-B52AAXcJ.d.cts} +2 -2
- package/dist/{index-DXr33e0x.d.ts → index-BTFBhepB.d.ts} +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +1 -1
- package/dist/mongodb/index.d.cts +3 -3
- package/dist/mongodb/index.d.ts +3 -3
- package/dist/rest/index.cjs +1 -1
- package/dist/rest/index.d.cts +4 -4
- package/dist/rest/index.d.ts +4 -4
- package/dist/rest/index.js +1 -1
- package/dist/templates/index.cjs +1 -1
- package/dist/templates/index.d.cts +2 -2
- package/dist/templates/index.d.ts +2 -2
- package/dist/templates/index.js +1 -1
- package/dist/trpc/index.cjs +1 -1
- package/dist/trpc/index.d.cts +3 -3
- package/dist/trpc/index.d.ts +3 -3
- package/dist/trpc/index.js +1 -1
- package/dist/{types-BzH3_rtP.d.ts → types-BH7tjlpR.d.ts} +1 -1
- package/dist/{types-CY_iNunL.d.cts → types-BMu-234T.d.cts} +1 -1
- package/dist/{types-C_rVxU2T.d.cts → types-C9izrwhZ.d.cts} +4 -0
- package/dist/{types-C_rVxU2T.d.ts → types-C9izrwhZ.d.ts} +4 -0
- package/package.json +1 -1
- package/dist/chunk-7N6NKCRT.js +0 -1
- package/dist/chunk-CVVW4LXZ.cjs +0 -1
- package/dist/chunk-GPKEOELO.js +0 -2
- package/dist/chunk-ISWMETHJ.cjs +0 -1
- package/dist/chunk-RXOAX7GO.cjs +0 -86
- package/dist/chunk-TRFBYBYC.js +0 -86
- package/dist/chunk-UVTS2IWM.js +0 -1
- package/dist/chunk-ZPUIRXKS.cjs +0 -2
package/dist/mongodb/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as AbstractBaseAdapter } from '../base-
|
|
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-
|
|
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-
|
|
4
|
+
import '../types-C9izrwhZ.cjs';
|
|
5
5
|
|
|
6
6
|
declare class MongoDBAdapter extends AbstractBaseAdapter {
|
|
7
7
|
client: any;
|
package/dist/mongodb/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as AbstractBaseAdapter } from '../base-
|
|
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-
|
|
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-
|
|
4
|
+
import '../types-C9izrwhZ.js';
|
|
5
5
|
|
|
6
6
|
declare class MongoDBAdapter extends AbstractBaseAdapter {
|
|
7
7
|
client: any;
|
package/dist/rest/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
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}});
|
package/dist/rest/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
|
-
import { B as BaseAdapter, i as User } from '../types-
|
|
3
|
-
import { R as Registry } from '../index-
|
|
4
|
-
import { i as createWebhookService } from '../WebhookService-
|
|
5
|
-
import '../types-
|
|
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 {
|
package/dist/rest/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
|
-
import { B as BaseAdapter, i as User } from '../types-
|
|
3
|
-
import { R as Registry } from '../index-
|
|
4
|
-
import { i as createWebhookService } from '../WebhookService-
|
|
5
|
-
import '../types-
|
|
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 {
|
package/dist/rest/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{s as createHonoApp,t as createRESTAPI}from'../chunk-
|
|
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';
|
package/dist/templates/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
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-
|
|
2
|
-
import '../types-
|
|
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-
|
|
2
|
-
import '../types-
|
|
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
|
|
package/dist/templates/index.js
CHANGED
|
@@ -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-
|
|
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';
|
package/dist/trpc/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
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}});
|
package/dist/trpc/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as BaseAdapter, R as Request, i as User, b as FindResult } from '../types-
|
|
2
|
-
import { i as createWebhookService } from '../WebhookService-
|
|
3
|
-
import '../types-
|
|
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;
|
package/dist/trpc/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as BaseAdapter, R as Request, i as User, b as FindResult } from '../types-
|
|
2
|
-
import { i as createWebhookService } from '../WebhookService-
|
|
3
|
-
import '../types-
|
|
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;
|
package/dist/trpc/index.js
CHANGED
|
@@ -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-
|
|
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';
|
|
@@ -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
package/dist/chunk-7N6NKCRT.js
DELETED
|
@@ -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};
|
package/dist/chunk-CVVW4LXZ.cjs
DELETED
|
@@ -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;
|
package/dist/chunk-GPKEOELO.js
DELETED
|
@@ -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};
|
package/dist/chunk-ISWMETHJ.cjs
DELETED
|
@@ -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;
|