@kyro-cms/core 0.10.4 → 0.10.6

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 (301) hide show
  1. package/dist/api-handler-graphql.cjs +1 -49
  2. package/dist/api-handler-graphql.js +1 -46
  3. package/dist/api-handler-trpc.cjs +1 -38
  4. package/dist/api-handler-trpc.js +1 -36
  5. package/dist/api-handler.cjs +1 -44
  6. package/dist/api-handler.js +1 -27
  7. package/dist/bootstrap-HIAV5ZFT.cjs +1 -0
  8. package/dist/bootstrap-P7QPQYQP.js +1 -0
  9. package/dist/chunk-2BTRHVT3.cjs +20 -0
  10. package/dist/chunk-2W4FK6CJ.js +122 -0
  11. package/dist/chunk-4ORJMSJU.cjs +1 -0
  12. package/dist/chunk-65G73T7Z.cjs +2 -0
  13. package/dist/chunk-7N6NKCRT.js +1 -0
  14. package/dist/chunk-7WOX27LK.js +259 -0
  15. package/dist/chunk-AE6GXUT7.js +1 -0
  16. package/dist/chunk-AJAZ7D3W.cjs +259 -0
  17. package/dist/chunk-ATLSIYRH.cjs +1 -0
  18. package/dist/chunk-AU6IWTBO.js +2 -0
  19. package/dist/chunk-CDL7ARXT.js +133 -0
  20. package/dist/chunk-CUTFS6N2.cjs +1 -0
  21. package/dist/chunk-CVVW4LXZ.cjs +1 -0
  22. package/dist/chunk-DGJUBN33.js +1 -0
  23. package/dist/chunk-DV4LFLPL.cjs +1 -0
  24. package/dist/chunk-EEWCANFX.js +1 -0
  25. package/dist/chunk-ELICKLFM.cjs +3 -0
  26. package/dist/chunk-EQUQJBPP.cjs +2 -0
  27. package/dist/chunk-ET6NN2V2.cjs +122 -0
  28. package/dist/chunk-F7P36SLX.cjs +74 -0
  29. package/dist/chunk-F7SR5IDT.cjs +1 -0
  30. package/dist/chunk-FO3HLBC7.js +1 -0
  31. package/dist/chunk-FS7GL2BR.js +73 -0
  32. package/dist/chunk-G6A7OSIG.js +2 -0
  33. package/dist/chunk-GFU7AOI3.cjs +1 -0
  34. package/dist/chunk-GYQMNXXW.cjs +114 -0
  35. package/dist/chunk-HLSB2MCK.js +1 -0
  36. package/dist/chunk-HVXO3OFB.cjs +1 -0
  37. package/dist/chunk-IFJJ44OQ.cjs +133 -0
  38. package/dist/chunk-ISWMETHJ.cjs +1 -0
  39. package/dist/chunk-K6WUOU6P.js +1 -0
  40. package/dist/chunk-KDNYHLD2.js +1 -0
  41. package/dist/chunk-KIW36TG7.cjs +86 -0
  42. package/dist/chunk-L6CZYN3L.cjs +20 -0
  43. package/dist/chunk-LRGAPGG3.js +74 -0
  44. package/dist/chunk-LZ6YFYQM.js +20 -0
  45. package/dist/chunk-MIOMMB23.cjs +1 -0
  46. package/dist/chunk-NGBJKZMT.js +90 -0
  47. package/dist/chunk-NRLIGDYF.js +1 -0
  48. package/dist/chunk-NY47CFVP.cjs +1 -0
  49. package/dist/chunk-NZ35PV5R.js +2 -0
  50. package/dist/chunk-OG7CNQGU.js +1 -0
  51. package/dist/chunk-OQD3WG6Z.cjs +1 -0
  52. package/dist/chunk-P7CESLDJ.js +1 -0
  53. package/dist/chunk-PP5S2UBV.js +0 -0
  54. package/dist/chunk-Q3Q7BJVQ.cjs +1 -0
  55. package/dist/chunk-Q4CSLXCO.cjs +90 -0
  56. package/dist/chunk-QRXDCV6K.js +0 -0
  57. package/dist/chunk-R7DVVXXI.cjs +73 -0
  58. package/dist/chunk-RHCWCG3O.js +114 -0
  59. package/dist/chunk-SL3LZQCF.js +1 -0
  60. package/dist/chunk-UBHFUFD4.cjs +1 -0
  61. package/dist/chunk-UBRYJP2G.js +1 -0
  62. package/dist/chunk-UDSJGML2.cjs +2 -0
  63. package/dist/chunk-UHFDH3PG.js +20 -0
  64. package/dist/chunk-UJNSOOYZ.cjs +1 -0
  65. package/dist/chunk-URCLFIME.js +86 -0
  66. package/dist/chunk-UVTS2IWM.js +1 -0
  67. package/dist/chunk-V65NPSR5.cjs +1 -0
  68. package/dist/chunk-WIZ6C5QZ.cjs +1 -0
  69. package/dist/chunk-ZAQOSRP6.js +1 -0
  70. package/dist/chunk-ZELCS7IC.js +3 -0
  71. package/dist/cli/index.cjs +35 -405
  72. package/dist/cli/index.js +35 -402
  73. package/dist/client.cjs +1 -55
  74. package/dist/client.js +1 -6
  75. package/dist/drizzle/index.cjs +1 -50
  76. package/dist/drizzle/index.d.cts +1 -2
  77. package/dist/drizzle/index.d.ts +1 -2
  78. package/dist/drizzle/index.js +1 -9
  79. package/dist/fields/index.cjs +1 -89
  80. package/dist/fields/index.js +1 -4
  81. package/dist/graphql/index.cjs +1 -31
  82. package/dist/graphql/index.d.cts +1 -1
  83. package/dist/graphql/index.d.ts +1 -1
  84. package/dist/graphql/index.js +1 -6
  85. package/dist/{index-jLs0zlft.d.ts → index-DXr33e0x.d.ts} +1 -1
  86. package/dist/{index-DHbywDs-.d.cts → index-DuuUzWBq.d.cts} +1 -1
  87. package/dist/index.cjs +29 -2464
  88. package/dist/index.d.cts +2 -2
  89. package/dist/index.d.ts +2 -2
  90. package/dist/index.js +29 -1929
  91. package/dist/integration.cjs +1 -10
  92. package/dist/integration.js +1 -4
  93. package/dist/media-NSSMOB7N.cjs +1 -0
  94. package/dist/media-RNMCZYPZ.js +1 -0
  95. package/dist/mongo-auth-adapter-JYJ4GBZE.cjs +1 -0
  96. package/dist/mongo-auth-adapter-XI7EPURZ.js +1 -0
  97. package/dist/mongodb/index.cjs +1 -29
  98. package/dist/mongodb/index.d.cts +1 -2
  99. package/dist/mongodb/index.d.ts +1 -2
  100. package/dist/mongodb/index.js +1 -8
  101. package/dist/postgres-auth-adapter-E7OGMDD4.cjs +1 -0
  102. package/dist/postgres-auth-adapter-F4KLOGAG.js +1 -0
  103. package/dist/redis-adapter-AQJVABYT.cjs +1 -0
  104. package/dist/redis-adapter-AUKOV74G.js +1 -0
  105. package/dist/rest/index.cjs +1 -31
  106. package/dist/rest/index.d.cts +1 -1
  107. package/dist/rest/index.d.ts +1 -1
  108. package/dist/rest/index.js +1 -18
  109. package/dist/schema-5XNROI7I.js +1 -0
  110. package/dist/schema-6O4JTJRU.cjs +1 -0
  111. package/dist/sqlite-adapter-5XFLNJDH.js +1 -0
  112. package/dist/sqlite-adapter-W53Q32N5.cjs +1 -0
  113. package/dist/templates/index.cjs +1 -207
  114. package/dist/templates/index.js +1 -6
  115. package/dist/trpc/index.cjs +1 -48
  116. package/dist/trpc/index.js +1 -7
  117. package/dist/ws/index.cjs +1 -25
  118. package/dist/ws/index.js +1 -4
  119. package/package.json +44 -13
  120. package/dist/api-handler-graphql.cjs.map +0 -1
  121. package/dist/api-handler-graphql.js.map +0 -1
  122. package/dist/api-handler-trpc.cjs.map +0 -1
  123. package/dist/api-handler-trpc.js.map +0 -1
  124. package/dist/api-handler.cjs.map +0 -1
  125. package/dist/api-handler.js.map +0 -1
  126. package/dist/bootstrap-FUAPY2OF.cjs +0 -32
  127. package/dist/bootstrap-FUAPY2OF.cjs.map +0 -1
  128. package/dist/bootstrap-OXNVM7FP.js +0 -7
  129. package/dist/bootstrap-OXNVM7FP.js.map +0 -1
  130. package/dist/chunk-2HFJUUFZ.js +0 -250
  131. package/dist/chunk-2HFJUUFZ.js.map +0 -1
  132. package/dist/chunk-3AKCVYDB.js +0 -162
  133. package/dist/chunk-3AKCVYDB.js.map +0 -1
  134. package/dist/chunk-3KTWGODI.cjs +0 -178
  135. package/dist/chunk-3KTWGODI.cjs.map +0 -1
  136. package/dist/chunk-3YELQL7Z.cjs +0 -4
  137. package/dist/chunk-3YELQL7Z.cjs.map +0 -1
  138. package/dist/chunk-4CV4JOE5.js +0 -24
  139. package/dist/chunk-4CV4JOE5.js.map +0 -1
  140. package/dist/chunk-4OCMVGEY.cjs +0 -173
  141. package/dist/chunk-4OCMVGEY.cjs.map +0 -1
  142. package/dist/chunk-4PWRCMTQ.cjs +0 -15
  143. package/dist/chunk-4PWRCMTQ.cjs.map +0 -1
  144. package/dist/chunk-53NYVYVX.js +0 -3243
  145. package/dist/chunk-53NYVYVX.js.map +0 -1
  146. package/dist/chunk-5GFQPHGT.cjs +0 -156
  147. package/dist/chunk-5GFQPHGT.cjs.map +0 -1
  148. package/dist/chunk-5RPRLTTN.js +0 -861
  149. package/dist/chunk-5RPRLTTN.js.map +0 -1
  150. package/dist/chunk-74YSDAWE.cjs +0 -2749
  151. package/dist/chunk-74YSDAWE.cjs.map +0 -1
  152. package/dist/chunk-7OGPN7MP.js +0 -352
  153. package/dist/chunk-7OGPN7MP.js.map +0 -1
  154. package/dist/chunk-7OS7TX2Q.cjs +0 -495
  155. package/dist/chunk-7OS7TX2Q.cjs.map +0 -1
  156. package/dist/chunk-ADLJSJSN.cjs +0 -13
  157. package/dist/chunk-ADLJSJSN.cjs.map +0 -1
  158. package/dist/chunk-B6X3LN25.cjs +0 -6486
  159. package/dist/chunk-B6X3LN25.cjs.map +0 -1
  160. package/dist/chunk-BYBMTIMT.js +0 -419
  161. package/dist/chunk-BYBMTIMT.js.map +0 -1
  162. package/dist/chunk-CF7OL6HR.js +0 -355
  163. package/dist/chunk-CF7OL6HR.js.map +0 -1
  164. package/dist/chunk-CJX74IYK.js +0 -489
  165. package/dist/chunk-CJX74IYK.js.map +0 -1
  166. package/dist/chunk-CKVOU6MX.cjs +0 -52
  167. package/dist/chunk-CKVOU6MX.cjs.map +0 -1
  168. package/dist/chunk-CZLDE2OZ.cjs +0 -28
  169. package/dist/chunk-CZLDE2OZ.cjs.map +0 -1
  170. package/dist/chunk-DPA3KWPY.cjs +0 -205
  171. package/dist/chunk-DPA3KWPY.cjs.map +0 -1
  172. package/dist/chunk-EEJUFDMF.cjs +0 -424
  173. package/dist/chunk-EEJUFDMF.cjs.map +0 -1
  174. package/dist/chunk-FIAMXNTH.js +0 -220
  175. package/dist/chunk-FIAMXNTH.js.map +0 -1
  176. package/dist/chunk-GAOXD3XT.js +0 -175
  177. package/dist/chunk-GAOXD3XT.js.map +0 -1
  178. package/dist/chunk-GTGRLD4Y.js +0 -3
  179. package/dist/chunk-GTGRLD4Y.js.map +0 -1
  180. package/dist/chunk-GUUB5EAG.cjs +0 -223
  181. package/dist/chunk-GUUB5EAG.cjs.map +0 -1
  182. package/dist/chunk-GXFOGU7N.cjs +0 -359
  183. package/dist/chunk-GXFOGU7N.cjs.map +0 -1
  184. package/dist/chunk-GZS4LMR7.js +0 -422
  185. package/dist/chunk-GZS4LMR7.js.map +0 -1
  186. package/dist/chunk-HY6B7B5A.js +0 -150
  187. package/dist/chunk-HY6B7B5A.js.map +0 -1
  188. package/dist/chunk-HZOMOK5Y.js +0 -2728
  189. package/dist/chunk-HZOMOK5Y.js.map +0 -1
  190. package/dist/chunk-IDVRRRAK.cjs +0 -824
  191. package/dist/chunk-IDVRRRAK.cjs.map +0 -1
  192. package/dist/chunk-KC2GDBLS.cjs +0 -84
  193. package/dist/chunk-KC2GDBLS.cjs.map +0 -1
  194. package/dist/chunk-L4EZKIEX.js +0 -185
  195. package/dist/chunk-L4EZKIEX.js.map +0 -1
  196. package/dist/chunk-LNTFRAHF.cjs +0 -473
  197. package/dist/chunk-LNTFRAHF.cjs.map +0 -1
  198. package/dist/chunk-MTIRYI7F.cjs +0 -4
  199. package/dist/chunk-MTIRYI7F.cjs.map +0 -1
  200. package/dist/chunk-N4GN6Q3V.cjs +0 -869
  201. package/dist/chunk-N4GN6Q3V.cjs.map +0 -1
  202. package/dist/chunk-N4H37VN4.cjs +0 -259
  203. package/dist/chunk-N4H37VN4.cjs.map +0 -1
  204. package/dist/chunk-N5QSHUA6.js +0 -1135
  205. package/dist/chunk-N5QSHUA6.js.map +0 -1
  206. package/dist/chunk-NKPKR5BW.cjs +0 -188
  207. package/dist/chunk-NKPKR5BW.cjs.map +0 -1
  208. package/dist/chunk-OIRG6ZRV.cjs +0 -1073
  209. package/dist/chunk-OIRG6ZRV.cjs.map +0 -1
  210. package/dist/chunk-OJ2AM75W.cjs +0 -253
  211. package/dist/chunk-OJ2AM75W.cjs.map +0 -1
  212. package/dist/chunk-OLV7K22H.js +0 -6457
  213. package/dist/chunk-OLV7K22H.js.map +0 -1
  214. package/dist/chunk-OX6GOIPH.js +0 -516
  215. package/dist/chunk-OX6GOIPH.js.map +0 -1
  216. package/dist/chunk-P2YW545G.js +0 -11
  217. package/dist/chunk-P2YW545G.js.map +0 -1
  218. package/dist/chunk-PHJRNPHY.cjs +0 -3291
  219. package/dist/chunk-PHJRNPHY.cjs.map +0 -1
  220. package/dist/chunk-Q72BOAPK.js +0 -817
  221. package/dist/chunk-Q72BOAPK.js.map +0 -1
  222. package/dist/chunk-QU2RFFH4.js +0 -3
  223. package/dist/chunk-QU2RFFH4.js.map +0 -1
  224. package/dist/chunk-RP7VZUEL.js +0 -49
  225. package/dist/chunk-RP7VZUEL.js.map +0 -1
  226. package/dist/chunk-SHTTJMLT.cjs +0 -361
  227. package/dist/chunk-SHTTJMLT.cjs.map +0 -1
  228. package/dist/chunk-SX76DNOO.js +0 -103
  229. package/dist/chunk-SX76DNOO.js.map +0 -1
  230. package/dist/chunk-THBQG64D.cjs +0 -425
  231. package/dist/chunk-THBQG64D.cjs.map +0 -1
  232. package/dist/chunk-TQG7G7YI.cjs +0 -526
  233. package/dist/chunk-TQG7G7YI.cjs.map +0 -1
  234. package/dist/chunk-U3VVLYXG.cjs +0 -189
  235. package/dist/chunk-U3VVLYXG.cjs.map +0 -1
  236. package/dist/chunk-UUDTPZX6.js +0 -193
  237. package/dist/chunk-UUDTPZX6.js.map +0 -1
  238. package/dist/chunk-V5AWATUP.js +0 -1059
  239. package/dist/chunk-V5AWATUP.js.map +0 -1
  240. package/dist/chunk-VAXLFZCV.cjs +0 -110
  241. package/dist/chunk-VAXLFZCV.cjs.map +0 -1
  242. package/dist/chunk-VKREAIBA.cjs +0 -1139
  243. package/dist/chunk-VKREAIBA.cjs.map +0 -1
  244. package/dist/chunk-WDTTHKDS.js +0 -458
  245. package/dist/chunk-WDTTHKDS.js.map +0 -1
  246. package/dist/chunk-WXVB364T.js +0 -218
  247. package/dist/chunk-WXVB364T.js.map +0 -1
  248. package/dist/chunk-X4BPPD6K.js +0 -181
  249. package/dist/chunk-X4BPPD6K.js.map +0 -1
  250. package/dist/chunk-XEB7PH2E.js +0 -81
  251. package/dist/chunk-XEB7PH2E.js.map +0 -1
  252. package/dist/chunk-YT7HXXVN.js +0 -13
  253. package/dist/chunk-YT7HXXVN.js.map +0 -1
  254. package/dist/cli/index.cjs.map +0 -1
  255. package/dist/cli/index.js.map +0 -1
  256. package/dist/client.cjs.map +0 -1
  257. package/dist/client.js.map +0 -1
  258. package/dist/drizzle/index.cjs.map +0 -1
  259. package/dist/drizzle/index.js.map +0 -1
  260. package/dist/fields/index.cjs.map +0 -1
  261. package/dist/fields/index.js.map +0 -1
  262. package/dist/graphql/index.cjs.map +0 -1
  263. package/dist/graphql/index.js.map +0 -1
  264. package/dist/index.cjs.map +0 -1
  265. package/dist/index.js.map +0 -1
  266. package/dist/integration.cjs.map +0 -1
  267. package/dist/integration.js.map +0 -1
  268. package/dist/media-7WDX4BDJ.js +0 -4
  269. package/dist/media-7WDX4BDJ.js.map +0 -1
  270. package/dist/media-TUSLVRQ6.cjs +0 -17
  271. package/dist/media-TUSLVRQ6.cjs.map +0 -1
  272. package/dist/mongo-auth-adapter-GT4S7SCU.cjs +0 -17
  273. package/dist/mongo-auth-adapter-GT4S7SCU.cjs.map +0 -1
  274. package/dist/mongo-auth-adapter-M7VV4LNB.js +0 -4
  275. package/dist/mongo-auth-adapter-M7VV4LNB.js.map +0 -1
  276. package/dist/mongodb/index.cjs.map +0 -1
  277. package/dist/mongodb/index.js.map +0 -1
  278. package/dist/postgres-auth-adapter-AFAPISH7.js +0 -5
  279. package/dist/postgres-auth-adapter-AFAPISH7.js.map +0 -1
  280. package/dist/postgres-auth-adapter-SFDTLONT.cjs +0 -14
  281. package/dist/postgres-auth-adapter-SFDTLONT.cjs.map +0 -1
  282. package/dist/redis-adapter-UQX4EE3B.cjs +0 -13
  283. package/dist/redis-adapter-UQX4EE3B.cjs.map +0 -1
  284. package/dist/redis-adapter-XALOGWY3.js +0 -4
  285. package/dist/redis-adapter-XALOGWY3.js.map +0 -1
  286. package/dist/rest/index.cjs.map +0 -1
  287. package/dist/rest/index.js.map +0 -1
  288. package/dist/schema-6QL3USNB.cjs +0 -67
  289. package/dist/schema-6QL3USNB.cjs.map +0 -1
  290. package/dist/schema-FNNWEAAW.js +0 -6
  291. package/dist/schema-FNNWEAAW.js.map +0 -1
  292. package/dist/sqlite-adapter-AQB5TCGV.cjs +0 -13
  293. package/dist/sqlite-adapter-AQB5TCGV.cjs.map +0 -1
  294. package/dist/sqlite-adapter-N5H6IM2X.js +0 -4
  295. package/dist/sqlite-adapter-N5H6IM2X.js.map +0 -1
  296. package/dist/templates/index.cjs.map +0 -1
  297. package/dist/templates/index.js.map +0 -1
  298. package/dist/trpc/index.cjs.map +0 -1
  299. package/dist/trpc/index.js.map +0 -1
  300. package/dist/ws/index.cjs.map +0 -1
  301. package/dist/ws/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api-handler-trpc.ts"],"names":["warmKyroInstance","kyroInstance"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAM,GAAA,GAAgB,OAAO,OAAA,KAAY;AAC9C,EAAA,MAAMA,kCAAA,EAAiB;AACvB,EAAA,MAAM,GAAA,GAAMC,+BAAc,OAAA,EAAQ;AAClC,EAAA,OAAO,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,OAAA,EAAS,QAAQ,MAAM,CAAA;AAClD","file":"api-handler-trpc.cjs","sourcesContent":["import type { APIRoute } from \"astro\";\nimport { warmKyroInstance, kyroInstance } from \"./api-handler.js\";\n\nexport const ALL: APIRoute = async (context) => {\n await warmKyroInstance();\n const app = kyroInstance!.getTRPC();\n return app.fetch(context.request, context.locals);\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api-handler-trpc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAM,GAAA,GAAgB,OAAO,OAAA,KAAY;AAC9C,EAAA,MAAM,gBAAA,EAAiB;AACvB,EAAA,MAAM,GAAA,GAAM,aAAc,OAAA,EAAQ;AAClC,EAAA,OAAO,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,OAAA,EAAS,QAAQ,MAAM,CAAA;AAClD","file":"api-handler-trpc.js","sourcesContent":["import type { APIRoute } from \"astro\";\nimport { warmKyroInstance, kyroInstance } from \"./api-handler.js\";\n\nexport const ALL: APIRoute = async (context) => {\n await warmKyroInstance();\n const app = kyroInstance!.getTRPC();\n return app.fetch(context.request, context.locals);\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"api-handler.cjs"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"api-handler.js"}
@@ -1,32 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk5GFQPHGT_cjs = require('./chunk-5GFQPHGT.cjs');
4
- require('./chunk-VKREAIBA.cjs');
5
- require('./chunk-4PWRCMTQ.cjs');
6
- require('./chunk-IDVRRRAK.cjs');
7
- require('./chunk-CZLDE2OZ.cjs');
8
-
9
-
10
-
11
- Object.defineProperty(exports, "autoBootstrap", {
12
- enumerable: true,
13
- get: function () { return chunk5GFQPHGT_cjs.autoBootstrap; }
14
- });
15
- Object.defineProperty(exports, "bootstrapAdmin", {
16
- enumerable: true,
17
- get: function () { return chunk5GFQPHGT_cjs.bootstrapAdmin; }
18
- });
19
- Object.defineProperty(exports, "bootstrapWithRetry", {
20
- enumerable: true,
21
- get: function () { return chunk5GFQPHGT_cjs.bootstrapWithRetry; }
22
- });
23
- Object.defineProperty(exports, "checkBootstrapRequired", {
24
- enumerable: true,
25
- get: function () { return chunk5GFQPHGT_cjs.checkBootstrapRequired; }
26
- });
27
- Object.defineProperty(exports, "getBootstrapFromEnv", {
28
- enumerable: true,
29
- get: function () { return chunk5GFQPHGT_cjs.getBootstrapFromEnv; }
30
- });
31
- //# sourceMappingURL=bootstrap-FUAPY2OF.cjs.map
32
- //# sourceMappingURL=bootstrap-FUAPY2OF.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"bootstrap-FUAPY2OF.cjs"}
@@ -1,7 +0,0 @@
1
- export { autoBootstrap, bootstrapAdmin, bootstrapWithRetry, checkBootstrapRequired, getBootstrapFromEnv } from './chunk-HY6B7B5A.js';
2
- import './chunk-N5QSHUA6.js';
3
- import './chunk-YT7HXXVN.js';
4
- import './chunk-Q72BOAPK.js';
5
- import './chunk-4CV4JOE5.js';
6
- //# sourceMappingURL=bootstrap-OXNVM7FP.js.map
7
- //# sourceMappingURL=bootstrap-OXNVM7FP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"bootstrap-OXNVM7FP.js"}
@@ -1,250 +0,0 @@
1
- // src/styling/index.ts
2
- var CSSGenerator = class {
3
- constructor(config) {
4
- this.config = config;
5
- }
6
- config;
7
- css = [];
8
- addRule(selector, properties) {
9
- const props = Object.entries(properties).map(([k, v]) => ` ${k}: ${v};`).join("\n");
10
- this.css.push(`${selector} {
11
- ${props}
12
- }`);
13
- return this;
14
- }
15
- addMediaQuery(breakpoint, rules) {
16
- this.css.push(`@media (min-width: ${breakpoint}) {
17
- ${rules.join("\n ")}
18
- }`);
19
- return this;
20
- }
21
- generate() {
22
- return this.css.join("\n\n");
23
- }
24
- };
25
- function generateTailwindConfig(theme) {
26
- return {
27
- theme: {
28
- extend: {
29
- colors: theme.colors || {},
30
- fontFamily: theme.fonts || {},
31
- spacing: theme.spacing || {},
32
- borderRadius: theme.borderRadius || {},
33
- boxShadow: theme.shadows || {},
34
- screens: theme.breakpoints || {}
35
- }
36
- }
37
- };
38
- }
39
- var defaultLightTheme = {
40
- colors: {
41
- primary: "#3b82f6",
42
- secondary: "#6366f1",
43
- accent: "#ec4899",
44
- background: "#ffffff",
45
- surface: "#f9fafb",
46
- text: "#111827",
47
- textMuted: "#6b7280",
48
- border: "#e5e7eb",
49
- error: "#ef4444",
50
- warning: "#f59e0b",
51
- success: "#10b981",
52
- info: "#3b82f6"
53
- },
54
- fonts: {
55
- sans: "system-ui, -apple-system, sans-serif",
56
- serif: "Georgia, serif",
57
- mono: "Menlo, monospace"
58
- },
59
- spacing: {
60
- xs: "0.25rem",
61
- sm: "0.5rem",
62
- md: "1rem",
63
- lg: "1.5rem",
64
- xl: "2rem",
65
- "2xl": "3rem",
66
- "3xl": "4rem"
67
- },
68
- borderRadius: {
69
- sm: "0.125rem",
70
- md: "0.375rem",
71
- lg: "0.5rem",
72
- xl: "0.75rem",
73
- full: "9999px"
74
- },
75
- shadows: {
76
- sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
77
- md: "0 4px 6px -1px rgb(0 0 0 / 0.1)",
78
- lg: "0 10px 15px -3px rgb(0 0 0 / 0.1)",
79
- xl: "0 20px 25px -5px rgb(0 0 0 / 0.1)"
80
- }
81
- };
82
- var defaultDarkTheme = {
83
- colors: {
84
- primary: "#60a5fa",
85
- secondary: "#818cf8",
86
- accent: "#f472b6",
87
- background: "#111827",
88
- surface: "#1f2937",
89
- text: "#f9fafb",
90
- textMuted: "#9ca3af",
91
- border: "#374151",
92
- error: "#f87171",
93
- warning: "#fbbf24",
94
- success: "#34d399",
95
- info: "#60a5fa"
96
- },
97
- fonts: defaultLightTheme.fonts,
98
- spacing: defaultLightTheme.spacing,
99
- borderRadius: defaultLightTheme.borderRadius,
100
- shadows: {
101
- sm: "0 1px 2px 0 rgb(0 0 0 / 0.3)",
102
- md: "0 4px 6px -1px rgb(0 0 0 / 0.4)",
103
- lg: "0 10px 15px -3px rgb(0 0 0 / 0.5)",
104
- xl: "0 20px 25px -5px rgb(0 0 0 / 0.6)"
105
- }
106
- };
107
- var ecommerce2026Theme = {
108
- colors: {
109
- primary: "#FF6B35",
110
- secondary: "#1A1A2E",
111
- accent: "#16C79A",
112
- background: "#FFFFFF",
113
- surface: "#F8F9FA",
114
- text: "#1A1A2E",
115
- textMuted: "#6B7280",
116
- border: "#E5E7EB",
117
- error: "#EF4444",
118
- warning: "#F59E0B",
119
- success: "#16C79A",
120
- info: "#3B82F6"
121
- },
122
- fonts: {
123
- sans: '"Inter", "Satoshi", system-ui, sans-serif',
124
- serif: '"Playfair Display", Georgia, serif',
125
- mono: '"JetBrains Mono", monospace'
126
- },
127
- spacing: {
128
- xs: "0.125rem",
129
- sm: "0.25rem",
130
- md: "0.5rem",
131
- lg: "1rem",
132
- xl: "1.5rem",
133
- "2xl": "2rem",
134
- "3xl": "3rem",
135
- "4xl": "4rem"
136
- },
137
- borderRadius: {
138
- sm: "0",
139
- md: "0",
140
- lg: "0",
141
- xl: "0",
142
- full: "9999px"
143
- },
144
- shadows: {
145
- sm: "0 1px 2px rgba(0,0,0,0.05)",
146
- md: "0 4px 6px rgba(0,0,0,0.07)",
147
- lg: "0 10px 15px rgba(0,0,0,0.1)",
148
- xl: "0 20px 25px rgba(0,0,0,0.15)"
149
- }
150
- };
151
- function generateCSSVariables(theme) {
152
- const variables = [];
153
- if (theme.colors) {
154
- for (const [key, value] of Object.entries(theme.colors)) {
155
- variables.push(` --color-${key}: ${value};`);
156
- }
157
- }
158
- if (theme.fonts) {
159
- for (const [key, value] of Object.entries(theme.fonts)) {
160
- variables.push(` --font-${key}: ${value};`);
161
- }
162
- }
163
- if (theme.spacing) {
164
- for (const [key, value] of Object.entries(theme.spacing)) {
165
- variables.push(` --spacing-${key}: ${value};`);
166
- }
167
- }
168
- if (theme.borderRadius) {
169
- for (const [key, value] of Object.entries(theme.borderRadius)) {
170
- variables.push(` --radius-${key}: ${value};`);
171
- }
172
- }
173
- if (theme.shadows) {
174
- for (const [key, value] of Object.entries(theme.shadows)) {
175
- variables.push(` --shadow-${key}: ${value};`);
176
- }
177
- }
178
- return `:root {
179
- ${variables.join("\n")}
180
- }`;
181
- }
182
- function createAdminStyling(config) {
183
- const cssVars = generateCSSVariables(config.theme || defaultLightTheme);
184
- const componentStyles = [];
185
- if (config.componentOverrides) {
186
- for (const [selector, styles] of Object.entries(config.componentOverrides)) {
187
- const props = Object.entries(styles).map(([k, v]) => ` ${k}: ${v};`).join("\n");
188
- componentStyles.push(`${selector} {
189
- ${props}
190
- }`);
191
- }
192
- }
193
- return `
194
- ${cssVars}
195
- ${config.customStyles || ""}
196
- ${componentStyles.join("\n")}
197
- `;
198
- }
199
- var defaultFieldStyling = {
200
- text: {
201
- wrapper: { marginBottom: "var(--spacing-md)" },
202
- label: {
203
- display: "block",
204
- marginBottom: "var(--spacing-xs)",
205
- fontWeight: "500",
206
- color: "var(--color-text)"
207
- },
208
- input: {
209
- width: "100%",
210
- padding: "var(--spacing-sm) var(--spacing-md)",
211
- border: "1px solid var(--color-border)",
212
- borderRadius: "var(--radius-md)",
213
- fontSize: "0.875rem"
214
- },
215
- error: {
216
- color: "var(--color-error)",
217
- fontSize: "0.75rem",
218
- marginTop: "var(--spacing-xs)"
219
- }
220
- },
221
- number: {
222
- wrapper: { marginBottom: "var(--spacing-md)" },
223
- label: { display: "block", marginBottom: "var(--spacing-xs)", fontWeight: "500" },
224
- input: {
225
- width: "100%",
226
- padding: "var(--spacing-sm) var(--spacing-md)",
227
- border: "1px solid var(--color-border)",
228
- borderRadius: "var(--radius-md)"
229
- }
230
- },
231
- checkbox: {
232
- wrapper: { display: "flex", alignItems: "center", gap: "var(--spacing-sm)" },
233
- input: { width: "1rem", height: "1rem" },
234
- label: { cursor: "pointer" }
235
- },
236
- select: {
237
- wrapper: { marginBottom: "var(--spacing-md)" },
238
- input: {
239
- width: "100%",
240
- padding: "var(--spacing-sm) var(--spacing-md)",
241
- border: "1px solid var(--color-border)",
242
- borderRadius: "var(--radius-md)",
243
- backgroundColor: "white"
244
- }
245
- }
246
- };
247
-
248
- export { CSSGenerator, createAdminStyling, defaultDarkTheme, defaultFieldStyling, defaultLightTheme, ecommerce2026Theme, generateCSSVariables, generateTailwindConfig };
249
- //# sourceMappingURL=chunk-2HFJUUFZ.js.map
250
- //# sourceMappingURL=chunk-2HFJUUFZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/styling/index.ts"],"names":[],"mappings":"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","file":"chunk-2HFJUUFZ.js","sourcesContent":["// ============================================================================\n// Styling System Abstraction\n// ============================================================================\n\nexport type StylingMode = 'css' | 'tailwind' | 'css-in-js' | 'styled-components' | 'vanilla-extract';\n\nexport interface StylingConfig {\n mode: StylingMode;\n theme?: ThemeConfig;\n customProperties?: Record<string, string>;\n}\n\nexport interface ThemeConfig {\n colors?: ThemeColors;\n fonts?: ThemeFonts;\n spacing?: ThemeSpacing;\n borderRadius?: ThemeBorderRadius;\n shadows?: ThemeShadows;\n breakpoints?: Record<string, string>;\n}\n\nexport interface ThemeColors {\n primary?: string;\n secondary?: string;\n accent?: string;\n background?: string;\n surface?: string;\n text?: string;\n textMuted?: string;\n border?: string;\n error?: string;\n warning?: string;\n success?: string;\n info?: string;\n}\n\nexport interface ThemeFonts {\n sans?: string;\n serif?: string;\n mono?: string;\n}\n\nexport interface ThemeSpacing {\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n '2xl'?: string;\n '3xl'?: string;\n '4xl'?: string;\n}\n\nexport interface ThemeBorderRadius {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n full?: string;\n}\n\nexport interface ThemeShadows {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n}\n\n// ============================================================================\n// CSS Generator\n// ============================================================================\n\nexport class CSSGenerator {\n private css: string[] = [];\n\n constructor(private config: StylingConfig) {}\n\n addRule(selector: string, properties: Record<string, string>): this {\n const props = Object.entries(properties)\n .map(([k, v]) => ` ${k}: ${v};`)\n .join('\\n');\n this.css.push(`${selector} {\\n${props}\\n}`);\n return this;\n }\n\n addMediaQuery(breakpoint: string, rules: string[]): this {\n this.css.push(`@media (min-width: ${breakpoint}) {\\n ${rules.join('\\n ')}\\n}`);\n return this;\n }\n\n generate(): string {\n return this.css.join('\\n\\n');\n }\n}\n\n// ============================================================================\n// Tailwind Config Generator\n// ============================================================================\n\nexport function generateTailwindConfig(theme: ThemeConfig): Record<string, any> {\n return {\n theme: {\n extend: {\n colors: theme.colors || {},\n fontFamily: theme.fonts || {},\n spacing: theme.spacing || {},\n borderRadius: theme.borderRadius || {},\n boxShadow: theme.shadows || {},\n screens: theme.breakpoints || {},\n },\n },\n };\n}\n\n// ============================================================================\n// Default Themes\n// ============================================================================\n\nexport const defaultLightTheme: ThemeConfig = {\n colors: {\n primary: '#3b82f6',\n secondary: '#6366f1',\n accent: '#ec4899',\n background: '#ffffff',\n surface: '#f9fafb',\n text: '#111827',\n textMuted: '#6b7280',\n border: '#e5e7eb',\n error: '#ef4444',\n warning: '#f59e0b',\n success: '#10b981',\n info: '#3b82f6',\n },\n fonts: {\n sans: 'system-ui, -apple-system, sans-serif',\n serif: 'Georgia, serif',\n mono: 'Menlo, monospace',\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n borderRadius: {\n sm: '0.125rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n full: '9999px',\n },\n shadows: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1)',\n },\n};\n\nexport const defaultDarkTheme: ThemeConfig = {\n colors: {\n primary: '#60a5fa',\n secondary: '#818cf8',\n accent: '#f472b6',\n background: '#111827',\n surface: '#1f2937',\n text: '#f9fafb',\n textMuted: '#9ca3af',\n border: '#374151',\n error: '#f87171',\n warning: '#fbbf24',\n success: '#34d399',\n info: '#60a5fa',\n },\n fonts: defaultLightTheme.fonts,\n spacing: defaultLightTheme.spacing,\n borderRadius: defaultLightTheme.borderRadius,\n shadows: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.3)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.4)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.5)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.6)',\n },\n};\n\n// ============================================================================\n// E-Commerce Theme (2026 Design Engine)\n// ============================================================================\n\nexport const ecommerce2026Theme: ThemeConfig = {\n colors: {\n primary: '#FF6B35',\n secondary: '#1A1A2E',\n accent: '#16C79A',\n background: '#FFFFFF',\n surface: '#F8F9FA',\n text: '#1A1A2E',\n textMuted: '#6B7280',\n border: '#E5E7EB',\n error: '#EF4444',\n warning: '#F59E0B',\n success: '#16C79A',\n info: '#3B82F6',\n },\n fonts: {\n sans: '\"Inter\", \"Satoshi\", system-ui, sans-serif',\n serif: '\"Playfair Display\", Georgia, serif',\n mono: '\"JetBrains Mono\", monospace',\n },\n spacing: {\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n xl: '1.5rem',\n '2xl': '2rem',\n '3xl': '3rem',\n '4xl': '4rem',\n },\n borderRadius: {\n sm: '0',\n md: '0',\n lg: '0',\n xl: '0',\n full: '9999px',\n },\n shadows: {\n sm: '0 1px 2px rgba(0,0,0,0.05)',\n md: '0 4px 6px rgba(0,0,0,0.07)',\n lg: '0 10px 15px rgba(0,0,0,0.1)',\n xl: '0 20px 25px rgba(0,0,0,0.15)',\n },\n};\n\n// ============================================================================\n// CSS Variables Generator\n// ============================================================================\n\nexport function generateCSSVariables(theme: ThemeConfig): string {\n const variables: string[] = [];\n\n // Colors\n if (theme.colors) {\n for (const [key, value] of Object.entries(theme.colors)) {\n variables.push(` --color-${key}: ${value};`);\n }\n }\n\n // Fonts\n if (theme.fonts) {\n for (const [key, value] of Object.entries(theme.fonts)) {\n variables.push(` --font-${key}: ${value};`);\n }\n }\n\n // Spacing\n if (theme.spacing) {\n for (const [key, value] of Object.entries(theme.spacing)) {\n variables.push(` --spacing-${key}: ${value};`);\n }\n }\n\n // Border Radius\n if (theme.borderRadius) {\n for (const [key, value] of Object.entries(theme.borderRadius)) {\n variables.push(` --radius-${key}: ${value};`);\n }\n }\n\n // Shadows\n if (theme.shadows) {\n for (const [key, value] of Object.entries(theme.shadows)) {\n variables.push(` --shadow-${key}: ${value};`);\n }\n }\n\n return `:root {\\n${variables.join('\\n')}\\n}`;\n}\n\n// ============================================================================\n// Admin Styling Config\n// ============================================================================\n\nexport interface AdminStylingConfig {\n mode: StylingMode;\n theme?: ThemeConfig;\n customStyles?: string;\n componentOverrides?: Record<string, Record<string, string>>;\n}\n\nexport function createAdminStyling(config: AdminStylingConfig): string {\n const cssVars = generateCSSVariables(config.theme || defaultLightTheme);\n const componentStyles: string[] = [];\n\n // Generate component overrides\n if (config.componentOverrides) {\n for (const [selector, styles] of Object.entries(config.componentOverrides)) {\n const props = Object.entries(styles)\n .map(([k, v]) => ` ${k}: ${v};`)\n .join('\\n');\n componentStyles.push(`${selector} {\\n${props}\\n}`);\n }\n }\n\n return `\n ${cssVars}\n ${config.customStyles || ''}\n ${componentStyles.join('\\n')}\n `;\n}\n\n// ============================================================================\n// Field Styling\n// ============================================================================\n\nexport interface FieldStyling {\n wrapper?: Record<string, string>;\n label?: Record<string, string>;\n input?: Record<string, string>;\n error?: Record<string, string>;\n description?: Record<string, string>;\n}\n\nexport const defaultFieldStyling: Record<string, FieldStyling> = {\n text: {\n wrapper: { marginBottom: 'var(--spacing-md)' },\n label: { \n display: 'block', \n marginBottom: 'var(--spacing-xs)',\n fontWeight: '500',\n color: 'var(--color-text)',\n },\n input: {\n width: '100%',\n padding: 'var(--spacing-sm) var(--spacing-md)',\n border: '1px solid var(--color-border)',\n borderRadius: 'var(--radius-md)',\n fontSize: '0.875rem',\n },\n error: {\n color: 'var(--color-error)',\n fontSize: '0.75rem',\n marginTop: 'var(--spacing-xs)',\n },\n },\n number: {\n wrapper: { marginBottom: 'var(--spacing-md)' },\n label: { display: 'block', marginBottom: 'var(--spacing-xs)', fontWeight: '500' },\n input: {\n width: '100%',\n padding: 'var(--spacing-sm) var(--spacing-md)',\n border: '1px solid var(--color-border)',\n borderRadius: 'var(--radius-md)',\n },\n },\n checkbox: {\n wrapper: { display: 'flex', alignItems: 'center', gap: 'var(--spacing-sm)' },\n input: { width: '1rem', height: '1rem' },\n label: { cursor: 'pointer' },\n },\n select: {\n wrapper: { marginBottom: 'var(--spacing-md)' },\n input: {\n width: '100%',\n padding: 'var(--spacing-sm) var(--spacing-md)',\n border: '1px solid var(--color-border)',\n borderRadius: 'var(--radius-md)',\n backgroundColor: 'white',\n },\n },\n};\n"]}
@@ -1,162 +0,0 @@
1
- import { timingSafeEqual } from 'crypto';
2
-
3
- // src/access/types.ts
4
- async function evaluateAccess(access, args) {
5
- if (typeof access === "boolean") {
6
- return access;
7
- }
8
- if (typeof access === "function") {
9
- return await access(args);
10
- }
11
- return true;
12
- }
13
- function mergeWhereClauses(...whereClauses) {
14
- const result = {};
15
- for (const clause of whereClauses) {
16
- if (clause && typeof clause === "object") {
17
- Object.assign(result, clause);
18
- }
19
- }
20
- return result;
21
- }
22
- function getWhereClause(access, args) {
23
- return evaluateAccess(access, args).then((result) => {
24
- if (result === true) return void 0;
25
- if (result === false) return { _id: { $eq: null } };
26
- return result;
27
- });
28
- }
29
- var API_KEY_COLLECTION = "api_keys";
30
- function generateKeyPrefix(key) {
31
- return key.substring(0, 8);
32
- }
33
- function constantTimeCompare(a, b) {
34
- if (a.length !== b.length) {
35
- return false;
36
- }
37
- try {
38
- return timingSafeEqual(Buffer.from(a), Buffer.from(b));
39
- } catch {
40
- return false;
41
- }
42
- }
43
- async function validateApiKey(rawKey, db, userLookup) {
44
- if (!rawKey || typeof rawKey !== "string") {
45
- return { valid: false, error: "No API key provided" };
46
- }
47
- if (!rawKey.startsWith("kyro_")) {
48
- return { valid: false, error: "Invalid API key format" };
49
- }
50
- const keyPrefix = generateKeyPrefix(rawKey);
51
- try {
52
- const result = await db.find({
53
- collection: API_KEY_COLLECTION,
54
- where: { keyPrefix: { equals: keyPrefix } },
55
- limit: 100,
56
- page: 1
57
- });
58
- if (!result.docs || result.docs.length === 0) {
59
- return { valid: false, error: "Invalid API key" };
60
- }
61
- let matchedKey = null;
62
- for (const doc of result.docs) {
63
- const record = doc;
64
- if (constantTimeCompare(record.key, rawKey)) {
65
- matchedKey = record;
66
- break;
67
- }
68
- }
69
- if (!matchedKey) {
70
- return { valid: false, error: "Invalid API key" };
71
- }
72
- if (matchedKey.expiresAt) {
73
- const expiresAt = new Date(matchedKey.expiresAt);
74
- if (expiresAt < /* @__PURE__ */ new Date()) {
75
- return { valid: false, error: "API key has expired" };
76
- }
77
- }
78
- try {
79
- await db.update({
80
- collection: API_KEY_COLLECTION,
81
- id: matchedKey.id,
82
- data: { lastUsedAt: (/* @__PURE__ */ new Date()).toISOString() }
83
- });
84
- } catch {
85
- }
86
- const user = {
87
- id: matchedKey.userId,
88
- role: matchedKey.role || "author",
89
- tenantId: matchedKey.tenantId
90
- };
91
- if (userLookup) {
92
- const dbUser = await userLookup(matchedKey.userId);
93
- if (dbUser) {
94
- Object.assign(user, dbUser);
95
- }
96
- }
97
- return {
98
- valid: true,
99
- userId: matchedKey.userId,
100
- user,
101
- permissions: matchedKey.permissions || [],
102
- apiKeyId: matchedKey.id,
103
- tenantId: user.tenantId,
104
- role: user.role
105
- };
106
- } catch (error) {
107
- console.error("[ApiKey] Validation error:", error);
108
- return { valid: false, error: "Failed to validate API key" };
109
- }
110
- }
111
- function extractApiKeyFromRequest(request) {
112
- const authHeader = request.headers.get("Authorization");
113
- if (authHeader) {
114
- if (authHeader.startsWith("ApiKey ")) {
115
- return authHeader.slice(7).trim();
116
- }
117
- if (authHeader.startsWith("Bearer ")) {
118
- return null;
119
- }
120
- }
121
- const xApiKey = request.headers.get("X-API-Key");
122
- if (xApiKey) {
123
- return xApiKey.trim();
124
- }
125
- return null;
126
- }
127
- function createApiKeyContext(result) {
128
- if (!result.valid || !result.userId) {
129
- return null;
130
- }
131
- return {
132
- userId: result.userId,
133
- user: result.user || {},
134
- permissions: result.permissions || [],
135
- apiKeyId: result.apiKeyId || "",
136
- tenantId: result.tenantId,
137
- role: result.role
138
- };
139
- }
140
- function hasApiKeyPermission(permissions, required) {
141
- if (permissions.length === 0) return false;
142
- if (permissions.includes("*")) return true;
143
- if (permissions.includes(required)) return true;
144
- const [resource, action] = required.split(":");
145
- if (permissions.includes(`${resource}:*`)) return true;
146
- return false;
147
- }
148
- function generateApiKey() {
149
- const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
150
- let suffix = "";
151
- for (let i = 0; i < 32; i++) {
152
- suffix += chars[Math.floor(Math.random() * chars.length)];
153
- }
154
- return `kyro_${suffix}`;
155
- }
156
- function generateApiKeyPrefix(key) {
157
- return key.substring(0, 8);
158
- }
159
-
160
- export { API_KEY_COLLECTION, createApiKeyContext, evaluateAccess, extractApiKeyFromRequest, generateApiKey, generateApiKeyPrefix, getWhereClause, hasApiKeyPermission, mergeWhereClauses, validateApiKey };
161
- //# sourceMappingURL=chunk-3AKCVYDB.js.map
162
- //# sourceMappingURL=chunk-3AKCVYDB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/access/types.ts","../src/auth/api-key.ts"],"names":[],"mappings":"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","file":"chunk-3AKCVYDB.js","sourcesContent":["import type { User, Request } from '../hooks/types.js';\n\n// ============================================================================\n// Access Control Types\n// ============================================================================\n\nexport interface WhereClause {\n [field: string]: any;\n}\n\nexport interface AccessArgs {\n req: Request;\n user?: User;\n data?: unknown;\n doc?: unknown;\n id?: string;\n tenantID?: string;\n context?: Record<string, unknown>;\n}\n\nexport type AccessControl = boolean | ((args: AccessArgs) => Promise<boolean | WhereClause> | boolean | WhereClause);\n\nexport interface CollectionAccess {\n create?: AccessControl;\n read?: AccessControl;\n update?: AccessControl;\n delete?: AccessControl;\n admin?: AccessControl;\n unlock?: AccessControl;\n readVersions?: AccessControl;\n}\n\nexport interface GlobalAccess {\n read?: AccessControl;\n update?: AccessControl;\n}\n\nexport interface FieldAccess {\n create?: AccessControl;\n read?: AccessControl;\n update?: AccessControl;\n}\n\n// ============================================================================\n// Access Control Evaluation\n// ============================================================================\n\nexport async function evaluateAccess(\n access: AccessControl,\n args: AccessArgs\n): Promise<boolean | WhereClause> {\n if (typeof access === 'boolean') {\n return access;\n }\n if (typeof access === 'function') {\n return await access(args);\n }\n return true;\n}\n\nexport function mergeWhereClauses(\n ...whereClauses: (WhereClause | boolean | undefined)[]\n): WhereClause {\n const result: WhereClause = {};\n for (const clause of whereClauses) {\n if (clause && typeof clause === 'object') {\n Object.assign(result, clause);\n }\n }\n return result;\n}\n\nexport function getWhereClause(\n access: AccessControl,\n args: AccessArgs\n): Promise<WhereClause | undefined> {\n return evaluateAccess(access, args).then(result => {\n if (result === true) return undefined;\n if (result === false) return { _id: { $eq: null } };\n return result;\n });\n}\n","import { timingSafeEqual } from \"crypto\";\nimport type { BaseAdapter } from \"../registry/types.js\";\nimport type { AuthUser, UserRole } from \"./types.js\";\n\nexport interface ApiKeyRecord {\n id: string;\n userId: string;\n name: string;\n key: string;\n keyPrefix: string;\n permissions: string[];\n lastUsedAt?: string;\n expiresAt?: string;\n createdAt: string;\n}\n\nexport interface ApiKeyValidationResult {\n valid: boolean;\n userId?: string;\n user?: Partial<AuthUser>;\n permissions?: string[];\n apiKeyId?: string;\n error?: string;\n tenantId?: string;\n role?: UserRole;\n}\n\nexport interface ApiKeyContext {\n userId: string;\n user: Partial<AuthUser>;\n permissions: string[];\n apiKeyId: string;\n tenantId?: string;\n role?: UserRole;\n}\n\nexport const API_KEY_COLLECTION = \"api_keys\";\n\nfunction generateKeyPrefix(key: string): string {\n return key.substring(0, 8);\n}\n\nfunction constantTimeCompare(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n try {\n return timingSafeEqual(Buffer.from(a), Buffer.from(b));\n } catch {\n return false;\n }\n}\n\nexport async function validateApiKey(\n rawKey: string,\n db: BaseAdapter,\n userLookup?: (userId: string) => Promise<Partial<AuthUser> | null>,\n): Promise<ApiKeyValidationResult> {\n if (!rawKey || typeof rawKey !== \"string\") {\n return { valid: false, error: \"No API key provided\" };\n }\n\n if (!rawKey.startsWith(\"kyro_\")) {\n return { valid: false, error: \"Invalid API key format\" };\n }\n\n const keyPrefix = generateKeyPrefix(rawKey);\n\n try {\n const result = await db.find({\n collection: API_KEY_COLLECTION,\n where: { keyPrefix: { equals: keyPrefix } },\n limit: 100,\n page: 1,\n });\n\n if (!result.docs || result.docs.length === 0) {\n return { valid: false, error: \"Invalid API key\" };\n }\n\n let matchedKey: ApiKeyRecord | null = null;\n for (const doc of result.docs) {\n const record = doc as unknown as ApiKeyRecord;\n if (constantTimeCompare(record.key, rawKey)) {\n matchedKey = record;\n break;\n }\n }\n\n if (!matchedKey) {\n return { valid: false, error: \"Invalid API key\" };\n }\n\n if (matchedKey.expiresAt) {\n const expiresAt = new Date(matchedKey.expiresAt);\n if (expiresAt < new Date()) {\n return { valid: false, error: \"API key has expired\" };\n }\n }\n\n try {\n await db.update({\n collection: API_KEY_COLLECTION,\n id: matchedKey.id,\n data: { lastUsedAt: new Date().toISOString() },\n });\n } catch {\n // Non-critical: don't fail if lastUsedAt update fails\n }\n\n const user: Partial<AuthUser> = {\n id: matchedKey.userId,\n role: (matchedKey as any).role || \"author\",\n tenantId: (matchedKey as any).tenantId,\n };\n\n if (userLookup) {\n const dbUser = await userLookup(matchedKey.userId);\n if (dbUser) {\n Object.assign(user, dbUser);\n }\n }\n\n return {\n valid: true,\n userId: matchedKey.userId,\n user,\n permissions: matchedKey.permissions || [],\n apiKeyId: matchedKey.id,\n tenantId: user.tenantId,\n role: user.role,\n };\n } catch (error) {\n console.error(\"[ApiKey] Validation error:\", error);\n return { valid: false, error: \"Failed to validate API key\" };\n }\n}\n\nexport function extractApiKeyFromRequest(request: Request): string | null {\n const authHeader = request.headers.get(\"Authorization\");\n if (authHeader) {\n if (authHeader.startsWith(\"ApiKey \")) {\n return authHeader.slice(7).trim();\n }\n if (authHeader.startsWith(\"Bearer \")) {\n return null;\n }\n }\n\n const xApiKey = request.headers.get(\"X-API-Key\");\n if (xApiKey) {\n return xApiKey.trim();\n }\n\n return null;\n}\n\nexport function createApiKeyContext(\n result: ApiKeyValidationResult,\n): ApiKeyContext | null {\n if (!result.valid || !result.userId) {\n return null;\n }\n return {\n userId: result.userId,\n user: result.user || {},\n permissions: result.permissions || [],\n apiKeyId: result.apiKeyId || \"\",\n tenantId: result.tenantId,\n role: result.role,\n };\n}\n\nexport function hasApiKeyPermission(\n permissions: string[],\n required: string,\n): boolean {\n if (permissions.length === 0) return false;\n if (permissions.includes(\"*\")) return true;\n if (permissions.includes(required)) return true;\n\n const [resource, action] = required.split(\":\");\n if (permissions.includes(`${resource}:*`)) return true;\n\n return false;\n}\n\nexport function generateApiKey(): string {\n const chars = \"abcdefghijklmnopqrstuvwxyz0123456789\";\n let suffix = \"\";\n for (let i = 0; i < 32; i++) {\n suffix += chars[Math.floor(Math.random() * chars.length)];\n }\n return `kyro_${suffix}`;\n}\n\nexport function generateApiKeyPrefix(key: string): string {\n return key.substring(0, 8);\n}\n"]}