@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,611 @@
1
+ /**
2
+ * Split Storage Adapter Interfaces
3
+ *
4
+ * This file defines the new storage architecture that separates:
5
+ * - DataStorageAdapter: Documents, users, and app tokens (structured data)
6
+ * - MediaStorageAdapter: Files and media content (unstructured data)
7
+ *
8
+ * This enables optimal deployment patterns like:
9
+ * - Cloudflare: D1 for data + R2 for media
10
+ * - AWS: DynamoDB for data + S3 for media
11
+ * - Hybrid: Filesystem for data + R2 for media
12
+ */
13
+ import type { Document, AuditLog, DocumentData, ListOptions, MediaFile, MediaMetadata, Migration, User, UserListOptions, CreateUserData, UpdateUserData, AppToken, AppTokenListOptions, CreateAppTokenData, UpdateAppTokenData, AuditContext } from './index.js';
14
+ import type { WebhookConfig } from '../events/types.js';
15
+ /**
16
+ * Studio settings configuration
17
+ */
18
+ export interface SettingsConfig {
19
+ /** Unique identifier for settings */
20
+ id: string;
21
+ /** Public website URL for "View Live" links */
22
+ publicUrl: string;
23
+ /** Studio title displayed in interface */
24
+ studioTitle: string;
25
+ /** Default theme for new users */
26
+ defaultTheme: 'light' | 'dark' | 'system';
27
+ /** Organization/company name for branding */
28
+ organizationName?: string;
29
+ /** Primary brand color (hex format) */
30
+ primaryColor?: string;
31
+ /** Secondary brand color (hex format) */
32
+ secondaryColor?: string;
33
+ /** Logo URL or path */
34
+ logo?: string;
35
+ /** Require MFA for all users */
36
+ mfaRequired?: boolean;
37
+ /** Roles that require MFA (role-based enforcement) */
38
+ mfaEnforcedRoles?: ('admin' | 'editor' | 'author' | 'viewer')[];
39
+ /** Allowed MFA methods */
40
+ mfaAllowedMethods?: ('totp' | 'email')[];
41
+ /** Days to trust a device (skip MFA) */
42
+ mfaTrustDeviceDays?: number;
43
+ /** Grace period (days) before MFA is enforced for existing users */
44
+ mfaGracePeriodDays?: number;
45
+ /** Settings creation timestamp */
46
+ _createdAt?: string;
47
+ /** Settings last update timestamp */
48
+ _updatedAt?: string;
49
+ /** User who last updated settings */
50
+ _updatedBy?: string;
51
+ }
52
+ /**
53
+ * DataStorageAdapter handles all structured data operations
54
+ *
55
+ * This adapter is responsible for:
56
+ * - Content documents (articles, pages, etc.)
57
+ * - System users and authentication
58
+ * - App tokens for API access
59
+ * - Transactional operations
60
+ * - Queries and filtering
61
+ *
62
+ * Optimal backends: SQL databases (D1, PostgreSQL, MySQL), NoSQL with query support
63
+ */
64
+ export interface DataStorageAdapter {
65
+ /**
66
+ * Retrieve a single document by collection and ID
67
+ * @param collection - The collection name (e.g., 'articles', 'pages')
68
+ * @param id - The document ID
69
+ * @returns The document or null if not found
70
+ * @throws Error if collection/id are invalid or storage fails
71
+ */
72
+ getDocument(collection: string, id: string): Promise<Document | null>;
73
+ /**
74
+ * Save (create or update) a document
75
+ * @param collection - The collection name
76
+ * @param id - The document ID
77
+ * @param data - The document data (without metadata)
78
+ * @param auditContext - Optional audit context with user information
79
+ * @returns The saved document with metadata
80
+ * @throws Error if validation fails or storage fails
81
+ */
82
+ saveDocument(collection: string, id: string, data: DocumentData, auditContext?: AuditContext): Promise<Document>;
83
+ /**
84
+ * List documents in a collection with filtering, sorting, and pagination
85
+ * @param collection - The collection name
86
+ * @param options - Query options (limit, offset, filter, sort)
87
+ * @returns Array of matching documents
88
+ * @throws Error if query is invalid or storage fails
89
+ */
90
+ listDocuments(collection: string, options?: ListOptions): Promise<Document[]>;
91
+ /**
92
+ * Delete a document permanently
93
+ * @param collection - The collection name
94
+ * @param id - The document ID
95
+ * @throws Error if document doesn't exist or storage fails
96
+ */
97
+ deleteDocument(collection: string, id: string): Promise<void>;
98
+ /**
99
+ * Check if a document exists (optimized check without full retrieval)
100
+ * @param collection - The collection name
101
+ * @param id - The document ID
102
+ * @returns True if document exists
103
+ */
104
+ documentExists?(collection: string, id: string): Promise<boolean>;
105
+ /**
106
+ * Get document count in a collection (with optional filtering)
107
+ * @param collection - The collection name
108
+ * @param filter - Optional filter criteria
109
+ * @returns Number of matching documents
110
+ */
111
+ countDocuments?(collection: string, filter?: Record<string, unknown>): Promise<number>;
112
+ /**
113
+ * Create an audit log entry
114
+ * @param auditLog - The audit log data
115
+ * @returns The created audit log entry
116
+ * @throws Error if storage fails
117
+ */
118
+ createAuditLog?(auditLog: Omit<AuditLog, 'id'>): Promise<AuditLog>;
119
+ /**
120
+ * Get audit logs for a specific document
121
+ * @param documentId - The document ID
122
+ * @param options - Query options (limit, offset)
123
+ * @returns Array of audit log entries
124
+ */
125
+ getDocumentAuditLogs?(documentId: string, options?: {
126
+ limit?: number;
127
+ offset?: number;
128
+ }): Promise<AuditLog[]>;
129
+ /**
130
+ * Get audit logs for a collection
131
+ * @param collection - The collection name
132
+ * @param options - Query options (limit, offset)
133
+ * @returns Array of audit log entries
134
+ */
135
+ getCollectionAuditLogs?(collection: string, options?: {
136
+ limit?: number;
137
+ offset?: number;
138
+ }): Promise<AuditLog[]>;
139
+ /**
140
+ * Get audit logs by actor
141
+ * @param actorId - The actor ID
142
+ * @param options - Query options (limit, offset)
143
+ * @returns Array of audit log entries
144
+ */
145
+ getActorAuditLogs?(actorId: string, options?: {
146
+ limit?: number;
147
+ offset?: number;
148
+ }): Promise<AuditLog[]>;
149
+ /**
150
+ * Retrieve a user by ID
151
+ * @param id - The user ID
152
+ * @returns The user or null if not found
153
+ * @throws Error if storage fails
154
+ */
155
+ getUser(id: string): Promise<User | null>;
156
+ /**
157
+ * Create or update a user
158
+ * @param id - The user ID
159
+ * @param userData - The user data (partial for updates)
160
+ * @returns The saved user
161
+ * @throws Error if validation fails or storage fails
162
+ */
163
+ saveUser(id: string, userData: CreateUserData | Partial<UpdateUserData>): Promise<User>;
164
+ /**
165
+ * Conditionally update a user, but only while the stored password hash still
166
+ * matches the expected one. The comparison and the write must be atomic
167
+ * (a single conditional statement for SQL backends, a lock for file backends)
168
+ * so a concurrent password change cannot be overwritten.
169
+ *
170
+ * Optional: adapters that do not implement it fall back to a
171
+ * read-compare-write, which is not race free.
172
+ *
173
+ * @param id - The user ID
174
+ * @param userData - The user fields to update
175
+ * @param condition - The password hash the caller expects to still be stored
176
+ * @returns The updated user, or null if the stored hash no longer matches (nothing written)
177
+ * @throws Error if storage fails
178
+ */
179
+ saveUserIf?(id: string, userData: Partial<UpdateUserData>, condition: {
180
+ passwordHash: string;
181
+ }): Promise<User | null>;
182
+ /**
183
+ * List users with filtering and pagination
184
+ * @param options - Query options (role, isActive, limit, offset)
185
+ * @returns Array of matching users
186
+ * @throws Error if query is invalid or storage fails
187
+ */
188
+ listUsers(options?: UserListOptions): Promise<User[]>;
189
+ /**
190
+ * Delete a user permanently
191
+ * @param id - The user ID
192
+ * @throws Error if user doesn't exist or storage fails
193
+ */
194
+ deleteUser(id: string): Promise<void>;
195
+ /**
196
+ * Find user by username (for authentication)
197
+ * @param username - The username to search for
198
+ * @returns The user or null if not found
199
+ * @throws Error if storage fails
200
+ */
201
+ getUserByUsername(username: string): Promise<User | null>;
202
+ /**
203
+ * Find user by email address (for authentication and uniqueness checks)
204
+ * @param email - The email address to search for
205
+ * @returns The user or null if not found
206
+ * @throws Error if storage fails
207
+ */
208
+ getUserByEmail(email: string): Promise<User | null>;
209
+ /**
210
+ * Check if username is available (optimized check)
211
+ * @param username - The username to check
212
+ * @returns True if username is available
213
+ */
214
+ isUsernameAvailable?(username: string): Promise<boolean>;
215
+ /**
216
+ * Check if email is available (optimized check)
217
+ * @param email - The email to check
218
+ * @returns True if email is available
219
+ */
220
+ isEmailAvailable?(email: string): Promise<boolean>;
221
+ /**
222
+ * Find user by OAuth provider (for OAuth login)
223
+ * @param provider - The OAuth provider name (e.g., 'google')
224
+ * @param providerId - The provider's unique user ID
225
+ * @returns The user or null if not found
226
+ * @throws Error if storage fails
227
+ */
228
+ getUserByOAuthProvider?(provider: string, providerId: string): Promise<User | null>;
229
+ /**
230
+ * Retrieve an app token by ID
231
+ * @param id - The token ID
232
+ * @returns The app token or null if not found
233
+ * @throws Error if storage fails
234
+ */
235
+ getAppToken(id: string): Promise<AppToken | null>;
236
+ /**
237
+ * Create or update an app token
238
+ * @param id - The token ID
239
+ * @param tokenData - The token data (partial for updates)
240
+ * @returns The saved app token
241
+ * @throws Error if validation fails or storage fails
242
+ */
243
+ saveAppToken(id: string, tokenData: CreateAppTokenData | Partial<UpdateAppTokenData>): Promise<AppToken>;
244
+ /**
245
+ * List app tokens with filtering and pagination
246
+ * @param options - Query options (createdBy, isActive, limit, offset)
247
+ * @returns Array of matching app tokens
248
+ * @throws Error if query is invalid or storage fails
249
+ */
250
+ listAppTokens(options?: AppTokenListOptions): Promise<AppToken[]>;
251
+ /**
252
+ * Delete an app token permanently
253
+ * @param id - The token ID
254
+ * @throws Error if token doesn't exist or storage fails
255
+ */
256
+ deleteAppToken(id: string): Promise<void>;
257
+ /**
258
+ * Find app token by hash (for authentication)
259
+ * @param hash - The hashed token value
260
+ * @returns The app token or null if not found
261
+ * @throws Error if storage fails
262
+ */
263
+ getAppTokenByHash(hash: string): Promise<AppToken | null>;
264
+ /**
265
+ * Retrieve a webhook by ID
266
+ * @param id - The webhook ID
267
+ * @returns The webhook configuration or null if not found
268
+ * @throws Error if storage fails
269
+ */
270
+ getWebhook?(id: string): Promise<WebhookConfig | null>;
271
+ /**
272
+ * Create or update a webhook
273
+ * @param id - The webhook ID
274
+ * @param webhookData - The webhook data (partial for updates)
275
+ * @returns The saved webhook configuration
276
+ * @throws Error if validation fails or storage fails
277
+ */
278
+ saveWebhook?(id: string, webhookData: Partial<WebhookConfig>): Promise<WebhookConfig>;
279
+ /**
280
+ * List webhooks with filtering and pagination
281
+ * @param options - Query options (active, limit, offset)
282
+ * @returns Array of matching webhooks
283
+ * @throws Error if query is invalid or storage fails
284
+ */
285
+ listWebhooks?(options?: WebhookListOptions): Promise<WebhookConfig[]>;
286
+ /**
287
+ * Delete a webhook permanently
288
+ * @param id - The webhook ID
289
+ * @throws Error if webhook doesn't exist or storage fails
290
+ */
291
+ deleteWebhook?(id: string): Promise<void>;
292
+ /**
293
+ * Retrieve studio settings
294
+ * @returns The settings configuration or null if not found
295
+ * @throws Error if storage fails
296
+ */
297
+ getSettings?(): Promise<SettingsConfig | null>;
298
+ /**
299
+ * Create or update studio settings
300
+ * @param settings - The settings configuration
301
+ * @throws Error if validation fails or storage fails
302
+ */
303
+ saveSettings?(settings: SettingsConfig): Promise<void>;
304
+ /**
305
+ * Health check for the data storage system
306
+ * @returns True if storage is healthy and accessible
307
+ * @throws Error if storage is unhealthy
308
+ */
309
+ healthCheck(): Promise<boolean>;
310
+ /**
311
+ * Run database migrations for schema changes
312
+ * @param migrations - Array of migrations to run
313
+ * @throws Error if migration fails
314
+ */
315
+ migrate?(migrations: Migration[]): Promise<void>;
316
+ /**
317
+ * Get storage statistics and information
318
+ * @returns Storage metadata and statistics
319
+ */
320
+ getStorageInfo?(): Promise<{
321
+ collections: string[];
322
+ documentCount: number;
323
+ userCount: number;
324
+ tokenCount: number;
325
+ storageSize?: number;
326
+ [key: string]: unknown;
327
+ }>;
328
+ /**
329
+ * Begin a transaction (if supported by the storage backend)
330
+ * @returns Transaction context or undefined if not supported
331
+ */
332
+ beginTransaction?(): Promise<DataTransaction | undefined>;
333
+ /**
334
+ * Release whatever the adapter is holding open — connection pools, sockets, timers.
335
+ *
336
+ * Optional because most backends hold nothing: the filesystem and in-memory adapters have
337
+ * no handle to give back, and requiring the method would break every third-party adapter
338
+ * written against the interface before it existed. Implement it only when there is
339
+ * genuinely something to release, and make it safe to call twice — shutdown paths are
340
+ * rarely as orderly as they look.
341
+ */
342
+ close?(): Promise<void>;
343
+ }
344
+ /**
345
+ * Transaction interface for data operations (optional)
346
+ * Allows atomic operations across multiple documents/users/tokens
347
+ */
348
+ export interface DataTransaction {
349
+ /**
350
+ * Commit the transaction
351
+ */
352
+ commit(): Promise<void>;
353
+ /**
354
+ * Rollback the transaction
355
+ */
356
+ rollback(): Promise<void>;
357
+ /**
358
+ * Execute multiple operations within the transaction
359
+ */
360
+ execute<T>(operations: () => Promise<T>): Promise<T>;
361
+ }
362
+ /**
363
+ * MediaStorageAdapter handles all unstructured data operations
364
+ *
365
+ * This adapter is responsible for:
366
+ * - File uploads and storage
367
+ * - Media metadata management
368
+ * - Image variant generation storage
369
+ * - Binary content serving
370
+ * - Large file handling
371
+ *
372
+ * Optimal backends: Object storage (R2, S3), CDN integration, file systems
373
+ */
374
+ export interface MediaStorageAdapter {
375
+ /**
376
+ * Upload and store a file
377
+ * @param file - The file to upload
378
+ * @param metadata - File metadata (ID, filename, content type, etc.)
379
+ * @returns The stored media file record
380
+ * @throws Error if upload fails or file is invalid
381
+ */
382
+ uploadFile(file: File, metadata: MediaMetadata): Promise<MediaFile>;
383
+ /**
384
+ * Retrieve media file metadata by ID
385
+ * @param id - The file ID
386
+ * @returns The media file record or null if not found
387
+ * @throws Error if storage fails
388
+ */
389
+ getFile(id: string): Promise<MediaFile | null>;
390
+ /**
391
+ * Update media file metadata (not the content)
392
+ * @param id - The file ID
393
+ * @param metadata - Updated metadata
394
+ * @returns The updated media file record
395
+ * @throws Error if file doesn't exist or update fails
396
+ */
397
+ updateFile(id: string, metadata: Record<string, any>): Promise<MediaFile>;
398
+ /**
399
+ * Retrieve the binary content of a file
400
+ * @param id - The file ID
401
+ * @returns The file content as ArrayBuffer or null if not found
402
+ * @throws Error if storage fails
403
+ */
404
+ getFileContent(id: string): Promise<ArrayBuffer | null>;
405
+ /**
406
+ * Get a streaming URL for the file (if supported)
407
+ * @param id - The file ID
408
+ * @param options - Optional URL generation options (expiration time, etc.)
409
+ * @returns Public URL for the file or null if not available
410
+ */
411
+ getFileUrl?(id: string, options?: {
412
+ expiresIn?: number;
413
+ }): Promise<string | null>;
414
+ /**
415
+ * List media files with filtering and pagination
416
+ * @param options - Query options (limit, offset, content type filters, etc.)
417
+ * @returns Paginated result with items and total count
418
+ * @throws Error if query is invalid or storage fails
419
+ */
420
+ listMedia(options?: MediaListOptions): Promise<MediaListResult>;
421
+ /**
422
+ * Delete a file and all its variants permanently
423
+ * @param id - The file ID
424
+ * @throws Error if file doesn't exist or deletion fails
425
+ */
426
+ deleteFile(id: string): Promise<void>;
427
+ /**
428
+ * Check if a file exists (optimized check without full retrieval)
429
+ * @param id - The file ID
430
+ * @returns True if file exists
431
+ */
432
+ fileExists?(id: string): Promise<boolean>;
433
+ /**
434
+ * Get file size without downloading content
435
+ * @param id - The file ID
436
+ * @returns File size in bytes or null if file doesn't exist
437
+ */
438
+ getFileSize?(id: string): Promise<number | null>;
439
+ /**
440
+ * Save a processed variant of a media file
441
+ * @param parentId - The original file ID
442
+ * @param variantName - The variant name (e.g., 'thumbnail', 'preview')
443
+ * @param buffer - The processed file content
444
+ * @param format - The output format (e.g., 'webp', 'jpeg')
445
+ * @returns The variant ID or path
446
+ * @throws Error if save fails
447
+ */
448
+ saveVariantFile(parentId: string, variantName: string, buffer: Buffer, format: string): Promise<string>;
449
+ /**
450
+ * Retrieve the binary content of a variant
451
+ * @param parentId - The original file ID
452
+ * @param variantName - The variant name
453
+ * @returns The variant content as ArrayBuffer or null if not found
454
+ * @throws Error if storage fails
455
+ */
456
+ getVariantContent(parentId: string, variantName: string): Promise<ArrayBuffer | null>;
457
+ /**
458
+ * Get a public URL for a variant (if supported)
459
+ * @param parentId - The original file ID
460
+ * @param variantName - The variant name
461
+ * @param options - Optional URL generation options (expiration time, etc.)
462
+ * @returns Public URL for the variant or null if not available
463
+ */
464
+ getVariantUrl?(parentId: string, variantName: string, options?: {
465
+ expiresIn?: number;
466
+ }): Promise<string | null>;
467
+ /**
468
+ * List all variants for a media file
469
+ * @param parentId - The original file ID
470
+ * @returns Array of variant information
471
+ */
472
+ listVariants?(parentId: string): Promise<MediaVariant[]>;
473
+ /**
474
+ * Delete all variants of a media file
475
+ * @param parentId - The original file ID
476
+ * @throws Error if deletion fails
477
+ */
478
+ deleteVariantFiles(parentId: string): Promise<void>;
479
+ /**
480
+ * Delete a specific variant
481
+ * @param parentId - The original file ID
482
+ * @param variantName - The variant name
483
+ * @throws Error if variant doesn't exist or deletion fails
484
+ */
485
+ deleteVariant?(parentId: string, variantName: string): Promise<void>;
486
+ /**
487
+ * Health check for the media storage system
488
+ * @returns True if storage is healthy and accessible
489
+ * @throws Error if storage is unhealthy
490
+ */
491
+ healthCheck(): Promise<boolean>;
492
+ /**
493
+ * Get storage statistics and quota information
494
+ * @returns Storage usage statistics
495
+ */
496
+ getStorageInfo?(): Promise<{
497
+ totalFiles: number;
498
+ totalSize: number;
499
+ availableSpace?: number;
500
+ usedSpace?: number;
501
+ [key: string]: unknown;
502
+ }>;
503
+ /**
504
+ * Clean up orphaned files and variants
505
+ * @returns Number of files cleaned up
506
+ */
507
+ cleanup?(): Promise<number>;
508
+ /**
509
+ * Optimize storage (compress, deduplicate, etc.)
510
+ * @returns Optimization results
511
+ */
512
+ optimize?(): Promise<{
513
+ filesProcessed: number;
514
+ spaceSaved: number;
515
+ [key: string]: unknown;
516
+ }>;
517
+ /**
518
+ * Release whatever the adapter is holding open — clients, sockets, timers.
519
+ *
520
+ * Optional for the same reason as on `DataStorageAdapter`: a filesystem or in-memory media
521
+ * backend has no handle to release, and third-party adapters written before this method
522
+ * existed must keep compiling. Note this is not `cleanup()` above — that one deletes
523
+ * orphaned files, this one lets the process exit.
524
+ */
525
+ close?(): Promise<void>;
526
+ }
527
+ /**
528
+ * Extended media list options with more filtering capabilities
529
+ */
530
+ export interface MediaListOptions {
531
+ limit?: number;
532
+ offset?: number;
533
+ /** Filter by content type (e.g., 'image/*', 'video/mp4') */
534
+ contentType?: string;
535
+ /** Filter by file size range */
536
+ sizeRange?: {
537
+ min?: number;
538
+ max?: number;
539
+ };
540
+ /** Filter by upload date range */
541
+ dateRange?: {
542
+ from?: Date;
543
+ to?: Date;
544
+ };
545
+ /** Sort options */
546
+ sort?: 'name' | 'size' | 'date' | 'type';
547
+ /** Sort direction */
548
+ sortDirection?: 'asc' | 'desc';
549
+ /** Include variant information in results */
550
+ includeVariants?: boolean;
551
+ }
552
+ /**
553
+ * Result of listing media files with pagination metadata
554
+ */
555
+ export interface MediaListResult {
556
+ /** The media files for the current page */
557
+ items: MediaFile[];
558
+ /** Total number of media files matching the query (before pagination) */
559
+ total: number;
560
+ }
561
+ /**
562
+ * Media variant information
563
+ */
564
+ export interface MediaVariant {
565
+ name: string;
566
+ format: string;
567
+ size: number;
568
+ width?: number;
569
+ height?: number;
570
+ url?: string;
571
+ createdAt: Date;
572
+ }
573
+ /**
574
+ * Configuration options for split storage adapters
575
+ */
576
+ export interface SplitStorageConfig {
577
+ /** Data storage adapter configuration */
578
+ data: {
579
+ adapter: string;
580
+ options?: Record<string, unknown>;
581
+ };
582
+ /** Media storage adapter configuration */
583
+ media: {
584
+ adapter: string;
585
+ options?: Record<string, unknown>;
586
+ };
587
+ }
588
+ /**
589
+ * Webhook list options for filtering and pagination
590
+ */
591
+ export interface WebhookListOptions {
592
+ /** Filter by active status */
593
+ active?: boolean;
594
+ /** Maximum number of results */
595
+ limit?: number;
596
+ /** Skip this many results (for pagination) */
597
+ offset?: number;
598
+ /** Filter by event patterns */
599
+ events?: string[];
600
+ /** Filter by creator user ID */
601
+ createdBy?: string;
602
+ }
603
+ /**
604
+ * Combined storage adapter container
605
+ * This is what TrokkyCore will use internally
606
+ */
607
+ export interface TrokkyStorageAdapters {
608
+ data: DataStorageAdapter;
609
+ media: MediaStorageAdapter;
610
+ }
611
+ //# sourceMappingURL=storage-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-adapters.d.ts","sourceRoot":"","sources":["../../../src/core/types/storage-adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Split Storage Adapter Interfaces
3
+ *
4
+ * This file defines the new storage architecture that separates:
5
+ * - DataStorageAdapter: Documents, users, and app tokens (structured data)
6
+ * - MediaStorageAdapter: Files and media content (unstructured data)
7
+ *
8
+ * This enables optimal deployment patterns like:
9
+ * - Cloudflare: D1 for data + R2 for media
10
+ * - AWS: DynamoDB for data + S3 for media
11
+ * - Hybrid: Filesystem for data + R2 for media
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=storage-adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-adapters.js","sourceRoot":"","sources":["../../../src/core/types/storage-adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * System user types for CMS authentication and authorization
3
+ * These are internal system entities, separate from user-defined content schemas
4
+ *
5
+ * Types are now centralized in @trokky/types and re-exported here for backwards compatibility.
6
+ */
7
+ export type { OAuthProviderType, OAuthProvider, MFAMethodType, MFAMethod, TrustedDevice, MFAConfig, UserRole, Permission, UserPreferences, User, CreateUserData, UpdateUserData, UserListOptions, LoginCredentials, UserSession, AppToken, CreateAppTokenData, UpdateAppTokenData, AppTokenListOptions, AuthenticatedUser, AuthenticatedAppToken, AuthContext, UserTokenPayload, AppTokenPayload, MFAPendingTokenPayload, MFASetupTokenPayload, TokenPayload, AuthenticationSuccessResult, AuthenticationMFARequiredResult, AuthenticationMFASetupRequiredResult, AuthenticationResult } from '../../types/index.js';
8
+ import type { UserRole, Permission } from '../../types/index.js';
9
+ export declare const ROLE_PERMISSIONS: Record<UserRole, Permission[]>;
10
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/core/types/user.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAEV,iBAAiB,EACjB,aAAa,EAEb,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EAET,QAAQ,EACR,UAAU,EACV,eAAe,EAEf,IAAI,EACJ,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EAEX,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EAEnB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EAEX,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EAEZ,2BAA2B,EAC3B,+BAA+B,EAC/B,oCAAoC,EACpC,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGhE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,CAoC3D,CAAA"}