@antelopejs/interface-dms 0.3.5 → 0.4.0

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 (701) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +2 -2
  3. package/dist/attachments.d.ts +19 -10
  4. package/dist/attachments.js +15 -0
  5. package/dist/attachments.js.map +1 -1
  6. package/dist/auth/db/internal/sessions.model.d.ts +9 -0
  7. package/dist/auth/db/internal/sessions.model.js +31 -0
  8. package/dist/auth/db/internal/sessions.model.js.map +1 -0
  9. package/dist/auth/db/models/sessions.model.d.ts +16 -2
  10. package/dist/auth/db/models/sessions.model.js +33 -41
  11. package/dist/auth/db/models/sessions.model.js.map +1 -1
  12. package/dist/auth/db/models/userExternalIdentities.model.d.ts +11 -0
  13. package/dist/auth/db/models/userExternalIdentities.model.js +11 -0
  14. package/dist/auth/db/models/userExternalIdentities.model.js.map +1 -1
  15. package/dist/auth/db/models/users.model.d.ts +13 -0
  16. package/dist/auth/db/models/users.model.js +13 -0
  17. package/dist/auth/db/models/users.model.js.map +1 -1
  18. package/dist/auth/db/tables/sessions.table.d.ts +6 -1
  19. package/dist/auth/db/tables/sessions.table.js +0 -4
  20. package/dist/auth/db/tables/sessions.table.js.map +1 -1
  21. package/dist/auth/db/tables/userExternalIdentities.table.d.ts +24 -0
  22. package/dist/auth/db/tables/userExternalIdentities.table.js +13 -0
  23. package/dist/auth/db/tables/userExternalIdentities.table.js.map +1 -1
  24. package/dist/auth/db/tables/users.table.d.ts +60 -0
  25. package/dist/auth/db/tables/users.table.js +32 -0
  26. package/dist/auth/db/tables/users.table.js.map +1 -1
  27. package/dist/auth/index.d.ts +114 -10
  28. package/dist/auth/index.js +110 -17
  29. package/dist/auth/index.js.map +1 -1
  30. package/dist/auth/internal/request-authenticators.d.ts +6 -0
  31. package/dist/auth/internal/request-authenticators.js +82 -0
  32. package/dist/auth/internal/request-authenticators.js.map +1 -0
  33. package/dist/auth/internal/request-principal.d.ts +10 -0
  34. package/dist/auth/internal/request-principal.js +27 -0
  35. package/dist/auth/internal/request-principal.js.map +1 -0
  36. package/dist/auth/internal/user-agent.d.ts +10 -0
  37. package/dist/auth/internal/user-agent.js +3 -0
  38. package/dist/auth/internal/user-agent.js.map +1 -0
  39. package/dist/auth/password.d.ts +19 -0
  40. package/dist/auth/password.js +23 -0
  41. package/dist/auth/password.js.map +1 -1
  42. package/dist/auth/request-authenticators.d.ts +4 -3
  43. package/dist/auth/request-authenticators.js +0 -77
  44. package/dist/auth/request-authenticators.js.map +1 -1
  45. package/dist/base/activity-feed.d.ts +210 -0
  46. package/dist/base/activity-feed.js +104 -0
  47. package/dist/base/activity-feed.js.map +1 -0
  48. package/dist/base/banner.d.ts +111 -0
  49. package/dist/base/banner.js +93 -0
  50. package/dist/base/banner.js.map +1 -0
  51. package/dist/base/block-registry/helpers.d.ts +26 -0
  52. package/dist/base/block-registry/helpers.js +27 -1
  53. package/dist/base/block-registry/helpers.js.map +1 -1
  54. package/dist/base/block-registry/internal/describe.d.ts +35 -0
  55. package/dist/base/block-registry/{describe.js → internal/describe.js} +50 -0
  56. package/dist/base/block-registry/internal/describe.js.map +1 -0
  57. package/dist/base/block-registry/internal/ui.d.ts +23 -0
  58. package/dist/base/block-registry/internal/ui.js +35 -0
  59. package/dist/base/block-registry/internal/ui.js.map +1 -0
  60. package/dist/base/block-registry/registry.d.ts +24 -0
  61. package/dist/base/block-registry/registry.js +30 -1
  62. package/dist/base/block-registry/registry.js.map +1 -1
  63. package/dist/base/block-registry/types.d.ts +149 -0
  64. package/dist/base/block-types.d.ts +22 -2
  65. package/dist/base/block-types.js +24 -2
  66. package/dist/base/block-types.js.map +1 -1
  67. package/dist/base/card.d.ts +100 -0
  68. package/dist/base/card.js +91 -0
  69. package/dist/base/card.js.map +1 -0
  70. package/dist/base/chart-card.d.ts +9 -2
  71. package/dist/base/chart-card.js +14 -1
  72. package/dist/base/chart-card.js.map +1 -1
  73. package/dist/base/chart-schemas.d.ts +127 -115
  74. package/dist/base/chart-schemas.js +18 -56
  75. package/dist/base/chart-schemas.js.map +1 -1
  76. package/dist/base/chart-type.d.ts +15 -0
  77. package/dist/base/chart-type.js +20 -0
  78. package/dist/base/chart-type.js.map +1 -0
  79. package/dist/base/chart.d.ts +31 -22
  80. package/dist/base/chart.js +27 -54
  81. package/dist/base/chart.js.map +1 -1
  82. package/dist/base/confirm-dialog.d.ts +6 -0
  83. package/dist/base/confirm-dialog.js +18 -0
  84. package/dist/base/confirm-dialog.js.map +1 -0
  85. package/dist/base/data-sources.d.ts +38 -0
  86. package/dist/base/data-sources.js +13 -0
  87. package/dist/base/data-sources.js.map +1 -1
  88. package/dist/base/data-types/compare-types.d.ts +0 -2
  89. package/dist/base/data-types/compare-types.js +18 -13
  90. package/dist/base/data-types/compare-types.js.map +1 -1
  91. package/dist/base/data-types/core.d.ts +55 -0
  92. package/dist/base/data-types/core.js +42 -0
  93. package/dist/base/data-types/core.js.map +1 -1
  94. package/dist/base/data-types/default-types.d.ts +241 -62
  95. package/dist/base/data-types/default-types.js +257 -135
  96. package/dist/base/data-types/default-types.js.map +1 -1
  97. package/dist/base/data-types/field-types.d.ts +164 -0
  98. package/dist/base/data-types/field-types.js +236 -0
  99. package/dist/base/data-types/field-types.js.map +1 -0
  100. package/dist/base/data-types/index.d.ts +1 -0
  101. package/dist/base/data-types/index.js +21 -0
  102. package/dist/base/data-types/index.js.map +1 -1
  103. package/dist/base/data-types/internal/compare-types.d.ts +3 -0
  104. package/dist/base/data-types/internal/compare-types.js +15 -0
  105. package/dist/base/data-types/internal/compare-types.js.map +1 -0
  106. package/dist/base/data-types/status-type.d.ts +2 -1
  107. package/dist/base/data-types/status-type.js +6 -0
  108. package/dist/base/data-types/status-type.js.map +1 -1
  109. package/dist/base/display.d.ts +124 -0
  110. package/dist/base/display.js +95 -0
  111. package/dist/base/display.js.map +1 -0
  112. package/dist/base/empty-state.d.ts +106 -0
  113. package/dist/base/empty-state.js +109 -0
  114. package/dist/base/empty-state.js.map +1 -0
  115. package/dist/base/export-jobs.d.ts +39 -1
  116. package/dist/base/export-jobs.js +12 -3
  117. package/dist/base/export-jobs.js.map +1 -1
  118. package/dist/base/form-block-schema.d.ts +345 -28
  119. package/dist/base/form-block-schema.js +83 -12
  120. package/dist/base/form-block-schema.js.map +1 -1
  121. package/dist/base/form-schema.d.ts +137 -22
  122. package/dist/base/form-schema.js +139 -42
  123. package/dist/base/form-schema.js.map +1 -1
  124. package/dist/base/form-types.d.ts +139 -4
  125. package/dist/base/form-types.js +7 -1
  126. package/dist/base/form-types.js.map +1 -1
  127. package/dist/base/form.js +7 -0
  128. package/dist/base/form.js.map +1 -1
  129. package/dist/base/grid.d.ts +57 -0
  130. package/dist/base/grid.js +43 -0
  131. package/dist/base/grid.js.map +1 -1
  132. package/dist/base/helpers/file-refs.js +5 -1
  133. package/dist/base/helpers/file-refs.js.map +1 -1
  134. package/dist/base/index.d.ts +11 -1
  135. package/dist/base/index.js +16 -1
  136. package/dist/base/index.js.map +1 -1
  137. package/dist/base/internal/button-availability.d.ts +17 -0
  138. package/dist/base/internal/button-availability.js +31 -0
  139. package/dist/base/internal/button-availability.js.map +1 -0
  140. package/dist/base/internal/chart-schemas.d.ts +6 -0
  141. package/dist/base/internal/chart-schemas.js +70 -0
  142. package/dist/base/internal/chart-schemas.js.map +1 -0
  143. package/dist/base/internal/chart.d.ts +22 -0
  144. package/dist/base/internal/chart.js +37 -0
  145. package/dist/base/internal/chart.js.map +1 -0
  146. package/dist/base/internal/confirm-dialog.d.ts +13 -0
  147. package/dist/base/internal/confirm-dialog.js +24 -0
  148. package/dist/base/internal/confirm-dialog.js.map +1 -0
  149. package/dist/base/internal/display.d.ts +13 -0
  150. package/dist/base/internal/display.js +18 -0
  151. package/dist/base/internal/display.js.map +1 -0
  152. package/dist/base/internal/export-jobs.d.ts +2 -0
  153. package/dist/base/internal/export-jobs.js +6 -0
  154. package/dist/base/internal/export-jobs.js.map +1 -0
  155. package/dist/base/internal/form-block-schema.d.ts +6 -0
  156. package/dist/base/internal/form-block-schema.js +10 -0
  157. package/dist/base/internal/form-block-schema.js.map +1 -0
  158. package/dist/base/internal/form-schema.d.ts +7 -0
  159. package/dist/base/internal/form-schema.js +26 -0
  160. package/dist/base/internal/form-schema.js.map +1 -0
  161. package/dist/base/internal/layouts.d.ts +39 -0
  162. package/dist/base/internal/layouts.js +3 -0
  163. package/dist/base/internal/layouts.js.map +1 -0
  164. package/dist/base/internal/query-response.d.ts +24 -0
  165. package/dist/base/internal/query-response.js +47 -0
  166. package/dist/base/internal/query-response.js.map +1 -0
  167. package/dist/base/internal/searchable.d.ts +6 -0
  168. package/dist/base/internal/searchable.js +15 -0
  169. package/dist/base/internal/searchable.js.map +1 -0
  170. package/dist/base/key-value-list.d.ts +160 -0
  171. package/dist/base/key-value-list.js +107 -0
  172. package/dist/base/key-value-list.js.map +1 -0
  173. package/dist/base/kpi-card.d.ts +12 -4
  174. package/dist/base/kpi-card.js +7 -0
  175. package/dist/base/kpi-card.js.map +1 -1
  176. package/dist/base/layouts.d.ts +35 -0
  177. package/dist/base/layouts.js +41 -7
  178. package/dist/base/layouts.js.map +1 -1
  179. package/dist/base/meter.d.ts +186 -0
  180. package/dist/base/meter.js +134 -0
  181. package/dist/base/meter.js.map +1 -0
  182. package/dist/base/nav-card-grid.d.ts +173 -0
  183. package/dist/base/nav-card-grid.js +89 -0
  184. package/dist/base/nav-card-grid.js.map +1 -0
  185. package/dist/base/period-selector.d.ts +20 -0
  186. package/dist/base/period-selector.js +23 -0
  187. package/dist/base/period-selector.js.map +1 -1
  188. package/dist/base/placeholder.d.ts +26 -0
  189. package/dist/base/placeholder.js +12 -0
  190. package/dist/base/placeholder.js.map +1 -1
  191. package/dist/base/query-response.d.ts +51 -1
  192. package/dist/base/query-response.js +43 -26
  193. package/dist/base/query-response.js.map +1 -1
  194. package/dist/base/resource-form-schema.d.ts +18 -0
  195. package/dist/base/resource-form-schema.js +20 -3
  196. package/dist/base/resource-form-schema.js.map +1 -1
  197. package/dist/base/searchable.d.ts +2 -0
  198. package/dist/base/searchable.js +4 -0
  199. package/dist/base/searchable.js.map +1 -1
  200. package/dist/base/section.d.ts +105 -0
  201. package/dist/base/section.js +123 -0
  202. package/dist/base/section.js.map +1 -0
  203. package/dist/base/stack.d.ts +113 -0
  204. package/dist/base/stack.js +58 -0
  205. package/dist/base/stack.js.map +1 -1
  206. package/dist/base/stat-group.d.ts +152 -0
  207. package/dist/base/stat-group.js +97 -0
  208. package/dist/base/stat-group.js.map +1 -0
  209. package/dist/base/tab.d.ts +25 -8
  210. package/dist/base/tab.js +11 -0
  211. package/dist/base/tab.js.map +1 -1
  212. package/dist/base/table-view/column-display.d.ts +195 -0
  213. package/dist/base/table-view/column-display.js +131 -0
  214. package/dist/base/table-view/column-display.js.map +1 -0
  215. package/dist/base/table-view/data-functions.d.ts +36 -14
  216. package/dist/base/table-view/data-functions.js +26 -1
  217. package/dist/base/table-view/data-functions.js.map +1 -1
  218. package/dist/base/table-view/factory-helpers.d.ts +0 -42
  219. package/dist/base/table-view/factory-helpers.js +1 -244
  220. package/dist/base/table-view/factory-helpers.js.map +1 -1
  221. package/dist/base/table-view/factory.d.ts +5 -1
  222. package/dist/base/table-view/factory.js +158 -202
  223. package/dist/base/table-view/factory.js.map +1 -1
  224. package/dist/base/table-view/internal/auth.d.ts +33 -0
  225. package/dist/base/table-view/{auth.js → internal/auth.js} +45 -6
  226. package/dist/base/table-view/internal/auth.js.map +1 -0
  227. package/dist/base/table-view/internal/column-display.d.ts +18 -0
  228. package/dist/base/table-view/internal/column-display.js +37 -0
  229. package/dist/base/table-view/internal/column-display.js.map +1 -0
  230. package/dist/base/table-view/internal/data-functions.d.ts +14 -0
  231. package/dist/base/table-view/internal/data-functions.js +3 -0
  232. package/dist/base/table-view/internal/data-functions.js.map +1 -0
  233. package/dist/base/table-view/internal/factory-helpers.d.ts +213 -0
  234. package/dist/base/table-view/internal/factory-helpers.js +477 -0
  235. package/dist/base/table-view/internal/factory-helpers.js.map +1 -0
  236. package/dist/base/table-view/{files.d.ts → internal/files.d.ts} +5 -0
  237. package/dist/base/table-view/{files.js → internal/files.js} +14 -4
  238. package/dist/base/table-view/internal/files.js.map +1 -0
  239. package/dist/base/table-view/internal/footer.d.ts +33 -0
  240. package/dist/base/table-view/internal/footer.js +112 -0
  241. package/dist/base/table-view/internal/footer.js.map +1 -0
  242. package/dist/base/table-view/{guards.d.ts → internal/guards.d.ts} +3 -0
  243. package/dist/base/table-view/internal/guards.js +134 -0
  244. package/dist/base/table-view/internal/guards.js.map +1 -0
  245. package/dist/base/table-view/internal/meta.d.ts +5 -0
  246. package/dist/base/table-view/internal/meta.js +13 -0
  247. package/dist/base/table-view/internal/meta.js.map +1 -0
  248. package/dist/base/table-view/internal/nav-badges.d.ts +9 -0
  249. package/dist/base/table-view/internal/nav-badges.js +79 -0
  250. package/dist/base/table-view/internal/nav-badges.js.map +1 -0
  251. package/dist/base/table-view/internal/options.d.ts +6 -0
  252. package/dist/base/table-view/internal/options.js +10 -0
  253. package/dist/base/table-view/internal/options.js.map +1 -0
  254. package/dist/base/table-view/internal/realtime-listeners.d.ts +4 -0
  255. package/dist/base/table-view/internal/realtime-listeners.js +7 -0
  256. package/dist/base/table-view/internal/realtime-listeners.js.map +1 -0
  257. package/dist/base/table-view/internal/realtime.d.ts +39 -0
  258. package/dist/base/table-view/internal/realtime.js +163 -0
  259. package/dist/base/table-view/internal/realtime.js.map +1 -0
  260. package/dist/base/table-view/internal/request-filter.d.ts +75 -0
  261. package/dist/base/table-view/internal/request-filter.js +154 -0
  262. package/dist/base/table-view/internal/request-filter.js.map +1 -0
  263. package/dist/base/table-view/internal/resource-form.d.ts +25 -0
  264. package/dist/base/table-view/internal/resource-form.js +91 -0
  265. package/dist/base/table-view/internal/resource-form.js.map +1 -0
  266. package/dist/base/table-view/{row-rules.d.ts → internal/row-rules.d.ts} +5 -2
  267. package/dist/base/table-view/{row-rules.js → internal/row-rules.js} +20 -19
  268. package/dist/base/table-view/internal/row-rules.js.map +1 -0
  269. package/dist/base/table-view/internal/tabs.d.ts +39 -0
  270. package/dist/base/table-view/internal/tabs.js +116 -0
  271. package/dist/base/table-view/internal/tabs.js.map +1 -0
  272. package/dist/base/table-view/internal/validation.d.ts +99 -0
  273. package/dist/base/table-view/internal/validation.js +297 -0
  274. package/dist/base/table-view/internal/validation.js.map +1 -0
  275. package/dist/base/table-view/internal/views.d.ts +14 -0
  276. package/dist/base/table-view/internal/views.js +42 -0
  277. package/dist/base/table-view/internal/views.js.map +1 -0
  278. package/dist/base/table-view/internal/writer.d.ts +39 -0
  279. package/dist/base/table-view/internal/writer.js +55 -0
  280. package/dist/base/table-view/internal/writer.js.map +1 -0
  281. package/dist/base/table-view/meta.d.ts +77 -4
  282. package/dist/base/table-view/meta.js +133 -13
  283. package/dist/base/table-view/meta.js.map +1 -1
  284. package/dist/base/table-view/options.d.ts +749 -28
  285. package/dist/base/table-view/options.js +9 -2
  286. package/dist/base/table-view/options.js.map +1 -1
  287. package/dist/base/table-view/realtime.d.ts +26 -17
  288. package/dist/base/table-view/realtime.js +29 -126
  289. package/dist/base/table-view/realtime.js.map +1 -1
  290. package/dist/base/table-view/resource-form.d.ts +11 -5
  291. package/dist/base/table-view/resource-form.js +15 -59
  292. package/dist/base/table-view/resource-form.js.map +1 -1
  293. package/dist/base/table-view/routes.d.ts +29 -0
  294. package/dist/base/table-view/routes.js +71 -6
  295. package/dist/base/table-view/routes.js.map +1 -1
  296. package/dist/base/table-view/schema.d.ts +483 -69
  297. package/dist/base/table-view/schema.js +163 -18
  298. package/dist/base/table-view/schema.js.map +1 -1
  299. package/dist/base/table-view/source.d.ts +62 -0
  300. package/dist/base/table-view/source.js +161 -0
  301. package/dist/base/table-view/source.js.map +1 -0
  302. package/dist/base/table-view/views.d.ts +20 -0
  303. package/dist/base/table-view/views.js +38 -0
  304. package/dist/base/table-view/views.js.map +1 -0
  305. package/dist/base/table-view/writer.d.ts +7 -0
  306. package/dist/base/table-view/writer.js +17 -0
  307. package/dist/base/table-view/writer.js.map +1 -0
  308. package/dist/base/table-view.d.ts +34 -6
  309. package/dist/base/table-view.js +42 -6
  310. package/dist/base/table-view.js.map +1 -1
  311. package/dist/base/tenant-export-archive.d.ts +21 -0
  312. package/dist/base/tenant-export-archive.js +11 -0
  313. package/dist/base/tenant-export-archive.js.map +1 -1
  314. package/dist/base/top-list-card.d.ts +35 -12
  315. package/dist/base/top-list-card.js +24 -0
  316. package/dist/base/top-list-card.js.map +1 -1
  317. package/dist/base/types/action-target.d.ts +36 -20
  318. package/dist/base/types/component-input.d.ts +3 -0
  319. package/dist/base/types/confirm-dialog.d.ts +69 -0
  320. package/dist/base/types/confirm-dialog.js +3 -0
  321. package/dist/base/types/confirm-dialog.js.map +1 -0
  322. package/dist/base/types/custom-button.d.ts +48 -2
  323. package/dist/base/types/enum-option.d.ts +9 -0
  324. package/dist/base/types/error.d.ts +9 -0
  325. package/dist/base/types/error.js +7 -1
  326. package/dist/base/types/error.js.map +1 -1
  327. package/dist/base/types/export-status.d.ts +3 -0
  328. package/dist/base/types/export-status.js +3 -0
  329. package/dist/base/types/export-status.js.map +1 -1
  330. package/dist/base/types/field-config.d.ts +3 -0
  331. package/dist/base/types/form-mode.d.ts +3 -0
  332. package/dist/base/types/form-mode.js +3 -0
  333. package/dist/base/types/form-mode.js.map +1 -1
  334. package/dist/base/types/form-values.d.ts +6 -0
  335. package/dist/base/types/guards.d.ts +37 -7
  336. package/dist/base/types/index.d.ts +2 -0
  337. package/dist/base/types/index.js +2 -0
  338. package/dist/base/types/index.js.map +1 -1
  339. package/dist/base/types/internal/action-target.d.ts +8 -0
  340. package/dist/base/types/internal/action-target.js +16 -0
  341. package/dist/base/types/internal/action-target.js.map +1 -0
  342. package/dist/base/types/json.d.ts +6 -0
  343. package/dist/base/types/orientation.d.ts +3 -0
  344. package/dist/base/types/orientation.js +3 -0
  345. package/dist/base/types/orientation.js.map +1 -1
  346. package/dist/base/types/readonly-behavior.d.ts +9 -0
  347. package/dist/base/types/readonly-behavior.js +3 -0
  348. package/dist/base/types/readonly-behavior.js.map +1 -1
  349. package/dist/base/types/row-action.d.ts +111 -0
  350. package/dist/base/types/size.d.ts +1 -0
  351. package/dist/base/types/size.js +4 -0
  352. package/dist/base/types/size.js.map +1 -1
  353. package/dist/base/types/tone.d.ts +14 -0
  354. package/dist/base/types/tone.js +24 -0
  355. package/dist/base/types/tone.js.map +1 -0
  356. package/dist/client-base-url.d.ts +8 -0
  357. package/dist/client-base-url.js +8 -0
  358. package/dist/client-base-url.js.map +1 -1
  359. package/dist/component-slots.d.ts +17 -2
  360. package/dist/component-slots.js +18 -66
  361. package/dist/component-slots.js.map +1 -1
  362. package/dist/component.d.ts +113 -0
  363. package/dist/component.js +84 -1
  364. package/dist/component.js.map +1 -1
  365. package/dist/data-controllers/members.d.ts +16 -1
  366. package/dist/data-controllers/members.js +87 -26
  367. package/dist/data-controllers/members.js.map +1 -1
  368. package/dist/data-controllers/roles.d.ts +1 -0
  369. package/dist/data-controllers/roles.js +3 -3
  370. package/dist/data-controllers/roles.js.map +1 -1
  371. package/dist/db/{models → internal}/exportJobs.model.d.ts +2 -0
  372. package/dist/db/{models → internal}/exportJobs.model.js +4 -1
  373. package/dist/db/internal/exportJobs.model.js.map +1 -0
  374. package/dist/db/internal/inviteResolutions.model.d.ts +34 -0
  375. package/dist/db/internal/inviteResolutions.model.js +80 -0
  376. package/dist/db/internal/inviteResolutions.model.js.map +1 -0
  377. package/dist/db/internal/table-names.d.ts +4 -0
  378. package/dist/db/internal/table-names.js +8 -0
  379. package/dist/db/internal/table-names.js.map +1 -0
  380. package/dist/db/{models → internal}/tenantLifecycle.model.d.ts +10 -1
  381. package/dist/db/{models → internal}/tenantLifecycle.model.js +10 -1
  382. package/dist/db/internal/tenantLifecycle.model.js.map +1 -0
  383. package/dist/db/{tables → internal}/tenantLifecycle.table.d.ts +6 -0
  384. package/dist/db/{tables → internal}/tenantLifecycle.table.js +6 -0
  385. package/dist/db/internal/tenantLifecycle.table.js.map +1 -0
  386. package/dist/db/models/index.d.ts +0 -2
  387. package/dist/db/models/index.js +0 -2
  388. package/dist/db/models/index.js.map +1 -1
  389. package/dist/db/models/inviteResolutions.model.d.ts +1 -25
  390. package/dist/db/models/inviteResolutions.model.js +0 -68
  391. package/dist/db/models/inviteResolutions.model.js.map +1 -1
  392. package/dist/db/models/roles.model.d.ts +6 -0
  393. package/dist/db/models/roles.model.js +6 -0
  394. package/dist/db/models/roles.model.js.map +1 -1
  395. package/dist/db/models/tenantMembers.model.js +1 -1
  396. package/dist/db/models/tenantMembers.model.js.map +1 -1
  397. package/dist/db/models/user_invites.model.d.ts +24 -0
  398. package/dist/db/models/user_invites.model.js +25 -1
  399. package/dist/db/models/user_invites.model.js.map +1 -1
  400. package/dist/db/tables/exportJobs.table.d.ts +5 -1
  401. package/dist/db/tables/exportJobs.table.js +3 -3
  402. package/dist/db/tables/exportJobs.table.js.map +1 -1
  403. package/dist/db/tables/index.d.ts +0 -1
  404. package/dist/db/tables/index.js +0 -1
  405. package/dist/db/tables/index.js.map +1 -1
  406. package/dist/db/tables/inviteResolutions.table.d.ts +1 -1
  407. package/dist/db/tables/inviteResolutions.table.js +4 -3
  408. package/dist/db/tables/inviteResolutions.table.js.map +1 -1
  409. package/dist/db/tables/roles.table.d.ts +2 -0
  410. package/dist/db/tables/roles.table.js +4 -0
  411. package/dist/db/tables/roles.table.js.map +1 -1
  412. package/dist/db/tables/tenantMembers.table.d.ts +1 -0
  413. package/dist/db/tables/user_invites.table.d.ts +11 -0
  414. package/dist/db/tables/user_invites.table.js +4 -0
  415. package/dist/db/tables/user_invites.table.js.map +1 -1
  416. package/dist/guards.d.ts +36 -0
  417. package/dist/guards.js +30 -1
  418. package/dist/guards.js.map +1 -1
  419. package/dist/hooks.d.ts +133 -1
  420. package/dist/hooks.js +87 -1
  421. package/dist/hooks.js.map +1 -1
  422. package/dist/html-render/index.d.ts +15 -0
  423. package/dist/html-render/index.js +15 -0
  424. package/dist/html-render/index.js.map +1 -1
  425. package/dist/html-render/types.d.ts +4 -0
  426. package/dist/index.d.ts +6 -7
  427. package/dist/index.js +12 -17
  428. package/dist/index.js.map +1 -1
  429. package/dist/internal/attachments.d.ts +16 -0
  430. package/dist/internal/attachments.js +3 -0
  431. package/dist/internal/attachments.js.map +1 -0
  432. package/dist/internal/component-slots.d.ts +27 -0
  433. package/dist/internal/component-slots.js +97 -0
  434. package/dist/internal/component-slots.js.map +1 -0
  435. package/dist/internal/invite-membership.d.ts +8 -0
  436. package/dist/{invite-membership.js → internal/invite-membership.js} +11 -5
  437. package/dist/internal/invite-membership.js.map +1 -0
  438. package/dist/internal/invite-replacement.d.ts +7 -0
  439. package/dist/{invite-replacement.js → internal/invite-replacement.js} +8 -3
  440. package/dist/internal/invite-replacement.js.map +1 -0
  441. package/dist/internal/invite-resolution.d.ts +3 -0
  442. package/dist/internal/invite-resolution.js +50 -0
  443. package/dist/internal/invite-resolution.js.map +1 -0
  444. package/dist/internal/invites.d.ts +31 -0
  445. package/dist/internal/invites.js +44 -0
  446. package/dist/internal/invites.js.map +1 -0
  447. package/dist/internal/permission-gate.d.ts +23 -0
  448. package/dist/internal/permission-gate.js +43 -0
  449. package/dist/internal/permission-gate.js.map +1 -0
  450. package/dist/internal/tenant-access.d.ts +28 -0
  451. package/dist/internal/tenant-access.js +28 -0
  452. package/dist/internal/tenant-access.js.map +1 -0
  453. package/dist/internal/tenant-ownership.d.ts +13 -0
  454. package/dist/internal/tenant-ownership.js +95 -0
  455. package/dist/internal/tenant-ownership.js.map +1 -0
  456. package/dist/internal/uploads.d.ts +19 -0
  457. package/dist/internal/uploads.js +3 -0
  458. package/dist/internal/uploads.js.map +1 -0
  459. package/dist/invite-extensions/availability.d.ts +28 -3
  460. package/dist/invite-extensions/availability.js +26 -23
  461. package/dist/invite-extensions/availability.js.map +1 -1
  462. package/dist/invite-extensions/internal/availability.d.ts +12 -0
  463. package/dist/invite-extensions/internal/availability.js +32 -0
  464. package/dist/invite-extensions/internal/availability.js.map +1 -0
  465. package/dist/invite-extensions/internal/delivery.d.ts +44 -0
  466. package/dist/invite-extensions/{delivery.js → internal/delivery.js} +38 -0
  467. package/dist/invite-extensions/internal/delivery.js.map +1 -0
  468. package/dist/invite-extensions/internal/edit.d.ts +34 -0
  469. package/dist/invite-extensions/{edit.js → internal/edit.js} +33 -0
  470. package/dist/invite-extensions/internal/edit.js.map +1 -0
  471. package/dist/invite-extensions/internal/field-ids.d.ts +21 -0
  472. package/dist/invite-extensions/{field-ids.js → internal/field-ids.js} +13 -0
  473. package/dist/invite-extensions/internal/field-ids.js.map +1 -0
  474. package/dist/invite-extensions/internal/form-slot.d.ts +13 -0
  475. package/dist/invite-extensions/{form-slot.js → internal/form-slot.js} +49 -4
  476. package/dist/invite-extensions/internal/form-slot.js.map +1 -0
  477. package/dist/invite-extensions/internal/payload-slices.d.ts +31 -0
  478. package/dist/invite-extensions/{payload-slices.js → internal/payload-slices.js} +30 -0
  479. package/dist/invite-extensions/internal/payload-slices.js.map +1 -0
  480. package/dist/invite-extensions/internal/registry.d.ts +48 -0
  481. package/dist/invite-extensions/internal/registry.js +77 -0
  482. package/dist/invite-extensions/internal/registry.js.map +1 -0
  483. package/dist/invite-extensions/internal/types.d.ts +61 -0
  484. package/dist/invite-extensions/internal/types.js +3 -0
  485. package/dist/invite-extensions/internal/types.js.map +1 -0
  486. package/dist/invite-extensions/registry.d.ts +44 -12
  487. package/dist/invite-extensions/registry.js +51 -43
  488. package/dist/invite-extensions/registry.js.map +1 -1
  489. package/dist/invite-extensions/types.d.ts +59 -34
  490. package/dist/invite-extensions.d.ts +30 -4
  491. package/dist/invite-extensions.js +57 -7
  492. package/dist/invite-extensions.js.map +1 -1
  493. package/dist/invite-resolution.d.ts +5 -2
  494. package/dist/invite-resolution.js +16 -46
  495. package/dist/invite-resolution.js.map +1 -1
  496. package/dist/invitee-display-name.d.ts +5 -0
  497. package/dist/invitee-display-name.js +15 -0
  498. package/dist/invitee-display-name.js.map +1 -0
  499. package/dist/invites.d.ts +46 -14
  500. package/dist/invites.js +41 -44
  501. package/dist/invites.js.map +1 -1
  502. package/dist/layout-banners.d.ts +68 -0
  503. package/dist/layout-banners.js +18 -0
  504. package/dist/layout-banners.js.map +1 -1
  505. package/dist/notifications/builder.d.ts +3 -1
  506. package/dist/notifications/builder.js +10 -0
  507. package/dist/notifications/builder.js.map +1 -1
  508. package/dist/notifications/index.d.ts +1 -0
  509. package/dist/notifications/index.js +16 -0
  510. package/dist/notifications/index.js.map +1 -1
  511. package/dist/notifications/internal.d.ts +8 -5
  512. package/dist/notifications/internal.js +6 -0
  513. package/dist/notifications/internal.js.map +1 -1
  514. package/dist/notifications/sendable.d.ts +6 -0
  515. package/dist/notifications/sendable.js +13 -4
  516. package/dist/notifications/sendable.js.map +1 -1
  517. package/dist/notifications/types.d.ts +26 -1
  518. package/dist/page/categories.d.ts +19 -17
  519. package/dist/page/categories.js +24 -168
  520. package/dist/page/categories.js.map +1 -1
  521. package/dist/page/component-tree.d.ts +15 -1
  522. package/dist/page/component-tree.js +0 -40
  523. package/dist/page/component-tree.js.map +1 -1
  524. package/dist/page/controllers.d.ts +135 -0
  525. package/dist/page/controllers.js +124 -8
  526. package/dist/page/controllers.js.map +1 -1
  527. package/dist/page/declaration-conflict.d.ts +9 -0
  528. package/dist/page/declaration-conflict.js +17 -0
  529. package/dist/page/declaration-conflict.js.map +1 -0
  530. package/dist/page/form-page-routes.d.ts +7 -10
  531. package/dist/page/form-page-routes.js +14 -31
  532. package/dist/page/form-page-routes.js.map +1 -1
  533. package/dist/page/internal/categories.d.ts +62 -0
  534. package/dist/page/internal/categories.js +260 -0
  535. package/dist/page/internal/categories.js.map +1 -0
  536. package/dist/page/internal/component-target.d.ts +37 -0
  537. package/dist/page/{component-target.js → internal/component-target.js} +27 -2
  538. package/dist/page/internal/component-target.js.map +1 -0
  539. package/dist/page/internal/component-tree.d.ts +13 -0
  540. package/dist/page/internal/component-tree.js +61 -0
  541. package/dist/page/internal/component-tree.js.map +1 -0
  542. package/dist/page/{extension-assembly.d.ts → internal/extension-assembly.d.ts} +5 -2
  543. package/dist/page/{extension-assembly.js → internal/extension-assembly.js} +8 -0
  544. package/dist/page/internal/extension-assembly.js.map +1 -0
  545. package/dist/page/internal/extension-validation.d.ts +24 -0
  546. package/dist/page/{extension-validation.js → internal/extension-validation.js} +8 -0
  547. package/dist/page/internal/extension-validation.js.map +1 -0
  548. package/dist/page/internal/form-page-routes.d.ts +26 -0
  549. package/dist/page/internal/form-page-routes.js +40 -0
  550. package/dist/page/internal/form-page-routes.js.map +1 -0
  551. package/dist/page/internal/layout-filter.d.ts +21 -0
  552. package/dist/page/internal/layout-filter.js +101 -0
  553. package/dist/page/internal/layout-filter.js.map +1 -0
  554. package/dist/page/{metadata-helpers.d.ts → internal/metadata-helpers.d.ts} +4 -1
  555. package/dist/page/{metadata-helpers.js → internal/metadata-helpers.js} +19 -2
  556. package/dist/page/internal/metadata-helpers.js.map +1 -0
  557. package/dist/page/internal/nav-badges.d.ts +17 -0
  558. package/dist/page/internal/nav-badges.js +68 -0
  559. package/dist/page/internal/nav-badges.js.map +1 -0
  560. package/dist/page/internal/page-registration.d.ts +29 -0
  561. package/dist/page/internal/page-registration.js +41 -0
  562. package/dist/page/internal/page-registration.js.map +1 -0
  563. package/dist/page/internal/registry.d.ts +128 -0
  564. package/dist/page/internal/registry.js +225 -0
  565. package/dist/page/internal/registry.js.map +1 -0
  566. package/dist/page/internal/table-view-ids.d.ts +10 -0
  567. package/dist/page/internal/table-view-ids.js +39 -0
  568. package/dist/page/internal/table-view-ids.js.map +1 -0
  569. package/dist/page/internal/types.d.ts +2 -0
  570. package/dist/page/internal/types.js +6 -0
  571. package/dist/page/internal/types.js.map +1 -0
  572. package/dist/page/layout-filter.d.ts +4 -0
  573. package/dist/page/layout-filter.js +11 -0
  574. package/dist/page/layout-filter.js.map +1 -1
  575. package/dist/page/metadata.d.ts +93 -0
  576. package/dist/page/metadata.js +236 -28
  577. package/dist/page/metadata.js.map +1 -1
  578. package/dist/page/registry.d.ts +17 -36
  579. package/dist/page/registry.js +25 -127
  580. package/dist/page/registry.js.map +1 -1
  581. package/dist/page/roots.d.ts +10 -0
  582. package/dist/page/roots.js +27 -6
  583. package/dist/page/roots.js.map +1 -1
  584. package/dist/page/types.d.ts +186 -1
  585. package/dist/page/types.js +1 -2
  586. package/dist/page/types.js.map +1 -1
  587. package/dist/page.d.ts +23 -1
  588. package/dist/page.js +24 -2
  589. package/dist/page.js.map +1 -1
  590. package/dist/permission-gate.d.ts +14 -0
  591. package/dist/permission-gate.js +3 -0
  592. package/dist/permission-gate.js.map +1 -0
  593. package/dist/permissions-resolver.d.ts +24 -0
  594. package/dist/permissions-resolver.js +24 -0
  595. package/dist/permissions-resolver.js.map +1 -1
  596. package/dist/permissions.d.ts +27 -0
  597. package/dist/permissions.js +37 -0
  598. package/dist/permissions.js.map +1 -1
  599. package/dist/quick-actions.d.ts +27 -0
  600. package/dist/quick-actions.js +1 -0
  601. package/dist/quick-actions.js.map +1 -1
  602. package/dist/realtime.d.ts +29 -0
  603. package/dist/realtime.js +30 -0
  604. package/dist/realtime.js.map +1 -1
  605. package/dist/request-tenant.d.ts +17 -0
  606. package/dist/request-tenant.js +18 -1
  607. package/dist/request-tenant.js.map +1 -1
  608. package/dist/tenant-access.d.ts +38 -6
  609. package/dist/tenant-access.js +38 -8
  610. package/dist/tenant-access.js.map +1 -1
  611. package/dist/tenant-export.d.ts +19 -0
  612. package/dist/tenant-lifecycle.d.ts +13 -0
  613. package/dist/tenant-lifecycle.js +22 -1
  614. package/dist/tenant-lifecycle.js.map +1 -1
  615. package/dist/tenant-ownership.d.ts +2 -1
  616. package/dist/tenant-ownership.js +5 -85
  617. package/dist/tenant-ownership.js.map +1 -1
  618. package/dist/tenant-scoped-model.d.ts +8 -0
  619. package/dist/tenant-scoped-model.js +8 -0
  620. package/dist/tenant-scoped-model.js.map +1 -1
  621. package/dist/uploads.d.ts +24 -16
  622. package/dist/uploads.js +24 -0
  623. package/dist/uploads.js.map +1 -1
  624. package/dist/utils/fire-and-forget.d.ts +4 -0
  625. package/dist/utils/fire-and-forget.js +4 -0
  626. package/dist/utils/fire-and-forget.js.map +1 -1
  627. package/dist/utils/internal/owned-registry.d.ts +36 -0
  628. package/dist/utils/internal/owned-registry.js +60 -0
  629. package/dist/utils/internal/owned-registry.js.map +1 -0
  630. package/dist/utils/{row-instance.d.ts → internal/row-instance.d.ts} +1 -0
  631. package/dist/utils/internal/row-instance.js +12 -0
  632. package/dist/utils/internal/row-instance.js.map +1 -0
  633. package/dist/utils/internal/saas-mode.d.ts +8 -0
  634. package/dist/utils/internal/saas-mode.js +3 -0
  635. package/dist/utils/internal/saas-mode.js.map +1 -0
  636. package/dist/utils/{time.d.ts → internal/time.d.ts} +4 -0
  637. package/dist/utils/{time.js → internal/time.js} +4 -0
  638. package/dist/utils/internal/time.js.map +1 -0
  639. package/dist/utils/{type-check.d.ts → internal/type-check.d.ts} +12 -0
  640. package/dist/utils/{type-check.js → internal/type-check.js} +12 -0
  641. package/dist/utils/internal/type-check.js.map +1 -0
  642. package/dist/utils/internal/value-parser.d.ts +86 -0
  643. package/dist/utils/internal/value-parser.js +160 -0
  644. package/dist/utils/internal/value-parser.js.map +1 -0
  645. package/dist/utils/saas-mode.d.ts +25 -3
  646. package/dist/utils/saas-mode.js +24 -0
  647. package/dist/utils/saas-mode.js.map +1 -1
  648. package/package.json +3 -3
  649. package/dist/base/block-registry/describe.d.ts +0 -6
  650. package/dist/base/block-registry/describe.js.map +0 -1
  651. package/dist/base/block-registry/ui.d.ts +0 -5
  652. package/dist/base/block-registry/ui.js +0 -17
  653. package/dist/base/block-registry/ui.js.map +0 -1
  654. package/dist/base/table-view/auth.d.ts +0 -9
  655. package/dist/base/table-view/auth.js.map +0 -1
  656. package/dist/base/table-view/files.js.map +0 -1
  657. package/dist/base/table-view/guards.js +0 -85
  658. package/dist/base/table-view/guards.js.map +0 -1
  659. package/dist/base/table-view/row-rules.js.map +0 -1
  660. package/dist/base/tree.d.ts +0 -115
  661. package/dist/base/tree.js +0 -145
  662. package/dist/base/tree.js.map +0 -1
  663. package/dist/db/models/exportJobs.model.js.map +0 -1
  664. package/dist/db/models/tenantLifecycle.model.js.map +0 -1
  665. package/dist/db/tables/tenantLifecycle.table.js.map +0 -1
  666. package/dist/invite-extensions/delivery.d.ts +0 -5
  667. package/dist/invite-extensions/delivery.js.map +0 -1
  668. package/dist/invite-extensions/edit.d.ts +0 -4
  669. package/dist/invite-extensions/edit.js.map +0 -1
  670. package/dist/invite-extensions/field-ids.d.ts +0 -7
  671. package/dist/invite-extensions/field-ids.js.map +0 -1
  672. package/dist/invite-extensions/form-slot.d.ts +0 -2
  673. package/dist/invite-extensions/form-slot.js.map +0 -1
  674. package/dist/invite-extensions/internal.d.ts +0 -17
  675. package/dist/invite-extensions/internal.js +0 -55
  676. package/dist/invite-extensions/internal.js.map +0 -1
  677. package/dist/invite-extensions/payload-slices.d.ts +0 -8
  678. package/dist/invite-extensions/payload-slices.js.map +0 -1
  679. package/dist/invite-membership.d.ts +0 -3
  680. package/dist/invite-membership.js.map +0 -1
  681. package/dist/invite-replacement.d.ts +0 -2
  682. package/dist/invite-replacement.js.map +0 -1
  683. package/dist/page/component-target.d.ts +0 -10
  684. package/dist/page/component-target.js.map +0 -1
  685. package/dist/page/extension-assembly.js.map +0 -1
  686. package/dist/page/extension-validation.d.ts +0 -7
  687. package/dist/page/extension-validation.js.map +0 -1
  688. package/dist/page/metadata-helpers.js.map +0 -1
  689. package/dist/page/page-registration.d.ts +0 -13
  690. package/dist/page/page-registration.js +0 -22
  691. package/dist/page/page-registration.js.map +0 -1
  692. package/dist/utils/owned-registry.d.ts +0 -10
  693. package/dist/utils/owned-registry.js +0 -34
  694. package/dist/utils/owned-registry.js.map +0 -1
  695. package/dist/utils/row-instance.js +0 -8
  696. package/dist/utils/row-instance.js.map +0 -1
  697. package/dist/utils/time.js.map +0 -1
  698. package/dist/utils/type-check.js.map +0 -1
  699. package/dist/utils/value-parser.d.ts +0 -11
  700. package/dist/utils/value-parser.js +0 -86
  701. package/dist/utils/value-parser.js.map +0 -1
