@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
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=uploads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/internal/uploads.ts"],"names":[],"mappings":""}
@@ -1,5 +1,30 @@
1
- import type { CustomButtonAvailability, CustomButtonUnavailability } from "../base/types/custom-button";
2
- import type { ComponentFilterContext } from "../component";
1
+ import type { CustomButtonAvailability } from "../base/types/custom-button";
2
+ /**
3
+ * Decides, per request, whether members can be invited into the tenant right
4
+ * now. Returning `undefined` leaves the invite action available.
5
+ */
3
6
  export type InviteAvailabilityResolver = CustomButtonAvailability;
7
+ /**
8
+ * Mark the invite action unavailable, with a reason, for as long as a
9
+ * condition of the module holds — a plan whose seats are all taken, say. The
10
+ * DMS disables its invite button and shows the reason next to it.
11
+ *
12
+ * The resolver runs while the members page layout is built, once per request.
13
+ * It only shapes the UI: a module that must refuse the invitation itself does
14
+ * so from `Hook.INVITE_BEING_CREATED` and `Hook.MEMBER_BEING_ADDED`.
15
+ *
16
+ * The registration is bound to the registering module and lifted when it
17
+ * stops.
18
+ *
19
+ * ```ts
20
+ * RegisterInviteAvailability(async ({ tenantId }) =>
21
+ * (await hasFreeSeat(tenantId))
22
+ * ? undefined
23
+ * : { reason: "$saas.plan.seat_limit_reached" },
24
+ * );
25
+ * ```
26
+ *
27
+ * @returns Removes this resolver, for a module that drops it while staying
28
+ * loaded.
29
+ */
4
30
  export declare function RegisterInviteAvailability(resolver: InviteAvailabilityResolver): () => void;
5
- export declare function ResolveInviteAvailability(context: ComponentFilterContext): Promise<CustomButtonUnavailability | undefined>;
@@ -1,29 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RegisterInviteAvailability = RegisterInviteAvailability;
4
- exports.ResolveInviteAvailability = ResolveInviteAvailability;
5
- const logging_1 = require("@antelopejs/interface-core/logging");
6
- const owned_registry_1 = require("../utils/owned-registry");
7
- const inviteAvailabilityResolvers = new owned_registry_1.OwnedRegistry();
4
+ const availability_1 = require("./internal/availability");
5
+ /**
6
+ * Mark the invite action unavailable, with a reason, for as long as a
7
+ * condition of the module holds — a plan whose seats are all taken, say. The
8
+ * DMS disables its invite button and shows the reason next to it.
9
+ *
10
+ * The resolver runs while the members page layout is built, once per request.
11
+ * It only shapes the UI: a module that must refuse the invitation itself does
12
+ * so from `Hook.INVITE_BEING_CREATED` and `Hook.MEMBER_BEING_ADDED`.
13
+ *
14
+ * The registration is bound to the registering module and lifted when it
15
+ * stops.
16
+ *
17
+ * ```ts
18
+ * RegisterInviteAvailability(async ({ tenantId }) =>
19
+ * (await hasFreeSeat(tenantId))
20
+ * ? undefined
21
+ * : { reason: "$saas.plan.seat_limit_reached" },
22
+ * );
23
+ * ```
24
+ *
25
+ * @returns Removes this resolver, for a module that drops it while staying
26
+ * loaded.
27
+ */
8
28
  function RegisterInviteAvailability(resolver) {
9
- inviteAvailabilityResolvers.add(resolver);
10
- return () => inviteAvailabilityResolvers.remove((entry) => entry === resolver);
11
- }
12
- async function resolveOne(resolver, context) {
13
- try {
14
- return await resolver(context);
15
- }
16
- catch (error) {
17
- logging_1.Logging.Error("[dms] an invite availability resolver failed:", error);
18
- return undefined;
19
- }
20
- }
21
- async function ResolveInviteAvailability(context) {
22
- for (const resolver of inviteAvailabilityResolvers.values()) {
23
- const unavailability = await resolveOne(resolver, context);
24
- if (unavailability)
25
- return unavailability;
26
- }
27
- return undefined;
29
+ availability_1.inviteAvailabilityResolvers.add(resolver);
30
+ return () => availability_1.inviteAvailabilityResolvers.remove((entry) => entry === resolver);
28
31
  }
