@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
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ // The footer band and the empty states of a table view: the figures the
3
+ // `summary` route computes over the listed rows, the legend, and what an
4
+ // empty body says.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ruleFields = ruleFields;
7
+ exports.serializeFooter = serializeFooter;
8
+ exports.serializeEmptyStates = serializeEmptyStates;
9
+ exports.warnIfSummaryLacksRoute = warnIfSummaryLacksRoute;
10
+ const logging_1 = require("@antelopejs/interface-core/logging");
11
+ const data_types_1 = require("../../data-types");
12
+ const row_action_operators_1 = require("../../types/row-action-operators");
13
+ const tabs_1 = require("./tabs");
14
+ const LEGEND_TYPE_ID = "select";
15
+ /**
16
+ * The columns a row rule reads, nested rules included.
17
+ *
18
+ * @internal
19
+ */
20
+ function ruleFields(rule) {
21
+ const record = rule;
22
+ if (row_action_operators_1.FIELD_KEY in record)
23
+ return [String(record[row_action_operators_1.FIELD_KEY])];
24
+ return row_action_operators_1.LOGICAL_OPERATOR_KEYS.flatMap((key) => {
25
+ const nested = record[key];
26
+ if (!nested)
27
+ return [];
28
+ const rules = Array.isArray(nested) ? nested : [nested];
29
+ return rules.flatMap((entry) => ruleFields(entry));
30
+ });
31
+ }
32
+ function assertSummary(controllerName, meta, summary) {
33
+ const where = `TableView footer summary "${summary.label}" on ${controllerName}`;
34
+ if (summary.op === "sum" && !summary.field) {
35
+ throw new Error(`${where} sums no field: give it a field`);
36
+ }
37
+ const fields = [
38
+ ...(summary.field ? [summary.field] : []),
39
+ ...(summary.where ? ruleFields(summary.where) : []),
40
+ ];
41
+ for (const field of fields) {
42
+ if (!meta.columns[field]) {
43
+ throw new Error(`${where} references unknown column "${field}"`);
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * The footer as it reaches the client: its summaries checked, recorded on
49
+ * the controller and named by the id the `summary` route knows them by,
50
+ * their `where` rule kept server-side. The legend must be a select column.
51
+ *
52
+ * @internal
53
+ */
54
+ function serializeFooter(controllerName, meta, footer) {
55
+ if (!footer)
56
+ return undefined;
57
+ const { summary, ...texts } = footer;
58
+ const legendColumn = footer.legend ? meta.columns[footer.legend] : undefined;
59
+ if (footer.legend &&
60
+ (!legendColumn || (0, data_types_1.getDataTypeId)(legendColumn.type) !== LEGEND_TYPE_ID)) {
61
+ throw new Error(`TableView footer legend on ${controllerName} must name a SelectType column (got "${footer.legend}")`);
62
+ }
63
+ if (!summary)
64
+ return texts;
65
+ for (const entry of summary)
66
+ assertSummary(controllerName, meta, entry);
67
+ const ids = meta.registerFooterSummaries(summary);
68
+ return {
69
+ ...texts,
70
+ summary: summary.map(({ where: _where, ...entry }, index) => ({
71
+ ...entry,
72
+ id: ids[index],
73
+ })),
74
+ };
75
+ }
76
+ /**
77
+ * The empty states as they reach the client, components serialized.
78
+ *
79
+ * @internal
80
+ */
81
+ function serializeEmptyStates(emptyStates) {
82
+ if (!emptyStates)
83
+ return undefined;
84
+ return Object.fromEntries(Object.entries(emptyStates).map(([kind, state]) => [
85
+ kind,
86
+ state && {
87
+ ...state,
88
+ component: state.component?.serializeSync(),
89
+ },
90
+ ]));
91
+ }
92
+ const SUMMARY_PATH = "summary";
93
+ const SUMMARY_METHOD = "get";
94
+ const controllersWarnedForSummaries = new WeakSet();
95
+ /**
96
+ * Warn, once per controller, when a table view declares footer summaries but
97
+ * its controller mounts no `GET summary` route: the footer could not read
98
+ * them. The fix belongs in the controller (`summary: TableViewRoutes.Summary`).
99
+ *
100
+ * @internal
101
+ */
102
+ function warnIfSummaryLacksRoute(controller, location, footer, endpoints) {
103
+ if (!footer?.summary?.length)
104
+ return;
105
+ if (controllersWarnedForSummaries.has(controller))
106
+ return;
107
+ if ((0, tabs_1.servesRoute)(endpoints, SUMMARY_PATH, SUMMARY_METHOD))
108
+ return;
109
+ controllersWarnedForSummaries.add(controller);
110
+ logging_1.Logging.Warn(`[DMS] TableView on "${controller.name}" (${location}) declares footer summaries but its controller mounts no GET ${location}/${SUMMARY_PATH} route: they will not show. Mount \`summary: TableViewRoutes.Summary\` on the controller.`);
111
+ }
112
+ //# sourceMappingURL=footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/footer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { type DataControllerCallback } from "@antelopejs/interface-data-api";
2
2
  import type { Parameters } from "@antelopejs/interface-data-api/components";
3
3
  type GuardedActionName = "edit" | "delete" | "archive" | "restore" | "new";
4
+ /** @internal */
4
5
  export declare const parseGuardBody: (raw: unknown) => Record<string, unknown>;
6
+ /** @internal */
5
7
  export declare const guardedGetRoute: DataControllerCallback<Parameters.GetParameters>;
8
+ /** @internal */
6
9
  export declare const createGuardedRoute: (baseRoute: DataControllerCallback, actionName: GuardedActionName) => DataControllerCallback;
7
10
  export {};
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGuardedRoute = exports.guardedGetRoute = exports.parseGuardBody = void 0;
4
+ const interface_api_1 = require("@antelopejs/interface-api");
5
+ const interface_api_util_1 = require("@antelopejs/interface-api-util");
6
+ const interface_core_1 = require("@antelopejs/interface-core");
7
+ const interface_data_api_1 = require("@antelopejs/interface-data-api");
8
+ const logging_1 = require("@antelopejs/interface-core/logging");
9
+ const data_functions_1 = require("../data-functions");
10
+ const meta_1 = require("../meta");
11
+ const options_1 = require("../options");
12
+ const row_rules_1 = require("./row-rules");
13
+ /**
14
+ * The values of a confirmation's fields, sent as the body of a delete,
15
+ * archive or restore; unset when the request carried none.
16
+ */
17
+ const parseConfirmValues = (raw) => {
18
+ const isEmpty = raw === undefined ||
19
+ raw === null ||
20
+ ((Buffer.isBuffer(raw) || typeof raw === "string") && raw.length === 0);
21
+ return isEmpty ? undefined : (0, exports.parseGuardBody)(raw);
22
+ };
23
+ /** @internal */
24
+ const parseGuardBody = (raw) => {
25
+ if (Buffer.isBuffer(raw))
26
+ return JSON.parse(raw.toString());
27
+ if (typeof raw === "string" && raw.length > 0)
28
+ return JSON.parse(raw);
29
+ if (raw && typeof raw === "object")
30
+ return raw;
31
+ return {};
32
+ };
33
+ exports.parseGuardBody = parseGuardBody;
34
+ const ACTION_GUARD_CONFIGS = {
35
+ edit: {
36
+ // A published contract: the runtime calls this positionally and every
37
+ // implementing module declares the same shape, so an options object
38
+ // cannot be introduced from this side.
39
+ // oxlint-disable-next-line eslint/max-params
40
+ invokeGuard: async (controller, ctx, params, args, guard, idField) => {
41
+ const id = String(params.id);
42
+ const body = (0, exports.parseGuardBody)(args[0]);
43
+ const current = await (0, data_functions_1.fetchRowForGuard)(controller, id, idField);
44
+ (0, interface_api_util_1.assert)(current, 404, "Not Found");
45
+ return guard.call(controller, ctx, { id, body, current });
46
+ },
47
+ },
48
+ delete: {
49
+ invokeGuard: async (controller, ctx, params, args, guard) => {
50
+ const ids = (0, row_rules_1.normalizeToArray)(params.id);
51
+ return guard.call(controller, ctx, {
52
+ ids,
53
+ values: parseConfirmValues(args.at(-1)),
54
+ });
55
+ },
56
+ },
57
+ archive: {
58
+ invokeGuard: async (controller, ctx, params, args, guard) => {
59
+ const ids = (0, row_rules_1.normalizeToArray)(params);
60
+ return guard.call(controller, ctx, {
61
+ ids,
62
+ values: parseConfirmValues(args.at(-1)),
63
+ });
64
+ },
65
+ },
66
+ restore: {
67
+ invokeGuard: async (controller, ctx, params, args, guard) => {
68
+ const ids = (0, row_rules_1.normalizeToArray)(params);
69
+ return guard.call(controller, ctx, {
70
+ ids,
71
+ values: parseConfirmValues(args.at(-1)),
72
+ });
73
+ },
74
+ },
75
+ new: {
76
+ invokeGuard: async (controller, ctx, _params, args, guard) => {
77
+ const body = (0, exports.parseGuardBody)(args[0]);
78
+ return guard.call(controller, ctx, { body });
79
+ },
80
+ },
81
+ };
82
+ const getGuardForAction = (controller, actionName) => {
83
+ const meta = (0, interface_core_1.GetMetadata)(controller.constructor, meta_1.TableViewMeta);
84
+ return meta.controllerGuards?.[actionName];
85
+ };
86
+ /** @internal */
87
+ exports.guardedGetRoute = interface_data_api_1.DefaultRoutes.WithGetGuard(async function (ctx, current, params) {
88
+ await getGuardForAction(this, "get")?.call(this, ctx, {
89
+ id: params.id,
90
+ current,
91
+ });
92
+ });
93
+ const getIdField = (controller) => {
94
+ const meta = (0, interface_core_1.GetMetadata)(controller.constructor, meta_1.TableViewMeta);
95
+ return meta.options.rowIdKey || options_1.DEFAULT_ROW_ID_FIELD;
96
+ };
97
+ async function runAfterWrite(afterWrite, actionName) {
98
+ try {
99
+ await afterWrite();
100
+ }
101
+ catch (error) {
102
+ logging_1.Logging.Error(`[dms] the ${actionName} guard's after-write work failed: ${String(error)}`);
103
+ }
104
+ }
105
+ // Their routes read no body of their own: the guard is handed the one the
106
+ // confirmation sends, read here and kept from the route.
107
+ const CONFIRM_BODY_ACTIONS = new Set([
108
+ "delete",
109
+ "archive",
110
+ "restore",
111
+ ]);
112
+ /** @internal */
113
+ const createGuardedRoute = (baseRoute, actionName) => {
114
+ const config = ACTION_GUARD_CONFIGS[actionName];
115
+ const readsConfirmBody = CONFIRM_BODY_ACTIONS.has(actionName);
116
+ return {
117
+ func: async function (ctx, params, ...routeArgs) {
118
+ const confirmBody = readsConfirmBody ? routeArgs.pop() : undefined;
119
+ const args = readsConfirmBody ? [confirmBody] : routeArgs;
120
+ const guard = getGuardForAction(this, actionName);
121
+ const afterWrite = guard
122
+ ? await config.invokeGuard(this, ctx, params, args, guard, getIdField(this))
123
+ : undefined;
124
+ const result = await baseRoute.func.call(this, ctx, params, ...routeArgs);
125
+ if (afterWrite)
126
+ await runAfterWrite(afterWrite, actionName);
127
+ return result;
128
+ },
129
+ args: readsConfirmBody ? [...baseRoute.args, (0, interface_api_1.RawBody)()] : baseRoute.args,
130
+ method: baseRoute.method,
131
+ };
132
+ };
133
+ exports.createGuardedRoute = createGuardedRoute;
134
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { TableViewMeta } from "../meta";
2
+ /** @internal */
3
+ export declare const getTableViewMetaFor: (target: unknown) => TableViewMeta;
4
+ /** @internal */
5
+ export declare const getControllerLocation: (target: unknown) => string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getControllerLocation = exports.getTableViewMetaFor = void 0;
4
+ const interface_api_1 = require("@antelopejs/interface-api");
5
+ const interface_core_1 = require("@antelopejs/interface-core");
6
+ const meta_1 = require("../meta");
7
+ /** @internal */
8
+ const getTableViewMetaFor = (target) => (0, interface_core_1.GetMetadata)(target.constructor, meta_1.TableViewMeta);
9
+ exports.getTableViewMetaFor = getTableViewMetaFor;
10
+ /** @internal */
11
+ const getControllerLocation = (target) => (0, interface_core_1.GetMetadata)(target.constructor, interface_api_1.ControllerMeta).location;
12
+ exports.getControllerLocation = getControllerLocation;
13
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/meta.ts"],"names":[],"mappings":";;;AAAA,6DAGmC;AACnC,+DAAyD;AACzD,kCAAwC;AAExC,gBAAgB;AACT,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAiB,EAAE,CACpE,IAAA,4BAAW,EACR,MAA2C,CAAC,WAAW,EACxD,oBAAa,CACd,CAAC;AAJS,QAAA,mBAAmB,uBAI5B;AAEJ,gBAAgB;AACT,MAAM,qBAAqB,GAAG,CAAC,MAAe,EAAU,EAAE,CAC/D,IAAA,4BAAW,EACR,MAA2C,CAAC,WAAW,EACxD,8BAAc,CACf,CAAC,QAAQ,CAAC;AAJA,QAAA,qBAAqB,yBAIrB"}
@@ -0,0 +1,9 @@
1
+ import { type ControllerClass } from "@antelopejs/interface-api";
2
+ import type { ComponentBuilder } from "../../../component";
3
+ import type { TableViewTab } from "../options";
4
+ /**
5
+ * Declares on `builder` the navigation badges of the tabs that publish one.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare function declareTabNavBadges<T>(builder: ComponentBuilder<T>, tabs: TableViewTab[] | undefined, controller: ControllerClass): void;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ // The navigation badges a table view publishes: the counter of a tab declared
3
+ // with `navBadge`, counted on the server when the menu loads.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.declareTabNavBadges = declareTabNavBadges;
6
+ const interface_api_1 = require("@antelopejs/interface-api");
7
+ const logging_1 = require("@antelopejs/interface-core/logging");
8
+ const interface_data_api_1 = require("@antelopejs/interface-data-api");
9
+ const components_1 = require("@antelopejs/interface-data-api/components");
10
+ const request_tenant_1 = require("../../../request-tenant");
11
+ const auth_1 = require("./auth");
12
+ const data_functions_1 = require("../data-functions");
13
+ const FILTER_QUERY_PREFIX = "filter_";
14
+ /** The list query a tab's hidden filter reads as (`filter_<key>=<mode>:<value>`). */
15
+ function tabFilterQuery(filter) {
16
+ if (!filter)
17
+ return {};
18
+ return {
19
+ [`${FILTER_QUERY_PREFIX}${filter.accessorKey}`]: `${filter.mode}:${filter.value ?? ""}`,
20
+ };
21
+ }
22
+ function withQuery(ctx, query) {
23
+ const url = new URL(ctx.url);
24
+ url.search = "";
25
+ for (const [key, value] of Object.entries(query)) {
26
+ url.searchParams.set(key, value);
27
+ }
28
+ return { ...ctx, url };
29
+ }
30
+ /**
31
+ * The rows of `controller` the caller lists through `filter`, read with the
32
+ * caller's own `list` permission, as the table's tab counter is: it throws
33
+ * for a caller without it.
34
+ */
35
+ async function countRows(controller, ctx, user, filter) {
36
+ const instance = await (0, interface_api_1.GetControllerInstance)(controller, ctx);
37
+ const permissions = await (0, auth_1.authorizeAction)(instance, auth_1.LIST_ACTION, user, (0, request_tenant_1.getRequestTenantId)(ctx));
38
+ const queryContext = withQuery(ctx, tabFilterQuery(filter));
39
+ const filters = components_1.Parameters.ExtractFilters(queryContext, (0, interface_data_api_1.GetDataControllerMeta)(instance));
40
+ const { total } = await (0, data_functions_1.countWithSearch)(instance, queryContext, { filters }, user, permissions);
41
+ return total;
42
+ }
43
+ /**
44
+ * The badge a `navBadge` tab publishes: a filter tab counts its table for its
45
+ * own page, a link tab counts its `countFrom` controller for the page it links
46
+ * to. A link tab given as a path, or counting from a location, cannot say
47
+ * which page or controller it means: it is warned about and publishes nothing.
48
+ */
49
+ function navBadgeSourceOf(tab, controller) {
50
+ if (!tab.to) {
51
+ return {
52
+ count: (ctx, user) => countRows(controller, ctx, user, tab.filter),
53
+ };
54
+ }
55
+ const { to, countFrom } = tab;
56
+ if (typeof to === "string" || !countFrom || typeof countFrom === "string") {
57
+ logging_1.Logging.Warn(`[DMS] TableView on "${controller.name}": tab "${tab.id}" sets navBadge but links to a path or counts from a location; a navigation badge needs a page controller \`to\` and a data controller \`countFrom\`. It publishes nothing.`);
58
+ return undefined;
59
+ }
60
+ return {
61
+ page: to,
62
+ count: (ctx, user) => countRows(countFrom, ctx, user, undefined),
63
+ };
64
+ }
65
+ /**
66
+ * Declares on `builder` the navigation badges of the tabs that publish one.
67
+ *
68
+ * @internal
69
+ */
70
+ function declareTabNavBadges(builder, tabs, controller) {
71
+ for (const tab of tabs ?? []) {
72
+ if (!tab.navBadge)
73
+ continue;
74
+ const source = navBadgeSourceOf(tab, controller);
75
+ if (source)
76
+ builder.navBadge(source);
77
+ }
78
+ }
79
+ //# sourceMappingURL=nav-badges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-badges.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/nav-badges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The frontend component `TableView` emits.
3
+ *
4
+ * @internal
5
+ */
6
+ export declare const TABLE_VIEW_COMPONENT_NAME = "dms-table-view";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TABLE_VIEW_COMPONENT_NAME = void 0;
4
+ /**
5
+ * The frontend component `TableView` emits.
6
+ *
7
+ * @internal
8
+ */
9
+ exports.TABLE_VIEW_COMPONENT_NAME = "dms-table-view";
10
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/options.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { OwnedRegistry } from "../../../utils/internal/owned-registry";
2
+ import type { RealtimeMutationListener } from "../realtime";
3
+ /** @internal */
4
+ export declare const realtimeMutationListeners: OwnedRegistry<RealtimeMutationListener>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.realtimeMutationListeners = void 0;
4
+ const owned_registry_1 = require("../../../utils/internal/owned-registry");
5
+ /** @internal */
6
+ exports.realtimeMutationListeners = new owned_registry_1.OwnedRegistry();
7
+ //# sourceMappingURL=realtime-listeners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-listeners.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/realtime-listeners.ts"],"names":[],"mappings":";;;AAAA,2EAAuE;AAGvE,gBAAgB;AACH,QAAA,yBAAyB,GACpC,IAAI,8BAAa,EAA4B,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { DataControllerCallback } from "@antelopejs/interface-data-api";
2
+ import { type RealtimeMutationEventType } from "../realtime";
3
+ /** @internal */
4
+ export declare const REALTIME_PRESENCE_QUERY = "_presence";
5
+ /** @internal */
6
+ export declare const REALTIME_PRESENCE_ACQUIRE_VALUE = "1";
7
+ /**
8
+ * Bind the topics of the table view served at `controllerLocation` to the page
9
+ * it is placed on. Called from the builder's `onCreated`, so the module whose
10
+ * page it is owns them.
11
+ *
12
+ * @internal
13
+ */
14
+ export declare function registerTableViewPageTopics(pageId: string, controllerLocation: string): void;
15
+ type IdExtractor = (args: unknown[], result: unknown, idKey: string) => string[];
16
+ /** @internal */
17
+ export declare const extractFromResult: IdExtractor;
18
+ /** @internal */
19
+ export declare const extractSingleParamId: IdExtractor;
20
+ /** @internal */
21
+ export declare const extractMultiParamId: IdExtractor;
22
+ /** @internal */
23
+ export declare const extractBulkArgIds: IdExtractor;
24
+ /**
25
+ * Whether a write reports changing no row: its row rules refused every id,
26
+ * or none existed. Broadcasting its ids would have every session watching
27
+ * the table (the caller included) drop rows that are still there.
28
+ */
29
+ /** @internal */
30
+ export declare const reportsNoChange: (result: unknown) => boolean;
31
+ interface MutationConfig {
32
+ eventType: RealtimeMutationEventType;
33
+ extractIds: IdExtractor;
34
+ }
35
+ /** @internal */
36
+ export declare function withRealtimeMutation<T extends DataControllerCallback>(config: MutationConfig, baseRoute: T): DataControllerCallback;
37
+ /** @internal */
38
+ export declare function withPresenceAcquire<T extends DataControllerCallback>(baseRoute: T): DataControllerCallback;
39
+ export {};
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reportsNoChange = exports.extractBulkArgIds = exports.extractMultiParamId = exports.extractSingleParamId = exports.extractFromResult = exports.REALTIME_PRESENCE_ACQUIRE_VALUE = exports.REALTIME_PRESENCE_QUERY = void 0;
4
+ exports.registerTableViewPageTopics = registerTableViewPageTopics;
5
+ exports.withRealtimeMutation = withRealtimeMutation;
6
+ exports.withPresenceAcquire = withPresenceAcquire;
7
+ const interface_api_1 = require("@antelopejs/interface-api");
8
+ const logging_1 = require("@antelopejs/interface-core/logging");
9
+ const auth_1 = require("../../../auth");
10
+ const realtime_1 = require("../../../realtime");
11
+ const meta_1 = require("./meta");
12
+ const realtime_listeners_1 = require("./realtime-listeners");
13
+ const realtime_2 = require("../realtime");
14
+ const REALTIME_SESSION_HEADER = "x-realtime-session";
15
+ /** @internal */
16
+ exports.REALTIME_PRESENCE_QUERY = "_presence";
17
+ /** @internal */
18
+ exports.REALTIME_PRESENCE_ACQUIRE_VALUE = "1";
19
+ const PARAMS_INDEX = 1;
20
+ const BULK_IDS_ARG_INDEX = 1;
21
+ /**
22
+ * Bind the topics of the table view served at `controllerLocation` to the page
23
+ * it is placed on. Called from the builder's `onCreated`, so the module whose
24
+ * page it is owns them.
25
+ *
26
+ * @internal
27
+ */
28
+ function registerTableViewPageTopics(pageId, controllerLocation) {
29
+ (0, realtime_1.RegisterPageTopic)(pageId, (0, realtime_2.tableViewRowTopic)(controllerLocation));
30
+ (0, realtime_1.RegisterPageTopic)(pageId, (0, realtime_2.tableViewPresenceTopic)(controllerLocation));
31
+ }
32
+ async function dispatchRealtimeMutation(context) {
33
+ await realtime_2.internal.PublishMutation(context);
34
+ for (const listener of realtime_listeners_1.realtimeMutationListeners.values()) {
35
+ try {
36
+ await listener(context);
37
+ }
38
+ catch (error) {
39
+ logging_1.Logging.Error(`[DMS] Realtime mutation listener failed for '${context.controllerLocation}':`, error);
40
+ }
41
+ }
42
+ }
43
+ /** @internal */
44
+ const extractFromResult = (_args, result, idKey) => {
45
+ if (!result || typeof result !== "object")
46
+ return [];
47
+ const value = result[idKey];
48
+ return typeof value === "string" ? [value] : [];
49
+ };
50
+ exports.extractFromResult = extractFromResult;
51
+ /** @internal */
52
+ const extractSingleParamId = (args) => {
53
+ const params = args[PARAMS_INDEX];
54
+ return params?.id ? [params.id] : [];
55
+ };
56
+ exports.extractSingleParamId = extractSingleParamId;
57
+ /** @internal */
58
+ const extractMultiParamId = (args) => {
59
+ const params = args[PARAMS_INDEX];
60
+ if (!params?.id)
61
+ return [];
62
+ return Array.isArray(params.id) ? params.id : [params.id];
63
+ };
64
+ exports.extractMultiParamId = extractMultiParamId;
65
+ /** @internal */
66
+ const extractBulkArgIds = (args) => {
67
+ const ids = args[BULK_IDS_ARG_INDEX];
68
+ if (!ids)
69
+ return [];
70
+ return Array.isArray(ids) ? ids : [ids];
71
+ };
72
+ exports.extractBulkArgIds = extractBulkArgIds;
73
+ const isRealtimeEnabled = (target) => (0, meta_1.getTableViewMetaFor)(target).options.realtime !== false;
74
+ // The counts the bulk routes answer with: delete sends the number of deleted
75
+ // rows (or `{ deleted }`), archive and restore `{ archivedCount }` and
76
+ // `{ restoredCount }`.
77
+ const CHANGED_COUNT_KEYS = ["deleted", "archivedCount", "restoredCount"];
78
+ /**
79
+ * Whether a write reports changing no row: its row rules refused every id,
80
+ * or none existed. Broadcasting its ids would have every session watching
81
+ * the table (the caller included) drop rows that are still there.
82
+ */
83
+ /** @internal */
84
+ const reportsNoChange = (result) => {
85
+ if (typeof result === "number")
86
+ return result === 0;
87
+ if (!result || typeof result !== "object")
88
+ return false;
89
+ const counts = CHANGED_COUNT_KEYS.map((key) => result[key]).filter((value) => typeof value === "number");
90
+ return counts.length > 0 && counts.every((count) => count === 0);
91
+ };
92
+ exports.reportsNoChange = reportsNoChange;
93
+ /** @internal */
94
+ function withRealtimeMutation(config, baseRoute) {
95
+ return {
96
+ method: baseRoute.method,
97
+ args: [
98
+ ...baseRoute.args,
99
+ (0, interface_api_1.Parameter)(REALTIME_SESSION_HEADER, "header"),
100
+ (0, auth_1.AuthUser)(),
101
+ ],
102
+ func: async function (...allArgs) {
103
+ const user = allArgs.pop();
104
+ const sessionId = allArgs.pop();
105
+ const result = await baseRoute.func.apply(this, allArgs);
106
+ if (!isRealtimeEnabled(this))
107
+ return result;
108
+ const meta = (0, meta_1.getTableViewMetaFor)(this);
109
+ const idKey = meta.options.rowIdKey || "_id";
110
+ const ids = config.extractIds(allArgs, result, idKey);
111
+ if (ids.length === 0 && config.eventType !== "created")
112
+ return result;
113
+ if (config.eventType !== "created" && (0, exports.reportsNoChange)(result)) {
114
+ return result;
115
+ }
116
+ await dispatchRealtimeMutation({
117
+ controllerLocation: (0, meta_1.getControllerLocation)(this),
118
+ rowIdKey: idKey,
119
+ eventType: config.eventType,
120
+ ids,
121
+ sessionId,
122
+ actor: { id: user._id, displayName: user.name || user.email },
123
+ });
124
+ return result;
125
+ },
126
+ };
127
+ }
128
+ /** @internal */
129
+ function withPresenceAcquire(baseRoute) {
130
+ return {
131
+ method: baseRoute.method,
132
+ args: [
133
+ ...baseRoute.args,
134
+ (0, interface_api_1.Parameter)(REALTIME_SESSION_HEADER, "header"),
135
+ (0, interface_api_1.Parameter)(exports.REALTIME_PRESENCE_QUERY, "query"),
136
+ (0, auth_1.AuthUser)(),
137
+ ],
138
+ func: async function (...allArgs) {
139
+ const user = allArgs.pop();
140
+ const presenceFlag = allArgs.pop();
141
+ const sessionId = allArgs.pop();
142
+ const result = await baseRoute.func.apply(this, allArgs);
143
+ if (presenceFlag !== exports.REALTIME_PRESENCE_ACQUIRE_VALUE ||
144
+ !sessionId ||
145
+ !isRealtimeEnabled(this)) {
146
+ return result;
147
+ }
148
+ const params = allArgs[PARAMS_INDEX];
149
+ if (!params?.id)
150
+ return result;
151
+ const meta = (0, meta_1.getTableViewMetaFor)(this);
152
+ await realtime_2.internal.AcquirePresence({
153
+ controllerLocation: (0, meta_1.getControllerLocation)(this),
154
+ rowIdKey: meta.options.rowIdKey || "_id",
155
+ sessionId,
156
+ rowId: params.id,
157
+ actor: { id: user._id, displayName: user.name || user.email },
158
+ });
159
+ return result;
160
+ },
161
+ };
162
+ }
163
+ //# sourceMappingURL=realtime.js.map