@kyro-cms/core 0.9.0 → 0.9.2

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 (265) hide show
  1. package/README.md +55 -593
  2. package/dist/{WebhookService-AefJfqX0.d.cts → WebhookService-BKszZlG0.d.cts} +1 -1
  3. package/dist/{WebhookService-118ZTFis.d.ts → WebhookService-Ccf1j-IN.d.ts} +1 -1
  4. package/dist/api-handler-graphql.cjs +44 -0
  5. package/dist/api-handler-graphql.cjs.map +1 -0
  6. package/dist/api-handler-graphql.d.cts +6 -0
  7. package/dist/api-handler-graphql.d.ts +6 -0
  8. package/dist/api-handler-graphql.js +41 -0
  9. package/dist/api-handler-graphql.js.map +1 -0
  10. package/dist/api-handler-trpc.cjs +38 -0
  11. package/dist/api-handler-trpc.cjs.map +1 -0
  12. package/dist/api-handler-trpc.d.cts +5 -0
  13. package/dist/api-handler-trpc.d.ts +5 -0
  14. package/dist/api-handler-trpc.js +36 -0
  15. package/dist/api-handler-trpc.js.map +1 -0
  16. package/dist/api-handler.cjs +33 -99
  17. package/dist/api-handler.cjs.map +1 -1
  18. package/dist/api-handler.d.cts +2 -1
  19. package/dist/api-handler.d.ts +2 -1
  20. package/dist/api-handler.js +21 -97
  21. package/dist/api-handler.js.map +1 -1
  22. package/dist/{tenant-B1YB0Jy8.d.ts → base-CIuXkrH4.d.cts} +7 -15
  23. package/dist/{tenant-Cpeveji6.d.cts → base-fFo4lqER.d.ts} +7 -15
  24. package/dist/bootstrap-3PV3GJ3S.js +7 -0
  25. package/dist/{bootstrap-JCML6NFO.js.map → bootstrap-3PV3GJ3S.js.map} +1 -1
  26. package/dist/bootstrap-4CELFLJO.cjs +32 -0
  27. package/dist/{bootstrap-AKAUP6F6.cjs.map → bootstrap-4CELFLJO.cjs.map} +1 -1
  28. package/dist/{chunk-VJT6P4N6.cjs → chunk-3HR772HI.cjs} +199 -32
  29. package/dist/chunk-3HR772HI.cjs.map +1 -0
  30. package/dist/chunk-3KTWGODI.cjs +178 -0
  31. package/dist/chunk-3KTWGODI.cjs.map +1 -0
  32. package/dist/{chunk-QXIQWPAP.js → chunk-3UK5XBVJ.js} +4 -134
  33. package/dist/chunk-3UK5XBVJ.js.map +1 -0
  34. package/dist/{chunk-FXYP2HA6.js → chunk-4AO3A3JM.js} +48 -4
  35. package/dist/chunk-4AO3A3JM.js.map +1 -0
  36. package/dist/{chunk-Z6ZWNWWR.js → chunk-4CV4JOE5.js} +3 -9
  37. package/dist/{chunk-Z6ZWNWWR.js.map → chunk-4CV4JOE5.js.map} +1 -1
  38. package/dist/chunk-4M7X5HAB.cjs +173 -0
  39. package/dist/chunk-4M7X5HAB.cjs.map +1 -0
  40. package/dist/chunk-53NYVYVX.js +3243 -0
  41. package/dist/chunk-53NYVYVX.js.map +1 -0
  42. package/dist/{chunk-35U3FROB.js → chunk-5H3MWQJS.js} +714 -184
  43. package/dist/chunk-5H3MWQJS.js.map +1 -0
  44. package/dist/{chunk-YVUJBEXE.cjs → chunk-5PMQQFRE.cjs} +16 -7
  45. package/dist/chunk-5PMQQFRE.cjs.map +1 -0
  46. package/dist/{chunk-57P6MJKC.js → chunk-6UNONDW7.js} +94 -10
  47. package/dist/chunk-6UNONDW7.js.map +1 -0
  48. package/dist/{chunk-Y3N7UUDO.js → chunk-7OGPN7MP.js} +5 -2
  49. package/dist/chunk-7OGPN7MP.js.map +1 -0
  50. package/dist/{chunk-2OL4O2TH.cjs → chunk-7OS7TX2Q.cjs} +68 -62
  51. package/dist/chunk-7OS7TX2Q.cjs.map +1 -0
  52. package/dist/{chunk-3TPQ2BU6.js → chunk-BYBMTIMT.js} +2 -6
  53. package/dist/chunk-BYBMTIMT.js.map +1 -0
  54. package/dist/{chunk-ES5HNFFT.js → chunk-CF7OL6HR.js} +4 -2
  55. package/dist/chunk-CF7OL6HR.js.map +1 -0
  56. package/dist/chunk-CJONKRHJ.js +162 -0
  57. package/dist/chunk-CJONKRHJ.js.map +1 -0
  58. package/dist/{chunk-OHVB4AJ7.js → chunk-CJX74IYK.js} +24 -18
  59. package/dist/chunk-CJX74IYK.js.map +1 -0
  60. package/dist/{chunk-5KVM3WEY.cjs → chunk-CNKT4PME.cjs} +1592 -868
  61. package/dist/chunk-CNKT4PME.cjs.map +1 -0
  62. package/dist/{chunk-G7VZBCD6.cjs → chunk-CZLDE2OZ.cjs} +2 -9
  63. package/dist/{chunk-G7VZBCD6.cjs.map → chunk-CZLDE2OZ.cjs.map} +1 -1
  64. package/dist/{chunk-WQBRWOQT.cjs → chunk-DPA3KWPY.cjs} +4 -3
  65. package/dist/chunk-DPA3KWPY.cjs.map +1 -0
  66. package/dist/{chunk-LINKCEG4.cjs → chunk-E2763JUP.cjs} +726 -196
  67. package/dist/chunk-E2763JUP.cjs.map +1 -0
  68. package/dist/chunk-E5UJBLQ7.js +220 -0
  69. package/dist/chunk-E5UJBLQ7.js.map +1 -0
  70. package/dist/{chunk-DVD5P72E.cjs → chunk-EEJUFDMF.cjs} +2 -6
  71. package/dist/chunk-EEJUFDMF.cjs.map +1 -0
  72. package/dist/chunk-FSKONGCX.cjs +253 -0
  73. package/dist/chunk-FSKONGCX.cjs.map +1 -0
  74. package/dist/{chunk-Y3QQN7PN.js → chunk-GAAHG2Z4.js} +13 -4
  75. package/dist/chunk-GAAHG2Z4.js.map +1 -0
  76. package/dist/chunk-GAOXD3XT.js +175 -0
  77. package/dist/chunk-GAOXD3XT.js.map +1 -0
  78. package/dist/{chunk-SA7NSSIQ.cjs → chunk-GUUB5EAG.cjs} +13 -187
  79. package/dist/chunk-GUUB5EAG.cjs.map +1 -0
  80. package/dist/{chunk-4DA7QPLA.cjs → chunk-GXFOGU7N.cjs} +5 -2
  81. package/dist/chunk-GXFOGU7N.cjs.map +1 -0
  82. package/dist/{chunk-I7HHI6QV.cjs → chunk-IDVRRRAK.cjs} +17 -9
  83. package/dist/chunk-IDVRRRAK.cjs.map +1 -0
  84. package/dist/{chunk-HXRD4B37.js → chunk-IPTZM3VE.js} +1423 -704
  85. package/dist/chunk-IPTZM3VE.js.map +1 -0
  86. package/dist/chunk-KC2GDBLS.cjs +84 -0
  87. package/dist/chunk-KC2GDBLS.cjs.map +1 -0
  88. package/dist/{chunk-QUW2RZTM.cjs → chunk-L46ROHUS.cjs} +51 -7
  89. package/dist/chunk-L46ROHUS.cjs.map +1 -0
  90. package/dist/chunk-L4EZKIEX.js +185 -0
  91. package/dist/chunk-L4EZKIEX.js.map +1 -0
  92. package/dist/{chunk-REK7AYOC.js → chunk-L5UKKZQN.js} +199 -32
  93. package/dist/chunk-L5UKKZQN.js.map +1 -0
  94. package/dist/chunk-NKPKR5BW.cjs +188 -0
  95. package/dist/chunk-NKPKR5BW.cjs.map +1 -0
  96. package/dist/chunk-NWUEVLQT.cjs +99 -0
  97. package/dist/chunk-NWUEVLQT.cjs.map +1 -0
  98. package/dist/{chunk-3AJE4SEG.js → chunk-OHC6UHFY.js} +208 -76
  99. package/dist/chunk-OHC6UHFY.js.map +1 -0
  100. package/dist/chunk-PHJRNPHY.cjs +3291 -0
  101. package/dist/chunk-PHJRNPHY.cjs.map +1 -0
  102. package/dist/{chunk-DXHRBMGB.js → chunk-PQ72Z6WC.js} +67 -112
  103. package/dist/chunk-PQ72Z6WC.js.map +1 -0
  104. package/dist/{chunk-K7JPTH3G.cjs → chunk-PV2I2KMI.cjs} +214 -82
  105. package/dist/chunk-PV2I2KMI.cjs.map +1 -0
  106. package/dist/{chunk-PDYFVNUX.cjs → chunk-Q23GAMLE.cjs} +71 -116
  107. package/dist/chunk-Q23GAMLE.cjs.map +1 -0
  108. package/dist/{chunk-H727JIG7.js → chunk-Q72BOAPK.js} +16 -8
  109. package/dist/chunk-Q72BOAPK.js.map +1 -0
  110. package/dist/{chunk-IBG6V56E.cjs → chunk-QFLB4EIJ.cjs} +2 -139
  111. package/dist/chunk-QFLB4EIJ.cjs.map +1 -0
  112. package/dist/{chunk-2KVHZE6O.cjs → chunk-RFFSZSCL.cjs} +282 -190
  113. package/dist/chunk-RFFSZSCL.cjs.map +1 -0
  114. package/dist/{chunk-V3LKPM3O.cjs → chunk-SHTTJMLT.cjs} +4 -2
  115. package/dist/chunk-SHTTJMLT.cjs.map +1 -0
  116. package/dist/{chunk-WOWUL7ZY.js → chunk-UUDTPZX6.js} +5 -4
  117. package/dist/chunk-UUDTPZX6.js.map +1 -0
  118. package/dist/{chunk-QPPDLRNR.js → chunk-V7KZQIZ6.js} +277 -185
  119. package/dist/chunk-V7KZQIZ6.js.map +1 -0
  120. package/dist/{chunk-3ZFYL34R.js → chunk-WXVB364T.js} +12 -185
  121. package/dist/chunk-WXVB364T.js.map +1 -0
  122. package/dist/chunk-XEB7PH2E.js +81 -0
  123. package/dist/chunk-XEB7PH2E.js.map +1 -0
  124. package/dist/{chunk-IA6AU5PI.cjs → chunk-Y7AQK4R4.cjs} +94 -10
  125. package/dist/chunk-Y7AQK4R4.cjs.map +1 -0
  126. package/dist/chunk-YFAVQQTU.js +92 -0
  127. package/dist/chunk-YFAVQQTU.js.map +1 -0
  128. package/dist/cli/index.cjs +6 -6
  129. package/dist/cli/index.cjs.map +1 -1
  130. package/dist/cli/index.js +6 -6
  131. package/dist/cli/index.js.map +1 -1
  132. package/dist/client.cjs +4 -4
  133. package/dist/client.d.cts +3 -3
  134. package/dist/client.d.ts +3 -3
  135. package/dist/client.js +2 -2
  136. package/dist/drizzle/index.cjs +15 -14
  137. package/dist/drizzle/index.d.cts +10 -14
  138. package/dist/drizzle/index.d.ts +10 -14
  139. package/dist/drizzle/index.js +6 -5
  140. package/dist/fields/index.cjs +22 -38
  141. package/dist/fields/index.d.cts +2 -22
  142. package/dist/fields/index.d.ts +2 -22
  143. package/dist/fields/index.js +2 -2
  144. package/dist/graphql/index.cjs +6 -5
  145. package/dist/graphql/index.d.cts +5 -3
  146. package/dist/graphql/index.d.ts +5 -3
  147. package/dist/graphql/index.js +4 -3
  148. package/dist/index-BKta3cBH.d.cts +277 -0
  149. package/dist/index-ClOqnkTO.d.ts +277 -0
  150. package/dist/index.cjs +310 -168
  151. package/dist/index.cjs.map +1 -1
  152. package/dist/index.d.cts +130 -211
  153. package/dist/index.d.ts +130 -211
  154. package/dist/index.js +174 -35
  155. package/dist/index.js.map +1 -1
  156. package/dist/integration.cjs +3 -3
  157. package/dist/integration.js +2 -2
  158. package/dist/media-7WDX4BDJ.js +4 -0
  159. package/dist/{media-GPPTZ43E.js.map → media-7WDX4BDJ.js.map} +1 -1
  160. package/dist/{media-XNTUFJZR.cjs → media-TUSLVRQ6.cjs} +3 -3
  161. package/dist/{media-XNTUFJZR.cjs.map → media-TUSLVRQ6.cjs.map} +1 -1
  162. package/dist/mongo-auth-adapter-GT4S7SCU.cjs +17 -0
  163. package/dist/{mongo-auth-adapter-NHHUJHVH.cjs.map → mongo-auth-adapter-GT4S7SCU.cjs.map} +1 -1
  164. package/dist/mongo-auth-adapter-M7VV4LNB.js +4 -0
  165. package/dist/{mongo-auth-adapter-NJQUUCTP.js.map → mongo-auth-adapter-M7VV4LNB.js.map} +1 -1
  166. package/dist/mongodb/index.cjs +9 -8
  167. package/dist/mongodb/index.d.cts +6 -13
  168. package/dist/mongodb/index.d.ts +6 -13
  169. package/dist/mongodb/index.js +5 -4
  170. package/dist/postgres-auth-adapter-AFAPISH7.js +5 -0
  171. package/dist/{postgres-auth-adapter-3T2NKTSE.js.map → postgres-auth-adapter-AFAPISH7.js.map} +1 -1
  172. package/dist/postgres-auth-adapter-SFDTLONT.cjs +14 -0
  173. package/dist/{postgres-auth-adapter-7IEENCKQ.cjs.map → postgres-auth-adapter-SFDTLONT.cjs.map} +1 -1
  174. package/dist/redis-adapter-UQX4EE3B.cjs +13 -0
  175. package/dist/{redis-adapter-D2E2S3GB.cjs.map → redis-adapter-UQX4EE3B.cjs.map} +1 -1
  176. package/dist/redis-adapter-XALOGWY3.js +4 -0
  177. package/dist/{redis-adapter-VQXD7ESY.js.map → redis-adapter-XALOGWY3.js.map} +1 -1
  178. package/dist/rest/index.cjs +16 -15
  179. package/dist/rest/index.d.cts +4 -4
  180. package/dist/rest/index.d.ts +4 -4
  181. package/dist/rest/index.js +14 -13
  182. package/dist/{schema-37SE2F4B.cjs → schema-6QL3USNB.cjs} +15 -15
  183. package/dist/{schema-37SE2F4B.cjs.map → schema-6QL3USNB.cjs.map} +1 -1
  184. package/dist/{schema-5PHL5IVB.js → schema-FNNWEAAW.js} +4 -4
  185. package/dist/{schema-5PHL5IVB.js.map → schema-FNNWEAAW.js.map} +1 -1
  186. package/dist/sqlite-adapter-AQB5TCGV.cjs +13 -0
  187. package/dist/{sqlite-adapter-LVK5PS4T.cjs.map → sqlite-adapter-AQB5TCGV.cjs.map} +1 -1
  188. package/dist/sqlite-adapter-N5H6IM2X.js +4 -0
  189. package/dist/{sqlite-adapter-TR3U3W6Q.js.map → sqlite-adapter-N5H6IM2X.js.map} +1 -1
  190. package/dist/templates/index.cjs +134 -32
  191. package/dist/templates/index.d.cts +52 -9
  192. package/dist/templates/index.d.ts +52 -9
  193. package/dist/templates/index.js +4 -2
  194. package/dist/trpc/index.cjs +14 -13
  195. package/dist/trpc/index.d.cts +55 -49
  196. package/dist/trpc/index.d.ts +55 -49
  197. package/dist/trpc/index.js +5 -4
  198. package/dist/{types-D6ZLRGbH.d.cts → types-CpjuXbe7.d.cts} +2 -0
  199. package/dist/{types-D6ZLRGbH.d.ts → types-CpjuXbe7.d.ts} +2 -0
  200. package/dist/{types-VtjUxIMp.d.cts → types-DeSApf9T.d.cts} +36 -14
  201. package/dist/{types-VtjUxIMp.d.ts → types-DeSApf9T.d.ts} +36 -14
  202. package/dist/{types-J3R9nVsZ.d.cts → types-Dgzlftb7.d.ts} +32 -28
  203. package/dist/{types-Bs1up4yP.d.ts → types-Ds0tCA3L.d.cts} +32 -28
  204. package/dist/ws/index.cjs +6 -6
  205. package/dist/ws/index.js +2 -2
  206. package/package.json +22 -4
  207. package/dist/bootstrap-AKAUP6F6.cjs +0 -32
  208. package/dist/bootstrap-JCML6NFO.js +0 -7
  209. package/dist/chunk-2KVHZE6O.cjs.map +0 -1
  210. package/dist/chunk-2OL4O2TH.cjs.map +0 -1
  211. package/dist/chunk-35U3FROB.js.map +0 -1
  212. package/dist/chunk-3AJE4SEG.js.map +0 -1
  213. package/dist/chunk-3J4MFTI3.js +0 -3872
  214. package/dist/chunk-3J4MFTI3.js.map +0 -1
  215. package/dist/chunk-3TPQ2BU6.js.map +0 -1
  216. package/dist/chunk-3ZFYL34R.js.map +0 -1
  217. package/dist/chunk-4DA7QPLA.cjs.map +0 -1
  218. package/dist/chunk-57P6MJKC.js.map +0 -1
  219. package/dist/chunk-5KVM3WEY.cjs.map +0 -1
  220. package/dist/chunk-6IMPH6WV.cjs +0 -3897
  221. package/dist/chunk-6IMPH6WV.cjs.map +0 -1
  222. package/dist/chunk-ATBOUGQP.cjs +0 -513
  223. package/dist/chunk-ATBOUGQP.cjs.map +0 -1
  224. package/dist/chunk-DVD5P72E.cjs.map +0 -1
  225. package/dist/chunk-DXHRBMGB.js.map +0 -1
  226. package/dist/chunk-ES5HNFFT.js.map +0 -1
  227. package/dist/chunk-FXYP2HA6.js.map +0 -1
  228. package/dist/chunk-H727JIG7.js.map +0 -1
  229. package/dist/chunk-HXRD4B37.js.map +0 -1
  230. package/dist/chunk-I7HHI6QV.cjs.map +0 -1
  231. package/dist/chunk-IA6AU5PI.cjs.map +0 -1
  232. package/dist/chunk-IBG6V56E.cjs.map +0 -1
  233. package/dist/chunk-K7JPTH3G.cjs.map +0 -1
  234. package/dist/chunk-LINKCEG4.cjs.map +0 -1
  235. package/dist/chunk-OHVB4AJ7.js.map +0 -1
  236. package/dist/chunk-PDYFVNUX.cjs.map +0 -1
  237. package/dist/chunk-Q23JB3KL.js +0 -488
  238. package/dist/chunk-Q23JB3KL.js.map +0 -1
  239. package/dist/chunk-QPPDLRNR.js.map +0 -1
  240. package/dist/chunk-QUW2RZTM.cjs.map +0 -1
  241. package/dist/chunk-QXIQWPAP.js.map +0 -1
  242. package/dist/chunk-R3XIBBAW.cjs +0 -34
  243. package/dist/chunk-R3XIBBAW.cjs.map +0 -1
  244. package/dist/chunk-REK7AYOC.js.map +0 -1
  245. package/dist/chunk-SA7NSSIQ.cjs.map +0 -1
  246. package/dist/chunk-SDMNUYVU.js +0 -30
  247. package/dist/chunk-SDMNUYVU.js.map +0 -1
  248. package/dist/chunk-V3LKPM3O.cjs.map +0 -1
  249. package/dist/chunk-VJT6P4N6.cjs.map +0 -1
  250. package/dist/chunk-WOWUL7ZY.js.map +0 -1
  251. package/dist/chunk-WQBRWOQT.cjs.map +0 -1
  252. package/dist/chunk-Y3N7UUDO.js.map +0 -1
  253. package/dist/chunk-Y3QQN7PN.js.map +0 -1
  254. package/dist/chunk-YVUJBEXE.cjs.map +0 -1
  255. package/dist/index-CLp-DRKA.d.ts +0 -64
  256. package/dist/index-DfO7G4kN.d.cts +0 -64
  257. package/dist/media-GPPTZ43E.js +0 -4
  258. package/dist/mongo-auth-adapter-NHHUJHVH.cjs +0 -17
  259. package/dist/mongo-auth-adapter-NJQUUCTP.js +0 -4
  260. package/dist/postgres-auth-adapter-3T2NKTSE.js +0 -5
  261. package/dist/postgres-auth-adapter-7IEENCKQ.cjs +0 -14
  262. package/dist/redis-adapter-D2E2S3GB.cjs +0 -13
  263. package/dist/redis-adapter-VQXD7ESY.js +0 -4
  264. package/dist/sqlite-adapter-LVK5PS4T.cjs +0 -13
  265. package/dist/sqlite-adapter-TR3U3W6Q.js +0 -4