29
32
  //# sourceMappingURL=availability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/invite-extensions/availability.ts"],"names":[],"mappings":";;AAwCA,gEAMC;AAkBD,8DAQC;AAxED,gEAA6D;AAM7D,4DAAwD;AAQxD,MAAM,2BAA2B,GAC/B,IAAI,8BAAa,EAA8B,CAAC;AAyBlD,SAAgB,0BAA0B,CACxC,QAAoC;IAEpC,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,GAAG,EAAE,CACV,2BAA2B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,QAAoC,EACpC,OAA+B;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAMM,KAAK,UAAU,yBAAyB,CAC7C,OAA+B;IAE/B,KAAK,MAAM,QAAQ,IAAI,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/invite-extensions/availability.ts"],"names":[],"mappings":";;AAgCA,gEAMC;AArCD,0DAAsE;AAQtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,0BAA0B,CACxC,QAAoC;IAEpC,0CAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,GAAG,EAAE,CACV,0CAA2B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CustomButtonUnavailability } from "../../base/types/custom-button";
2
+ import type { ComponentFilterContext } from "../../component";
3
+ import { OwnedRegistry } from "../../utils/internal/owned-registry";
4
+ /** @internal */
5
+ export declare const inviteAvailabilityResolvers: OwnedRegistry<import("../../base").CustomButtonAvailability>;
6
+ /**
7
+ * The reason the first refusing resolver gives, in registration order;
8
+ * `undefined` while every resolver leaves invitations available.
9
+ *
10
+ * @internal
11
+ */
12
+ export declare function ResolveInviteAvailability(context: ComponentFilterContext): Promise<CustomButtonUnavailability | undefined>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inviteAvailabilityResolvers = void 0;
4
+ exports.ResolveInviteAvailability = ResolveInviteAvailability;
5
+ const logging_1 = require("@antelopejs/interface-core/logging");
6
+ const owned_registry_1 = require("../../utils/internal/owned-registry");
7
+ /** @internal */
8
+ exports.inviteAvailabilityResolvers = new owned_registry_1.OwnedRegistry();
9
+ async function resolveOne(resolver, context) {
10
+ try {
11
+ return await resolver(context);
12
+ }
13
+ catch (error) {
14
+ logging_1.Logging.Error("[dms] an invite availability resolver failed:", error);
15
+ return undefined;
16
+ }
17
+ }
18
+ /**
19
+ * The reason the first refusing resolver gives, in registration order;
20
+ * `undefined` while every resolver leaves invitations available.
21
+ *
22
+ * @internal
23
+ */
24
+ async function ResolveInviteAvailability(context) {
25
+ for (const resolver of exports.inviteAvailabilityResolvers.values()) {
26
+ const unavailability = await resolveOne(resolver, context);
27
+ if (unavailability)
28
+ return unavailability;
29
+ }
30
+ return undefined;
31
+ }
32
+ //# sourceMappingURL=availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/availability.ts"],"names":[],"mappings":";;;AA4BA,8DAQC;AApCD,gEAA6D;AAG7D,wEAAoE;AAGpE,gBAAgB;AACH,QAAA,2BAA2B,GACtC,IAAI,8BAAa,EAA8B,CAAC;AAElD,KAAK,UAAU,UAAU,CACvB,QAAoC,EACpC,OAA+B;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,yBAAyB,CAC7C,OAA+B;IAE/B,KAAK,MAAM,QAAQ,IAAI,mCAA2B,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { TenantMember } from "../../db";
2
+ import type { InviteCleanupContext, InviteExtensionContext, InviteExtensionPayloads } from "../types";
3
+ import type { InviteDeliveryOptions } from "./types";
4
+ /**
5
+ * Pull each registered extension's slice out of an invite submission and
6
+ * validate it against the extension's own schema.
7
+ *
8
+ * Every registered extension is validated, including one the submission holds
9
+ * no field for: its schema is what decides whether an absent value is legal,
10
+ * not the browser. Keys belonging to an extension that is no longer registered
11
+ * are dropped — a module can stop between the modal opening and its submit.
12
+ *
13
+ * What is stored is the slice as submitted, not what the schema returned: a
14
+ * schema that transforms its input produces an output the same schema would
15
+ * reject on the way back in, so storing the output would make the payload fail
16
+ * its own re-validation at delivery — silently, and after the invitation had
17
+ * been consumed. Parsing happens once, in {@link readPayload}.
18
+ *
19
+ * @throws HTTPResult 400 when a slice does not satisfy its schema
20
+ *
21
+ * @internal
22
+ */
23
+ export declare function CollectInviteExtensionPayloads(body: unknown): InviteExtensionPayloads;
24
+ /**
25
+ * Hand each extension the payload its invitation carried, now that the invitee
26
+ * is a member of the tenant.
27
+ *
28
+ * Legacy delivery logs failures. Durable delivery requests retryOnFailure:
29
+ * invalid stored payloads and failed handlers then keep the decision pending.
30
+ *
31
+ * @internal
32
+ */
33
+ export declare function DeliverInviteExtensions(payloads: InviteExtensionPayloads | null | undefined, member: TenantMember, context: InviteExtensionContext, options?: InviteDeliveryOptions): Promise<void>;
34
+ /**
35
+ * Tell every extension that declared a cleanup handler that the invitation —
36
+ * or the membership it produced — is gone, so it can drop what it derived.
37
+ *
38
+ * Called for every registered extension, with the stored payload when the
39
+ * invitation still had one: a member being removed carries none, and the
40
+ * contributor is expected to key its own data off `context.userId`.
41
+ *
42
+ * @internal
43
+ */
44
+ export declare function CleanupInviteExtensions(payloads: InviteExtensionPayloads | null | undefined, context: InviteCleanupContext, options?: InviteDeliveryOptions): Promise<void>;
@@ -5,6 +5,25 @@ exports.DeliverInviteExtensions = DeliverInviteExtensions;
5
5
  exports.CleanupInviteExtensions = CleanupInviteExtensions;