@@ -1,6 +1,12 @@
1
1
  import { Table } from "@antelopejs/interface-database-decorators";
2
2
  import type { DefaultDataTypes } from "../../../base/data-types/default-types";
3
3
  export declare const USERS_TABLE_NAME = "users";
4
+ /** First day of the week: 0 Sunday, 1 Monday, 6 Saturday. */
5
+ export type UserWeekStart = 0 | 1 | 6;
6
+ /** `h23`: 24-hour clock (14:05); `h12`: 12-hour clock (2:05 PM). */
7
+ export type UserTimeFormat = "h23" | "h12";
8
+ /** `numeric`: 01/10/2026; `text`: the month as a word (1 Oct 2026). */
9
+ export type UserDateFormat = "numeric" | "text";
4
10
  declare const User_base: import("@antelopejs/interface-database-decorators").TableClass<Table & {
5
11
  testHash<This extends {}, F extends keyof This>(this: This, field: F, value: This[F]): unknown;
6
12
  }, [], object>;
@@ -10,20 +16,74 @@ export declare class User extends User_base {
10
16
  updatedAt: Date;
11
17
  email: string;
12
18
  name: string;
19
+ /**
20
+ * Profile picture as an image value ({ key, alt? }) in the default storage,
21
+ * downscaled client-side to a square of at most 100x100 pixels.
22
+ */
13
23
  avatar: DefaultDataTypes.ImageValue | null;
24
+ /**
25
+ * User's preferred language/locale (e.g., 'en', 'fr')
26
+ */
14
27
  language: string;
28
+ /** IANA time zone dates and times are shown in (`Europe/Brussels`). */
29
+ timeZone?: string | null;
30
+ /** First day of the week in calendars and date pickers. */
31
+ weekStart?: UserWeekStart | null;
32
+ /** Clock used for times. */
33
+ timeFormat?: UserTimeFormat | null;
34
+ /** How full dates are written. */
35
+ dateFormat?: UserDateFormat | null;
15
36
  password: string | null;
37
+ /**
38
+ * When the password was last set by the user (change or recovery); null
39
+ * for accounts that never changed it since this field exists.
40
+ */
41
+ passwordChangedAt: Date | null;
42
+ /**
43
+ * Authentication key used for JWT secret generation
44
+ */
16
45
  authKey: string;
46
+ /**
47
+ * Is the user email validated?
48
+ */
17
49
  isValidated: boolean;
50
+ /**
51
+ * Token for email validation
52
+ */
18
53
  validationToken: string | null;
54
+ /**
55
+ * Date when the validation token was requested
56
+ */
19
57
  validationRequestedAt: Date | null;
58
+ /**
59
+ * Token for password reset
60
+ */
20
61
  forgotPasswordToken: string | null;
62
+ /**
63
+ * Date when the forgot password token was requested
64
+ */
21
65
  forgotPasswordRequestedAt: Date | null;
66
+ /**
67
+ * Is the user an owner with full access to everything?
68
+ */
22
69
  owner: boolean;
70
+ /**
71
+ * Last time the user was seen using the dashboard with a valid access token.
72
+ * Written at most once per `USER_ACTIVITY_WRITE_INTERVAL_MS`, so it is
73
+ * accurate to that interval; `null` until the first authenticated request.
74
+ */
75
+ lastActiveAt: Date | null;
23
76
  twoFactorMethods: string[];
24
77
  twoFactorSecret: string | null;
25
78
  twoFactorPendingSecret: string | null;
26
79
  twoFactorBackupCodes: string[];
80
+ /** When the current set of backup codes was generated. */
81
+ twoFactorBackupCodesGeneratedAt: Date | null;
82
+ /**
83
+ * When the user confirmed they kept the current backup codes (downloaded,
84
+ * copied or acknowledged); null until then.
85
+ */
86
+ twoFactorBackupCodesSavedAt: Date | null;
27
87
  twoFactorEmailCode: string | null;
28
88
  twoFactorEmailCodeRequestedAt: Date | null;
29
89
  }