@@ -0,0 +1,277 @@
1
+ import { C as CollectionConfig, G as GlobalConfig, P as PluginConfig } from './types-Ds0tCA3L.cjs';
2
+ import { F as Field } from './types-DeSApf9T.cjs';
3
+ import { ZodTypeAny } from 'zod';
4
+
5
+ interface S3CompatibleConfig {
6
+ bucket?: string;
7
+ region?: string;
8
+ accessKeyId?: string;
9
+ secretAccessKey?: string;
10
+ endpoint?: string;
11
+ cdnUrl?: string;
12
+ prefix?: string;
13
+ }
14
+ interface R2Config {
15
+ accountId?: string;
16
+ accessKeyId?: string;
17
+ secretAccessKey?: string;
18
+ bucket?: string;
19
+ cdnUrl?: string;
20
+ prefix?: string;
21
+ publicDevUrl?: string;
22
+ }
23
+ interface GCSConfig {
24
+ bucket?: string;
25
+ projectId?: string;
26
+ clientEmail?: string;
27
+ privateKey?: string;
28
+ cdnUrl?: string;
29
+ prefix?: string;
30
+ }
31
+ interface BackblazeConfig {
32
+ bucket?: string;
33
+ accountId?: string;
34
+ applicationKeyId?: string;
35
+ applicationKey?: string;
36
+ cdnUrl?: string;
37
+ prefix?: string;
38
+ }
39
+ interface BunnyConfig {
40
+ storageZone?: string;
41
+ apiKey?: string;
42
+ cdnUrl?: string;
43
+ prefix?: string;
44
+ }
45
+ interface FTPConfig {
46
+ host?: string;
47
+ port?: number;
48
+ user?: string;
49
+ password?: string;
50
+ secure?: boolean;
51
+ baseUrl?: string;
52
+ prefix?: string;
53
+ }
54
+ interface StorageConfig {
55
+ type: string;
56
+ s3: S3CompatibleConfig;
57
+ r2: R2Config;
58
+ gcs: GCSConfig;
59
+ digitalocean: S3CompatibleConfig;
60
+ backblaze: BackblazeConfig;
61
+ wasabi: S3CompatibleConfig;
62
+ bunny: BunnyConfig;
63
+ ftp: FTPConfig;
64
+ cloudinary: {
65
+ cloudName?: string;
66
+ apiKey?: string;
67
+ apiSecret?: string;
68
+ folder?: string;
69
+ };
70
+ imgix: {
71
+ domain?: string;
72
+ signKey?: string;
73
+ };
74
+ local: {
75
+ uploadDir?: string;
76
+ baseUrl?: string;
77
+ };
78
+ }
79
+ interface EmailConfig {
80
+ provider?: string;
81
+ host?: string;
82
+ port?: number;
83
+ secure?: boolean;
84
+ user?: string;
85
+ pass?: string;
86
+ from?: string;
87
+ fromName?: string;
88
+ replyTo?: string;
89
+ }
90
+ declare class ConfigService {
91
+ private db;
92
+ private cache;
93
+ private loaded;
94
+ private static readonly SENSITIVE_KEYS;
95
+ constructor(db: any);
96
+ /**
97
+ * Initialize the service by loading all settings from the database
98
+ */
99
+ load(): Promise<void>;
100
+ private ensureSettingsTable;
101
+ /**
102
+ * Load settings from the _globals_storage-settings table (SQLite fallback)
103
+ * Maps nested global structure to flat key-value cache
104
+ */
105
+ private loadFromGlobals;
106
+ /**
107
+ * Get a settings value with environment fallback
108
+ */
109
+ get(key: string, envKey?: string, defaultValue?: string): string | undefined;
110
+ /**
111
+ * Get storage configuration
112
+ */
113
+ getStorageConfig(): StorageConfig;
114
+ /**
115
+ * Get email configuration
116
+ */
117
+ getEmailConfig(): EmailConfig;
118
+ /**
119
+ * Mask sensitive values for display
120
+ */
121
+ maskSensitive(key: string, value: string | undefined): string | undefined;
122
+ /**
123
+ * Update a setting in the database
124
+ */
125
+ set(key: string, value: string, description?: string): Promise<void>;
126
+ }
127
+
128
+ interface UploadOptions {
129
+ folder?: string;
130
+ filename?: string;
131
+ mimeType?: string;
132
+ metadata?: Record<string, unknown>;
133
+ }
134
+ interface UploadedFile {
135
+ id: string;
136
+ filename: string;
137
+ originalName: string;
138
+ mimeType: string;
139
+ size: number;
140
+ url: string;
141
+ thumbnailUrl?: string;
142
+ width?: number;
143
+ height?: number;
144
+ folder?: string;
145
+ provider: string;
146
+ metadata?: Record<string, unknown>;
147
+ createdAt: string;
148
+ }
149
+ interface ImageTransforms {
150
+ width?: number;
151
+ height?: number;
152
+ fit?: "clip" | "crop" | "fill" | "fillmax" | "scale" | "max" | "min";
153
+ format?: "webp" | "avif" | "jpeg" | "jpg" | "png" | "gif";
154
+ quality?: number;
155
+ blur?: number;
156
+ sharpen?: number;
157
+ }
158
+ interface StorageProvider {
159
+ name: string;
160
+ displayName: string;
161
+ supportsDynamicResize: boolean;
162
+ upload(file: File, options?: UploadOptions): Promise<UploadedFile>;
163
+ uploadFromUrl(url: string, options?: UploadOptions): Promise<UploadedFile>;
164
+ delete(url: string): Promise<void>;
165
+ rename(oldUrl: string, newKey: string): Promise<string>;
166
+ getImageUrl(url: string, transforms?: ImageTransforms): string;
167
+ generateThumbnail(file: UploadedFile, size: {
168
+ width: number;
169
+ height: number;
170
+ }): Promise<string>;
171
+ list(prefix?: string): Promise<UploadedFile[]>;
172
+ exists(url: string): Promise<boolean>;
173
+ createFolder?(folder: string): Promise<void>;
174
+ deleteFolder?(folder: string): Promise<void>;
175
+ }
176
+
177
+ declare function resolveProvider(configService: ConfigService): Promise<StorageProvider>;
178
+
179
+ interface StorageProviderRegistration {
180
+ type: string;
181
+ displayName: string;
182
+ pluginName?: string;
183
+ configFields: Field[];
184
+ configKey?: string;
185
+ extractConfig: (storageConfig: StorageConfig, configKey: string) => any;
186
+ extractRawConfig: (config: any) => any;
187
+ factory: (config: any) => StorageProvider;
188
+ }
189
+ declare class StorageProviderRegistry {
190
+ private providers;
191
+ private providerToPlugin;
192
+ private disabledPlugins;
193
+ constructor();
194
+ private registerLocal;
195
+ private registerImgix;
196
+ private registerBunny;
197
+ register(registration: StorageProviderRegistration): void;
198
+ unregister(type: string): void;
199
+ get(type: string): StorageProviderRegistration | undefined;
200
+ getAll(): StorageProviderRegistration[];
201
+ getAllAvailable(isPluginEnabled?: (name: string) => boolean): StorageProviderRegistration[];
202
+ has(type: string): boolean;
203
+ resolve(type: string, storageConfig: StorageConfig): Promise<StorageProvider>;
204
+ resolveWithConfig(type: string, config: any): Promise<StorageProvider>;
205
+ getProviderPluginName(type: string): string | undefined;
206
+ getAllPluginNames(): string[];
207
+ setPluginEnabled(name: string, enabled: boolean): void;
208
+ isPluginEnabled(name: string): boolean;
209
+ }
210
+
211
+ declare class Registry {
212
+ storageProviders: StorageProviderRegistry;
213
+ private collections;
214
+ private globals;
215
+ private plugins;
216
+ private schemaCache;
217
+ private initialized;
218
+ addCollection(config: CollectionConfig): void;
219
+ addCollections(configs: CollectionConfig[]): void;
220
+ getCollection(slug: string): CollectionConfig | undefined;
221
+ getCollections(): CollectionConfig[];
222
+ getCollectionSlugs(): string[];
223
+ hasCollection(slug: string): boolean;
224
+ removeCollection(slug: string): boolean;
225
+ addGlobal(config: GlobalConfig): void;
226
+ /**
227
+ * Add a global after the registry is already initialized.
228
+ * Only for internal use (e.g. storage settings form built at startup).
229
+ */
230
+ addGlobalPostInit(config: GlobalConfig): void;
231
+ private _addGlobalUnsafe;
232
+ addGlobals(configs: GlobalConfig[]): void;
233
+ getGlobal(slug: string): GlobalConfig | undefined;
234
+ getGlobals(): GlobalConfig[];
235
+ getGlobalSlugs(): string[];
236
+ hasGlobal(slug: string): boolean;
237
+ removeGlobal(slug: string): boolean;
238
+ addPlugin(plugin: PluginConfig): void;
239
+ getPlugins(): PluginConfig[];
240
+ getZodSchema(slug: string): ZodTypeAny;
241
+ getCreateZodSchema(slug: string): ZodTypeAny;
242
+ getUpdateZodSchema(slug: string): ZodTypeAny;
243
+ getWhereZodSchema(slug: string): ZodTypeAny;
244
+ getFieldZodSchema(field: Field): ZodTypeAny;
245
+ private clearSchemaCache;
246
+ private applyFieldDefaults;
247
+ getFields(slug: string): Field[];
248
+ getFieldMap(slug: string): Map<string, Field>;
249
+ getVisibleFields(slug: string): Field[];
250
+ validate(): void;
251
+ init(): Promise<void>;
252
+ isInitialized(): boolean;
253
+ getPaginationDefaults(slug: string): {
254
+ defaultLimit: number;
255
+ limits: number[];
256
+ };
257
+ getDefaultSort(slug: string): string;
258
+ getDefaultColumns(slug: string): string[];
259
+ getAdminTitle(slug: string): string;
260
+ getAdminLabel(slug: string): string;
261
+ getAdminGroup(slug: string): string | undefined;
262
+ getStats(): {
263
+ collections: number;
264
+ globals: number;
265
+ plugins: number;
266
+ fields: number;
267
+ };
268
+ toJSON(): {
269
+ collections: CollectionConfig[];
270
+ globals: GlobalConfig[];
271
+ };
272
+ }
273
+ declare function getRegistry(): Registry;
274
+ declare function resetRegistry(): void;
275
+ declare function createRegistry(): Registry;
276
+
277
+ export { ConfigService as C, type EmailConfig as E, Registry as R, type StorageProvider as S, type StorageConfig as a, resolveProvider as b, createRegistry as c, getRegistry as g, resetRegistry as r };
@@ -0,0 +1,277 @@
1
+ import { C as CollectionConfig, G as GlobalConfig, P as PluginConfig } from './types-Dgzlftb7.js';
2
+ import { F as Field } from './types-DeSApf9T.js';
3
+ import { ZodTypeAny } from 'zod';
4
+
5
+ interface S3CompatibleConfig {
6
+ bucket?: string;
7
+ region?: string;
8
+ accessKeyId?: string;
9
+ secretAccessKey?: string;
10
+ endpoint?: string;
11
+ cdnUrl?: string;
12
+ prefix?: string;
13
+ }
14
+ interface R2Config {
15
+ accountId?: string;
16
+ accessKeyId?: string;
17
+ secretAccessKey?: string;
18
+ bucket?: string;
19
+ cdnUrl?: string;
20
+ prefix?: string;
21
+ publicDevUrl?: string;
22
+ }
23
+ interface GCSConfig {
24
+ bucket?: string;
25
+ projectId?: string;
26
+ clientEmail?: string;
27
+ privateKey?: string;
28
+ cdnUrl?: string;
29
+ prefix?: string;
30
+ }
31
+ interface BackblazeConfig {
32
+ bucket?: string;
33
+ accountId?: string;
34
+ applicationKeyId?: string;
35
+ applicationKey?: string;
36
+ cdnUrl?: string;
37
+ prefix?: string;
38
+ }
39
+ interface BunnyConfig {
40
+ storageZone?: string;
41
+ apiKey?: string;
42
+ cdnUrl?: string;
43
+ prefix?: string;
44
+ }
45
+ interface FTPConfig {
46
+ host?: string;
47
+ port?: number;
48
+ user?: string;
49
+ password?: string;
50
+ secure?: boolean;
51
+ baseUrl?: string;
52
+ prefix?: string;
53
+ }
54
+ interface StorageConfig {
55
+ type: string;
56
+ s3: S3CompatibleConfig;
57
+ r2: R2Config;
58
+ gcs: GCSConfig;
59
+ digitalocean: S3CompatibleConfig;
60
+ backblaze: BackblazeConfig;
61
+ wasabi: S3CompatibleConfig;
62
+ bunny: BunnyConfig;
63
+ ftp: FTPConfig;
64
+ cloudinary: {
65
+ cloudName?: string;
66
+ apiKey?: string;
67
+ apiSecret?: string;
68
+ folder?: string;
69
+ };
70
+ imgix: {
71
+ domain?: string;
72
+ signKey?: string;
73
+ };
74
+ local: {
75
+ uploadDir?: string;
76
+ baseUrl?: string;
77
+ };
78
+ }
79
+ interface EmailConfig {
80
+ provider?: string;
81
+ host?: string;
82
+ port?: number;
83
+ secure?: boolean;
84
+ user?: string;
85
+ pass?: string;
86
+ from?: string;
87
+ fromName?: string;
88
+ replyTo?: string;
89
+ }
90
+ declare class ConfigService {
91
+ private db;
92
+ private cache;
93
+ private loaded;
94
+ private static readonly SENSITIVE_KEYS;
95
+ constructor(db: any);
96
+ /**
97
+ * Initialize the service by loading all settings from the database
98
+ */
99
+ load(): Promise<void>;
100
+ private ensureSettingsTable;
101
+ /**
102
+ * Load settings from the _globals_storage-settings table (SQLite fallback)
103
+ * Maps nested global structure to flat key-value cache
104
+ */
105
+ private loadFromGlobals;
106
+ /**
107
+ * Get a settings value with environment fallback
108
+ */
109
+ get(key: string, envKey?: string, defaultValue?: string): string | undefined;
110
+ /**
111
+ * Get storage configuration
112
+ */
113
+ getStorageConfig(): StorageConfig;
114
+ /**
115
+ * Get email configuration
116
+ */
117
+ getEmailConfig(): EmailConfig;
118
+ /**
119
+ * Mask sensitive values for display
120
+ */
121
+ maskSensitive(key: string, value: string | undefined): string | undefined;
122
+ /**
123
+ * Update a setting in the database
124
+ */
125
+ set(key: string, value: string, description?: string): Promise<void>;
126
+ }
127
+
128
+ interface UploadOptions {
129
+ folder?: string;
130
+ filename?: string;
131
+ mimeType?: string;
132
+ metadata?: Record<string, unknown>;
133
+ }
134
+ interface UploadedFile {
135
+ id: string;
136
+ filename: string;
137
+ originalName: string;
138
+ mimeType: string;
139
+ size: number;
140
+ url: string;
141
+ thumbnailUrl?: string;
142
+ width?: number;
143
+ height?: number;
144
+ folder?: string;
145
+ provider: string;
146
+ metadata?: Record<string, unknown>;
147
+ createdAt: string;
148
+ }
149
+ interface ImageTransforms {
150
+ width?: number;
151
+ height?: number;
152
+ fit?: "clip" | "crop" | "fill" | "fillmax" | "scale" | "max" | "min";
153
+ format?: "webp" | "avif" | "jpeg" | "jpg" | "png" | "gif";
154
+ quality?: number;
155
+ blur?: number;
156
+ sharpen?: number;
157
+ }
158
+ interface StorageProvider {
159
+ name: string;
160
+ displayName: string;
161
+ supportsDynamicResize: boolean;
162
+ upload(file: File, options?: UploadOptions): Promise<UploadedFile>;
163
+ uploadFromUrl(url: string, options?: UploadOptions): Promise<UploadedFile>;
164
+ delete(url: string): Promise<void>;
165
+ rename(oldUrl: string, newKey: string): Promise<string>;
166
+ getImageUrl(url: string, transforms?: ImageTransforms): string;
167
+ generateThumbnail(file: UploadedFile, size: {
168
+ width: number;
169
+ height: number;
170
+ }): Promise<string>;
171
+ list(prefix?: string): Promise<UploadedFile[]>;
172
+ exists(url: string): Promise<boolean>;
173
+ createFolder?(folder: string): Promise<void>;
174
+ deleteFolder?(folder: string): Promise<void>;
175
+ }
176
+
177
+ declare function resolveProvider(configService: ConfigService): Promise<StorageProvider>;
178
+
179
+ interface StorageProviderRegistration {
180
+ type: string;
181
+ displayName: string;
182
+ pluginName?: string;
183
+ configFields: Field[];
184
+ configKey?: string;
185
+ extractConfig: (storageConfig: StorageConfig, configKey: string) => any;
186
+ extractRawConfig: (config: any) => any;
187
+ factory: (config: any) => StorageProvider;
188
+ }
189
+ declare class StorageProviderRegistry {
190
+ private providers;
191
+ private providerToPlugin;
192
+ private disabledPlugins;
193
+ constructor();
194
+ private registerLocal;
195
+ private registerImgix;
196
+ private registerBunny;
197
+ register(registration: StorageProviderRegistration): void;
198
+ unregister(type: string): void;
199
+ get(type: string): StorageProviderRegistration | undefined;
200
+ getAll(): StorageProviderRegistration[];
201
+ getAllAvailable(isPluginEnabled?: (name: string) => boolean): StorageProviderRegistration[];
202
+ has(type: string): boolean;
203
+ resolve(type: string, storageConfig: StorageConfig): Promise<StorageProvider>;
204
+ resolveWithConfig(type: string, config: any): Promise<StorageProvider>;
205
+ getProviderPluginName(type: string): string | undefined;
206
+ getAllPluginNames(): string[];
207
+ setPluginEnabled(name: string, enabled: boolean): void;
208
+ isPluginEnabled(name: string): boolean;
209
+ }
210
+
211
+ declare class Registry {
212
+ storageProviders: StorageProviderRegistry;
213
+ private collections;
214
+ private globals;
215
+ private plugins;
216
+ private schemaCache;
217
+ private initialized;
218
+ addCollection(config: CollectionConfig): void;
219
+ addCollections(configs: CollectionConfig[]): void;
220
+ getCollection(slug: string): CollectionConfig | undefined;
221
+ getCollections(): CollectionConfig[];
222
+ getCollectionSlugs(): string[];
223
+ hasCollection(slug: string): boolean;
224
+ removeCollection(slug: string): boolean;
225
+ addGlobal(config: GlobalConfig): void;
226
+ /**
227
+ * Add a global after the registry is already initialized.
228
+ * Only for internal use (e.g. storage settings form built at startup).
229
+ */
230
+ addGlobalPostInit(config: GlobalConfig): void;
231
+ private _addGlobalUnsafe;
232
+ addGlobals(configs: GlobalConfig[]): void;
233
+ getGlobal(slug: string): GlobalConfig | undefined;
234
+ getGlobals(): GlobalConfig[];
235
+ getGlobalSlugs(): string[];
236
+ hasGlobal(slug: string): boolean;
237
+ removeGlobal(slug: string): boolean;
238
+ addPlugin(plugin: PluginConfig): void;
239
+ getPlugins(): PluginConfig[];
240
+ getZodSchema(slug: string): ZodTypeAny;
241
+ getCreateZodSchema(slug: string): ZodTypeAny;
242
+ getUpdateZodSchema(slug: string): ZodTypeAny;
243
+ getWhereZodSchema(slug: string): ZodTypeAny;
244
+ getFieldZodSchema(field: Field): ZodTypeAny;
245
+ private clearSchemaCache;
246
+ private applyFieldDefaults;
247
+ getFields(slug: string): Field[];
248
+ getFieldMap(slug: string): Map<string, Field>;
249
+ getVisibleFields(slug: string): Field[];
250
+ validate(): void;
251
+ init(): Promise<void>;
252
+ isInitialized(): boolean;
253
+ getPaginationDefaults(slug: string): {
254
+ defaultLimit: number;
255
+ limits: number[];
256
+ };
257
+ getDefaultSort(slug: string): string;
258
+ getDefaultColumns(slug: string): string[];
259
+ getAdminTitle(slug: string): string;
260
+ getAdminLabel(slug: string): string;
261
+ getAdminGroup(slug: string): string | undefined;
262
+ getStats(): {
263
+ collections: number;
264
+ globals: number;
265
+ plugins: number;
266
+ fields: number;
267
+ };
268
+ toJSON(): {
269
+ collections: CollectionConfig[];
270
+ globals: GlobalConfig[];
271
+ };
272
+ }
273
+ declare function getRegistry(): Registry;
274
+ declare function resetRegistry(): void;
275
+ declare function createRegistry(): Registry;
276
+
277
+ export { ConfigService as C, type EmailConfig as E, Registry as R, type StorageProvider as S, type StorageConfig as a, resolveProvider as b, createRegistry as c, getRegistry as g, resetRegistry as r };