6
6
  const payload_slices_1 = require("./payload-slices");
7
7
  const registry_1 = require("./registry");
8
+ /**
9
+ * Pull each registered extension's slice out of an invite submission and
10
+ * validate it against the extension's own schema.
11
+ *
12
+ * Every registered extension is validated, including one the submission holds
13
+ * no field for: its schema is what decides whether an absent value is legal,
14
+ * not the browser. Keys belonging to an extension that is no longer registered
15
+ * are dropped — a module can stop between the modal opening and its submit.
16
+ *
17
+ * What is stored is the slice as submitted, not what the schema returned: a
18
+ * schema that transforms its input produces an output the same schema would
19
+ * reject on the way back in, so storing the output would make the payload fail
20
+ * its own re-validation at delivery — silently, and after the invitation had
21
+ * been consumed. Parsing happens once, in {@link readPayload}.
22
+ *
23
+ * @throws HTTPResult 400 when a slice does not satisfy its schema
24
+ *
25
+ * @internal
26
+ */
8
27
  function CollectInviteExtensionPayloads(body) {
9
28
  const source = (body ?? {});
10
29
  const payloads = {};
@@ -15,6 +34,15 @@ function CollectInviteExtensionPayloads(body) {
15
34
  }
16
35
  return payloads;
17
36
  }
