@antelopejs/interface-dms 0.3.4 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/CHANGELOG.md +43 -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 +54 -17
  500. package/dist/invites.js +49 -34
  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
@@ -13,19 +13,24 @@ exports.memberSettingDataAPI = void 0;
13
13
  const interface_api_1 = require("@antelopejs/interface-api");
14
14
  const interface_data_api_1 = require("@antelopejs/interface-data-api");
15
15
  const metadata_1 = require("@antelopejs/interface-data-api/metadata");
16
- const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
17
16
  const db_1 = require("../db");
18
17
  const tenant_scoped_model_1 = require("../tenant-scoped-model");
19
18
  const db_2 = require("../auth/db");
20
19
  const default_types_1 = require("../base/data-types/default-types");
21
- const status_type_1 = require("../base/data-types/status-type");
22
20
  const searchable_1 = require("../base/searchable");
23
21
  const table_view_1 = require("../base/table-view");
24
22
  const types_1 = require("../base/types");
25
23
  const request_tenant_1 = require("../request-tenant");
26
24
  const tenant_lifecycle_1 = require("../tenant-lifecycle");
27
25
  const roles_1 = require("./roles");
28
- const CONNECTED_THRESHOLD_MS = 5 * 60 * 1000;
26
+ const ROLE_KEY_MAPPING = { label: "name", value: "_id" };
27
+ /** "Active now" lasts this long after the member's last request. */
28
+ const ACTIVE_NOW_MS = 5 * 60 * 1000;
29
+ const SYSTEM_MANAGED_FIELD = {
30
+ edit: types_1.ReadonlyBehaviorType.hidden,
31
+ view: types_1.ReadonlyBehaviorType.disabled,
32
+ new: types_1.ReadonlyBehaviorType.hidden,
33
+ };
29
34
  const admittedMemberCreation = {
30
35
  ...table_view_1.TableViewRoutes.New,
31
36
  async func(...args) {
@@ -34,13 +39,6 @@ const admittedMemberCreation = {
34
39
  },
35
40
  };
36
41
  class memberSettingDataAPI extends (0, interface_data_api_1.DataController)(db_1.TenantMember, { ...table_view_1.TableViewRoutes.All, new: admittedMemberCreation }, (0, interface_api_1.Controller)("/api/tables/members")) {
37
- get connected() {
38
- return ((0, interface_database_decorators_1.GetModel)(db_2.UserModel)
39
- .get(this.table.userId)
40
- .then((u) => !!u &&
41
- new Date(u.updatedAt).getTime() >
42
- Date.now() - CONNECTED_THRESHOLD_MS));
43
- }
44
42
  }
45
43
  exports.memberSettingDataAPI = memberSettingDataAPI;
46
44
  __decorate([
@@ -66,11 +64,27 @@ __decorate([
66
64
  (0, searchable_1.Searchable)(),
67
65
  (0, table_view_1.Exported)(),
68
66
  (0, table_view_1.Column)({
69
- name: "$page.settings.members.column.name",
67
+ name: "$page.settings.members.column.member",
70
68
  type: new default_types_1.DefaultDataTypes.StringType({
71
69
  placeholder: "$page.settings.members.placeholder.name",
72
70
  }),
73
71
  filterable: true,
72
+ size: 260,
73
+ // Avatar, name, a "You" tag, the unverified-email badge and the address.
74
+ display: new table_view_1.DefaultDisplays.IdentityDisplay({
75
+ avatarField: "avatar",
76
+ subtitleField: "email",
77
+ selfField: "userId",
78
+ selfLabel: "$page.settings.members.you",
79
+ badges: [
80
+ {
81
+ field: "isValidated",
82
+ equals: false,
83
+ label: "$page.settings.members.email_not_verified",
84
+ tone: "warning",
85
+ },
86
+ ],
87
+ }),
74
88
  }),
75
89
  (0, metadata_1.Sortable)({ noIndex: true }),
76
90
  (0, metadata_1.Joined)({ table: db_2.User, localKey: "userId", remoteField: "name" }),
@@ -78,6 +92,7 @@ __decorate([
78
92
  ], memberSettingDataAPI.prototype, "name", void 0);
79
93
  __decorate([
80
94
  (0, table_view_1.Select)(["userId"]),
95
+ (0, metadata_1.Listable)(["userId"]),
81
96
  (0, metadata_1.Joined)({ table: db_2.User, localKey: "userId", remoteField: "avatar" }),
82
97
  __metadata("design:type", Object)
83
98
  ], memberSettingDataAPI.prototype, "avatar", void 0);
@@ -92,6 +107,8 @@ __decorate([
92
107
  placeholder: "$page.settings.members.placeholder.email",
93
108
  }),
94
109
  filterable: true,
110
+ // Drawn under the name, in the member cell.
111
+ isVisible: false,
95
112
  }),
96
113
  (0, metadata_1.Sortable)({ noIndex: true }),
97
114
  (0, metadata_1.Joined)({ table: db_2.User, localKey: "userId", remoteField: "email" }),
@@ -105,12 +122,20 @@ __decorate([
105
122
  multiple: true,
106
123
  placeholder: "$page.settings.members.placeholder.roles",
107
124
  dataApiController: roles_1.roleSettingDataAPI,
108
- keyMapping: {
109
- label: "name",
110
- value: "_id",
111
- },
125
+ keyMapping: ROLE_KEY_MAPPING,
112
126
  }),
113
127
  description: "$page.settings.members.description.roles",
128
+ filterable: true,
129
+ size: 140,
130
+ // An owner holds every permission: one crown pill replaces the roles.
131
+ display: new table_view_1.DefaultDisplays.PillsDisplay({
132
+ exclusive: {
133
+ field: "isTenantOwner",
134
+ label: "$page.settings.members.owner",
135
+ icon: "i-ph-crown",
136
+ },
137
+ emptyLabel: "$page.settings.members.no_role",
138
+ }),
114
139
  }),
115
140
  (0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
116
141
  __metadata("design:type", Array)
@@ -122,10 +147,56 @@ __decorate([
122
147
  name: "$page.settings.members.column.tenant_owner",
123
148
  type: new default_types_1.DefaultDataTypes.BooleanType(),
124
149
  description: "$page.settings.members.description.tenant_owner",
150
+ // Drawn as the crown pill of the roles cell.
151
+ isVisible: false,
125
152
  }),
126
153
  (0, metadata_1.Access)(metadata_1.AccessMode.ReadWrite),
127
154
  __metadata("design:type", Boolean)
128
155
  ], memberSettingDataAPI.prototype, "isTenantOwner", void 0);
