@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,56 @@
1
+ /**
2
+ * Media Types
3
+ * Shared types for media handling across all Trokky packages
4
+ */
5
+ export interface MediaAssetReference {
6
+ _ref: string;
7
+ _type: 'mediaAsset';
8
+ }
9
+ export interface MediaFieldValue {
10
+ _type: 'media';
11
+ asset: MediaAssetReference;
12
+ alt?: string;
13
+ caption?: string;
14
+ title?: string;
15
+ variant?: string;
16
+ }
17
+ export type MediaType = 'image' | 'video' | 'audio' | 'document' | 'archive';
18
+ export interface MediaAsset {
19
+ id: string;
20
+ filename: string;
21
+ originalFilename?: string;
22
+ contentType: string;
23
+ size: number;
24
+ url: string;
25
+ uploadedAt: string;
26
+ title?: string;
27
+ description?: string;
28
+ metadata?: {
29
+ width?: number;
30
+ height?: number;
31
+ duration?: number;
32
+ title?: string;
33
+ alt?: string;
34
+ credit?: string;
35
+ author?: string;
36
+ tags?: string[];
37
+ imageVariants?: Record<string, {
38
+ url: string;
39
+ width: number;
40
+ height: number;
41
+ format: string;
42
+ size: number;
43
+ }>;
44
+ originalDimensions?: {
45
+ width: number;
46
+ height: number;
47
+ };
48
+ };
49
+ }
50
+ export interface MediaBrowserConfig {
51
+ onSelect: (value: MediaFieldValue) => void;
52
+ mediaTypeFilter?: MediaType;
53
+ showVariantSelector?: boolean;
54
+ context?: string;
55
+ }
56
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,mBAAmB,CAAC;IAE3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAG7E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAC7B,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,kBAAkB,CAAC,EAAE;YACnB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAGD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Media Types
3
+ * Shared types for media handling across all Trokky packages
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,287 @@
1
+ /**
2
+ * @trokky/types - OAuth2 Authorization Server Types
3
+ *
4
+ * Supports Device Authorization Flow (RFC 8628) and Authorization Code Flow with PKCE.
5
+ * Enables Trokky Studio to act as an SSO provider for CLI and external applications.
6
+ */
7
+ import type { Permission } from './auth.js';
8
+ /**
9
+ * OAuth2 Grant Types supported by the authorization server
10
+ */
11
+ export type OAuth2GrantType = 'authorization_code' | 'urn:ietf:params:oauth:grant-type:device_code' | 'refresh_token';
12
+ /**
13
+ * OAuth2 Client Types
14
+ * - public: No client secret (CLI, SPAs, mobile apps)
15
+ * - confidential: Has client secret (server-side web apps)
16
+ */
17
+ export type OAuth2ClientType = 'public' | 'confidential';
18
+ /**
19
+ * Registered OAuth2 Client (Application)
20
+ */
21
+ export interface OAuth2Client {
22
+ /** Unique client identifier */
23
+ id: string;
24
+ /** Human-readable client name */
25
+ name: string;
26
+ /** Optional description */
27
+ description?: string;
28
+ /** Client type (public or confidential) */
29
+ type: OAuth2ClientType;
30
+ /** Hashed client secret (only for confidential clients) */
31
+ secretHash?: string;
32
+ /** Allowed redirect URIs for authorization code flow */
33
+ redirectUris: string[];
34
+ /** Allowed scopes this client can request */
35
+ allowedScopes: OAuth2Scope[];
36
+ /** Allowed grant types for this client */
37
+ grantTypes: OAuth2GrantType[];
38
+ /** Whether client is active */
39
+ isActive: boolean;
40
+ /** Whether this is a built-in client (e.g., CLI) */
41
+ isBuiltIn?: boolean;
42
+ /** User ID who registered this client */
43
+ createdBy?: string;
44
+ /** Logo URL for consent screen */
45
+ logoUrl?: string;
46
+ /** Homepage URL for client info */
47
+ homepageUrl?: string;
48
+ /** Privacy policy URL */
49
+ privacyPolicyUrl?: string;
50
+ /** Terms of service URL */
51
+ termsOfServiceUrl?: string;
52
+ createdAt: string;
53
+ updatedAt: string;
54
+ }
55
+ /**
56
+ * OAuth2 Scopes - map to Trokky permissions
57
+ */
58
+ export type OAuth2Scope = 'openid' | 'profile' | 'content:read' | 'content:write' | 'content:delete' | 'media:read' | 'media:write' | 'offline_access';
59
+ /**
60
+ * Map OAuth2 scopes to Trokky permissions
61
+ */
62
+ export declare const SCOPE_TO_PERMISSIONS: Record<OAuth2Scope, Permission[]>;
63
+ /**
64
+ * Device Authorization Request
65
+ * POST /auth/device
66
+ */
67
+ export interface DeviceAuthorizationRequest {
68
+ /** Client identifier */
69
+ client_id: string;
70
+ /** Space-separated list of requested scopes */
71
+ scope?: string;
72
+ }
73
+ /**
74
+ * Device Authorization Response
75
+ * Returned by POST /auth/device
76
+ */
77
+ export interface DeviceAuthorizationResponse {
78
+ /** Device verification code (shown to user) */
79
+ device_code: string;
80
+ /** User code to enter in browser (short, easy to type) */
81
+ user_code: string;
82
+ /** URL where user should go to authorize */
83
+ verification_uri: string;
84
+ /** Full URL with user_code pre-filled (optional) */
85
+ verification_uri_complete?: string;
86
+ /** Lifetime of device_code in seconds */
87
+ expires_in: number;
88
+ /** Minimum polling interval in seconds */
89
+ interval: number;
90
+ }
91
+ /**
92
+ * Device code state stored server-side
93
+ */
94
+ export interface DeviceCodeState {
95
+ /** The device code (hashed for storage) */
96
+ deviceCodeHash: string;
97
+ /** The user code (plain text, for lookup) */
98
+ userCode: string;
99
+ /** Client that initiated the request */
100
+ clientId: string;
101
+ /** Requested scopes */
102
+ scopes: OAuth2Scope[];
103
+ /** When the code expires */
104
+ expiresAt: number;
105
+ /** Polling interval in seconds */
106
+ interval: number;
107
+ /** Authorization status */
108
+ status: 'pending' | 'authorized' | 'denied' | 'expired';
109
+ /** User ID if authorized */
110
+ userId?: string;
111
+ /** Timestamp when user authorized/denied */
112
+ decidedAt?: number;
113
+ }
114
+ /**
115
+ * Device Token Request
116
+ * POST /auth/token with grant_type=urn:ietf:params:oauth:grant-type:device_code
117
+ */
118
+ export interface DeviceTokenRequest {
119
+ grant_type: 'urn:ietf:params:oauth:grant-type:device_code';
120
+ device_code: string;
121
+ client_id: string;
122
+ }
123
+ /**
124
+ * Authorization Request (GET /auth/authorize)
125
+ */
126
+ export interface AuthorizationRequest {
127
+ response_type: 'code';
128
+ client_id: string;
129
+ redirect_uri: string;
130
+ scope?: string;
131
+ state: string;
132
+ /** PKCE code challenge */
133
+ code_challenge: string;
134
+ /** PKCE code challenge method (always S256) */
135
+ code_challenge_method: 'S256';
136
+ }
137
+ /**
138
+ * Authorization code state stored server-side
139
+ */
140
+ export interface AuthorizationCodeState {
141
+ /** The authorization code (hashed for storage) */
142
+ codeHash: string;
143
+ /** Client that initiated the request */
144
+ clientId: string;
145
+ /** Redirect URI used in the request */
146
+ redirectUri: string;
147
+ /** Requested scopes */
148
+ scopes: OAuth2Scope[];
149
+ /** PKCE code challenge */
150
+ codeChallenge: string;
151
+ /** User ID who authorized */
152
+ userId: string;
153
+ /** When the code expires (short-lived, ~10 minutes) */
154
+ expiresAt: number;
155
+ }
156
+ /**
157
+ * Authorization Code Token Request
158
+ * POST /auth/token with grant_type=authorization_code
159
+ */
160
+ export interface AuthorizationCodeTokenRequest {
161
+ grant_type: 'authorization_code';
162
+ code: string;
163
+ redirect_uri: string;
164
+ client_id: string;
165
+ /** PKCE code verifier */
166
+ code_verifier: string;
167
+ }
168
+ /**
169
+ * Refresh Token Request
170
+ * POST /auth/token with grant_type=refresh_token
171
+ */
172
+ export interface OAuth2RefreshTokenRequest {
173
+ grant_type: 'refresh_token';
174
+ refresh_token: string;
175
+ client_id: string;
176
+ scope?: string;
177
+ }
178
+ /**
179
+ * Successful Token Response
180
+ */
181
+ export interface TokenResponse {
182
+ access_token: string;
183
+ token_type: 'Bearer';
184
+ expires_in: number;
185
+ refresh_token?: string;
186
+ scope: string;
187
+ }
188
+ /**
189
+ * OAuth2 Error Response
190
+ */
191
+ export interface OAuth2ErrorResponse {
192
+ error: OAuth2ErrorCode;
193
+ error_description?: string;
194
+ error_uri?: string;
195
+ }
196
+ /**
197
+ * OAuth2 Error Codes
198
+ */
199
+ export type OAuth2ErrorCode = 'authorization_pending' | 'slow_down' | 'access_denied' | 'expired_token' | 'invalid_request' | 'invalid_client' | 'invalid_grant' | 'unauthorized_client' | 'unsupported_grant_type' | 'invalid_scope' | 'server_error';
200
+ /**
201
+ * User consent record for a client
202
+ */
203
+ export interface UserConsent {
204
+ /** User ID */
205
+ userId: string;
206
+ /** Client ID */
207
+ clientId: string;
208
+ /** Scopes the user has consented to */
209
+ scopes: OAuth2Scope[];
210
+ /** When consent was granted */
211
+ grantedAt: string;
212
+ /** When consent expires (optional) */
213
+ expiresAt?: string;
214
+ }
215
+ /**
216
+ * OAuth2 Access Token record (for revocation tracking)
217
+ */
218
+ export interface OAuth2AccessToken {
219
+ /** Token ID (jti claim) */
220
+ id: string;
221
+ /** User ID */
222
+ userId: string;
223
+ /** Client ID */
224
+ clientId: string;
225
+ /** Granted scopes */
226
+ scopes: OAuth2Scope[];
227
+ /** When token expires */
228
+ expiresAt: number;
229
+ /** Whether token has been revoked */
230
+ revoked: boolean;
231
+ createdAt: string;
232
+ }
233
+ /**
234
+ * OAuth2 Refresh Token record
235
+ */
236
+ export interface OAuth2RefreshToken {
237
+ /** Token hash */
238
+ tokenHash: string;
239
+ /** User ID */
240
+ userId: string;
241
+ /** Client ID */
242
+ clientId: string;
243
+ /** Granted scopes */
244
+ scopes: OAuth2Scope[];
245
+ /** When token expires */
246
+ expiresAt: number;
247
+ /** Whether token has been revoked */
248
+ revoked: boolean;
249
+ /** Access token ID this refresh token is associated with */
250
+ accessTokenId?: string;
251
+ createdAt: string;
252
+ }
253
+ /**
254
+ * Data for creating a new OAuth2 client
255
+ */
256
+ export interface CreateOAuth2ClientData {
257
+ name: string;
258
+ description?: string;
259
+ type: OAuth2ClientType;
260
+ redirectUris: string[];
261
+ allowedScopes?: OAuth2Scope[];
262
+ grantTypes?: OAuth2GrantType[];
263
+ logoUrl?: string;
264
+ homepageUrl?: string;
265
+ privacyPolicyUrl?: string;
266
+ termsOfServiceUrl?: string;
267
+ }
268
+ /**
269
+ * Data for updating an OAuth2 client
270
+ */
271
+ export interface UpdateOAuth2ClientData {
272
+ name?: string;
273
+ description?: string;
274
+ redirectUris?: string[];
275
+ allowedScopes?: OAuth2Scope[];
276
+ grantTypes?: OAuth2GrantType[];
277
+ isActive?: boolean;
278
+ logoUrl?: string;
279
+ homepageUrl?: string;
280
+ privacyPolicyUrl?: string;
281
+ termsOfServiceUrl?: string;
282
+ }
283
+ /**
284
+ * Built-in CLI client configuration
285
+ */
286
+ export declare const BUILTIN_CLI_CLIENT: Omit<OAuth2Client, 'createdAt' | 'updatedAt'>;
287
+ //# sourceMappingURL=oauth2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/types/oauth2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @trokky/types - OAuth2 Authorization Server Types
3
+ *
4
+ * Supports Device Authorization Flow (RFC 8628) and Authorization Code Flow with PKCE.
5
+ * Enables Trokky Studio to act as an SSO provider for CLI and external applications.
6
+ */
7
+ /**
8
+ * Map OAuth2 scopes to Trokky permissions
9
+ */
10
+ export const SCOPE_TO_PERMISSIONS = {
11
+ 'openid': [],
12
+ 'profile': [],
13
+ 'content:read': ['content:read'],
14
+ 'content:write': ['content:read', 'content:write'],
15
+ 'content:delete': ['content:read', 'content:delete'],
16
+ 'media:read': ['media:read'],
17
+ 'media:write': ['media:read', 'media:upload', 'media:edit'],
18
+ 'offline_access': []
19
+ };
20
+ /**
21
+ * Built-in CLI client configuration
22
+ */
23
+ export const BUILTIN_CLI_CLIENT = {
24
+ id: 'trokky-cli',
25
+ name: 'Trokky CLI',
26
+ description: 'Official Trokky command-line interface',
27
+ type: 'public',
28
+ redirectUris: [], // Device flow doesn't use redirects
29
+ allowedScopes: [
30
+ 'openid',
31
+ 'profile',
32
+ 'content:read',
33
+ 'content:write',
34
+ 'content:delete',
35
+ 'media:read',
36
+ 'media:write',
37
+ 'offline_access'
38
+ ],
39
+ grantTypes: ['urn:ietf:params:oauth:grant-type:device_code', 'refresh_token'],
40
+ isActive: true,
41
+ isBuiltIn: true
42
+ };
43
+ //# sourceMappingURL=oauth2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../src/types/oauth2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0EH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsC;IACrE,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,eAAe,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAClD,gBAAgB,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;IACpD,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,aAAa,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC;IAC3D,gBAAgB,EAAE,EAAE;CACrB,CAAA;AAmRD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkD;IAC/E,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,EAAE,EAAE,oCAAoC;IACtD,aAAa,EAAE;QACb,QAAQ;QACR,SAAS;QACT,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,gBAAgB;KACjB;IACD,UAAU,EAAE,CAAC,8CAA8C,EAAE,eAAe,CAAC;IAC7E,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAA"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * @trokky/types - Passkey/WebAuthn Types
3
+ *
4
+ * Types for passwordless authentication using WebAuthn/Passkeys.
5
+ * Enables biometric and security key authentication in Trokky Studio.
6
+ */
7
+ /**
8
+ * Authenticator transport types (how the authenticator communicates)
9
+ */
10
+ export type AuthenticatorTransportType = 'usb' | 'ble' | 'nfc' | 'internal' | 'hybrid';
11
+ /**
12
+ * Stored passkey credential (server-side)
13
+ */
14
+ export interface PasskeyCredential {
15
+ /** Base64URL-encoded credential ID */
16
+ id: string;
17
+ /** Base64URL-encoded public key */
18
+ publicKey: string;
19
+ /** Signature counter for replay attack prevention */
20
+ counter: number;
21
+ /** Device type - single device or synced across devices */
22
+ deviceType: 'singleDevice' | 'multiDevice';
23
+ /** Whether credential is backed up (e.g., iCloud Keychain, Google Password Manager) */
24
+ backedUp: boolean;
25
+ /** How the authenticator communicates */
26
+ transports?: AuthenticatorTransportType[];
27
+ /** ISO date when credential was registered */
28
+ createdAt: string;
29
+ /** ISO date when credential was last used */
30
+ lastUsedAt?: string;
31
+ /** User-friendly name (e.g., "MacBook Pro Touch ID") */
32
+ friendlyName?: string;
33
+ /** Authenticator AAGUID for device identification */
34
+ aaguid?: string;
35
+ }
36
+ /**
37
+ * Authenticator selection criteria for registration
38
+ */
39
+ export interface PasskeyAuthenticatorSelection {
40
+ /** Prefer platform (built-in) or cross-platform (roaming) authenticator */
41
+ authenticatorAttachment?: 'platform' | 'cross-platform';
42
+ /** Whether to create a discoverable credential (resident key) */
43
+ residentKey?: 'required' | 'preferred' | 'discouraged';
44
+ /** Legacy: require resident key */
45
+ requireResidentKey?: boolean;
46
+ /** User verification requirement */
47
+ userVerification?: 'required' | 'preferred' | 'discouraged';
48
+ }
49
+ /**
50
+ * Passkey configuration for the security config
51
+ */
52
+ export interface PasskeyConfig {
53
+ /** Whether passkey authentication is enabled */
54
+ enabled: boolean;
55
+ /** Relying Party ID (domain name, e.g., "example.com") */
56
+ rpId: string;
57
+ /** Human-readable Relying Party name */
58
+ rpName: string;
59
+ /** Allowed origin(s) for WebAuthn requests */
60
+ origin: string | string[];
61
+ /** Attestation conveyance preference */
62
+ attestation?: 'none' | 'indirect' | 'direct' | 'enterprise';
63
+ /** User verification requirement for authentication */
64
+ userVerification?: 'required' | 'preferred' | 'discouraged';
65
+ /** Challenge timeout in milliseconds (default: 60000) */
66
+ timeout?: number;
67
+ /** Authenticator selection criteria for registration */
68
+ authenticatorSelection?: PasskeyAuthenticatorSelection;
69
+ }
70
+ /**
71
+ * Credential descriptor for exclude/allow lists
72
+ */
73
+ export interface PasskeyCredentialDescriptor {
74
+ /** Base64URL-encoded credential ID */
75
+ id: string;
76
+ /** Always 'public-key' for WebAuthn */
77
+ type: 'public-key';
78
+ /** Authenticator transports */
79
+ transports?: AuthenticatorTransportType[];
80
+ }
81
+ /**
82
+ * Options returned from /auth/passkey/register/options
83
+ */
84
+ export interface PasskeyRegistrationOptions {
85
+ /** Base64URL-encoded challenge */
86
+ challenge: string;
87
+ /** Server session ID for verification */
88
+ sessionId: string;
89
+ /** Relying Party ID */
90
+ rpId: string;
91
+ /** Relying Party name */
92
+ rpName: string;
93
+ /** Base64URL-encoded user ID */
94
+ userId: string;
95
+ /** Username for credential */
96
+ userName: string;
97
+ /** Display name for credential */
98
+ userDisplayName: string;
99
+ /** Credentials to exclude (already registered) */
100
+ excludeCredentials: PasskeyCredentialDescriptor[];
101
+ /** Authenticator selection criteria */
102
+ authenticatorSelection: PasskeyAuthenticatorSelection;
103
+ /** Attestation conveyance preference */
104
+ attestation: 'none' | 'indirect' | 'direct' | 'enterprise';
105
+ /** Timeout in milliseconds */
106
+ timeout: number;
107
+ }
108
+ /**
109
+ * Request body for /auth/passkey/register/options
110
+ */
111
+ export interface PasskeyRegistrationOptionsRequest {
112
+ /** Optional friendly name for the passkey */
113
+ friendlyName?: string;
114
+ }
115
+ /**
116
+ * Request body for /auth/passkey/register/verify
117
+ */
118
+ export interface PasskeyRegistrationVerifyRequest {
119
+ /** Session ID from registration options */
120
+ sessionId: string;
121
+ /** WebAuthn credential response from browser */
122
+ credential: {
123
+ id: string;
124
+ rawId: string;
125
+ type: 'public-key';
126
+ response: {
127
+ clientDataJSON: string;
128
+ attestationObject: string;
129
+ transports?: AuthenticatorTransportType[];
130
+ };
131
+ clientExtensionResults?: Record<string, unknown>;
132
+ authenticatorAttachment?: 'platform' | 'cross-platform';
133
+ };
134
+ /** Optional friendly name for the passkey */
135
+ friendlyName?: string;
136
+ }
137
+ /**
138
+ * Options returned from /auth/passkey/login/options
139
+ */
140
+ export interface PasskeyAuthenticationOptions {
141
+ /** Base64URL-encoded challenge */
142
+ challenge: string;
143
+ /** Server session ID for verification */
144
+ sessionId: string;
145
+ /** Relying Party ID */
146
+ rpId: string;
147
+ /** Allowed credentials (empty for discoverable credentials) */
148
+ allowCredentials: PasskeyCredentialDescriptor[];
149
+ /** User verification requirement */
150
+ userVerification: 'required' | 'preferred' | 'discouraged';
151
+ /** Timeout in milliseconds */
152
+ timeout: number;
153
+ }
154
+ /**
155
+ * Request body for /auth/passkey/login/options
156
+ */
157
+ export interface PasskeyAuthenticationOptionsRequest {
158
+ /** Optional username for targeted authentication */
159
+ username?: string;
160
+ }
161
+ /**
162
+ * Request body for /auth/passkey/login/verify
163
+ */
164
+ export interface PasskeyAuthenticationVerifyRequest {
165
+ /** Session ID from authentication options */
166
+ sessionId: string;
167
+ /** WebAuthn assertion response from browser */
168
+ credential: {
169
+ id: string;
170
+ rawId: string;
171
+ type: 'public-key';
172
+ response: {
173
+ clientDataJSON: string;
174
+ authenticatorData: string;
175
+ signature: string;
176
+ userHandle?: string;
177
+ };
178
+ clientExtensionResults?: Record<string, unknown>;
179
+ authenticatorAttachment?: 'platform' | 'cross-platform';
180
+ };
181
+ /** Device ID for trusted device check */
182
+ deviceId?: string;
183
+ }
184
+ /**
185
+ * Request body for updating a passkey credential
186
+ */
187
+ export interface PasskeyUpdateRequest {
188
+ /** New friendly name */
189
+ friendlyName: string;
190
+ }
191
+ /**
192
+ * Response for listing passkey credentials
193
+ */
194
+ export interface PasskeyCredentialListResponse {
195
+ /** List of credentials (without publicKey) */
196
+ credentials: Omit<PasskeyCredential, 'publicKey'>[];
197
+ }
198
+ /**
199
+ * Server-side session for passkey operations
200
+ */
201
+ export interface PasskeySession {
202
+ /** Challenge for this session */
203
+ challenge: string;
204
+ /** User ID (for registration) */
205
+ userId?: string;
206
+ /** Expected origin for verification */
207
+ expectedOrigin: string | string[];
208
+ /** Expected RP ID for verification */
209
+ expectedRPID: string;
210
+ /** Session mode */
211
+ mode: 'register' | 'login';
212
+ /** Friendly name (for registration) */
213
+ friendlyName?: string;
214
+ /** Session expiration timestamp */
215
+ expiresAt: number;
216
+ }
217
+ //# sourceMappingURL=passkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/types/passkey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @trokky/types - Passkey/WebAuthn Types
3
+ *
4
+ * Types for passwordless authentication using WebAuthn/Passkeys.
5
+ * Enables biometric and security key authentication in Trokky Studio.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=passkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../src/types/passkey.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}