37
+ /**
38
+ * Hand each extension the payload its invitation carried, now that the invitee
39
+ * is a member of the tenant.
40
+ *
41
+ * Legacy delivery logs failures. Durable delivery requests retryOnFailure:
42
+ * invalid stored payloads and failed handlers then keep the decision pending.
43
+ *
44
+ * @internal
45
+ */
18
46
  async function DeliverInviteExtensions(payloads, member, context, options = {}) {
19
47
  const failures = [];
20
48
  for (const info of (0, registry_1.listInviteExtensions)()) {
@@ -32,6 +60,16 @@ async function DeliverInviteExtensions(payloads, member, context, options = {})
32
60
  if (options.retryOnFailure && failures.length)
33
61
  throw new AggregateError(failures, "Invite delivery failed");
34
62
  }
63
+ /**
64
+ * Tell every extension that declared a cleanup handler that the invitation —
65
+ * or the membership it produced — is gone, so it can drop what it derived.
66
+ *
67
+ * Called for every registered extension, with the stored payload when the
68
+ * invitation still had one: a member being removed carries none, and the
69
+ * contributor is expected to key its own data off `context.userId`.
70
+ *
71
+ * @internal
72
+ */
35
73
  async function CleanupInviteExtensions(payloads, context, options = {}) {
36
74
  const failures = [];
37
75
  for (const info of (0, registry_1.listInviteExtensions)()) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/delivery.ts"],"names":[],"mappings":";;AA6BA,wEAaC;AAWD,0DAmBC;AAYD,0DAoBC;AAvGD,qDAA0E;AAC1E,yCAA6E;AAQ7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,8BAA8B,CAC5C,IAAa;IAEb,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IACvD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,IAAA,+BAAoB,GAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAA,wBAAO,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,IAAA,iCAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAoD,EACpD,MAAoB,EACpB,OAA+B,EAC/B,UAAiC,EAAE;IAEnC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAA,+BAAoB,GAAE,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,4BAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,oCAAyB,EAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAClE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM;QAC3C,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAoD,EACpD,OAA6B,EAC7B,UAAiC,EAAE;IAEnC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAA,+BAAoB,GAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,SAAS;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAClB,IAAA,4BAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAC3C,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,oCAAyB,EAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM;QAC3C,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { InviteExtensionContext, InviteExtensionPayloads } from "../types";
2
+ /**
3
+ * The payloads stored on a pending invitation as values of its edit form: each
4
+ * registered extension's stored slice, under the prefixed ids its fields carry
5
+ * in the form. Payloads of an extension that is no longer registered have no
6
+ * field to fill and are left out.
7
+ *
8
+ * @internal
9
+ */
10
+ export declare function ReadInviteExtensionFields(payloads: InviteExtensionPayloads | null | undefined): Record<string, unknown>;
11
+ /**
12
+ * Pull the slices an admin changed out of the edit form of a pending
13
+ * invitation, each validated against its extension's schema.
14
+ *
15
+ * Only editable extensions whose fields the submission carries are taken: a
16
+ * body without them — an API client, a form opened before the extension
17
+ * registered — leaves the stored payload alone rather than resetting it. The
18
+ * slice is kept as submitted, as {@link CollectInviteExtensionPayloads} does.
19
+ *
20
+ * @returns The new payloads, keyed by extension key, to store over the old ones
21
+ * @throws HTTPResult 400 when a slice does not satisfy its schema
22
+ *
23
+ * @internal
24
+ */
25
+ export declare function CollectInviteExtensionEdits(body: unknown): InviteExtensionPayloads;
26
+ /**
27
+ * Tell every extension whose payload an edit changed, once the edit is stored.
28
+ *
29
+ * A failing handler is logged and the others still run: the invitation already
30
+ * carries the new payload, which is what acceptance delivers either way.
31
+ *
32
+ * @internal
33
+ */
34
+ export declare function NotifyInviteExtensionUpdates(previous: InviteExtensionPayloads | null | undefined, edits: InviteExtensionPayloads, context: InviteExtensionContext): Promise<void>;
@@ -10,9 +10,20 @@ const registry_1 = require("./registry");
10
10
  function isRecord(value) {
11
11
  return !!value && typeof value === "object" && !Array.isArray(value);
12
12
  }
13
+ // Payloads cross module boundaries as per-context views, which
14
+ // `isDeepStrictEqual` refuses to equate with plain data holding the same
15
+ // values: both sides are compared as plain JSON.
13
16
  function isSamePayload(a, b) {
14
17
  return (0, node_util_1.isDeepStrictEqual)(JSON.parse(JSON.stringify(a ?? null)), JSON.parse(JSON.stringify(b ?? null)));
15
18
  }
19
+ /**
20
+ * The payloads stored on a pending invitation as values of its edit form: each
21
+ * registered extension's stored slice, under the prefixed ids its fields carry
22
+ * in the form. Payloads of an extension that is no longer registered have no
23
+ * field to fill and are left out.
24
+ *
25
+ * @internal
26
+ */
16
27
  function ReadInviteExtensionFields(payloads) {
17
28
  const values = {};
18
29
  for (const info of (0, registry_1.listInviteExtensions)()) {
@@ -25,6 +36,20 @@ function ReadInviteExtensionFields(payloads) {
25
36
  }
26
37
  return values;
27
38
  }
39
+ /**
40
+ * Pull the slices an admin changed out of the edit form of a pending
41
+ * invitation, each validated against its extension's schema.
42
+ *
43
+ * Only editable extensions whose fields the submission carries are taken: a
44
+ * body without them — an API client, a form opened before the extension
45
+ * registered — leaves the stored payload alone rather than resetting it. The
46
+ * slice is kept as submitted, as {@link CollectInviteExtensionPayloads} does.
47
+ *
48
+ * @returns The new payloads, keyed by extension key, to store over the old ones
49
+ * @throws HTTPResult 400 when a slice does not satisfy its schema
50
+ *
51
+ * @internal
52
+ */
28
53
  function CollectInviteExtensionEdits(body) {
29
54
  const source = isRecord(body) ? body : {};
30
55
  const edits = {};
@@ -51,6 +76,14 @@ async function notifyUpdate(info, previous, edits, context) {
51
76
  return;
52
77
  await info.onUpdate(payload.value, (0, payload_slices_1.readPayload)(info, previous, {})?.value, context);
53
78
  }
79
+ /**
80
+ * Tell every extension whose payload an edit changed, once the edit is stored.
81
+ *
82
+ * A failing handler is logged and the others still run: the invitation already
83
+ * carries the new payload, which is what acceptance delivers either way.
84
+ *
85
+ * @internal
86
+ */
54
87
  async function NotifyInviteExtensionUpdates(previous, edits, context) {
55
88
  for (const info of (0, registry_1.listInviteExtensions)()) {
56
89
  try {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Separates an extension key from one of its field ids once the field is
3
+ * merged into the invite form, whose ids share a single namespace with every
4
+ * extension's. Two underscores rather than a dot: the browser form resolves a
5
+ * dotted name as a nested path, which would nest the submitted value.
6
+ *
7
+ * An extension key may not contain the separator, so the first occurrence
8
+ * always splits key from field id — even when the field id contains one too.
9
+ *
10
+ * @internal
11
+ */
12
+ export declare const INVITE_EXTENSION_FIELD_SEPARATOR = "__";
13
+ /** @internal */
14
+ export interface InviteExtensionFieldId {
15
+ key: string;
16
+ fieldId: string;
17
+ }
18
+ /** @internal */
19
+ export declare function inviteExtensionFieldId(key: string, fieldId: string): string;
20
+ /** @internal */
21
+ export declare function splitInviteExtensionFieldId(id: string): InviteExtensionFieldId | undefined;
@@ -3,10 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.INVITE_EXTENSION_FIELD_SEPARATOR = void 0;
4
4
  exports.inviteExtensionFieldId = inviteExtensionFieldId;
5
5
  exports.splitInviteExtensionFieldId = splitInviteExtensionFieldId;
6
+ /**
7
+ * Separates an extension key from one of its field ids once the field is
8
+ * merged into the invite form, whose ids share a single namespace with every
9
+ * extension's. Two underscores rather than a dot: the browser form resolves a
10
+ * dotted name as a nested path, which would nest the submitted value.
11
+ *
12
+ * An extension key may not contain the separator, so the first occurrence
13
+ * always splits key from field id — even when the field id contains one too.
14
+ *
15
+ * @internal
16
+ */
6
17
  exports.INVITE_EXTENSION_FIELD_SEPARATOR = "__";
18
+ /** @internal */
7
19
  function inviteExtensionFieldId(key, fieldId) {
8
20
  return `${key}${exports.INVITE_EXTENSION_FIELD_SEPARATOR}${fieldId}`;
9
21
  }
22
+ /** @internal */
10
23
  function splitInviteExtensionFieldId(id) {
11
24
  const index = id.indexOf(exports.INVITE_EXTENSION_FIELD_SEPARATOR);
12
25
  if (index <= 0)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-ids.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/field-ids.ts"],"names":[],"mappings":";;;AAoBA,wDAEC;AAGD,kEAUC;AAnCD;;;;;;;;;;GAUG;AACU,QAAA,gCAAgC,GAAG,IAAI,CAAC;AAQrD,gBAAgB;AAChB,SAAgB,sBAAsB,CAAC,GAAW,EAAE,OAAe;IACjE,OAAO,GAAG,GAAG,GAAG,wCAAgC,GAAG,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,gBAAgB;AAChB,SAAgB,2BAA2B,CACzC,EAAU;IAEV,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAgC,CAAC,CAAC;IAC3D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,wCAAgC,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Slot the DMS invite form opens for `RegisterInviteExtension`.
3
+ *
4
+ * @internal
5
+ */
6
+ export declare const INVITE_FORM_SLOT_ID = "dms.invite-form";
7
+ /**
8
+ * Slot the edit form of a pending invitation opens, so the contributed fields
9
+ * can be changed until the invitee accepts.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare const INVITE_EDIT_FORM_SLOT_ID = "dms.invite-edit-form";
@@ -2,11 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.INVITE_EDIT_FORM_SLOT_ID = exports.INVITE_FORM_SLOT_ID = void 0;
4
4
  const logging_1 = require("@antelopejs/interface-core/logging");
5
- const form_1 = require("../base/form");
6
- const component_slots_1 = require("../component-slots");
5
+ const form_1 = require("../../base/form");
6
+ const component_slots_1 = require("../../internal/component-slots");
7
+ const component_slots_2 = require("../../component-slots");
7
8
  const field_ids_1 = require("./field-ids");
8
9
  const registry_1 = require("./registry");
10
+ /**
11
+ * Slot the DMS invite form opens for `RegisterInviteExtension`.
12
+ *
13
+ * @internal
14
+ */
9
15
  exports.INVITE_FORM_SLOT_ID = "dms.invite-form";
16
+ /**
17
+ * Slot the edit form of a pending invitation opens, so the contributed fields
18
+ * can be changed until the invitee accepts.
19
+ *
20
+ * @internal
21
+ */
10
22
  exports.INVITE_EDIT_FORM_SLOT_ID = "dms.invite-edit-form";
11
23
  const INVITE_FORM_HOST = {
12
24
  isEditForm: false,
@@ -16,6 +28,7 @@ const INVITE_EDIT_FORM_HOST = {
16
28
  isEditForm: true,
17
29
  anchorAliases: { roles: "roles_ids" },
18
30
  };
31
+ /** Watch params naming a field, remapped with the ids they now refer to. */
19
32
  const WATCH_FIELD_PARAMS = ["targetField"];
20
33
  const WATCH_FIELD_CONDITION_KEY = "fieldId";
21
34
  function flattenSerializedFields(fields) {
@@ -37,6 +50,7 @@ function prefixWatchAction(key, watch) {
37
50
  }
38
51
  : condition)
39
52
  : undefined;
53
+ // `onParam` is set only when the contribution declared conditions.
40
54
  const resolvedWatch = { ...watch, params };
41
55
  if (conditions)
42
56
  resolvedWatch.onParam = conditions;
@@ -54,6 +68,9 @@ function prefixSchemaEntries(key, schema) {
54
68
  };
55
69
  }
56
70
  async function buildContribution(info) {
71
+ // Serializing here — not at registration — is what runs the form's option
72
+ // transforms, so the upload fields it carries are stamped exactly as they
73
+ // would be on a page that hosts the form directly.
57
74
  const serialized = await info.component.serialize();
58
75
  const options = serialized.options;
59
76
  const fields = flattenSerializedFields(options?.fields ?? []);
@@ -87,11 +104,17 @@ async function buildContribution(info) {
87
104
  function contributionOf(entry) {
88
105
  entry.contribution ??= buildContribution(entry.info).catch((error) => {
89
106
  (0, registry_1.logInviteExtensionFailure)(entry.info.key, "serialize its form", error);
107
+ // Cleared so a later request retries: a transient failure (an unreachable
108
+ // signing implementation while the DMS is still starting) must not leave
109
+ // the extension permanently out of the modal.
90
110
  entry.contribution = undefined;
91
111
  return undefined;
92
112
  });
93
113
  return entry.contribution;
94
114
  }
115
+ // Every criterion is intrinsic to the declaration — never module start order —
116
+ // so the modal assembles identically on every host and across restarts. Keys
117
+ // are unique, so they close the total order.
95
118
  function compareContributions(a, b) {
96
119
  if (a.order !== b.order)
97
120
  return a.order - b.order;
@@ -103,6 +126,8 @@ function disableGroup(group) {
103
126
  fields: group.fields.map((field) => ({ ...field, disabled: true })),
104
127
  };
105
128
  }
129
+ // Returns a copy: the contribution is the process-wide cache shared by every
130
+ // request and by both invite forms.
106
131
  function adaptToHost(contribution, host) {
107
132
  const anchor = contribution.anchorField;
108
133
  const isReadOnly = host.isEditForm && !contribution.editable;
@@ -151,6 +176,14 @@ function bucketContributions(contributions, ownIds) {
151
176
  }
152
177
  function assembleFields(own, contributions, hostOrientation) {
153
178
  const buckets = bucketContributions(contributions, new Set(own.map((field) => field.id)));
179
+ // Cloned, not spread: the group hangs off a process-wide cache shared by
180
+ // every request, and a shallow copy would hand each of them the same field
181
+ // objects — one in-place edit downstream and the cache is corrupted for
182
+ // every tenant.
183
+ //
184
+ // A contributed block lays out like the form it lands in unless its author
185
+ // asked otherwise: a block that reads sideways in a column of fields looks
186
+ // like a rendering bug, not like a deliberate choice.
154
187
  const blockOf = (contribution) => ({
155
188
  ...structuredClone(contribution.group),
156
189
  orientation: contribution.group.orientation ?? hostOrientation,
@@ -170,6 +203,8 @@ function assembleFields(own, contributions, hostOrientation) {
170
203
  }
171
204
  return assembled;
172
205
  }
206
+ // The browser validates against the form's JSON schema, so a contributed field
207
+ // left out of it would submit unchecked — its own `required` flag included.
173
208
  function mergeSchema(own, contributions) {
174
209
  if (!own || typeof own !== "object")
175
210
  return own;
@@ -184,15 +219,23 @@ function mergeSchema(own, contributions) {
184
219
  };
185
220
  }
186
221
  async function resolveInviteFormSlot(options, host) {
222
+ // The marker has done its job here; leaving it in would ship an internal id
223
+ // to the browser, where an unknown form prop lands as a DOM attribute.
187
224
  const { [component_slots_1.COMPONENT_SLOT_KEY]: _slot, ...resolved } = options;
188
225
  const contributions = (await collectContributions()).map((contribution) => adaptToHost(contribution, host));
189
226
  if (contributions.length === 0)
190
227
  return resolved;
228
+ // The source and the target do not overlap, so this cannot be one
229
+ // assertion: the value reaches here through a decorator, a JWT
230
+ // payload or a filter tuple, none of which the type system sees.
231
+ // oxlint-disable-next-line anti-slop/no-chained-type-assertions
191
232
  const form = options;
192
233
  const watchActions = [
193
234
  ...(form.watchActions ?? []),
194
235
  ...contributions.flatMap((contribution) => contribution.watchActions),
195
236
  ];
237
+ // `watchActions` is set only when there is at least one, so a form with none
238
+ // carries no key for it.
196
239
  const merged = {
197
240
  ...resolved,
198
241
  fields: assembleFields(form.fields ?? [], contributions, form.fieldsOrientation),
@@ -202,6 +245,8 @@ async function resolveInviteFormSlot(options, host) {
202
245
  merged.watchActions = watchActions;
203
246
  return merged;
204
247
  }
205
- (0, component_slots_1.RegisterComponentSlot)(exports.INVITE_FORM_SLOT_ID, (options) => resolveInviteFormSlot(options, INVITE_FORM_HOST));
206
- (0, component_slots_1.RegisterComponentSlot)(exports.INVITE_EDIT_FORM_SLOT_ID, (options) => resolveInviteFormSlot(options, INVITE_EDIT_FORM_HOST));
248
+ // Claimed on import: the DMS invite forms declare their slots at page
249
+ // registration, which can run before any module extends them.
250
+ (0, component_slots_2.RegisterComponentSlot)(exports.INVITE_FORM_SLOT_ID, (options) => resolveInviteFormSlot(options, INVITE_FORM_HOST));
251
+ (0, component_slots_2.RegisterComponentSlot)(exports.INVITE_EDIT_FORM_SLOT_ID, (options) => resolveInviteFormSlot(options, INVITE_EDIT_FORM_HOST));
207
252
  //# sourceMappingURL=form-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-slot.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/form-slot.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,0CAMyB;AAEzB,oEAAoE;AACpE,2DAAgF;AAChF,2CAAqD;AACrD,yCAIoB;AAGpB;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAErD;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,sBAAsB,CAAC;AAc/D,MAAM,gBAAgB,GAAmB;IACvC,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,MAAM,qBAAqB,GAAmB;IAC5C,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;CACtC,CAAC;AAOF,4EAA4E;AAC5E,MAAM,kBAAkB,GAAG,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAE5C,SAAS,uBAAuB,CAC9B,MAAoC;IAEpC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,IAAA,6BAAsB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,KAAkB;IACxD,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;QACvC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,kCAAsB,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAW,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO;QAC9B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACvC,SAAS,CAAC,GAAG,KAAK,yBAAyB;YAC3C,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;YACjC,CAAC,CAAC;gBACE,GAAG,SAAS;gBACZ,KAAK,EAAE,IAAA,kCAAsB,EAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC;aACpD;YACH,CAAC,CAAC,SAAS,CACd;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,mEAAmE;IACnE,MAAM,aAAa,GAAgB,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IACxD,IAAI,UAAU;QAAE,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;IACnD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAW,EACX,MAAe;IAEf,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAqB,CAAC;IAClD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5E,UAAU,CAAC,IAAA,kCAAsB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC;IAChE,CAAC;IACD,OAAO;QACL,UAAU;QACV,kBAAkB,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1D,IAAA,kCAAsB,EAAC,GAAG,EAAE,OAAO,CAAC,CACrC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAyB;IAEzB,0EAA0E;IAC1E,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,OAA0C,CAAC;IACtE,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAE9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,iBAAO,CAAC,IAAI,CACV,2BAA2B,IAAI,CAAC,GAAG,kEAAkE,CACtG,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAyB;QAClC,EAAE,EAAE,IAAI,CAAC,GAAG;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE,KAAK;QACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,WAAW;QACrD,WAAW,EAAE,OAAO,EAAE,iBAAiB;QACvC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7B,GAAG,KAAK;YACR,EAAE,EAAE,IAAA,kCAAsB,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,YAAY,GAAG,CAClB,OAAwD,EAAE,YAAY;QACvE,EAAE,CACH,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;QACzB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW;QACvC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK;QACjC,KAAK;QACL,YAAY;QACZ,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAA2B;IAE3B,KAAK,CAAC,YAAY,KAAK,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CACxD,CAAC,KAAc,EAAE,EAAE;QACjB,IAAA,oCAAyB,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;QAC9C,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC,CACF,CAAC;IACF,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,6CAA6C;AAC7C,SAAS,oBAAoB,CAC3B,CAA0B,EAC1B,CAA0B;IAE1B,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,YAAY,CAAC,KAA2B;IAC/C,OAAO;QACL,GAAG,KAAK;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,oCAAoC;AACpC,SAAS,WAAW,CAClB,YAAqC,EACrC,IAAoB;IAEpB,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;IAC7D,OAAO;QACL,GAAG,YAAY;QACf,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACxE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK;KAC1E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,IAAA,qCAA0B,GAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CACjD,CAAC;IACF,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,KAAK,EAAoC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC5D,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAChC,CAAC;AASD,SAAS,WAAW,CAClB,MAA8C,EAC9C,GAAW,EACX,YAAqC;IAErC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAC1B,aAAwC,EACxC,MAAmB;IAEnB,MAAM,OAAO,GAAqB;QAChC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,GAAG,EAAE,EAAE;KACR,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;QACxC,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CACjE,YAAY,CACb,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,iBAAO,CAAC,IAAI,CACV,2BAA2B,YAAY,CAAC,GAAG,uBAAuB,MAAM,4EAA4E,CACrJ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,WAAW,CACT,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAC/D,MAAM,EACN,YAAY,CACb,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CACrB,GAAiC,EACjC,aAAwC,EACxC,eAAoD;IAEpD,MAAM,OAAO,GAAG,mBAAmB,CACjC,aAAa,EACb,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACtC,CAAC;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,gBAAgB;IAChB,EAAE;IACF,2EAA2E;IAC3E,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,OAAO,GAAG,CACd,YAAqC,EACf,EAAE,CAAC,CAAC;QAC1B,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;QACtC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,IAAI,eAAe;KAC/D,CAAC,CAAC;IACH,MAAM,SAAS,GAAiC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3E,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,SAAS,WAAW,CAClB,GAAY,EACZ,aAAwC;IAExC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAChD,MAAM,MAAM,GAAG,GAAuB,CAAC;IAEvC,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,MAAM,CAAC,MAAM,CACvB,EAAE,EACF,MAAM,CAAC,UAAU,EACjB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAChE;QACD,QAAQ,EAAE;YACR,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC1B,GAAG,aAAa,CAAC,OAAO,CACtB,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAClD;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAoB,EACpB,IAAoB;IAEpB,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,EAAE,CAAC,oCAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,aAAa,GAAG,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CACxE,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAChC,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEhD,kEAAkE;IAClE,+DAA+D;IAC/D,iEAAiE;IACjE,gEAAgE;IAChE,MAAM,IAAI,GAAG,OAEZ,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC5B,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;KACtE,CAAC;IAEF,6EAA6E;IAC7E,yBAAyB;IACzB,MAAM,MAAM,GAA4B;QACtC,GAAG,QAAQ;QACX,MAAM,EAAE,cAAc,CACpB,IAAI,CAAC,MAAM,IAAI,EAAE,EACjB,aAAa,EACb,IAAI,CAAC,iBAAiB,CACvB;QACD,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;KAChD,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IAChE,OAAO,MAAqB,CAAC;AAC/B,CAAC;AAED,sEAAsE;AACtE,8DAA8D;AAC9D,IAAA,uCAAqB,EAAC,2BAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CACrD,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CACjD,CAAC;AACF,IAAA,uCAAqB,EAAC,gCAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC1D,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CACtD,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { InviteDeliveryOptions, InviteExtensionInfo } from "./types";
2
+ import type { InviteExtensionPayloads } from "../types";
3
+ /** @internal */
4
+ export declare const HTTP_BAD_REQUEST = 400;
5
+ /** @internal */
6
+ export interface StoredPayload {
7
+ value: unknown;
8
+ }
9
+ /**
10
+ * The submitted values of one extension's fields, keyed by unprefixed id.
11
+ *
12
+ * @internal
13
+ */
14
+ export declare function sliceOf(key: string, body: Record<string, unknown>): Record<string, unknown>;
15
+ /**
16
+ * @throws HTTPResult 400 when the slice does not satisfy the schema
17
+ *
18
+ * @internal
19
+ */
20
+ export declare function assertSliceValid(info: InviteExtensionInfo, slice: Record<string, unknown>): void;
21
+ /**
22
+ * Parse the stored submission into the payload `onAccept` is typed for.
23
+ *
24
+ * The schema runs here rather than being trusted from storage: an invitation
25
+ * can outlive the version of the module that wrote its payload, and this is
26
+ * also where a transforming schema produces its output — exactly once, on the
27
+ * input as the admin submitted it.
28
+ *
29
+ * @internal
30
+ */
31
+ export declare function readPayload(info: InviteExtensionInfo, payloads: InviteExtensionPayloads | null | undefined, options: InviteDeliveryOptions): StoredPayload | undefined;