@@ -50,11 +50,31 @@ __decorate([
50
50
  (0, interface_database_decorators_1.Field)("string"),
51
51
  __metadata("design:type", String)
52
52
  ], User.prototype, "language", void 0);
53
+ __decorate([
54
+ (0, interface_database_decorators_1.Field)("string"),
55
+ __metadata("design:type", Object)
56
+ ], User.prototype, "timeZone", void 0);
57
+ __decorate([
58
+ (0, interface_database_decorators_1.Field)("number"),
59
+ __metadata("design:type", Object)
60
+ ], User.prototype, "weekStart", void 0);
61
+ __decorate([
62
+ (0, interface_database_decorators_1.Field)("string"),
63
+ __metadata("design:type", Object)
64
+ ], User.prototype, "timeFormat", void 0);
65
+ __decorate([
66
+ (0, interface_database_decorators_1.Field)("string"),
67
+ __metadata("design:type", Object)
68
+ ], User.prototype, "dateFormat", void 0);
53
69
  __decorate([
54
70
  (0, interface_database_decorators_1.Hashed)(),
55
71
  (0, interface_database_decorators_1.Field)("string"),
56
72
  __metadata("design:type", Object)
57
73
  ], User.prototype, "password", void 0);
74
+ __decorate([
75
+ (0, interface_database_decorators_1.Field)("date"),
76
+ __metadata("design:type", Object)
77
+ ], User.prototype, "passwordChangedAt", void 0);
58
78
  __decorate([
59
79
  (0, interface_database_decorators_1.Field)("string"),
60
80
  __metadata("design:type", String)
@@ -86,6 +106,10 @@ __decorate([
86
106
  (0, interface_database_decorators_1.Field)("boolean"),
87
107
  __metadata("design:type", Boolean)
88
108
  ], User.prototype, "owner", void 0);
109
+ __decorate([
110
+ (0, interface_database_decorators_1.Field)("date"),
111
+ __metadata("design:type", Object)
112
+ ], User.prototype, "lastActiveAt", void 0);
89
113
  __decorate([
90
114
  (0, interface_database_decorators_1.Field)(["string"]),
91
115
  __metadata("design:type", Array)
@@ -102,6 +126,14 @@ __decorate([
102
126
  (0, interface_database_decorators_1.Field)(["string"]),
103
127
  __metadata("design:type", Array)
104
128
  ], User.prototype, "twoFactorBackupCodes", void 0);
129
+ __decorate([
130
+ (0, interface_database_decorators_1.Field)("date"),
131
+ __metadata("design:type", Object)
132
+ ], User.prototype, "twoFactorBackupCodesGeneratedAt", void 0);
133
+ __decorate([
134
+ (0, interface_database_decorators_1.Field)("date"),
135
+ __metadata("design:type", Object)
136
+ ], User.prototype, "twoFactorBackupCodesSavedAt", void 0);
105
137
  __decorate([
106
138
  (0, interface_database_decorators_1.Field)("string"),
107
139
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"users.table.js","sourceRoot":"","sources":["../../../../src/auth/db/tables/users.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FASmD;AACnD,kDAAsD;AAGzC,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAGjC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,qCAAK,CAAC,IAAI,CAAC,4CAAY,CAAC;CA0GjD,CAAA;AA1GY,oBAAI;AAGP;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iCACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;uCAAC;AAKhB;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;uCAAC;AAKhB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mCACM;AAGd;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kCACK;AAOb;IADP,IAAA,qCAAK,EAAC,KAAK,CAAC;;oCACsC;AAO3C;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCACS;AAKjB;IAFP,IAAA,sCAAM,GAAE;IACR,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCACgB;AAQxB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qCACQ;AAOhB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,SAAS,CAAC;;yCACY;AAOrB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACuB;AAM/B;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;mDAC6B;AAOnC;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDAC2B;AAMnC;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;uDACiC;AAMvC;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;mCACM;AAGf;IADP,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;8CACiB;AAG3B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACuB;AAG/B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;oDAC8B;AAGtC;IADP,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;kDACqB;AAG/B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;gDAC0B;AAGlC;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;2DACqC;eAzGxC,IAAI;IADhB,IAAA,6CAAa,EAAC,wBAAgB,EAAE,4BAAgB,CAAC;GACrC,IAAI,CA0GhB"}
1
+ {"version":3,"file":"users.table.js","sourceRoot":"","sources":["../../../../src/auth/db/tables/users.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FASmD;AACnD,kDAAsD;AAGzC,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAYjC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,qCAAK,CAAC,IAAI,CAAC,4CAAY,CAAC;CAsJjD,CAAA;AAtJY,oBAAI;AAGP;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iCACI;AAKZ;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,4CAAY,GAAE;IACd,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;uCAAC;AAKhB;IAHP,IAAA,qCAAK,GAAE;IACP,IAAA,0CAAU,GAAE;IACZ,IAAA,qCAAK,EAAC,MAAM,CAAC;8BACK,IAAI;uCAAC;AAKhB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;mCACM;AAGd;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;kCACK;AAOb;IADP,IAAA,qCAAK,EAAC,KAAK,CAAC;;oCACsC;AAO3C;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCACS;AAMjB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCACiB;AAIzB;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;uCACyB;AAIjC;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wCAC2B;AAInC;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;wCAC2B;AAKnC;IAFP,IAAA,sCAAM,GAAE;IACR,IAAA,qCAAK,EAAC,QAAQ,CAAC;;sCACgB;AAOxB;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;+CACyB;AAQ/B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;qCACQ;AAOhB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,SAAS,CAAC;;yCACY;AAOrB;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACuB;AAM/B;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;mDAC6B;AAOnC;IAFP,IAAA,qCAAK,GAAE;IACP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDAC2B;AAMnC;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;uDACiC;AAMvC;IADP,IAAA,qCAAK,EAAC,SAAS,CAAC;;mCACM;AAQf;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;0CACoB;AAG1B;IADP,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;8CACiB;AAG3B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;6CACuB;AAG/B;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;oDAC8B;AAGtC;IADP,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;kDACqB;AAI/B;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;6DACuC;AAO7C;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;yDACmC;AAGzC;IADP,IAAA,qCAAK,EAAC,QAAQ,CAAC;;gDAC0B;AAGlC;IADP,IAAA,qCAAK,EAAC,MAAM,CAAC;;2DACqC;eArJxC,IAAI;IADhB,IAAA,6CAAa,EAAC,wBAAgB,EAAE,4BAAgB,CAAC;GACrC,IAAI,CAsJhB"}
@@ -1,25 +1,34 @@
1
1
  import { type RequestContext } from "@antelopejs/interface-api";
2
2
  import { type SessionModel, type User, type UserExternalIdentity, type UserModel } from "./db";
3
- import { type RequestAuthenticator, type RequestPrincipal } from "./request-authenticators";
3
+ import type { ParsedUserAgent } from "./internal/user-agent";
4
4
  export * from "./request-authenticators";
5
- export type DeviceType = "mobile" | "tablet" | "desktop";
6
- export interface ParsedUserAgent {
7
- browserName: string;
8
- browserVersion: string;
9
- osName: string;
10
- osVersion: string;
11
- deviceType: DeviceType;
12
- }
5
+ /**
6
+ * Sending account e-mails and reading a user agent are DMS behaviour, not
7
+ * contract: the templates, the mailer and the parser are the module's. Declared
8
+ * here because the registration and session flows below need them.
9
+ *
10
+ * @internal
11
+ */
13
12
  export declare const NotifyWelcome: (userId: string, name: string) => Promise<void>;
13
+ /** @internal */
14
14
  export declare const NotifyCollaboratorJoined: (ownerIds: string[], name: string, email: string) => Promise<void>;
15
+ /** @internal */
15
16
  export declare const ParseUserAgent: (userAgent: string) => Promise<ParsedUserAgent>;
16
- export declare function authenticateRequestPrincipal(ctx: RequestContext, authenticators?: readonly RequestAuthenticator[]): Promise<RequestPrincipal>;
17
17
  export interface TenantTokenInput {
18
18
  tenantId: string;
19
19
  id: string;
20
20
  rawToken: string;
21
21
  }
22
+ /**
23
+ * Authenticate the request's bearer token and return the validated `User`.
24
+ * Throws 401 when the token is missing or invalid. Building block for
25
+ * authorization guards layered on top of this interface (see
26
+ * `interfaces/dms/guards`).
27
+ */
22
28
  export declare function authenticateRequestUser(ctx: RequestContext): Promise<User>;
29
+ /**
30
+ * @internal
31
+ */
23
32
  export declare namespace internal {
24
33
  const AuthUserAuthenticator: (data: string | undefined) => Promise<TenantTokenInput>;
25
34
  const IfAuthUserAuthenticator: (data: string | undefined) => Promise<TenantTokenInput | undefined>;
@@ -28,18 +37,58 @@ export declare namespace internal {
28
37
  const IfAuthUserValidator: (data: TenantTokenInput | undefined) => Promise<User | undefined>;
29
38
  const AuthOwnerOnlyValidator: (data: TenantTokenInput) => Promise<boolean | User>;
30
39
  }
40
+ /**
41
+ * Authentication decorator that returns raw user data, ignoring email validation.
42
+ */
31
43
  export declare const AuthRawUser: (validator?: import("@antelopejs/interface-auth").AuthValidator<TenantTokenInput, boolean | User> | undefined) => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>> & import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
44
+ /**
45
+ * Authentication decorator that provides the `User` instance and enforces email validation
46
+ * if required by the configuration.
47
+ */
32
48
  export declare const AuthUser: (validator?: import("@antelopejs/interface-auth").AuthValidator<TenantTokenInput, boolean | User> | undefined) => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>> & import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
49
+ /**
50
+ * Optional authentication decorator that returns User | undefined without throwing 401
51
+ * Use this for routes that work both when authenticated and unauthenticated
52
+ */
33
53
  export declare const IfAuthUser: (validator?: import("@antelopejs/interface-auth").AuthValidator<TenantTokenInput | undefined, User | undefined> | undefined) => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>> & import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
54
+ /**
55
+ * Authentication decorator that requires the authenticated user to be a platform
56
+ * owner (`User.owner === true`). Throws 401 when no token is provided and 403
57
+ * when the user is authenticated but not an owner.
58
+ *
59
+ * Used to gate all module routes (`/module/<id>/...`) per the SaaS security
60
+ * convention: modules are owner-only administration spaces.
61
+ *
62
+ * @returns Authentication decorator
63
+ */
34
64
  export declare const AuthOwnerOnly: () => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>> & import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator;
65
+ /**
66
+ * Generate an access token for a user
67
+ * @param tenantId
68
+ * @param user
69
+ * @param sessionId
70
+ * @returns A valid access token for a duration defined in the configuration (`accessTokenLifetime`)
71
+ */
35
72
  export declare const generateAccessToken: (tenantId: string, user: User, sessionId?: string | undefined) => Promise<{
36
73
  expiresIn: number;
37
74
  token: string;
38
75
  }>;
76
+ /**
77
+ * Generate a refresh token for a user
78
+ * @param tenantId
79
+ * @param user
80
+ * @param sessionId
81
+ * @returns A valid refresh token for a duration defined in the configuration (`refreshTokenLifetime`)
82
+ */
39
83
  export declare const generateRefreshToken: (tenantId: string, user: User, sessionId?: string | undefined) => Promise<{
40
84
  expiresIn: number;
41
85
  token: string;
42
86
  }>;
87
+ /**
88
+ * Validate a refresh token and return the user id and tenantId
89
+ * @param token
90
+ * @returns The user id and tenantId
91
+ */
43
92
  export declare const validateRefreshToken: (token: string) => Promise<{
44
93
  id: string;
45
94
  tenantId: string;
@@ -66,12 +115,24 @@ export declare const validateTenantAssignmentToken: (token: string) => Promise<{
66
115
  export declare const send2FAEmail: (user: User, code: string) => Promise<void>;
67
116
  export declare const sendEmailValidationEmail: (user: User) => Promise<void>;
68
117
  export declare const sendEmailForgotEmail: (user: User) => Promise<void>;
118
+ /**
119
+ * What an invitation email can say about where it leads. Every field is
120
+ * optional: without them the email keeps its generic wording.
121
+ */
69
122
  export interface AdminInviteEmailContext {
123
+ /** The workspace the invitee is joining. */
70
124
  workspaceName?: string;
125
+ /** Who sent the invitation. */
71
126
  inviterName?: string;
127
+ /** The invitee's language (`en`, `fr`, ...); English when unsupported. */
72
128
  language?: string;
73
129
  }
74
130
  export declare const sendAdminInviteEmail: (email: string, token: string, inviteeName?: string | undefined, context?: AdminInviteEmailContext | undefined) => Promise<void>;
131
+ /**
132
+ * Remove sensitive keys from a user
133
+ * @param user
134
+ * @returns Partial user without sensitive keys
135
+ */
75
136
  export declare const sanitizeUser: (user: User) => Promise<Partial<User>>;
76
137
  export interface JwtUserPayload {
77
138
  id: string;
@@ -86,7 +147,50 @@ export interface ExternalIdentityInput {
86
147
  export interface ExternalIdentityLinkResult {
87
148
  wasCreated: boolean;
88
149
  }
150
+ /**
151
+ * Bind an external login identity (GitHub, Google, ...) to a user.
152
+ *
153
+ * Idempotent for the owning user: re-linking the same provider account only
154
+ * refreshes its last login. Binding an account already owned by another user
155
+ * throws 409 — a provider account is a single-user credential. Uniqueness is
156
+ * enforced by the row's deterministic primary key, so two concurrent bindings
157
+ * of the same provider account collide instead of duplicating; the loser
158
+ * re-reads and either refreshes or gets the 409.
159
+ *
160
+ * Scoped to authentication. Provider connections powering product features
161
+ * (repository access, deployments) keep their own storage and must never be
162
+ * derived from these rows.
163
+ *
164
+ * @param userId Owning user
165
+ * @param identity Provider account to bind
166
+ * @returns Whether the binding was created by this call, as opposed to an
167
+ * existing one being refreshed
168
+ */
89
169
  export declare function linkExternalIdentity(userId: string, identity: ExternalIdentityInput): Promise<ExternalIdentityLinkResult>;
170
+ /**
171
+ * List the external login identities bound to a user.
172
+ *
173
+ * @param userId Owning user
174
+ * @returns Bound identities, empty when the user only signs in with a password
175
+ */
90
176
  export declare function getExternalIdentities(userId: string): Promise<UserExternalIdentity[]>;
177
+ /**
178
+ * Run everything that must happen once an account has really joined a tenant:
179
+ * the welcome and collaborator notifications, then the `USER_REGISTERED` hook.
180
+ *
181
+ * Shared by every entry point that registers a user — the DMS password signup,
182
+ * a provider login consuming an invitation, and any module owning its own
183
+ * registration flow (a SaaS transactional signup calls it once provisioning
184
+ * committed) — so automations and notifications never depend on which door the
185
+ * account came through.
186
+ *
187
+ * The hook is observational: registration is already complete when it runs, so
188
+ * a failing subscriber is logged rather than allowed to fail the request and
189
+ * strand the user without a valid retry token.
190
+ *
191
+ * @param userModel Users model
192
+ * @param user The registered account
193
+ * @param tenantId Tenant the account joined
194
+ */
91
195
  export declare function announceRegistration(userModel: UserModel, user: User, tenantId: string): Promise<void>;
92
196
  export declare function createSession(sessionModel: SessionModel, userId: string, userAgent: string, ip: string): Promise<string>;
@@ -15,7 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.sanitizeUser = exports.sendAdminInviteEmail = exports.sendEmailForgotEmail = exports.sendEmailValidationEmail = exports.send2FAEmail = exports.validateTenantAssignmentToken = exports.generateTenantAssignmentToken = exports.validateTwoFactorToken = exports.generateTwoFactorToken = exports.validateRefreshToken = exports.generateRefreshToken = exports.generateAccessToken = exports.AuthOwnerOnly = exports.IfAuthUser = exports.AuthUser = exports.AuthRawUser = exports.internal = exports.ParseUserAgent = exports.NotifyCollaboratorJoined = exports.NotifyWelcome = void 0;
18
- exports.authenticateRequestPrincipal = authenticateRequestPrincipal;
19
18
  exports.authenticateRequestUser = authenticateRequestUser;
20
19
  exports.linkExternalIdentity = linkExternalIdentity;
21
20
  exports.getExternalIdentities = getExternalIdentities;
@@ -27,27 +26,31 @@ const interface_core_1 = require("@antelopejs/interface-core");
27
26
  const logging_1 = require("@antelopejs/interface-core/logging");
28
27
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
29
28
  const hooks_1 = require("../hooks");
30
- const constants_1 = require("../constants");
31
29
  const db_1 = require("./db");
32
- const request_authenticators_1 = require("./request-authenticators");
30
+ const fire_and_forget_1 = require("../utils/fire-and-forget");
33
31
  __exportStar(require("./request-authenticators"), exports);
32
+ /**
33
+ * Sending account e-mails and reading a user agent are DMS behaviour, not
34
+ * contract: the templates, the mailer and the parser are the module's. Declared
35
+ * here because the registration and session flows below need them.
36
+ *
37
+ * @internal
38
+ */
34
39
  exports.NotifyWelcome = (0, interface_core_1.InterfaceFunction)();
40
+ /** @internal */
35
41
  exports.NotifyCollaboratorJoined = (0, interface_core_1.InterfaceFunction)();
42
+ /** @internal */
36
43
  exports.ParseUserAgent = (0, interface_core_1.InterfaceFunction)();
37
44
  const HTTP_UNAUTHORIZED = 401;
38
45
  const HTTP_CONFLICT = 409;
39
46
  const UNAUTHORIZED_MESSAGE = "Unauthorized";
40
47
  const IDENTITY_ALREADY_LINKED_MESSAGE = "error.oauth.identity_already_linked";
41
- async function authenticateRequestPrincipal(ctx, authenticators = []) {
42
- return (0, request_authenticators_1.resolveRequestPrincipal)(ctx, authenticators, async (token) => {
43
- const decoded = await internal.AuthUserAuthenticator(token);
44
- const user = await internal.AuthUserValidator(decoded);
45
- if (!user || typeof user === "boolean") {
46
- throw new interface_api_1.HTTPResult(HTTP_UNAUTHORIZED, UNAUTHORIZED_MESSAGE);
47
- }
48
- return { user, tenantId: decoded.tenantId || constants_1.DEFAULT_TENANT_ID };
49
- });
50
- }
48
+ /**
49
+ * Authenticate the request's bearer token and return the validated `User`.
50
+ * Throws 401 when the token is missing or invalid. Building block for
51
+ * authorization guards layered on top of this interface (see
52
+ * `interfaces/dms/guards`).
53
+ */
51
54
  async function authenticateRequestUser(ctx) {
52
55
  const authHeader = ctx.rawRequest?.headers?.authorization;
53
56
  const token = typeof authHeader === "string" ? authHeader.split(" ")[1] : undefined;
@@ -58,6 +61,9 @@ async function authenticateRequestUser(ctx) {
58
61
  }
59
62
  return validated;
60
63
  }
64
+ /**
65
+ * @internal
66
+ */
61
67
  var internal;
62
68
  (function (internal) {
63
69
  internal.AuthUserAuthenticator = (0, interface_core_1.InterfaceFunction)();
@@ -67,21 +73,42 @@ var internal;
67
73
  internal.IfAuthUserValidator = (0, interface_core_1.InterfaceFunction)();
68
74
  internal.AuthOwnerOnlyValidator = (0, interface_core_1.InterfaceFunction)();
69
75
  })(internal || (exports.internal = internal = {}));
76
+ /**
77
+ * Authentication decorator that returns raw user data, ignoring email validation.
78
+ */
70
79
  exports.AuthRawUser = (0, interface_auth_1.CreateAuthDecorator)({
71
80
  source: (req, _) => req.headers.authorization?.split(" ")[1],
72
81
  authenticator: internal.AuthUserAuthenticator,
73
82
  validator: internal.AuthRawUserValidator,
74
83
  });
84
+ /**
85
+ * Authentication decorator that provides the `User` instance and enforces email validation
86
+ * if required by the configuration.
87
+ */
75
88
  exports.AuthUser = (0, interface_auth_1.CreateAuthDecorator)({
76
89
  source: (req, _) => req.headers.authorization?.split(" ")[1],
77
90
  authenticator: internal.AuthUserAuthenticator,
78
91
  validator: internal.AuthUserValidator,
79
92
  });
93
+ /**
94
+ * Optional authentication decorator that returns User | undefined without throwing 401
95
+ * Use this for routes that work both when authenticated and unauthenticated
96
+ */
80
97
  exports.IfAuthUser = (0, interface_auth_1.CreateAuthDecorator)({
81
98
  source: (req, _) => req.headers.authorization?.split(" ")[1],
82
99
  authenticator: internal.IfAuthUserAuthenticator,
83
100
  validator: internal.IfAuthUserValidator,
84
101
  });
102
+ /**
103
+ * Authentication decorator that requires the authenticated user to be a platform
104
+ * owner (`User.owner === true`). Throws 401 when no token is provided and 403
105
+ * when the user is authenticated but not an owner.
106
+ *
107
+ * Used to gate all module routes (`/module/<id>/...`) per the SaaS security
108
+ * convention: modules are owner-only administration spaces.
109
+ *
110
+ * @returns Authentication decorator
111
+ */
85
112
  const AuthOwnerOnly = () => {
86
113
  const decorator = (0, interface_auth_1.CreateAuthDecorator)({
87
114
  source: (req, _) => req.headers.authorization?.split(" ")[1],
@@ -91,8 +118,27 @@ const AuthOwnerOnly = () => {
91
118
  return decorator();
92
119
  };
93
120
  exports.AuthOwnerOnly = AuthOwnerOnly;
121
+ /**
122
+ * Generate an access token for a user
123
+ * @param tenantId
124
+ * @param user
125
+ * @param sessionId
126
+ * @returns A valid access token for a duration defined in the configuration (`accessTokenLifetime`)
127
+ */
94
128
  exports.generateAccessToken = (0, interface_core_1.InterfaceFunction)();
129
+ /**
130
+ * Generate a refresh token for a user
131
+ * @param tenantId
132
+ * @param user
133
+ * @param sessionId
134
+ * @returns A valid refresh token for a duration defined in the configuration (`refreshTokenLifetime`)
135
+ */
95
136
  exports.generateRefreshToken = (0, interface_core_1.InterfaceFunction)();
137
+ /**
138
+ * Validate a refresh token and return the user id and tenantId
139
+ * @param token
140
+ * @returns The user id and tenantId
141
+ */
96
142
  exports.validateRefreshToken = (0, interface_core_1.InterfaceFunction)();
97
143
  exports.generateTwoFactorToken = (0, interface_core_1.InterfaceFunction)();
98
144
  exports.validateTwoFactorToken = (0, interface_core_1.InterfaceFunction)();
@@ -102,12 +148,36 @@ exports.send2FAEmail = (0, interface_core_1.InterfaceFunction)();
102
148
  exports.sendEmailValidationEmail = (0, interface_core_1.InterfaceFunction)();
103
149
  exports.sendEmailForgotEmail = (0, interface_core_1.InterfaceFunction)();
104
150
  exports.sendAdminInviteEmail = (0, interface_core_1.InterfaceFunction)();
151
+ /**
152
+ * Remove sensitive keys from a user
153
+ * @param user
154
+ * @returns Partial user without sensitive keys
155
+ */
105
156
  exports.sanitizeUser = (0, interface_core_1.InterfaceFunction)();
106
157
  function assertIdentityOwnedBy(identity, userId) {
107
158
  if (identity.userId !== userId) {
108
159
  throw new interface_api_1.HTTPResult(HTTP_CONFLICT, IDENTITY_ALREADY_LINKED_MESSAGE);
109
160
  }
110
161
  }
162
+ /**
163
+ * Bind an external login identity (GitHub, Google, ...) to a user.
164
+ *
165
+ * Idempotent for the owning user: re-linking the same provider account only
166
+ * refreshes its last login. Binding an account already owned by another user
167
+ * throws 409 — a provider account is a single-user credential. Uniqueness is
168
+ * enforced by the row's deterministic primary key, so two concurrent bindings
169
+ * of the same provider account collide instead of duplicating; the loser
170
+ * re-reads and either refreshes or gets the 409.
171
+ *
172
+ * Scoped to authentication. Provider connections powering product features
173
+ * (repository access, deployments) keep their own storage and must never be
174
+ * derived from these rows.
175
+ *
176
+ * @param userId Owning user
177
+ * @param identity Provider account to bind
178
+ * @returns Whether the binding was created by this call, as opposed to an
179
+ * existing one being refreshed
180
+ */
111
181
  async function linkExternalIdentity(userId, identity) {
112
182
  const model = (0, interface_database_decorators_1.GetModel)(db_1.UserExternalIdentityModel);
113
183
  const id = (0, db_1.buildExternalIdentityId)(identity.provider, identity.providerAccountId);
@@ -140,26 +210,50 @@ async function linkExternalIdentity(userId, identity) {
140
210
  return { wasCreated: false };
141
211
  }
142
212
  }
213
+ /**
214
+ * List the external login identities bound to a user.
215
+ *
216
+ * @param userId Owning user
217
+ * @returns Bound identities, empty when the user only signs in with a password
218
+ */
143
219
  function getExternalIdentities(userId) {
144
220
  return (0, interface_database_decorators_1.GetModel)(db_1.UserExternalIdentityModel).getByUserId(userId);
145
221
  }
146
222
  async function notifyAccountCreation(userModel, user) {
147
- void (0, exports.NotifyWelcome)(user._id, user.name);
223
+ (0, fire_and_forget_1.fireAndForget)((0, exports.NotifyWelcome)(user._id, user.name), "welcome notification");
148
224
  try {
149
225
  const owners = await userModel.getOwners();
150
226
  const ownerIds = owners
151
227
  .map((owner) => owner._id)
152
228
  .filter((id) => id !== user._id);
153
229
  if (ownerIds.length > 0) {
154
- void (0, exports.NotifyCollaboratorJoined)(ownerIds, user.name, user.email);
230
+ (0, fire_and_forget_1.fireAndForget)((0, exports.NotifyCollaboratorJoined)(ownerIds, user.name, user.email), "collaborator joined notification");
155
231
  }
156
232
  }
157
233
  catch (error) {
158
234
  logging_1.Logging.Error(`[DMS] Failed to notify owners of new collaborator "${user._id}": ${String(error)}`);
159
235
  }
160
236
  }
237
+ /**
238
+ * Run everything that must happen once an account has really joined a tenant:
239
+ * the welcome and collaborator notifications, then the `USER_REGISTERED` hook.
240
+ *
241
+ * Shared by every entry point that registers a user — the DMS password signup,
242
+ * a provider login consuming an invitation, and any module owning its own
243
+ * registration flow (a SaaS transactional signup calls it once provisioning
244
+ * committed) — so automations and notifications never depend on which door the
245
+ * account came through.
246
+ *
247
+ * The hook is observational: registration is already complete when it runs, so
248
+ * a failing subscriber is logged rather than allowed to fail the request and
249
+ * strand the user without a valid retry token.
250
+ *
251
+ * @param userModel Users model
252
+ * @param user The registered account
253
+ * @param tenantId Tenant the account joined
254
+ */
161
255
  async function announceRegistration(userModel, user, tenantId) {
162
- void notifyAccountCreation(userModel, user);
256
+ (0, fire_and_forget_1.fireAndForget)(notifyAccountCreation(userModel, user), "account creation notification");
163
257
  try {
164
258
  await (0, hooks_1.ExecuteHooks)(hooks_1.Hook.USER_REGISTERED, {
165
259
  tenantId,
@@ -182,7 +276,6 @@ async function createSession(sessionModel, userId, userAgent, ip) {
182
276
  const now = new Date();
183
277
  const ids = await sessionModel.insert({
184
278
  userId,
185
- refreshToken: "",
186
279
  userAgent: userAgent || "",
187
280
  ip: ip || "",
188
281
  browser: browser || "Unknown",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type RequestContext } from "@antelopejs/interface-api";
2
+ import type { RequestAuthenticator, RequestPrincipal } from "../request-authenticators";
3
+ /** @internal Read only a successfully authenticated, unchanged request's tenant. */
4
+ export declare function getAuthenticatedRequestTenantId(ctx: RequestContext): string | undefined;
5
+ /** @internal Revalidate on every call; failures poison tenant resolution for this request. */
6
+ export declare function resolveRequestPrincipal(ctx: RequestContext, authenticators: readonly RequestAuthenticator[], authenticateJwt: (token: string) => Promise<RequestPrincipal>): Promise<RequestPrincipal>;