@trokky/trokky 2.0.3

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 (639) hide show
  1. package/dist/adapters/filesystem/filesystem-adapter.d.ts +80 -0
  2. package/dist/adapters/filesystem/filesystem-adapter.d.ts.map +1 -0
  3. package/dist/adapters/filesystem/filesystem-adapter.js +1370 -0
  4. package/dist/adapters/filesystem/filesystem-adapter.js.map +1 -0
  5. package/dist/adapters/filesystem/index.d.ts +29 -0
  6. package/dist/adapters/filesystem/index.d.ts.map +1 -0
  7. package/dist/adapters/filesystem/index.js +31 -0
  8. package/dist/adapters/filesystem/index.js.map +1 -0
  9. package/dist/adapters/filesystem/types.d.ts +111 -0
  10. package/dist/adapters/filesystem/types.d.ts.map +1 -0
  11. package/dist/adapters/filesystem/types.js +2 -0
  12. package/dist/adapters/filesystem/types.js.map +1 -0
  13. package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts +111 -0
  14. package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts.map +1 -0
  15. package/dist/adapters/filesystem-data/filesystem-data-adapter.js +1363 -0
  16. package/dist/adapters/filesystem-data/filesystem-data-adapter.js.map +1 -0
  17. package/dist/adapters/filesystem-data/index.d.ts +3 -0
  18. package/dist/adapters/filesystem-data/index.d.ts.map +1 -0
  19. package/dist/adapters/filesystem-data/index.js +13 -0
  20. package/dist/adapters/filesystem-data/index.js.map +1 -0
  21. package/dist/adapters/filesystem-data/types.d.ts +147 -0
  22. package/dist/adapters/filesystem-data/types.d.ts.map +1 -0
  23. package/dist/adapters/filesystem-data/types.js +2 -0
  24. package/dist/adapters/filesystem-data/types.js.map +1 -0
  25. package/dist/adapters/filesystem-media/filesystem-media-adapter.d.ts +32 -0
  26. package/dist/adapters/filesystem-media/filesystem-media-adapter.d.ts.map +1 -0
  27. package/dist/adapters/filesystem-media/filesystem-media-adapter.js +639 -0
  28. package/dist/adapters/filesystem-media/filesystem-media-adapter.js.map +1 -0
  29. package/dist/adapters/filesystem-media/index.d.ts +3 -0
  30. package/dist/adapters/filesystem-media/index.d.ts.map +1 -0
  31. package/dist/adapters/filesystem-media/index.js +13 -0
  32. package/dist/adapters/filesystem-media/index.js.map +1 -0
  33. package/dist/adapters/filesystem-media/types.d.ts +76 -0
  34. package/dist/adapters/filesystem-media/types.d.ts.map +1 -0
  35. package/dist/adapters/filesystem-media/types.js +2 -0
  36. package/dist/adapters/filesystem-media/types.js.map +1 -0
  37. package/dist/adapters/postgres-data/index.d.ts +3 -0
  38. package/dist/adapters/postgres-data/index.d.ts.map +1 -0
  39. package/dist/adapters/postgres-data/index.js +13 -0
  40. package/dist/adapters/postgres-data/index.js.map +1 -0
  41. package/dist/adapters/postgres-data/postgres-data-adapter.d.ts +154 -0
  42. package/dist/adapters/postgres-data/postgres-data-adapter.d.ts.map +1 -0
  43. package/dist/adapters/postgres-data/postgres-data-adapter.js +1432 -0
  44. package/dist/adapters/postgres-data/postgres-data-adapter.js.map +1 -0
  45. package/dist/adapters/postgres-data/types.d.ts +139 -0
  46. package/dist/adapters/postgres-data/types.d.ts.map +1 -0
  47. package/dist/adapters/postgres-data/types.js +2 -0
  48. package/dist/adapters/postgres-data/types.js.map +1 -0
  49. package/dist/core/adapters/registry.d.ts +79 -0
  50. package/dist/core/adapters/registry.d.ts.map +1 -0
  51. package/dist/core/adapters/registry.js +149 -0
  52. package/dist/core/adapters/registry.js.map +1 -0
  53. package/dist/core/core/engine.d.ts +551 -0
  54. package/dist/core/core/engine.d.ts.map +1 -0
  55. package/dist/core/core/engine.js +1074 -0
  56. package/dist/core/core/engine.js.map +1 -0
  57. package/dist/core/crypto/adapter.d.ts +63 -0
  58. package/dist/core/crypto/adapter.d.ts.map +1 -0
  59. package/dist/core/crypto/adapter.js +63 -0
  60. package/dist/core/crypto/adapter.js.map +1 -0
  61. package/dist/core/crypto/fallback-adapter.d.ts +23 -0
  62. package/dist/core/crypto/fallback-adapter.d.ts.map +1 -0
  63. package/dist/core/crypto/fallback-adapter.js +195 -0
  64. package/dist/core/crypto/fallback-adapter.js.map +1 -0
  65. package/dist/core/crypto/node-adapter.d.ts +20 -0
  66. package/dist/core/crypto/node-adapter.d.ts.map +1 -0
  67. package/dist/core/crypto/node-adapter.js +85 -0
  68. package/dist/core/crypto/node-adapter.js.map +1 -0
  69. package/dist/core/crypto/password-hash.d.ts +73 -0
  70. package/dist/core/crypto/password-hash.d.ts.map +1 -0
  71. package/dist/core/crypto/password-hash.js +244 -0
  72. package/dist/core/crypto/password-hash.js.map +1 -0
  73. package/dist/core/crypto/webcrypto-adapter.d.ts +24 -0
  74. package/dist/core/crypto/webcrypto-adapter.d.ts.map +1 -0
  75. package/dist/core/crypto/webcrypto-adapter.js +158 -0
  76. package/dist/core/crypto/webcrypto-adapter.js.map +1 -0
  77. package/dist/core/errors/index.d.ts +30 -0
  78. package/dist/core/errors/index.d.ts.map +1 -0
  79. package/dist/core/errors/index.js +61 -0
  80. package/dist/core/errors/index.js.map +1 -0
  81. package/dist/core/events/event-bus.d.ts +121 -0
  82. package/dist/core/events/event-bus.d.ts.map +1 -0
  83. package/dist/core/events/event-bus.js +631 -0
  84. package/dist/core/events/event-bus.js.map +1 -0
  85. package/dist/core/events/index.d.ts +17 -0
  86. package/dist/core/events/index.d.ts.map +1 -0
  87. package/dist/core/events/index.js +22 -0
  88. package/dist/core/events/index.js.map +1 -0
  89. package/dist/core/events/memory-storage.d.ts +57 -0
  90. package/dist/core/events/memory-storage.d.ts.map +1 -0
  91. package/dist/core/events/memory-storage.js +175 -0
  92. package/dist/core/events/memory-storage.js.map +1 -0
  93. package/dist/core/events/types.d.ts +434 -0
  94. package/dist/core/events/types.d.ts.map +1 -0
  95. package/dist/core/events/types.js +9 -0
  96. package/dist/core/events/types.js.map +1 -0
  97. package/dist/core/events/utils.d.ts +134 -0
  98. package/dist/core/events/utils.d.ts.map +1 -0
  99. package/dist/core/events/utils.js +333 -0
  100. package/dist/core/events/utils.js.map +1 -0
  101. package/dist/core/fields/conditional.d.ts +115 -0
  102. package/dist/core/fields/conditional.d.ts.map +1 -0
  103. package/dist/core/fields/conditional.js +296 -0
  104. package/dist/core/fields/conditional.js.map +1 -0
  105. package/dist/core/fields/field-type.d.ts +218 -0
  106. package/dist/core/fields/field-type.d.ts.map +1 -0
  107. package/dist/core/fields/field-type.js +17 -0
  108. package/dist/core/fields/field-type.js.map +1 -0
  109. package/dist/core/fields/helpers.d.ts +86 -0
  110. package/dist/core/fields/helpers.d.ts.map +1 -0
  111. package/dist/core/fields/helpers.js +260 -0
  112. package/dist/core/fields/helpers.js.map +1 -0
  113. package/dist/core/fields/index.d.ts +5 -0
  114. package/dist/core/fields/index.d.ts.map +1 -0
  115. package/dist/core/fields/index.js +6 -0
  116. package/dist/core/fields/index.js.map +1 -0
  117. package/dist/core/fields/registry.d.ts +78 -0
  118. package/dist/core/fields/registry.d.ts.map +1 -0
  119. package/dist/core/fields/registry.js +185 -0
  120. package/dist/core/fields/registry.js.map +1 -0
  121. package/dist/core/index.d.ts +39 -0
  122. package/dist/core/index.d.ts.map +1 -0
  123. package/dist/core/index.js +57 -0
  124. package/dist/core/index.js.map +1 -0
  125. package/dist/core/media/image-processor.d.ts +24 -0
  126. package/dist/core/media/image-processor.d.ts.map +1 -0
  127. package/dist/core/media/image-processor.js +69 -0
  128. package/dist/core/media/image-processor.js.map +1 -0
  129. package/dist/core/media/processors/cloudflare-images.d.ts +83 -0
  130. package/dist/core/media/processors/cloudflare-images.d.ts.map +1 -0
  131. package/dist/core/media/processors/cloudflare-images.js +241 -0
  132. package/dist/core/media/processors/cloudflare-images.js.map +1 -0
  133. package/dist/core/media/processors/cloudflare-transform-store.d.ts +127 -0
  134. package/dist/core/media/processors/cloudflare-transform-store.d.ts.map +1 -0
  135. package/dist/core/media/processors/cloudflare-transform-store.js +237 -0
  136. package/dist/core/media/processors/cloudflare-transform-store.js.map +1 -0
  137. package/dist/core/media/processors/cloudflare-transformations.d.ts +81 -0
  138. package/dist/core/media/processors/cloudflare-transformations.d.ts.map +1 -0
  139. package/dist/core/media/processors/cloudflare-transformations.js +144 -0
  140. package/dist/core/media/processors/cloudflare-transformations.js.map +1 -0
  141. package/dist/core/media/processors/index.d.ts +9 -0
  142. package/dist/core/media/processors/index.d.ts.map +1 -0
  143. package/dist/core/media/processors/index.js +13 -0
  144. package/dist/core/media/processors/index.js.map +1 -0
  145. package/dist/core/media/processors/noop.d.ts +22 -0
  146. package/dist/core/media/processors/noop.d.ts.map +1 -0
  147. package/dist/core/media/processors/noop.js +38 -0
  148. package/dist/core/media/processors/noop.js.map +1 -0
  149. package/dist/core/media/processors/sharp.d.ts +30 -0
  150. package/dist/core/media/processors/sharp.d.ts.map +1 -0
  151. package/dist/core/media/processors/sharp.js +126 -0
  152. package/dist/core/media/processors/sharp.js.map +1 -0
  153. package/dist/core/media/processors/types.d.ts +67 -0
  154. package/dist/core/media/processors/types.d.ts.map +1 -0
  155. package/dist/core/media/processors/types.js +42 -0
  156. package/dist/core/media/processors/types.js.map +1 -0
  157. package/dist/core/media/processors/workers-images.d.ts +112 -0
  158. package/dist/core/media/processors/workers-images.d.ts.map +1 -0
  159. package/dist/core/media/processors/workers-images.js +257 -0
  160. package/dist/core/media/processors/workers-images.js.map +1 -0
  161. package/dist/core/schema/registry.d.ts +41 -0
  162. package/dist/core/schema/registry.d.ts.map +1 -0
  163. package/dist/core/schema/registry.js +248 -0
  164. package/dist/core/schema/registry.js.map +1 -0
  165. package/dist/core/schema/singleton.d.ts +107 -0
  166. package/dist/core/schema/singleton.d.ts.map +1 -0
  167. package/dist/core/schema/singleton.js +180 -0
  168. package/dist/core/schema/singleton.js.map +1 -0
  169. package/dist/core/security/auth.d.ts +120 -0
  170. package/dist/core/security/auth.d.ts.map +1 -0
  171. package/dist/core/security/auth.js +274 -0
  172. package/dist/core/security/auth.js.map +1 -0
  173. package/dist/core/security/captcha/index.d.ts +21 -0
  174. package/dist/core/security/captcha/index.d.ts.map +1 -0
  175. package/dist/core/security/captcha/index.js +34 -0
  176. package/dist/core/security/captcha/index.js.map +1 -0
  177. package/dist/core/security/captcha/recaptcha.d.ts +41 -0
  178. package/dist/core/security/captcha/recaptcha.d.ts.map +1 -0
  179. package/dist/core/security/captcha/recaptcha.js +89 -0
  180. package/dist/core/security/captcha/recaptcha.js.map +1 -0
  181. package/dist/core/security/captcha/turnstile.d.ts +41 -0
  182. package/dist/core/security/captcha/turnstile.d.ts.map +1 -0
  183. package/dist/core/security/captcha/turnstile.js +90 -0
  184. package/dist/core/security/captcha/turnstile.js.map +1 -0
  185. package/dist/core/security/captcha/types.d.ts +66 -0
  186. package/dist/core/security/captcha/types.d.ts.map +1 -0
  187. package/dist/core/security/captcha/types.js +7 -0
  188. package/dist/core/security/captcha/types.js.map +1 -0
  189. package/dist/core/security/mfa/email-otp.d.ts +91 -0
  190. package/dist/core/security/mfa/email-otp.d.ts.map +1 -0
  191. package/dist/core/security/mfa/email-otp.js +264 -0
  192. package/dist/core/security/mfa/email-otp.js.map +1 -0
  193. package/dist/core/security/mfa/index.d.ts +8 -0
  194. package/dist/core/security/mfa/index.d.ts.map +1 -0
  195. package/dist/core/security/mfa/index.js +8 -0
  196. package/dist/core/security/mfa/index.js.map +1 -0
  197. package/dist/core/security/mfa/totp.d.ts +87 -0
  198. package/dist/core/security/mfa/totp.d.ts.map +1 -0
  199. package/dist/core/security/mfa/totp.js +293 -0
  200. package/dist/core/security/mfa/totp.js.map +1 -0
  201. package/dist/core/security/middleware.d.ts +102 -0
  202. package/dist/core/security/middleware.d.ts.map +1 -0
  203. package/dist/core/security/middleware.js +261 -0
  204. package/dist/core/security/middleware.js.map +1 -0
  205. package/dist/core/security/oauth/google.d.ts +76 -0
  206. package/dist/core/security/oauth/google.d.ts.map +1 -0
  207. package/dist/core/security/oauth/google.js +154 -0
  208. package/dist/core/security/oauth/google.js.map +1 -0
  209. package/dist/core/security/oauth/index.d.ts +8 -0
  210. package/dist/core/security/oauth/index.d.ts.map +1 -0
  211. package/dist/core/security/oauth/index.js +7 -0
  212. package/dist/core/security/oauth/index.js.map +1 -0
  213. package/dist/core/security/oauth2/authorization-server.d.ts +195 -0
  214. package/dist/core/security/oauth2/authorization-server.d.ts.map +1 -0
  215. package/dist/core/security/oauth2/authorization-server.js +569 -0
  216. package/dist/core/security/oauth2/authorization-server.js.map +1 -0
  217. package/dist/core/security/oauth2/index.d.ts +9 -0
  218. package/dist/core/security/oauth2/index.d.ts.map +1 -0
  219. package/dist/core/security/oauth2/index.js +9 -0
  220. package/dist/core/security/oauth2/index.js.map +1 -0
  221. package/dist/core/security/rate-limiter.d.ts +15 -0
  222. package/dist/core/security/rate-limiter.d.ts.map +1 -0
  223. package/dist/core/security/rate-limiter.js +48 -0
  224. package/dist/core/security/rate-limiter.js.map +1 -0
  225. package/dist/core/security/validation.d.ts +20 -0
  226. package/dist/core/security/validation.d.ts.map +1 -0
  227. package/dist/core/security/validation.js +273 -0
  228. package/dist/core/security/validation.js.map +1 -0
  229. package/dist/core/services/auth-service.d.ts +128 -0
  230. package/dist/core/services/auth-service.d.ts.map +1 -0
  231. package/dist/core/services/auth-service.js +530 -0
  232. package/dist/core/services/auth-service.js.map +1 -0
  233. package/dist/core/services/captcha-service.d.ts +44 -0
  234. package/dist/core/services/captcha-service.d.ts.map +1 -0
  235. package/dist/core/services/captcha-service.js +82 -0
  236. package/dist/core/services/captcha-service.js.map +1 -0
  237. package/dist/core/services/document-service.d.ts +59 -0
  238. package/dist/core/services/document-service.d.ts.map +1 -0
  239. package/dist/core/services/document-service.js +269 -0
  240. package/dist/core/services/document-service.js.map +1 -0
  241. package/dist/core/services/media-service.d.ts +40 -0
  242. package/dist/core/services/media-service.d.ts.map +1 -0
  243. package/dist/core/services/media-service.js +396 -0
  244. package/dist/core/services/media-service.js.map +1 -0
  245. package/dist/core/services/mfa-service.d.ts +123 -0
  246. package/dist/core/services/mfa-service.d.ts.map +1 -0
  247. package/dist/core/services/mfa-service.js +606 -0
  248. package/dist/core/services/mfa-service.js.map +1 -0
  249. package/dist/core/services/oauth-service.d.ts +58 -0
  250. package/dist/core/services/oauth-service.d.ts.map +1 -0
  251. package/dist/core/services/oauth-service.js +253 -0
  252. package/dist/core/services/oauth-service.js.map +1 -0
  253. package/dist/core/services/oauth2-server-service.d.ts +61 -0
  254. package/dist/core/services/oauth2-server-service.d.ts.map +1 -0
  255. package/dist/core/services/oauth2-server-service.js +259 -0
  256. package/dist/core/services/oauth2-server-service.js.map +1 -0
  257. package/dist/core/services/passkey-service.d.ts +59 -0
  258. package/dist/core/services/passkey-service.d.ts.map +1 -0
  259. package/dist/core/services/passkey-service.js +238 -0
  260. package/dist/core/services/passkey-service.js.map +1 -0
  261. package/dist/core/services/token-service.d.ts +31 -0
  262. package/dist/core/services/token-service.d.ts.map +1 -0
  263. package/dist/core/services/token-service.js +132 -0
  264. package/dist/core/services/token-service.js.map +1 -0
  265. package/dist/core/services/trusted-device-service.d.ts +39 -0
  266. package/dist/core/services/trusted-device-service.d.ts.map +1 -0
  267. package/dist/core/services/trusted-device-service.js +123 -0
  268. package/dist/core/services/trusted-device-service.js.map +1 -0
  269. package/dist/core/services/user-service.d.ts +38 -0
  270. package/dist/core/services/user-service.d.ts.map +1 -0
  271. package/dist/core/services/user-service.js +265 -0
  272. package/dist/core/services/user-service.js.map +1 -0
  273. package/dist/core/studio/integration.d.ts +54 -0
  274. package/dist/core/studio/integration.d.ts.map +1 -0
  275. package/dist/core/studio/integration.js +326 -0
  276. package/dist/core/studio/integration.js.map +1 -0
  277. package/dist/core/types/index.d.ts +282 -0
  278. package/dist/core/types/index.d.ts.map +1 -0
  279. package/dist/core/types/index.js +83 -0
  280. package/dist/core/types/index.js.map +1 -0
  281. package/dist/core/types/mail.d.ts +90 -0
  282. package/dist/core/types/mail.d.ts.map +1 -0
  283. package/dist/core/types/mail.js +7 -0
  284. package/dist/core/types/mail.js.map +1 -0
  285. package/dist/core/types/oauth2.d.ts +9 -0
  286. package/dist/core/types/oauth2.d.ts.map +1 -0
  287. package/dist/core/types/oauth2.js +7 -0
  288. package/dist/core/types/oauth2.js.map +1 -0
  289. package/dist/core/types/storage-adapters.d.ts +611 -0
  290. package/dist/core/types/storage-adapters.d.ts.map +1 -0
  291. package/dist/core/types/storage-adapters.js +14 -0
  292. package/dist/core/types/storage-adapters.js.map +1 -0
  293. package/dist/core/types/user.d.ts +10 -0
  294. package/dist/core/types/user.d.ts.map +1 -0
  295. package/dist/core/types/user.js +45 -0
  296. package/dist/core/types/user.js.map +1 -0
  297. package/dist/core/utils/id-generator.d.ts +16 -0
  298. package/dist/core/utils/id-generator.d.ts.map +1 -0
  299. package/dist/core/utils/id-generator.js +61 -0
  300. package/dist/core/utils/id-generator.js.map +1 -0
  301. package/dist/core/utils/logger.d.ts +100 -0
  302. package/dist/core/utils/logger.d.ts.map +1 -0
  303. package/dist/core/utils/logger.js +212 -0
  304. package/dist/core/utils/logger.js.map +1 -0
  305. package/dist/core/utils/reference-expander.d.ts +57 -0
  306. package/dist/core/utils/reference-expander.d.ts.map +1 -0
  307. package/dist/core/utils/reference-expander.js +192 -0
  308. package/dist/core/utils/reference-expander.js.map +1 -0
  309. package/dist/core/utils/universal-crypto.d.ts +46 -0
  310. package/dist/core/utils/universal-crypto.d.ts.map +1 -0
  311. package/dist/core/utils/universal-crypto.js +171 -0
  312. package/dist/core/utils/universal-crypto.js.map +1 -0
  313. package/dist/core/validation/validator.d.ts +11 -0
  314. package/dist/core/validation/validator.d.ts.map +1 -0
  315. package/dist/core/validation/validator.js +164 -0
  316. package/dist/core/validation/validator.js.map +1 -0
  317. package/dist/i18n/config.d.ts +4077 -0
  318. package/dist/i18n/config.d.ts.map +1 -0
  319. package/dist/i18n/config.js +116 -0
  320. package/dist/i18n/config.js.map +1 -0
  321. package/dist/i18n/hooks.d.ts +86 -0
  322. package/dist/i18n/hooks.d.ts.map +1 -0
  323. package/dist/i18n/hooks.js +122 -0
  324. package/dist/i18n/hooks.js.map +1 -0
  325. package/dist/i18n/index.d.ts +39 -0
  326. package/dist/i18n/index.d.ts.map +1 -0
  327. package/dist/i18n/index.js +40 -0
  328. package/dist/i18n/index.js.map +1 -0
  329. package/dist/i18n/locales/en/auth.json +108 -0
  330. package/dist/i18n/locales/en/common.json +100 -0
  331. package/dist/i18n/locales/en/errors.json +55 -0
  332. package/dist/i18n/locales/en/fields.json +456 -0
  333. package/dist/i18n/locales/en/studio.json +1329 -0
  334. package/dist/i18n/locales/fr/auth.json +108 -0
  335. package/dist/i18n/locales/fr/common.json +100 -0
  336. package/dist/i18n/locales/fr/errors.json +55 -0
  337. package/dist/i18n/locales/fr/fields.json +456 -0
  338. package/dist/i18n/locales/fr/studio.json +1274 -0
  339. package/dist/i18n/provider.d.ts +45 -0
  340. package/dist/i18n/provider.d.ts.map +1 -0
  341. package/dist/i18n/provider.js +49 -0
  342. package/dist/i18n/provider.js.map +1 -0
  343. package/dist/i18n/types.d.ts +8 -0
  344. package/dist/i18n/types.d.ts.map +1 -0
  345. package/dist/i18n/types.js +7 -0
  346. package/dist/i18n/types.js.map +1 -0
  347. package/dist/index.d.ts +15 -0
  348. package/dist/index.d.ts.map +1 -0
  349. package/dist/index.js +16 -0
  350. package/dist/index.js.map +1 -0
  351. package/dist/integrations/express/adapter.d.ts +33 -0
  352. package/dist/integrations/express/adapter.d.ts.map +1 -0
  353. package/dist/integrations/express/adapter.js +203 -0
  354. package/dist/integrations/express/adapter.js.map +1 -0
  355. package/dist/integrations/express/config.d.ts +599 -0
  356. package/dist/integrations/express/config.d.ts.map +1 -0
  357. package/dist/integrations/express/config.js +166 -0
  358. package/dist/integrations/express/config.js.map +1 -0
  359. package/dist/integrations/express/index.d.ts +10 -0
  360. package/dist/integrations/express/index.d.ts.map +1 -0
  361. package/dist/integrations/express/index.js +9 -0
  362. package/dist/integrations/express/index.js.map +1 -0
  363. package/dist/integrations/express/integration.d.ts +111 -0
  364. package/dist/integrations/express/integration.d.ts.map +1 -0
  365. package/dist/integrations/express/integration.js +730 -0
  366. package/dist/integrations/express/integration.js.map +1 -0
  367. package/dist/integrations/express/media-rewrite-middleware.d.ts +78 -0
  368. package/dist/integrations/express/media-rewrite-middleware.d.ts.map +1 -0
  369. package/dist/integrations/express/media-rewrite-middleware.js +211 -0
  370. package/dist/integrations/express/media-rewrite-middleware.js.map +1 -0
  371. package/dist/integrations/express/media-url-generator.d.ts +52 -0
  372. package/dist/integrations/express/media-url-generator.d.ts.map +1 -0
  373. package/dist/integrations/express/media-url-generator.js +107 -0
  374. package/dist/integrations/express/media-url-generator.js.map +1 -0
  375. package/dist/integrations/express/middleware.d.ts +25 -0
  376. package/dist/integrations/express/middleware.d.ts.map +1 -0
  377. package/dist/integrations/express/middleware.js +130 -0
  378. package/dist/integrations/express/middleware.js.map +1 -0
  379. package/dist/integrations/express/server.d.ts +99 -0
  380. package/dist/integrations/express/server.d.ts.map +1 -0
  381. package/dist/integrations/express/server.js +597 -0
  382. package/dist/integrations/express/server.js.map +1 -0
  383. package/dist/integrations/express/types.d.ts +106 -0
  384. package/dist/integrations/express/types.d.ts.map +1 -0
  385. package/dist/integrations/express/types.js +2 -0
  386. package/dist/integrations/express/types.js.map +1 -0
  387. package/dist/mail/adapters/console.d.ts +30 -0
  388. package/dist/mail/adapters/console.d.ts.map +1 -0
  389. package/dist/mail/adapters/console.js +169 -0
  390. package/dist/mail/adapters/console.js.map +1 -0
  391. package/dist/mail/adapters/resend.d.ts +18 -0
  392. package/dist/mail/adapters/resend.d.ts.map +1 -0
  393. package/dist/mail/adapters/resend.js +148 -0
  394. package/dist/mail/adapters/resend.js.map +1 -0
  395. package/dist/mail/adapters/smtp.d.ts +22 -0
  396. package/dist/mail/adapters/smtp.d.ts.map +1 -0
  397. package/dist/mail/adapters/smtp.js +180 -0
  398. package/dist/mail/adapters/smtp.js.map +1 -0
  399. package/dist/mail/index.d.ts +15 -0
  400. package/dist/mail/index.d.ts.map +1 -0
  401. package/dist/mail/index.js +13 -0
  402. package/dist/mail/index.js.map +1 -0
  403. package/dist/mail/mail-service.d.ts +180 -0
  404. package/dist/mail/mail-service.d.ts.map +1 -0
  405. package/dist/mail/mail-service.js +370 -0
  406. package/dist/mail/mail-service.js.map +1 -0
  407. package/dist/mail/notification-service.d.ts +82 -0
  408. package/dist/mail/notification-service.d.ts.map +1 -0
  409. package/dist/mail/notification-service.js +262 -0
  410. package/dist/mail/notification-service.js.map +1 -0
  411. package/dist/mail/templates/built-in-templates.d.ts +47 -0
  412. package/dist/mail/templates/built-in-templates.d.ts.map +1 -0
  413. package/dist/mail/templates/built-in-templates.js +416 -0
  414. package/dist/mail/templates/built-in-templates.js.map +1 -0
  415. package/dist/mail/templates/custom-template-renderer.d.ts +115 -0
  416. package/dist/mail/templates/custom-template-renderer.d.ts.map +1 -0
  417. package/dist/mail/templates/custom-template-renderer.js +225 -0
  418. package/dist/mail/templates/custom-template-renderer.js.map +1 -0
  419. package/dist/mail/types.d.ts +7 -0
  420. package/dist/mail/types.d.ts.map +1 -0
  421. package/dist/mail/types.js +7 -0
  422. package/dist/mail/types.js.map +1 -0
  423. package/dist/routes/auth/captcha.d.ts +33 -0
  424. package/dist/routes/auth/captcha.d.ts.map +1 -0
  425. package/dist/routes/auth/captcha.js +102 -0
  426. package/dist/routes/auth/captcha.js.map +1 -0
  427. package/dist/routes/auth/change-password.d.ts +17 -0
  428. package/dist/routes/auth/change-password.d.ts.map +1 -0
  429. package/dist/routes/auth/change-password.js +121 -0
  430. package/dist/routes/auth/change-password.js.map +1 -0
  431. package/dist/routes/auth/index.d.ts +13 -0
  432. package/dist/routes/auth/index.d.ts.map +1 -0
  433. package/dist/routes/auth/index.js +35 -0
  434. package/dist/routes/auth/index.js.map +1 -0
  435. package/dist/routes/auth/mfa.d.ts +121 -0
  436. package/dist/routes/auth/mfa.d.ts.map +1 -0
  437. package/dist/routes/auth/mfa.js +1143 -0
  438. package/dist/routes/auth/mfa.js.map +1 -0
  439. package/dist/routes/auth/oauth.d.ts +37 -0
  440. package/dist/routes/auth/oauth.d.ts.map +1 -0
  441. package/dist/routes/auth/oauth.js +420 -0
  442. package/dist/routes/auth/oauth.js.map +1 -0
  443. package/dist/routes/auth/oauth2-server.d.ts +70 -0
  444. package/dist/routes/auth/oauth2-server.d.ts.map +1 -0
  445. package/dist/routes/auth/oauth2-server.js +775 -0
  446. package/dist/routes/auth/oauth2-server.js.map +1 -0
  447. package/dist/routes/auth/passkey.d.ts +65 -0
  448. package/dist/routes/auth/passkey.d.ts.map +1 -0
  449. package/dist/routes/auth/passkey.js +910 -0
  450. package/dist/routes/auth/passkey.js.map +1 -0
  451. package/dist/routes/auth/password-reset.d.ts +23 -0
  452. package/dist/routes/auth/password-reset.d.ts.map +1 -0
  453. package/dist/routes/auth/password-reset.js +336 -0
  454. package/dist/routes/auth/password-reset.js.map +1 -0
  455. package/dist/routes/handlers/audit.d.ts +21 -0
  456. package/dist/routes/handlers/audit.d.ts.map +1 -0
  457. package/dist/routes/handlers/audit.js +124 -0
  458. package/dist/routes/handlers/audit.js.map +1 -0
  459. package/dist/routes/handlers/auth.d.ts +150 -0
  460. package/dist/routes/handlers/auth.d.ts.map +1 -0
  461. package/dist/routes/handlers/auth.js +512 -0
  462. package/dist/routes/handlers/auth.js.map +1 -0
  463. package/dist/routes/handlers/base.d.ts +34 -0
  464. package/dist/routes/handlers/base.d.ts.map +1 -0
  465. package/dist/routes/handlers/base.js +366 -0
  466. package/dist/routes/handlers/base.js.map +1 -0
  467. package/dist/routes/handlers/config.d.ts +31 -0
  468. package/dist/routes/handlers/config.d.ts.map +1 -0
  469. package/dist/routes/handlers/config.js +483 -0
  470. package/dist/routes/handlers/config.js.map +1 -0
  471. package/dist/routes/handlers/documents.d.ts +50 -0
  472. package/dist/routes/handlers/documents.d.ts.map +1 -0
  473. package/dist/routes/handlers/documents.js +708 -0
  474. package/dist/routes/handlers/documents.js.map +1 -0
  475. package/dist/routes/handlers/index.d.ts +12 -0
  476. package/dist/routes/handlers/index.d.ts.map +1 -0
  477. package/dist/routes/handlers/index.js +11 -0
  478. package/dist/routes/handlers/index.js.map +1 -0
  479. package/dist/routes/handlers/media.d.ts +24 -0
  480. package/dist/routes/handlers/media.d.ts.map +1 -0
  481. package/dist/routes/handlers/media.js +432 -0
  482. package/dist/routes/handlers/media.js.map +1 -0
  483. package/dist/routes/handlers/search.d.ts +10 -0
  484. package/dist/routes/handlers/search.d.ts.map +1 -0
  485. package/dist/routes/handlers/search.js +153 -0
  486. package/dist/routes/handlers/search.js.map +1 -0
  487. package/dist/routes/handlers/tokens.d.ts +14 -0
  488. package/dist/routes/handlers/tokens.d.ts.map +1 -0
  489. package/dist/routes/handlers/tokens.js +109 -0
  490. package/dist/routes/handlers/tokens.js.map +1 -0
  491. package/dist/routes/handlers/types.d.ts +13 -0
  492. package/dist/routes/handlers/types.d.ts.map +1 -0
  493. package/dist/routes/handlers/types.js +5 -0
  494. package/dist/routes/handlers/types.js.map +1 -0
  495. package/dist/routes/handlers/users.d.ts +16 -0
  496. package/dist/routes/handlers/users.d.ts.map +1 -0
  497. package/dist/routes/handlers/users.js +198 -0
  498. package/dist/routes/handlers/users.js.map +1 -0
  499. package/dist/routes/handlers/webhooks.d.ts +37 -0
  500. package/dist/routes/handlers/webhooks.d.ts.map +1 -0
  501. package/dist/routes/handlers/webhooks.js +343 -0
  502. package/dist/routes/handlers/webhooks.js.map +1 -0
  503. package/dist/routes/index.d.ts +5 -0
  504. package/dist/routes/index.d.ts.map +1 -0
  505. package/dist/routes/index.js +5 -0
  506. package/dist/routes/index.js.map +1 -0
  507. package/dist/routes/routes.d.ts +29 -0
  508. package/dist/routes/routes.d.ts.map +1 -0
  509. package/dist/routes/routes.js +531 -0
  510. package/dist/routes/routes.js.map +1 -0
  511. package/dist/routes/slug-processor.d.ts +32 -0
  512. package/dist/routes/slug-processor.d.ts.map +1 -0
  513. package/dist/routes/slug-processor.js +328 -0
  514. package/dist/routes/slug-processor.js.map +1 -0
  515. package/dist/routes/types.d.ts +31 -0
  516. package/dist/routes/types.d.ts.map +1 -0
  517. package/dist/routes/types.js +7 -0
  518. package/dist/routes/types.js.map +1 -0
  519. package/dist/routes/users/index.d.ts +7 -0
  520. package/dist/routes/users/index.d.ts.map +1 -0
  521. package/dist/routes/users/index.js +7 -0
  522. package/dist/routes/users/index.js.map +1 -0
  523. package/dist/structure/builder/StructureBuilder.d.ts +209 -0
  524. package/dist/structure/builder/StructureBuilder.d.ts.map +1 -0
  525. package/dist/structure/builder/StructureBuilder.js +425 -0
  526. package/dist/structure/builder/StructureBuilder.js.map +1 -0
  527. package/dist/structure/builder/index.d.ts +8 -0
  528. package/dist/structure/builder/index.d.ts.map +1 -0
  529. package/dist/structure/builder/index.js +6 -0
  530. package/dist/structure/builder/index.js.map +1 -0
  531. package/dist/structure/builder/navigation-tree-builder.d.ts +33 -0
  532. package/dist/structure/builder/navigation-tree-builder.d.ts.map +1 -0
  533. package/dist/structure/builder/navigation-tree-builder.js +284 -0
  534. package/dist/structure/builder/navigation-tree-builder.js.map +1 -0
  535. package/dist/structure/errors/index.d.ts +72 -0
  536. package/dist/structure/errors/index.d.ts.map +1 -0
  537. package/dist/structure/errors/index.js +136 -0
  538. package/dist/structure/errors/index.js.map +1 -0
  539. package/dist/structure/index.d.ts +14 -0
  540. package/dist/structure/index.d.ts.map +1 -0
  541. package/dist/structure/index.js +16 -0
  542. package/dist/structure/index.js.map +1 -0
  543. package/dist/structure/types/filters.d.ts +167 -0
  544. package/dist/structure/types/filters.d.ts.map +1 -0
  545. package/dist/structure/types/filters.js +38 -0
  546. package/dist/structure/types/filters.js.map +1 -0
  547. package/dist/structure/types/index.d.ts +11 -0
  548. package/dist/structure/types/index.d.ts.map +1 -0
  549. package/dist/structure/types/index.js +7 -0
  550. package/dist/structure/types/index.js.map +1 -0
  551. package/dist/structure/types/permissions.d.ts +159 -0
  552. package/dist/structure/types/permissions.d.ts.map +1 -0
  553. package/dist/structure/types/permissions.js +49 -0
  554. package/dist/structure/types/permissions.js.map +1 -0
  555. package/dist/structure/types/structure.d.ts +342 -0
  556. package/dist/structure/types/structure.d.ts.map +1 -0
  557. package/dist/structure/types/structure.js +6 -0
  558. package/dist/structure/types/structure.js.map +1 -0
  559. package/dist/structure/types/views.d.ts +278 -0
  560. package/dist/structure/types/views.d.ts.map +1 -0
  561. package/dist/structure/types/views.js +6 -0
  562. package/dist/structure/types/views.js.map +1 -0
  563. package/dist/structure/utils/hash.d.ts +61 -0
  564. package/dist/structure/utils/hash.d.ts.map +1 -0
  565. package/dist/structure/utils/hash.js +118 -0
  566. package/dist/structure/utils/hash.js.map +1 -0
  567. package/dist/structure/utils/index.d.ts +10 -0
  568. package/dist/structure/utils/index.d.ts.map +1 -0
  569. package/dist/structure/utils/index.js +7 -0
  570. package/dist/structure/utils/index.js.map +1 -0
  571. package/dist/structure/utils/permission-checker.d.ts +57 -0
  572. package/dist/structure/utils/permission-checker.d.ts.map +1 -0
  573. package/dist/structure/utils/permission-checker.js +286 -0
  574. package/dist/structure/utils/permission-checker.js.map +1 -0
  575. package/dist/structure/utils/query-builder.d.ts +82 -0
  576. package/dist/structure/utils/query-builder.d.ts.map +1 -0
  577. package/dist/structure/utils/query-builder.js +489 -0
  578. package/dist/structure/utils/query-builder.js.map +1 -0
  579. package/dist/structure/utils/structure-merger.d.ts +91 -0
  580. package/dist/structure/utils/structure-merger.d.ts.map +1 -0
  581. package/dist/structure/utils/structure-merger.js +445 -0
  582. package/dist/structure/utils/structure-merger.js.map +1 -0
  583. package/dist/structure/validation/schemas.d.ts +3107 -0
  584. package/dist/structure/validation/schemas.d.ts.map +1 -0
  585. package/dist/structure/validation/schemas.js +436 -0
  586. package/dist/structure/validation/schemas.js.map +1 -0
  587. package/dist/types/api-requests.d.ts +334 -0
  588. package/dist/types/api-requests.d.ts.map +1 -0
  589. package/dist/types/api-requests.js +8 -0
  590. package/dist/types/api-requests.js.map +1 -0
  591. package/dist/types/auth.d.ts +394 -0
  592. package/dist/types/auth.d.ts.map +1 -0
  593. package/dist/types/auth.js +8 -0
  594. package/dist/types/auth.js.map +1 -0
  595. package/dist/types/document.d.ts +49 -0
  596. package/dist/types/document.d.ts.map +1 -0
  597. package/dist/types/document.js +6 -0
  598. package/dist/types/document.js.map +1 -0
  599. package/dist/types/field-system.d.ts +197 -0
  600. package/dist/types/field-system.d.ts.map +1 -0
  601. package/dist/types/field-system.js +8 -0
  602. package/dist/types/field-system.js.map +1 -0
  603. package/dist/types/fields.d.ts +17 -0
  604. package/dist/types/fields.d.ts.map +1 -0
  605. package/dist/types/fields.js +21 -0
  606. package/dist/types/fields.js.map +1 -0
  607. package/dist/types/http.d.ts +162 -0
  608. package/dist/types/http.d.ts.map +1 -0
  609. package/dist/types/http.js +8 -0
  610. package/dist/types/http.js.map +1 -0
  611. package/dist/types/i18n.d.ts +56 -0
  612. package/dist/types/i18n.d.ts.map +1 -0
  613. package/dist/types/i18n.js +25 -0
  614. package/dist/types/i18n.js.map +1 -0
  615. package/dist/types/index.d.ts +22 -0
  616. package/dist/types/index.d.ts.map +1 -0
  617. package/dist/types/index.js +10 -0
  618. package/dist/types/index.js.map +1 -0
  619. package/dist/types/mail.d.ts +224 -0
  620. package/dist/types/mail.d.ts.map +1 -0
  621. package/dist/types/mail.js +8 -0
  622. package/dist/types/mail.js.map +1 -0
  623. package/dist/types/media.d.ts +56 -0
  624. package/dist/types/media.d.ts.map +1 -0
  625. package/dist/types/media.js +6 -0
  626. package/dist/types/media.js.map +1 -0
  627. package/dist/types/oauth2.d.ts +287 -0
  628. package/dist/types/oauth2.d.ts.map +1 -0
  629. package/dist/types/oauth2.js +43 -0
  630. package/dist/types/oauth2.js.map +1 -0
  631. package/dist/types/passkey.d.ts +217 -0
  632. package/dist/types/passkey.d.ts.map +1 -0
  633. package/dist/types/passkey.js +8 -0
  634. package/dist/types/passkey.js.map +1 -0
  635. package/dist/types/slug.d.ts +99 -0
  636. package/dist/types/slug.d.ts.map +1 -0
  637. package/dist/types/slug.js +8 -0
  638. package/dist/types/slug.js.map +1 -0
  639. package/package.json +183 -0