156
+ __decorate([
157
+ (0, metadata_1.Listable)(["userId"]),
158
+ (0, table_view_1.Exported)(),
159
+ (0, table_view_1.Column)({
160
+ name: "$page.settings.members.column.last_active",
161
+ type: new default_types_1.DefaultDataTypes.DateType(),
162
+ description: "$page.settings.members.description.last_active",
163
+ readonlyBehavior: SYSTEM_MANAGED_FIELD,
164
+ size: 130,
165
+ display: new table_view_1.DefaultDisplays.RelativeDateDisplay({
166
+ nowWithinMs: ACTIVE_NOW_MS,
167
+ nowLabel: "$page.settings.members.active_now",
168
+ emptyLabel: "$page.settings.members.never_signed_in",
169
+ emptyTone: "warning",
170
+ }),
171
+ }),
172
+ (0, metadata_1.Sortable)({ noIndex: true }),
173
+ (0, metadata_1.Joined)({ table: db_2.User, localKey: "userId", remoteField: "lastActiveAt" }),
174
+ __metadata("design:type", Object)
175
+ ], memberSettingDataAPI.prototype, "lastActiveAt", void 0);
176
+ __decorate([
177
+ (0, metadata_1.Listable)(["userId"]),
178
+ (0, table_view_1.Column)({
179
+ name: "$page.settings.members.column.two_factor",
180
+ type: new default_types_1.DefaultDataTypes.SelectType({
181
+ multiple: true,
182
+ items: [
183
+ { value: "totp", label: "$page.settings.members.two_factor.totp" },
184
+ { value: "email", label: "$page.settings.members.two_factor.email" },
185
+ ],
186
+ }),
187
+ readonlyBehavior: SYSTEM_MANAGED_FIELD,
188
+ size: 100,
189
+ display: new table_view_1.DefaultDisplays.IndicatorDisplay({
190
+ onLabel: "$page.settings.members.two_factor_on",
191
+ offLabel: "$page.settings.members.two_factor_off",
192
+ onIcon: "i-ph-shield-check",
193
+ offIcon: "i-ph-shield",
194
+ }),
195
+ }),
196
+ (0, metadata_1.Access)(metadata_1.AccessMode.ReadOnly),
197
+ (0, metadata_1.Joined)({ table: db_2.User, localKey: "userId", remoteField: "twoFactorMethods" }),
198
+ __metadata("design:type", Object)
199
+ ], memberSettingDataAPI.prototype, "twoFactorMethods", void 0);
129
200
  __decorate([
130
201
  (0, metadata_1.Listable)(),
131
202
  (0, table_view_1.Exported)(),
@@ -133,6 +204,7 @@ __decorate([
133
204
  name: "$page.settings.members.column.joined_at",
134
205
  type: new default_types_1.DefaultDataTypes.DateType(),
135
206
  description: "$page.settings.members.description.joined_at",
207
+ size: 130,
136
208
  readonlyBehavior: {
137
209
  edit: types_1.ReadonlyBehaviorType.disabled,
138
210
  view: types_1.ReadonlyBehaviorType.disabled,
@@ -149,15 +221,4 @@ __decorate([
149
221
  (0, metadata_1.Joined)({ table: db_2.User, localKey: "userId", remoteField: "isValidated" }),
150
222
  __metadata("design:type", Boolean)
151
223
  ], memberSettingDataAPI.prototype, "isValidated", void 0);
152
- __decorate([
153
- (0, metadata_1.Listable)(["userId"]),
154
- (0, table_view_1.Column)({
155
- name: "$page.settings.members.column.connected",
156
- type: new status_type_1.StatusType(),
157
- description: "$page.settings.members.description.connected",
158
- }),
159
- (0, metadata_1.Access)(metadata_1.AccessMode.ReadOnly),
160
- __metadata("design:type", Object),
161
- __metadata("design:paramtypes", [])
162
- ], memberSettingDataAPI.prototype, "connected", null);
163
224
  //# sourceMappingURL=members.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/data-controllers/members.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/data-controllers/members.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ declare const roleSettingDataAPI_base: import("@antelopejs/interface-core/decora
5
5
  readonly select: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
6
6
  readonly count: import("@antelopejs/interface-data-api").DataControllerCallback;
7
7
  readonly countBatch: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
8
+ readonly summary: import("@antelopejs/interface-data-api").DataControllerCallbackWithOptions<any>;
8
9
  readonly new: import("@antelopejs/interface-data-api").DataControllerCallback;
9
10
  readonly edit: import("@antelopejs/interface-data-api").DataControllerCallback;
10
11
  readonly delete: import("@antelopejs/interface-data-api").DataControllerCallback;
@@ -16,6 +16,7 @@ const metadata_1 = require("@antelopejs/interface-data-api/metadata");
16
16
  const db_1 = require("../db");
17
17
  const tenant_scoped_model_1 = require("../tenant-scoped-model");
18
18
  const default_types_1 = require("../base/data-types/default-types");
19
+ const field_types_1 = require("../base/data-types/field-types");
19
20
  const searchable_1 = require("../base/searchable");
20
21
  const table_view_1 = require("../base/table-view");
21
22
  const types_1 = require("../base/types");
@@ -55,9 +56,8 @@ __decorate([
55
56
  (0, metadata_1.Listable)(),
56
57
  (0, table_view_1.Column)({
57
58
  name: "$page.settings.roles.column.permissions",
58
- type: new default_types_1.DefaultDataTypes.PermissionsType({
59
- fetchUrl: "/settings/user/roles/permissions-tree",
60
- }),
59
+ // Edited in the roles editor only, which sends the granted ids.
60
+ type: new field_types_1.TagsType(),
61
61
  description: "$page.settings.roles.description.permissions",
62
62
  defaultValue: [],
63
63
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/data-controllers/roles.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAuD;AACvD,uEAAgE;AAChE,sEAOiD;AACjD,8BAAwC;AACxC,gEAA2D;AAC3D,oEAAoE;AACpE,mDAAgD;AAChD,mDAA+E;AAC/E,yCAAqD;AAErD,MAAa,kBAAmB,SAAQ,IAAA,mCAAc,EACpD,SAAI,EACJ,4BAAe,CAAC,GAAG,EACnB,IAAA,0BAAU,EAAC,mBAAmB,CAAC,CAChC;CAkEA;AAtED,gDAsEC;AA/DS;IAFP,IAAA,yBAAc,GAAE;IAChB,IAAA,uCAAiB,EAAC,cAAS,CAAC;8BACd,cAAS;iDAAC;AAMjB;IAJP,IAAA,mBAAM,GAAE;IACR,IAAA,mBAAQ,GAAE;IACV,IAAA,qBAAQ,GAAE;IACV,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;;+CACR;AAgBZ;IAdP,IAAA,mBAAM,GAAE;IACR,IAAA,mBAAQ,GAAE;IACV,IAAA,uBAAU,GAAE;IACZ,IAAA,qBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,CAAC;YACpC,WAAW,EAAE,uCAAuC;SACrD,CAAC;QACF,UAAU,EAAE,IAAI;KACjB,CAAC;IACD,IAAA,oBAAS,EAAC,KAAK,EAAE,MAAM,CAAC;IACxB,IAAA,mBAAQ,GAAE;IACV,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;gDACR;AAYb;IAVP,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,yCAAyC;QAC/C,IAAI,EAAE,IAAI,gCAAgB,CAAC,eAAe,CAAC;YACzC,QAAQ,EAAE,uCAAuC;SAClD,CAAC;QACF,WAAW,EAAE,8CAA8C;QAC3D,YAAY,EAAE,EAAE;KACjB,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;uDACC;AActB;IAZP,IAAA,qBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,6CAA6C;QAC1D,gBAAgB,EAAE;YAChB,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,GAAG,EAAE,4BAAoB,CAAC,MAAM;SACjC;KACF,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;8BACT,IAAI;qDAAC;AAchB;IAZP,IAAA,qBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,6CAA6C;QAC1D,gBAAgB,EAAE;YAChB,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,GAAG,EAAE,4BAAoB,CAAC,MAAM;SACjC;KACF,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;8BACT,IAAI;qDAAC"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/data-controllers/roles.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAuD;AACvD,uEAAgE;AAChE,sEAOiD;AACjD,8BAAwC;AACxC,gEAA2D;AAC3D,oEAAoE;AACpE,gEAA0D;AAC1D,mDAAgD;AAChD,mDAA+E;AAC/E,yCAAqD;AAErD,MAAa,kBAAmB,SAAQ,IAAA,mCAAc,EACpD,SAAI,EACJ,4BAAe,CAAC,GAAG,EACnB,IAAA,0BAAU,EAAC,mBAAmB,CAAC,CAChC;CAiEA;AArED,gDAqEC;AA9DS;IAFP,IAAA,yBAAc,GAAE;IAChB,IAAA,uCAAiB,EAAC,cAAS,CAAC;8BACd,cAAS;iDAAC;AAMjB;IAJP,IAAA,mBAAM,GAAE;IACR,IAAA,mBAAQ,GAAE;IACV,IAAA,qBAAQ,GAAE;IACV,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;;+CACR;AAgBZ;IAdP,IAAA,mBAAM,GAAE;IACR,IAAA,mBAAQ,GAAE;IACV,IAAA,uBAAU,GAAE;IACZ,IAAA,qBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,IAAI,gCAAgB,CAAC,UAAU,CAAC;YACpC,WAAW,EAAE,uCAAuC;SACrD,CAAC;QACF,UAAU,EAAE,IAAI;KACjB,CAAC;IACD,IAAA,oBAAS,EAAC,KAAK,EAAE,MAAM,CAAC;IACxB,IAAA,mBAAQ,GAAE;IACV,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;gDACR;AAWb;IATP,IAAA,mBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,yCAAyC;QAC/C,gEAAgE;QAChE,IAAI,EAAE,IAAI,sBAAQ,EAAE;QACpB,WAAW,EAAE,8CAA8C;QAC3D,YAAY,EAAE,EAAE;KACjB,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,SAAS,CAAC;;uDACC;AActB;IAZP,IAAA,qBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,6CAA6C;QAC1D,gBAAgB,EAAE;YAChB,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,GAAG,EAAE,4BAAoB,CAAC,MAAM;SACjC;KACF,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;8BACT,IAAI;qDAAC;AAchB;IAZP,IAAA,qBAAQ,GAAE;IACV,IAAA,mBAAM,EAAC;QACN,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,IAAI,gCAAgB,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,6CAA6C;QAC1D,gBAAgB,EAAE;YAChB,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,IAAI,EAAE,4BAAoB,CAAC,QAAQ;YACnC,GAAG,EAAE,4BAAoB,CAAC,MAAM;SACjC;KACF,CAAC;IACD,IAAA,iBAAM,EAAC,qBAAU,CAAC,QAAQ,CAAC;8BACT,IAAI;qDAAC"}
@@ -29,11 +29,13 @@ declare const ExportJobModel_base: {
29
29
  toDatabase(obj: any): Record<string, any>;
30
30
  validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
31
31
  };
32
+ /** @internal */
32
33
  export declare class ExportJobModel extends ExportJobModel_base {
33
34
  createNewJob(input: NewExportJobInput): Promise<void>;
34
35
  listForUser(userId: string, scope: string | undefined, limit: number): Promise<ExportJob[]>;
35
36
  updateProgress(jobId: string, progress: number): Promise<void>;
36
37
  markAsCompleted(jobId: string, resultPath: string, result?: unknown): Promise<void>;
38
+ /** Retains an uploaded object for cleanup when export completion fails. */
37
39
  markAsFailed(jobId: string, error: unknown, resultPath?: string): Promise<void>;
38
40
  }
39
41
  export {};
@@ -4,11 +4,13 @@ exports.ExportJobModel = void 0;
4
4
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
5
5
  const types_1 = require("../../base/types");
6
6
  const exportJobs_table_1 = require("../tables/exportJobs.table");
7
+ const table_names_1 = require("./table-names");
7
8
  const COMPLETED_PROGRESS = 100;
8
9
  const CREATED_AT_INDEX = "createdAt";
9
10
  const USER_ID_INDEX = "userId";
10
11
  const FIRST_RECORD_OFFSET = 0;
11
- class ExportJobModel extends (0, interface_database_decorators_1.BasicDataModel)(exportJobs_table_1.ExportJob, exportJobs_table_1.exportJobsTableName) {
12
+ /** @internal */
13
+ class ExportJobModel extends (0, interface_database_decorators_1.BasicDataModel)(exportJobs_table_1.ExportJob, table_names_1.exportJobsTableName) {
12
14
  async createNewJob(input) {
13
15
  const now = new Date();
14
16
  await this.insert({
@@ -56,6 +58,7 @@ class ExportJobModel extends (0, interface_database_decorators_1.BasicDataModel)
56
58
  updatedAt: new Date(),
57
59
  });
58
60
  }
61
+ /** Retains an uploaded object for cleanup when export completion fails. */
59
62
  async markAsFailed(jobId, error, resultPath) {
60
63
  const patch = {
61
64
  status: types_1.ExportStatus.failed,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportJobs.model.js","sourceRoot":"","sources":["../../../src/db/internal/exportJobs.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,4CAAgD;AAChD,iEAAuD;AACvD,+CAAoD;AAepD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC/B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,gBAAgB;AAChB,MAAa,cAAe,SAAQ,IAAA,8CAAc,EAChD,4BAAS,EACT,iCAAmB,CACpB;IACC,KAAK,CAAC,YAAY,CAAC,KAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;YACnD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,MAAM,EAAE,oBAAY,CAAC,OAAO;YAC5B,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,KAAyB,EACzB,KAAa;QAEb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,MAAM,GACV,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,MAAM;aACzB,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC;aACjC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC;aACjC,GAAG,EAAE,CAAC;QACT,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACpD,MAAM,CAAC,CAAC,MAAM,EAAuB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,QAAgB;QAClD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACvB,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,UAAkB,EAClB,MAAgB;QAEhB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACvB,MAAM,EAAE,oBAAY,CAAC,SAAS;YAC9B,QAAQ,EAAE,kBAAkB;YAC5B,UAAU;YACV,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,KAAc,EACd,UAAmB;QAEnB,MAAM,KAAK,GAAuB;YAChC,MAAM,EAAE,oBAAY,CAAC,MAAM;YAC3B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACrE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QACF,IAAI,UAAU,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;CACF;AA9ED,wCA8EC"}
@@ -0,0 +1,34 @@
1
+ import { type InviteMembershipPhase, InviteResolution } from "../tables/inviteResolutions.table";
2
+ import type { InviteDecision } from "../models/inviteResolutions.model";
3
+ declare const InviteResolutionsModel_base: {
4
+ new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
5
+ readonly table: import("@antelopejs/interface-database").Table<InviteResolution>;
6
+ readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
7
+ get(id: string): PromiseLike<InviteResolution | undefined>;
8
+ getBy(index: keyof InviteResolution, ...keys: any[]): PromiseLike<InviteResolution[]>;
9
+ getAll(): PromiseLike<InviteResolution[]>;
10
+ insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution> | import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
11
+ update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
12
+ update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
13
+ delete(id: string): Promise<number>;
14
+ };
15
+ readonly schemaName: string;
16
+ fromPlainData(obj: any): InviteResolution;
17
+ fromDatabase(obj: any): InviteResolution | undefined;
18
+ toDatabase(obj: any): Record<string, any>;
19
+ validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
20
+ };
21
+ /**
22
+ * Arbitrates terminal invite outcomes using an insert-only primary key, never a lease.
23
+ *
24
+ * @internal
25
+ */
26
+ export declare class InviteResolutionsModel extends InviteResolutionsModel_base {
27
+ /** Finds a retained decision after the original invite has been retired. */
28
+ getForInvite(tenantId: string, inviteId: string): Promise<InviteResolution | undefined>;
29
+ /** Reads the canonical decision even after a lost insert acknowledgement. */
30
+ decide(input: InviteDecision): Promise<InviteResolution>;
31
+ /** Advances a membership stage only against the exact observed revision. */
32
+ advanceMembership(resolution: InviteResolution, membershipPhase: InviteMembershipPhase, field?: "membershipPhase" | "replacementPhase"): Promise<boolean>;
33
+ }
34
+ export {};
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InviteResolutionsModel = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
6
+ const inviteResolutions_table_1 = require("../tables/inviteResolutions.table");
7
+ const table_names_1 = require("./table-names");
8
+ function decisionId(tenantId, inviteId) {
9
+ return (0, node_crypto_1.createHash)("sha256")
10
+ .update(JSON.stringify([tenantId, inviteId]))
11
+ .digest("hex");
12
+ }
13
+ /**
14
+ * Arbitrates terminal invite outcomes using an insert-only primary key, never a lease.
15
+ *
16
+ * @internal
17
+ */
18
+ class InviteResolutionsModel extends (0, interface_database_decorators_1.BasicDataModel)(inviteResolutions_table_1.InviteResolution, table_names_1.inviteResolutionsTableName) {
19
+ /** Finds a retained decision after the original invite has been retired. */
20
+ async getForInvite(tenantId, inviteId) {
21
+ return this.get(decisionId(tenantId, inviteId));
22
+ }
23
+ /** Reads the canonical decision even after a lost insert acknowledgement. */
24
+ async decide(input) {
25
+ const { tenantId, invite, reason, userId, replacement, extensionKeys } = input;
26
+ const id = decisionId(tenantId, invite._id);
27
+ let insertError;
28
+ try {
29
+ await this.insert({
30
+ tenantId,
31
+ invite,
32
+ reason,
33
+ extensionKeys,
34
+ _id: id,
35
+ userId: userId ?? null,
36
+ replacement: replacement
37
+ ? Object.assign({}, replacement, { creationResolutionId: id })
38
+ : null,
39
+ revision: (0, node_crypto_1.randomUUID)(),
40
+ membershipPhase: "pending",
41
+ replacementPhase: "pending",
42
+ completed: false,
43
+ decidedAt: new Date(),
44
+ });
45
+ }
46
+ catch (error) {
47
+ insertError = error;
48
+ }
49
+ const resolution = await this.get(id);
50
+ if (!resolution ||
51
+ resolution.tenantId !== tenantId ||
52
+ resolution.invite.token !== invite.token) {
53
+ throw insertError ?? new Error("Invite decision was not persisted");
54
+ }
55
+ return resolution;
56
+ }
57
+ /** Advances a membership stage only against the exact observed revision. */
58
+ async advanceMembership(resolution, membershipPhase, field = "membershipPhase") {
59
+ const nextRevision = (0, node_crypto_1.randomUUID)();
60
+ const outcome = await this.table
61
+ .atomicMutation(resolution._id, {
62
+ type: "update",
63
+ revisionField: "revision",
64
+ expectedRevision: resolution.revision,
65
+ nextRevision,
66
+ patch: { [field]: membershipPhase },
67
+ })
68
+ .run();
69
+ if (outcome === "applied")
70
+ return true;
71
+ if (outcome === "not-applied")
72
+ return false;
73
+ const current = await this.get(resolution._id);
74
+ if (current?.revision === nextRevision)
75
+ return true;
76
+ throw new Error("Invite membership transition acknowledgement is indeterminate");
77
+ }
78
+ }
79
+ exports.InviteResolutionsModel = InviteResolutionsModel;
80
+ //# sourceMappingURL=inviteResolutions.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inviteResolutions.model.js","sourceRoot":"","sources":["../../../src/db/internal/inviteResolutions.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** @internal */
2
+ export declare const exportJobsTableName = "export_jobs";
3
+ /** @internal */
4
+ export declare const inviteResolutionsTableName = "invite_resolutions";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inviteResolutionsTableName = exports.exportJobsTableName = void 0;
4
+ /** @internal */
5
+ exports.exportJobsTableName = "export_jobs";
6
+ /** @internal */
7
+ exports.inviteResolutionsTableName = "invite_resolutions";
8
+ //# sourceMappingURL=table-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-names.js","sourceRoot":"","sources":["../../../src/db/internal/table-names.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACH,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAEjD,gBAAgB;AACH,QAAA,0BAA0B,GAAG,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { TenantLifecycle } from "../tables/tenantLifecycle.table";
1
+ import { TenantLifecycle } from "./tenantLifecycle.table";
2
2
  declare const TenantLifecycleModel_base: {
3
3
  new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
4
4
  readonly table: import("@antelopejs/interface-database").Table<TenantLifecycle>;
@@ -17,11 +17,20 @@ declare const TenantLifecycleModel_base: {
17
17
  toDatabase(obj: any): Record<string, any>;
18
18
  validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
19
19
  };
20
+ /**
21
+ * Admissions never expire; deletion cannot overtake a suspended producer.
22
+ *
23
+ * @internal
24
+ */
20
25
  export declare class TenantLifecycleModel extends TenantLifecycleModel_base {
26
+ /** Initializes once; an existing closed row is never replaced or reopened. */
21
27
  state(tenantId: string): Promise<TenantLifecycle>;
22
28
  private transition;
29
+ /** Only a confirmed admission permits effects; unknown outcomes fail closed. */
23
30
  admit(tenantId: string, attemptId: string): Promise<void>;
31
+ /** Called only by the invocation that has finished every awaited producer effect. */
24
32
  finish(tenantId: string, attemptId: string): Promise<void>;
33
+ /** Closes permanently before testing quiescence; active or uncertain work blocks deletion. */
25
34
  close(tenantId: string): Promise<void>;
26
35
  }
27
36
  export {};
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TenantLifecycleModel = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
6
- const tenantLifecycle_table_1 = require("../tables/tenantLifecycle.table");
6
+ const tenantLifecycle_table_1 = require("./tenantLifecycle.table");
7
7
  const LIFECYCLE_ID = "membership-and-invites";
8
+ /**
9
+ * Admissions never expire; deletion cannot overtake a suspended producer.
10
+ *
11
+ * @internal
12
+ */
8
13
  class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicDataModel)(tenantLifecycle_table_1.TenantLifecycle, tenantLifecycle_table_1.tenantLifecycleTableName) {
14
+ /** Initializes once; an existing closed row is never replaced or reopened. */
9
15
  async state(tenantId) {
10
16
  const id = `${LIFECYCLE_ID}:${tenantId}`;
11
17
  const existing = (await this.get(id)) ?? (await this.get(LIFECYCLE_ID));
@@ -42,6 +48,7 @@ class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicData
42
48
  throw new Error("Tenant lifecycle transition indeterminate");
43
49
  return outcome === "applied";
44
50
  }
51
+ /** Only a confirmed admission permits effects; unknown outcomes fail closed. */
45
52
  async admit(tenantId, attemptId) {
46
53
  while (true) {
47
54
  const state = await this.state(tenantId);
@@ -53,6 +60,7 @@ class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicData
53
60
  return;
54
61
  }
55
62
  }
63
+ /** Called only by the invocation that has finished every awaited producer effect. */
56
64
  async finish(tenantId, attemptId) {
57
65
  while (true) {
58
66
  const state = await this.state(tenantId);
@@ -63,6 +71,7 @@ class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicData
63
71
  return;
64
72
  }
65
73
  }
74
+ /** Closes permanently before testing quiescence; active or uncertain work blocks deletion. */
66
75
  async close(tenantId) {
67
76
  while (true) {
68
77
  const state = await this.state(tenantId);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenantLifecycle.model.js","sourceRoot":"","sources":["../../../src/db/internal/tenantLifecycle.model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { Table } from "@antelopejs/interface-database-decorators";
2
+ /** @internal */
2
3
  export declare const tenantLifecycleTableName = "tenant_lifecycle";
4
+ /**
5
+ * Permanent closure and active invocations share one atomic tenant-local revision.
6
+ *
7
+ * @internal
8
+ */
3
9
  export declare class TenantLifecycle extends Table {
4
10
  _id: string;
5
11
  revision: string;
@@ -12,7 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TenantLifecycle = exports.tenantLifecycleTableName = void 0;
13
13
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
14
14
  const constants_1 = require("../../constants");
15
+ /** @internal */
15
16
  exports.tenantLifecycleTableName = "tenant_lifecycle";
17
+ /**
18
+ * Permanent closure and active invocations share one atomic tenant-local revision.
19
+ *
20
+ * @internal
21
+ */
16
22
  let TenantLifecycle = class TenantLifecycle extends interface_database_decorators_1.Table {
17
23
  };
18
24
  exports.TenantLifecycle = TenantLifecycle;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenantLifecycle.table.js","sourceRoot":"","sources":["../../../src/db/internal/tenantLifecycle.table.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6FAImD;AACnD,+CAAqD;AAErD,gBAAgB;AACH,QAAA,wBAAwB,GAAG,kBAAkB,CAAC;AAE3D;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qCAAK;CAKzC,CAAA;AALY,0CAAe;AACD;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;4CAAqB;AACZ;IAAxB,IAAA,qCAAK,EAAC,QAAQ,CAAC;;iDAA0B;AAChB;IAAzB,IAAA,qCAAK,EAAC,SAAS,CAAC;;+CAAyB;AACf;IAA1B,IAAA,qCAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;;yDAAoC;0BAJ3C,eAAe;IAD3B,IAAA,6CAAa,EAAC,gCAAwB,EAAE,8BAAkB,CAAC;GAC/C,eAAe,CAK3B"}
@@ -1,7 +1,5 @@
1
- export * from "./exportJobs.model";
2
1
  export * from "./inviteResolutions.model";
3
2
  export * from "./roles.model";
4
- export * from "./tenantLifecycle.model";
5
3
  export * from "./tenantMembers.model";
6
4
  export * from "./tenants.model";
7
5
  export * from "./user_invites.model";
@@ -14,10 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./exportJobs.model"), exports);
18
17
  __exportStar(require("./inviteResolutions.model"), exports);
19
18
  __exportStar(require("./roles.model"), exports);
20
- __exportStar(require("./tenantLifecycle.model"), exports);
21
19
  __exportStar(require("./tenantMembers.model"), exports);
22
20
  __exportStar(require("./tenants.model"), exports);
23
21
  __exportStar(require("./user_invites.model"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,4DAA0C;AAC1C,gDAA8B;AAC9B,0DAAwC;AACxC,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,gDAA8B;AAC9B,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC"}
@@ -1,5 +1,5 @@
1
1
  import type { UserInvite } from "../tables/user_invites.table";
2
- import { type InviteMembershipPhase, InviteResolution, type InviteResolutionReason } from "../tables/inviteResolutions.table";
2
+ import type { InviteResolutionReason } from "../tables/inviteResolutions.table";
3
3
  export interface InviteDecision {
4
4
  tenantId: string;
5
5
  invite: UserInvite;
@@ -8,27 +8,3 @@ export interface InviteDecision {
8
8
  replacement?: UserInvite;
9
9
  extensionKeys: string[];
10
10
  }
11
- declare const InviteResolutionsModel_base: {
12
- new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
13
- readonly table: import("@antelopejs/interface-database").Table<InviteResolution>;
14
- readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
15
- get(id: string): PromiseLike<InviteResolution | undefined>;
16
- getBy(index: keyof InviteResolution, ...keys: any[]): PromiseLike<InviteResolution[]>;
17
- getAll(): PromiseLike<InviteResolution[]>;
18
- insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution> | import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
19
- update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
20
- update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<InviteResolution>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
21
- delete(id: string): Promise<number>;
22
- };
23
- readonly schemaName: string;
24
- fromPlainData(obj: any): InviteResolution;
25
- fromDatabase(obj: any): InviteResolution | undefined;
26
- toDatabase(obj: any): Record<string, any>;
27
- validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
28
- };
29
- export declare class InviteResolutionsModel extends InviteResolutionsModel_base {
30
- getForInvite(tenantId: string, inviteId: string): Promise<InviteResolution | undefined>;
31
- decide(input: InviteDecision): Promise<InviteResolution>;
32
- advanceMembership(resolution: InviteResolution, membershipPhase: InviteMembershipPhase, field?: "membershipPhase" | "replacementPhase"): Promise<boolean>;
33
- }
34
- export {};