@@ -0,0 +1,599 @@
1
+ /**
2
+ * Professional Trokky Express Configuration System
3
+ *
4
+ * This provides a clean, type-safe configuration interface that can be used
5
+ * both directly in TrokkyExpress.setup() and via trokky.config.ts files.
6
+ */
7
+ import type { ContentSchema, UserRole, PasskeyConfig } from '../../core/index.js';
8
+ import type { MailAdapter, TemplateRenderer } from '../../mail/index.js';
9
+ import type { Request, Response, NextFunction, Express } from 'express';
10
+ export type TrokkyEnvironment = 'development' | 'production' | 'test';
11
+ export interface StorageConfig {
12
+ /** Data storage adapter configuration */
13
+ data: {
14
+ adapter: 'filesystem-data' | 'cloudflare-d1' | 'dynamodb' | 'postgres-data';
15
+ options?: {
16
+ contentDir?: string;
17
+ usersDir?: string;
18
+ tokensDir?: string;
19
+ webhooksDir?: string;
20
+ settingsDir?: string;
21
+ auditLogsDir?: string;
22
+ createDirs?: boolean;
23
+ prettyJson?: boolean;
24
+ jsonSpaces?: number;
25
+ silent?: boolean;
26
+ database?: any;
27
+ databaseName?: string;
28
+ tablePrefix?: string;
29
+ debug?: boolean;
30
+ enableFTS?: boolean;
31
+ enableAuditLog?: boolean;
32
+ migrations?: string[];
33
+ region?: string;
34
+ accessKeyId?: string;
35
+ secretAccessKey?: string;
36
+ connection?: string;
37
+ schema?: string;
38
+ pool?: {
39
+ max?: number;
40
+ idleTimeoutMillis?: number;
41
+ connectionTimeoutMillis?: number;
42
+ };
43
+ useMigrations?: boolean;
44
+ dropExisting?: boolean;
45
+ };
46
+ };
47
+ /** Media storage adapter configuration */
48
+ media: {
49
+ adapter: 'filesystem-media' | 'cloudflare-r2' | 's3';
50
+ options?: {
51
+ mediaDir?: string;
52
+ createDirs?: boolean;
53
+ prettyJson?: boolean;
54
+ jsonSpaces?: number;
55
+ mediaBaseUrl?: string;
56
+ silent?: boolean;
57
+ bucket?: any;
58
+ bucketName?: string;
59
+ keyPrefix?: string;
60
+ debug?: boolean;
61
+ cacheControl?: string;
62
+ defaultMetadata?: Record<string, string>;
63
+ autoContentType?: boolean;
64
+ maxFileSize?: number;
65
+ allowPublicUrls?: boolean;
66
+ customDomain?: string;
67
+ defaultUrlExpiry?: number;
68
+ maxUrlExpiry?: number;
69
+ accountId?: string;
70
+ accessKeyId?: string;
71
+ secretAccessKey?: string;
72
+ cspConfig?: {
73
+ enabled?: boolean;
74
+ defaultPolicy?: string;
75
+ policies?: Record<string, string>;
76
+ additionalDirectives?: string[];
77
+ reportUri?: string;
78
+ };
79
+ region?: string;
80
+ };
81
+ };
82
+ }
83
+ export interface MediaConfig {
84
+ /** Image processing engine */
85
+ processor: 'none' | 'sharp' | 'cloudflare-images' | 'imagekit' | 'imgix';
86
+ /** Auto-generated image variants */
87
+ variants?: ImageVariant[];
88
+ /** Upload limits */
89
+ upload?: {
90
+ maxFileSize?: number;
91
+ maxFiles?: number;
92
+ allowedMimeTypes?: string[];
93
+ };
94
+ /** Media serving configuration */
95
+ serving?: {
96
+ mode?: 'api' | 'static';
97
+ staticBasePath?: string;
98
+ customDomain?: string;
99
+ };
100
+ /**
101
+ * Custom media URL generator.
102
+ * Can be either a function or a configuration object for Studio.
103
+ */
104
+ mediaUrlGenerator?: ((media: {
105
+ _id: string;
106
+ filename?: string;
107
+ mimeType?: string;
108
+ }) => string) | {
109
+ options?: {
110
+ apiBasePath?: string;
111
+ mediaConfig?: {
112
+ serving?: {
113
+ mode?: 'api' | 'static';
114
+ baseUrl?: string;
115
+ };
116
+ };
117
+ };
118
+ };
119
+ }
120
+ export interface ImageVariant {
121
+ name: string;
122
+ width?: number;
123
+ height?: number;
124
+ format?: 'jpeg' | 'png' | 'webp' | 'avif';
125
+ quality?: number;
126
+ fit?: 'cover' | 'contain' | 'fill' | 'inside' | 'outside';
127
+ }
128
+ export interface SecurityConfig {
129
+ /** Enable JWT authentication (auto-enabled in production) */
130
+ enabled?: boolean;
131
+ /** JWT secret key (required in production) */
132
+ jwtSecret?: string;
133
+ /** Token expiration settings */
134
+ tokens?: {
135
+ accessTokenTtl?: string;
136
+ refreshTokenTtl?: string;
137
+ rememberMeTtl?: string;
138
+ };
139
+ /** Request validation */
140
+ validation?: {
141
+ input?: boolean;
142
+ schemas?: boolean;
143
+ permissions?: boolean;
144
+ };
145
+ /** Rate limiting */
146
+ rateLimit?: {
147
+ enabled?: boolean;
148
+ windowMs?: number;
149
+ maxRequests?: number;
150
+ skipSuccessfulRequests?: boolean;
151
+ };
152
+ /** Admin user auto-creation */
153
+ adminUser?: {
154
+ username: string;
155
+ email: string;
156
+ password: string;
157
+ firstName: string;
158
+ lastName: string;
159
+ role?: UserRole;
160
+ };
161
+ /** Crypto adapter options for password hashing */
162
+ cryptoOptions?: {
163
+ /** Force a specific adapter type: 'node' for bcrypt, 'webcrypto' for PBKDF2, 'auto' for auto-detect */
164
+ adapterType?: 'node' | 'webcrypto' | 'auto';
165
+ /** Salt rounds for password hashing (default: 12) */
166
+ saltRounds?: number;
167
+ /**
168
+ * PBKDF2 iteration count for the WebCrypto adapter (default: 100000).
169
+ * Stored per hash, so changing it only affects new hashes; older hashes are
170
+ * upgraded on next login.
171
+ */
172
+ pbkdf2Iterations?: number;
173
+ };
174
+ /** Passkey/WebAuthn configuration for passwordless authentication */
175
+ passkey?: PasskeyConfig;
176
+ }
177
+ /**
178
+ * Server lifecycle hooks for custom initialization and cleanup
179
+ */
180
+ export interface ServerLifecycle {
181
+ /**
182
+ * Called before the server starts, after Express app is created
183
+ * Use this to add custom middleware or configuration
184
+ */
185
+ beforeStart?: (app: Express) => Promise<void> | void;
186
+ /**
187
+ * Called after the server starts listening
188
+ * Use this for logging, health checks, or external service registration
189
+ */
190
+ afterStart?: (app: Express, port: number) => Promise<void> | void;
191
+ /**
192
+ * Called before the server shuts down
193
+ * Use this for cleanup, closing connections, etc.
194
+ */
195
+ beforeShutdown?: () => Promise<void> | void;
196
+ /**
197
+ * Called on uncaught exceptions
198
+ * Use this for error reporting/logging
199
+ */
200
+ onError?: (error: Error) => Promise<void> | void;
201
+ }
202
+ export interface ServerConfig {
203
+ /** API base path */
204
+ basePath?: string;
205
+ /** Port number (development only) */
206
+ port?: number;
207
+ /** CORS configuration */
208
+ cors?: {
209
+ origin?: boolean | string | string[] | ((origin: string) => boolean) | ((origin: string | undefined, callback: (err: Error | null, allow?: boolean | string) => void) => void);
210
+ methods?: string[];
211
+ allowedHeaders?: string[];
212
+ credentials?: boolean;
213
+ maxAge?: number;
214
+ };
215
+ /** Static file serving */
216
+ static?: {
217
+ /** Serve media files */
218
+ media?: {
219
+ path: string;
220
+ directory: string;
221
+ maxAge?: number;
222
+ };
223
+ /** Serve Studio assets */
224
+ assets?: {
225
+ path: string;
226
+ directory: string;
227
+ maxAge?: number;
228
+ };
229
+ /** Custom static routes */
230
+ custom?: Array<{
231
+ path: string;
232
+ directory: string;
233
+ maxAge?: number;
234
+ }>;
235
+ };
236
+ /** Request body parsing */
237
+ parsing?: {
238
+ json?: {
239
+ limit?: string;
240
+ strict?: boolean;
241
+ };
242
+ urlencoded?: {
243
+ limit?: string;
244
+ extended?: boolean;
245
+ };
246
+ };
247
+ /** Server lifecycle hooks */
248
+ lifecycle?: ServerLifecycle;
249
+ /** Trust proxy setting for Express (for reverse proxies) */
250
+ trustProxy?: boolean | number | string;
251
+ }
252
+ export interface StudioConfig {
253
+ /** Enable Studio integration */
254
+ enabled?: boolean;
255
+ /** Studio mount path */
256
+ path?: string;
257
+ /** API URL for Studio to connect to (for external Studio deployments) */
258
+ apiUrl?: string;
259
+ /** Authentication requirement */
260
+ requireAuth?: boolean;
261
+ /** Studio branding */
262
+ branding?: {
263
+ title?: string;
264
+ logo?: string;
265
+ theme?: 'light' | 'dark' | 'system';
266
+ colors?: {
267
+ primary?: string;
268
+ accent?: string;
269
+ };
270
+ };
271
+ /** Content structure definition */
272
+ structure?: any;
273
+ /** Custom field types */
274
+ fields?: any[];
275
+ /** Studio behavior settings */
276
+ settings?: {
277
+ pageSize?: number;
278
+ enableDrafts?: boolean;
279
+ enableVersioning?: boolean;
280
+ autoSave?: boolean;
281
+ autosaveInterval?: number;
282
+ };
283
+ /** Session management */
284
+ session?: {
285
+ refreshBuffer?: number;
286
+ warningBuffer?: number;
287
+ checkInterval?: number;
288
+ inactivityTimeout?: number;
289
+ };
290
+ }
291
+ /**
292
+ * Mail service configuration for system emails
293
+ * Handles password reset, user invitations, notifications, etc.
294
+ */
295
+ export interface MailConfig {
296
+ /** Mail adapter instance (Resend, SMTP, SES, etc.) */
297
+ adapter: MailAdapter;
298
+ /** Custom template renderer for email templates */
299
+ templateRenderer?: TemplateRenderer;
300
+ /** Default sender email address */
301
+ defaultFrom?: string;
302
+ /** Default sender display name */
303
+ defaultFromName?: string;
304
+ /** Enable/disable specific notification types */
305
+ notifications?: {
306
+ /** Send email on password reset request */
307
+ passwordReset?: boolean;
308
+ /** Send email when password is changed */
309
+ passwordChanged?: boolean;
310
+ /** Send welcome email when user is created */
311
+ userCreated?: boolean;
312
+ /** Send invitation email when user is invited */
313
+ userInvited?: boolean;
314
+ /** Send security alerts (suspicious login, etc.) */
315
+ securityAlerts?: boolean;
316
+ };
317
+ /** Enable debug logging for mail operations */
318
+ debug?: boolean;
319
+ }
320
+ /**
321
+ * Event payload for document-related events
322
+ */
323
+ export interface DocumentEvent {
324
+ /** Event type identifier */
325
+ type: string;
326
+ /** Schema/collection name */
327
+ collection: string;
328
+ /** The document data */
329
+ document: Record<string, unknown>;
330
+ /** Previous document state (for updates) */
331
+ previousDocument?: Record<string, unknown>;
332
+ /** User who triggered the event */
333
+ user?: {
334
+ id: string;
335
+ username: string;
336
+ email: string;
337
+ };
338
+ /** Event timestamp */
339
+ timestamp: Date;
340
+ }
341
+ /**
342
+ * Event payload for user-related events
343
+ */
344
+ export interface UserEvent {
345
+ /** Event type identifier */
346
+ type: string;
347
+ /** User data */
348
+ user: {
349
+ id: string;
350
+ username: string;
351
+ email: string;
352
+ firstName?: string;
353
+ lastName?: string;
354
+ role: string;
355
+ };
356
+ /** Additional event metadata */
357
+ metadata?: Record<string, unknown>;
358
+ /** Event timestamp */
359
+ timestamp: Date;
360
+ }
361
+ /**
362
+ * Webhook configuration for external integrations
363
+ */
364
+ export interface WebhookConfig {
365
+ /** Webhook endpoint URL */
366
+ url: string;
367
+ /** Events to trigger this webhook */
368
+ events: string[];
369
+ /** Secret for webhook signature verification */
370
+ secret?: string;
371
+ /** Custom headers to include in webhook requests */
372
+ headers?: Record<string, string>;
373
+ /** Retry configuration */
374
+ retry?: {
375
+ /** Maximum retry attempts */
376
+ maxAttempts?: number;
377
+ /** Initial delay in milliseconds */
378
+ initialDelay?: number;
379
+ /** Backoff multiplier */
380
+ backoffMultiplier?: number;
381
+ };
382
+ }
383
+ /**
384
+ * Event hook handler type
385
+ */
386
+ export type EventHookHandler<T = DocumentEvent | UserEvent> = (event: T) => Promise<void> | void;
387
+ /**
388
+ * Hooks configuration for event handling
389
+ */
390
+ export interface HooksConfig {
391
+ 'document.created'?: EventHookHandler<DocumentEvent>;
392
+ 'document.updated'?: EventHookHandler<DocumentEvent>;
393
+ 'document.deleted'?: EventHookHandler<DocumentEvent>;
394
+ 'document.published'?: EventHookHandler<DocumentEvent>;
395
+ 'document.unpublished'?: EventHookHandler<DocumentEvent>;
396
+ 'user.created'?: EventHookHandler<UserEvent>;
397
+ 'user.updated'?: EventHookHandler<UserEvent>;
398
+ 'user.deleted'?: EventHookHandler<UserEvent>;
399
+ 'user.login'?: EventHookHandler<UserEvent>;
400
+ 'user.logout'?: EventHookHandler<UserEvent>;
401
+ 'media.uploaded'?: EventHookHandler<DocumentEvent>;
402
+ 'media.deleted'?: EventHookHandler<DocumentEvent>;
403
+ webhooks?: WebhookConfig[];
404
+ }
405
+ /**
406
+ * Route handler function type
407
+ */
408
+ export type RouteHandler = (req: Request, res: Response, next: NextFunction) => Promise<void> | void;
409
+ /**
410
+ * Middleware function type
411
+ */
412
+ export type MiddlewareHandler = (req: Request, res: Response, next: NextFunction) => Promise<void> | void;
413
+ /**
414
+ * Custom route definition
415
+ */
416
+ export interface CustomRoute {
417
+ /** Route path (Express-style, e.g., '/api/forms/contact') */
418
+ path: string;
419
+ /** HTTP method */
420
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
421
+ /** Route handler function */
422
+ handler: RouteHandler;
423
+ /** Middleware to apply to this route */
424
+ middleware?: MiddlewareHandler[];
425
+ /**
426
+ * Authentication requirement:
427
+ * - true: Requires any authenticated user
428
+ * - 'admin': Requires admin role
429
+ * - 'public': No authentication required (default)
430
+ */
431
+ auth?: boolean | 'admin' | 'public';
432
+ /** Route description (for documentation) */
433
+ description?: string;
434
+ }
435
+ /**
436
+ * Route group for organizing related routes
437
+ */
438
+ export interface RouteGroup {
439
+ /** Base path prefix for all routes in this group */
440
+ prefix: string;
441
+ /** Middleware to apply to all routes in this group */
442
+ middleware?: MiddlewareHandler[];
443
+ /** Authentication requirement for all routes in this group */
444
+ auth?: boolean | 'admin' | 'public';
445
+ /** Routes in this group */
446
+ routes: CustomRoute[];
447
+ }
448
+ /** OAuth provider configuration */
449
+ export interface OAuthConfig {
450
+ google?: {
451
+ clientId: string;
452
+ clientSecret: string;
453
+ redirectUri: string;
454
+ };
455
+ }
456
+ /** CAPTCHA provider configuration */
457
+ export interface CaptchaConfig {
458
+ provider: 'turnstile' | 'hcaptcha' | 'recaptcha';
459
+ siteKey: string;
460
+ secretKey: string;
461
+ options?: {
462
+ theme?: 'light' | 'dark' | 'auto';
463
+ size?: 'normal' | 'compact' | 'invisible';
464
+ /** Language code for CAPTCHA widget (e.g., 'fr', 'en'). Defaults to i18n.defaultLocale or 'auto' */
465
+ language?: string;
466
+ };
467
+ protectedEndpoints?: {
468
+ login?: boolean;
469
+ passwordResetRequest?: boolean;
470
+ passwordResetVerify?: boolean;
471
+ };
472
+ }
473
+ /** Features configuration for enhanced content management */
474
+ export interface FeaturesConfig {
475
+ /** Auto-generate thumbnails for documents */
476
+ autoThumbnail?: {
477
+ enabled?: boolean;
478
+ fieldName?: string;
479
+ skipSingletons?: boolean;
480
+ skipSchemas?: string[];
481
+ maxFileSize?: number;
482
+ allowedTypes?: string[];
483
+ };
484
+ /** Auto-generate slugs for documents */
485
+ autoSlug?: {
486
+ enabled?: boolean;
487
+ sourceFields?: string[];
488
+ unique?: boolean;
489
+ };
490
+ }
491
+ /** Internationalization (i18n) configuration */
492
+ export interface I18nConfig {
493
+ /** Default locale for the CMS (default: 'en') */
494
+ defaultLocale?: string;
495
+ /** Supported locales for content and UI (default: ['en', 'fr']) */
496
+ supportedLocales?: string[];
497
+ /** Fallback locale when translation is missing (default: 'en') */
498
+ fallbackLocale?: string;
499
+ /** Detect browser language automatically (default: true) */
500
+ detectBrowserLanguage?: boolean;
501
+ /** Enable debug logging for missing translations (default: false in production) */
502
+ debug?: boolean;
503
+ }
504
+ export interface TrokkyConfig {
505
+ /** Environment mode */
506
+ env?: TrokkyEnvironment;
507
+ /** Content schemas */
508
+ schemas: ContentSchema[];
509
+ /** Storage configuration */
510
+ storage: StorageConfig;
511
+ /** Media processing */
512
+ media?: MediaConfig;
513
+ /** Security and authentication */
514
+ security?: SecurityConfig;
515
+ /** OAuth configuration */
516
+ oauth?: OAuthConfig;
517
+ /** CAPTCHA configuration */
518
+ captcha?: CaptchaConfig;
519
+ /** OAuth2 Authorization Server configuration (for CLI login and SSO) */
520
+ oauth2?: {
521
+ enabled?: boolean;
522
+ issuer?: string;
523
+ accessTokenTtl?: number;
524
+ refreshTokenTtl?: number;
525
+ deviceCodeTtl?: number;
526
+ authCodeTtl?: number;
527
+ pollingInterval?: number;
528
+ /** External OAuth2 clients for SSO */
529
+ clients?: Array<{
530
+ /** Unique client identifier */
531
+ id: string;
532
+ /** Human-readable client name */
533
+ name: string;
534
+ /** Client description */
535
+ description?: string;
536
+ /** Client type: 'public' for SPAs/native apps, 'confidential' for server-side apps */
537
+ type?: 'public' | 'confidential';
538
+ /** Client secret (required for confidential clients) */
539
+ secret?: string;
540
+ /** Allowed redirect URIs */
541
+ redirectUris: string[];
542
+ /** Allowed scopes */
543
+ allowedScopes?: string[];
544
+ /** Allowed grant types */
545
+ grantTypes?: string[];
546
+ }>;
547
+ };
548
+ /** Features configuration */
549
+ features?: FeaturesConfig;
550
+ /** Internationalization (i18n) configuration */
551
+ i18n?: I18nConfig;
552
+ /** HTTP server settings */
553
+ server?: ServerConfig;
554
+ /** Studio integration */
555
+ studio?: StudioConfig;
556
+ /** Mail service configuration */
557
+ mail?: MailConfig;
558
+ /** Event hooks and webhooks */
559
+ hooks?: HooksConfig;
560
+ /** Custom API routes */
561
+ routes?: (CustomRoute | RouteGroup)[];
562
+ }
563
+ export interface TrokkyConfigWithDefaults extends TrokkyConfig {
564
+ env: TrokkyEnvironment;
565
+ media: Required<Omit<MediaConfig, 'mediaUrlGenerator'>> & {
566
+ mediaUrlGenerator?: MediaConfig['mediaUrlGenerator'];
567
+ };
568
+ security: Required<Omit<SecurityConfig, 'jwtSecret' | 'adminUser' | 'passkey'>> & {
569
+ jwtSecret?: string;
570
+ adminUser?: SecurityConfig['adminUser'];
571
+ passkey?: SecurityConfig['passkey'];
572
+ };
573
+ server: Required<Omit<ServerConfig, 'port' | 'lifecycle' | 'trustProxy'>> & {
574
+ port?: number;
575
+ lifecycle?: ServerLifecycle;
576
+ trustProxy?: boolean | number | string;
577
+ };
578
+ studio: Required<Omit<StudioConfig, 'apiUrl'>> & {
579
+ apiUrl?: string;
580
+ };
581
+ /** i18n configuration with defaults applied */
582
+ i18n: Required<I18nConfig>;
583
+ mail?: MailConfig;
584
+ hooks?: HooksConfig;
585
+ routes?: (CustomRoute | RouteGroup)[];
586
+ }
587
+ /**
588
+ * Apply environment-aware defaults to configuration
589
+ */
590
+ export declare function withDefaults(config: TrokkyConfig): TrokkyConfigWithDefaults;
591
+ /**
592
+ * Define configuration with type safety and validation
593
+ */
594
+ export declare function defineConfig(config: TrokkyConfig): TrokkyConfig;
595
+ /**
596
+ * Load configuration from a TypeScript config file
597
+ */
598
+ export declare function loadConfig(configPath: string): Promise<TrokkyConfig>;
599
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/integrations/express/config.ts"],"names":[],"mappings":"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"}