@antelopejs/interface-dms 0.3.5 → 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 +27 -0
  2. package/README.md +2 -2
  3. package/dist/attachments.d.ts +19 -10
  4. package/dist/attachments.js +15 -0
  5. package/dist/attachments.js.map +1 -1
  6. package/dist/auth/db/internal/sessions.model.d.ts +9 -0
  7. package/dist/auth/db/internal/sessions.model.js +31 -0
  8. package/dist/auth/db/internal/sessions.model.js.map +1 -0
  9. package/dist/auth/db/models/sessions.model.d.ts +16 -2
  10. package/dist/auth/db/models/sessions.model.js +33 -41
  11. package/dist/auth/db/models/sessions.model.js.map +1 -1
  12. package/dist/auth/db/models/userExternalIdentities.model.d.ts +11 -0
  13. package/dist/auth/db/models/userExternalIdentities.model.js +11 -0
  14. package/dist/auth/db/models/userExternalIdentities.model.js.map +1 -1
  15. package/dist/auth/db/models/users.model.d.ts +13 -0
  16. package/dist/auth/db/models/users.model.js +13 -0
  17. package/dist/auth/db/models/users.model.js.map +1 -1
  18. package/dist/auth/db/tables/sessions.table.d.ts +6 -1
  19. package/dist/auth/db/tables/sessions.table.js +0 -4
  20. package/dist/auth/db/tables/sessions.table.js.map +1 -1
  21. package/dist/auth/db/tables/userExternalIdentities.table.d.ts +24 -0
  22. package/dist/auth/db/tables/userExternalIdentities.table.js +13 -0
  23. package/dist/auth/db/tables/userExternalIdentities.table.js.map +1 -1
  24. package/dist/auth/db/tables/users.table.d.ts +60 -0
  25. package/dist/auth/db/tables/users.table.js +32 -0
  26. package/dist/auth/db/tables/users.table.js.map +1 -1
  27. package/dist/auth/index.d.ts +114 -10
  28. package/dist/auth/index.js +110 -17
  29. package/dist/auth/index.js.map +1 -1
  30. package/dist/auth/internal/request-authenticators.d.ts +6 -0
  31. package/dist/auth/internal/request-authenticators.js +82 -0
  32. package/dist/auth/internal/request-authenticators.js.map +1 -0
  33. package/dist/auth/internal/request-principal.d.ts +10 -0
  34. package/dist/auth/internal/request-principal.js +27 -0
  35. package/dist/auth/internal/request-principal.js.map +1 -0
  36. package/dist/auth/internal/user-agent.d.ts +10 -0
  37. package/dist/auth/internal/user-agent.js +3 -0
  38. package/dist/auth/internal/user-agent.js.map +1 -0
  39. package/dist/auth/password.d.ts +19 -0
  40. package/dist/auth/password.js +23 -0
  41. package/dist/auth/password.js.map +1 -1
  42. package/dist/auth/request-authenticators.d.ts +4 -3
  43. package/dist/auth/request-authenticators.js +0 -77
  44. package/dist/auth/request-authenticators.js.map +1 -1
  45. package/dist/base/activity-feed.d.ts +210 -0
  46. package/dist/base/activity-feed.js +104 -0
  47. package/dist/base/activity-feed.js.map +1 -0
  48. package/dist/base/banner.d.ts +111 -0
  49. package/dist/base/banner.js +93 -0
  50. package/dist/base/banner.js.map +1 -0
  51. package/dist/base/block-registry/helpers.d.ts +26 -0
  52. package/dist/base/block-registry/helpers.js +27 -1
  53. package/dist/base/block-registry/helpers.js.map +1 -1
  54. package/dist/base/block-registry/internal/describe.d.ts +35 -0
  55. package/dist/base/block-registry/{describe.js → internal/describe.js} +50 -0
  56. package/dist/base/block-registry/internal/describe.js.map +1 -0
  57. package/dist/base/block-registry/internal/ui.d.ts +23 -0
  58. package/dist/base/block-registry/internal/ui.js +35 -0
  59. package/dist/base/block-registry/internal/ui.js.map +1 -0
  60. package/dist/base/block-registry/registry.d.ts +24 -0
  61. package/dist/base/block-registry/registry.js +30 -1
  62. package/dist/base/block-registry/registry.js.map +1 -1
  63. package/dist/base/block-registry/types.d.ts +149 -0
  64. package/dist/base/block-types.d.ts +22 -2
  65. package/dist/base/block-types.js +24 -2
  66. package/dist/base/block-types.js.map +1 -1
  67. package/dist/base/card.d.ts +100 -0
  68. package/dist/base/card.js +91 -0
  69. package/dist/base/card.js.map +1 -0
  70. package/dist/base/chart-card.d.ts +9 -2
  71. package/dist/base/chart-card.js +14 -1
  72. package/dist/base/chart-card.js.map +1 -1
  73. package/dist/base/chart-schemas.d.ts +127 -115
  74. package/dist/base/chart-schemas.js +18 -56
  75. package/dist/base/chart-schemas.js.map +1 -1
  76. package/dist/base/chart-type.d.ts +15 -0
  77. package/dist/base/chart-type.js +20 -0
  78. package/dist/base/chart-type.js.map +1 -0
  79. package/dist/base/chart.d.ts +31 -22
  80. package/dist/base/chart.js +27 -54
  81. package/dist/base/chart.js.map +1 -1
  82. package/dist/base/confirm-dialog.d.ts +6 -0
  83. package/dist/base/confirm-dialog.js +18 -0
  84. package/dist/base/confirm-dialog.js.map +1 -0
  85. package/dist/base/data-sources.d.ts +38 -0
  86. package/dist/base/data-sources.js +13 -0
  87. package/dist/base/data-sources.js.map +1 -1
  88. package/dist/base/data-types/compare-types.d.ts +0 -2
  89. package/dist/base/data-types/compare-types.js +18 -13
  90. package/dist/base/data-types/compare-types.js.map +1 -1
  91. package/dist/base/data-types/core.d.ts +55 -0
  92. package/dist/base/data-types/core.js +42 -0
  93. package/dist/base/data-types/core.js.map +1 -1
  94. package/dist/base/data-types/default-types.d.ts +241 -62
  95. package/dist/base/data-types/default-types.js +257 -135
  96. package/dist/base/data-types/default-types.js.map +1 -1
  97. package/dist/base/data-types/field-types.d.ts +164 -0
  98. package/dist/base/data-types/field-types.js +236 -0
  99. package/dist/base/data-types/field-types.js.map +1 -0
  100. package/dist/base/data-types/index.d.ts +1 -0
  101. package/dist/base/data-types/index.js +21 -0
  102. package/dist/base/data-types/index.js.map +1 -1
  103. package/dist/base/data-types/internal/compare-types.d.ts +3 -0
  104. package/dist/base/data-types/internal/compare-types.js +15 -0
  105. package/dist/base/data-types/internal/compare-types.js.map +1 -0
  106. package/dist/base/data-types/status-type.d.ts +2 -1
  107. package/dist/base/data-types/status-type.js +6 -0
  108. package/dist/base/data-types/status-type.js.map +1 -1
  109. package/dist/base/display.d.ts +124 -0
  110. package/dist/base/display.js +95 -0
  111. package/dist/base/display.js.map +1 -0
  112. package/dist/base/empty-state.d.ts +106 -0
  113. package/dist/base/empty-state.js +109 -0
  114. package/dist/base/empty-state.js.map +1 -0
  115. package/dist/base/export-jobs.d.ts +39 -1
  116. package/dist/base/export-jobs.js +12 -3
  117. package/dist/base/export-jobs.js.map +1 -1
  118. package/dist/base/form-block-schema.d.ts +345 -28
  119. package/dist/base/form-block-schema.js +83 -12
  120. package/dist/base/form-block-schema.js.map +1 -1
  121. package/dist/base/form-schema.d.ts +137 -22
  122. package/dist/base/form-schema.js +139 -42
  123. package/dist/base/form-schema.js.map +1 -1
  124. package/dist/base/form-types.d.ts +139 -4
  125. package/dist/base/form-types.js +7 -1
  126. package/dist/base/form-types.js.map +1 -1
  127. package/dist/base/form.js +7 -0
  128. package/dist/base/form.js.map +1 -1
  129. package/dist/base/grid.d.ts +57 -0
  130. package/dist/base/grid.js +43 -0
  131. package/dist/base/grid.js.map +1 -1
  132. package/dist/base/helpers/file-refs.js +5 -1
  133. package/dist/base/helpers/file-refs.js.map +1 -1
  134. package/dist/base/index.d.ts +11 -1
  135. package/dist/base/index.js +16 -1
  136. package/dist/base/index.js.map +1 -1
  137. package/dist/base/internal/button-availability.d.ts +17 -0
  138. package/dist/base/internal/button-availability.js +31 -0
  139. package/dist/base/internal/button-availability.js.map +1 -0
  140. package/dist/base/internal/chart-schemas.d.ts +6 -0
  141. package/dist/base/internal/chart-schemas.js +70 -0
  142. package/dist/base/internal/chart-schemas.js.map +1 -0
  143. package/dist/base/internal/chart.d.ts +22 -0
  144. package/dist/base/internal/chart.js +37 -0
  145. package/dist/base/internal/chart.js.map +1 -0
  146. package/dist/base/internal/confirm-dialog.d.ts +13 -0
  147. package/dist/base/internal/confirm-dialog.js +24 -0
  148. package/dist/base/internal/confirm-dialog.js.map +1 -0
  149. package/dist/base/internal/display.d.ts +13 -0
  150. package/dist/base/internal/display.js +18 -0
  151. package/dist/base/internal/display.js.map +1 -0
  152. package/dist/base/internal/export-jobs.d.ts +2 -0
  153. package/dist/base/internal/export-jobs.js +6 -0
  154. package/dist/base/internal/export-jobs.js.map +1 -0
  155. package/dist/base/internal/form-block-schema.d.ts +6 -0
  156. package/dist/base/internal/form-block-schema.js +10 -0
  157. package/dist/base/internal/form-block-schema.js.map +1 -0
  158. package/dist/base/internal/form-schema.d.ts +7 -0
  159. package/dist/base/internal/form-schema.js +26 -0
  160. package/dist/base/internal/form-schema.js.map +1 -0
  161. package/dist/base/internal/layouts.d.ts +39 -0
  162. package/dist/base/internal/layouts.js +3 -0
  163. package/dist/base/internal/layouts.js.map +1 -0
  164. package/dist/base/internal/query-response.d.ts +24 -0
  165. package/dist/base/internal/query-response.js +47 -0
  166. package/dist/base/internal/query-response.js.map +1 -0
  167. package/dist/base/internal/searchable.d.ts +6 -0
  168. package/dist/base/internal/searchable.js +15 -0
  169. package/dist/base/internal/searchable.js.map +1 -0
  170. package/dist/base/key-value-list.d.ts +160 -0
  171. package/dist/base/key-value-list.js +107 -0
  172. package/dist/base/key-value-list.js.map +1 -0
  173. package/dist/base/kpi-card.d.ts +12 -4
  174. package/dist/base/kpi-card.js +7 -0
  175. package/dist/base/kpi-card.js.map +1 -1
  176. package/dist/base/layouts.d.ts +35 -0
  177. package/dist/base/layouts.js +41 -7
  178. package/dist/base/layouts.js.map +1 -1
  179. package/dist/base/meter.d.ts +186 -0
  180. package/dist/base/meter.js +134 -0
  181. package/dist/base/meter.js.map +1 -0
  182. package/dist/base/nav-card-grid.d.ts +173 -0
  183. package/dist/base/nav-card-grid.js +89 -0
  184. package/dist/base/nav-card-grid.js.map +1 -0
  185. package/dist/base/period-selector.d.ts +20 -0
  186. package/dist/base/period-selector.js +23 -0
  187. package/dist/base/period-selector.js.map +1 -1
  188. package/dist/base/placeholder.d.ts +26 -0
  189. package/dist/base/placeholder.js +12 -0
  190. package/dist/base/placeholder.js.map +1 -1
  191. package/dist/base/query-response.d.ts +51 -1
  192. package/dist/base/query-response.js +43 -26
  193. package/dist/base/query-response.js.map +1 -1
  194. package/dist/base/resource-form-schema.d.ts +18 -0
  195. package/dist/base/resource-form-schema.js +20 -3
  196. package/dist/base/resource-form-schema.js.map +1 -1
  197. package/dist/base/searchable.d.ts +2 -0
  198. package/dist/base/searchable.js +4 -0
  199. package/dist/base/searchable.js.map +1 -1
  200. package/dist/base/section.d.ts +105 -0
  201. package/dist/base/section.js +123 -0
  202. package/dist/base/section.js.map +1 -0
  203. package/dist/base/stack.d.ts +113 -0
  204. package/dist/base/stack.js +58 -0
  205. package/dist/base/stack.js.map +1 -1
  206. package/dist/base/stat-group.d.ts +152 -0
  207. package/dist/base/stat-group.js +97 -0
  208. package/dist/base/stat-group.js.map +1 -0
  209. package/dist/base/tab.d.ts +25 -8
  210. package/dist/base/tab.js +11 -0
  211. package/dist/base/tab.js.map +1 -1
  212. package/dist/base/table-view/column-display.d.ts +195 -0
  213. package/dist/base/table-view/column-display.js +131 -0
  214. package/dist/base/table-view/column-display.js.map +1 -0
  215. package/dist/base/table-view/data-functions.d.ts +36 -14
  216. package/dist/base/table-view/data-functions.js +26 -1
  217. package/dist/base/table-view/data-functions.js.map +1 -1
  218. package/dist/base/table-view/factory-helpers.d.ts +0 -42
  219. package/dist/base/table-view/factory-helpers.js +1 -244
  220. package/dist/base/table-view/factory-helpers.js.map +1 -1
  221. package/dist/base/table-view/factory.d.ts +5 -1
  222. package/dist/base/table-view/factory.js +158 -202
  223. package/dist/base/table-view/factory.js.map +1 -1
  224. package/dist/base/table-view/internal/auth.d.ts +33 -0
  225. package/dist/base/table-view/{auth.js → internal/auth.js} +45 -6
  226. package/dist/base/table-view/internal/auth.js.map +1 -0
  227. package/dist/base/table-view/internal/column-display.d.ts +18 -0
  228. package/dist/base/table-view/internal/column-display.js +37 -0
  229. package/dist/base/table-view/internal/column-display.js.map +1 -0
  230. package/dist/base/table-view/internal/data-functions.d.ts +14 -0
  231. package/dist/base/table-view/internal/data-functions.js +3 -0
  232. package/dist/base/table-view/internal/data-functions.js.map +1 -0
  233. package/dist/base/table-view/internal/factory-helpers.d.ts +213 -0
  234. package/dist/base/table-view/internal/factory-helpers.js +477 -0
  235. package/dist/base/table-view/internal/factory-helpers.js.map +1 -0
  236. package/dist/base/table-view/{files.d.ts → internal/files.d.ts} +5 -0
  237. package/dist/base/table-view/{files.js → internal/files.js} +14 -4
  238. package/dist/base/table-view/internal/files.js.map +1 -0
  239. package/dist/base/table-view/internal/footer.d.ts +33 -0
  240. package/dist/base/table-view/internal/footer.js +112 -0
  241. package/dist/base/table-view/internal/footer.js.map +1 -0
  242. package/dist/base/table-view/{guards.d.ts → internal/guards.d.ts} +3 -0
  243. package/dist/base/table-view/internal/guards.js +134 -0
  244. package/dist/base/table-view/internal/guards.js.map +1 -0
  245. package/dist/base/table-view/internal/meta.d.ts +5 -0
  246. package/dist/base/table-view/internal/meta.js +13 -0
  247. package/dist/base/table-view/internal/meta.js.map +1 -0
  248. package/dist/base/table-view/internal/nav-badges.d.ts +9 -0
  249. package/dist/base/table-view/internal/nav-badges.js +79 -0
  250. package/dist/base/table-view/internal/nav-badges.js.map +1 -0
  251. package/dist/base/table-view/internal/options.d.ts +6 -0
  252. package/dist/base/table-view/internal/options.js +10 -0
  253. package/dist/base/table-view/internal/options.js.map +1 -0
  254. package/dist/base/table-view/internal/realtime-listeners.d.ts +4 -0
  255. package/dist/base/table-view/internal/realtime-listeners.js +7 -0
  256. package/dist/base/table-view/internal/realtime-listeners.js.map +1 -0
  257. package/dist/base/table-view/internal/realtime.d.ts +39 -0
  258. package/dist/base/table-view/internal/realtime.js +163 -0
  259. package/dist/base/table-view/internal/realtime.js.map +1 -0
  260. package/dist/base/table-view/internal/request-filter.d.ts +75 -0
  261. package/dist/base/table-view/internal/request-filter.js +154 -0
  262. package/dist/base/table-view/internal/request-filter.js.map +1 -0
  263. package/dist/base/table-view/internal/resource-form.d.ts +25 -0
  264. package/dist/base/table-view/internal/resource-form.js +91 -0
  265. package/dist/base/table-view/internal/resource-form.js.map +1 -0
  266. package/dist/base/table-view/{row-rules.d.ts → internal/row-rules.d.ts} +5 -2
  267. package/dist/base/table-view/{row-rules.js → internal/row-rules.js} +20 -19
  268. package/dist/base/table-view/internal/row-rules.js.map +1 -0
  269. package/dist/base/table-view/internal/tabs.d.ts +39 -0
  270. package/dist/base/table-view/internal/tabs.js +116 -0
  271. package/dist/base/table-view/internal/tabs.js.map +1 -0
  272. package/dist/base/table-view/internal/validation.d.ts +99 -0
  273. package/dist/base/table-view/internal/validation.js +297 -0
  274. package/dist/base/table-view/internal/validation.js.map +1 -0
  275. package/dist/base/table-view/internal/views.d.ts +14 -0
  276. package/dist/base/table-view/internal/views.js +42 -0
  277. package/dist/base/table-view/internal/views.js.map +1 -0
  278. package/dist/base/table-view/internal/writer.d.ts +39 -0
  279. package/dist/base/table-view/internal/writer.js +55 -0
  280. package/dist/base/table-view/internal/writer.js.map +1 -0
  281. package/dist/base/table-view/meta.d.ts +77 -4
  282. package/dist/base/table-view/meta.js +133 -13
  283. package/dist/base/table-view/meta.js.map +1 -1
  284. package/dist/base/table-view/options.d.ts +749 -28
  285. package/dist/base/table-view/options.js +9 -2
  286. package/dist/base/table-view/options.js.map +1 -1
  287. package/dist/base/table-view/realtime.d.ts +26 -17
  288. package/dist/base/table-view/realtime.js +29 -126
  289. package/dist/base/table-view/realtime.js.map +1 -1
  290. package/dist/base/table-view/resource-form.d.ts +11 -5
  291. package/dist/base/table-view/resource-form.js +15 -59
  292. package/dist/base/table-view/resource-form.js.map +1 -1
  293. package/dist/base/table-view/routes.d.ts +29 -0
  294. package/dist/base/table-view/routes.js +71 -6
  295. package/dist/base/table-view/routes.js.map +1 -1
  296. package/dist/base/table-view/schema.d.ts +483 -69
  297. package/dist/base/table-view/schema.js +163 -18
  298. package/dist/base/table-view/schema.js.map +1 -1
  299. package/dist/base/table-view/source.d.ts +62 -0
  300. package/dist/base/table-view/source.js +161 -0
  301. package/dist/base/table-view/source.js.map +1 -0
  302. package/dist/base/table-view/views.d.ts +20 -0
  303. package/dist/base/table-view/views.js +38 -0
  304. package/dist/base/table-view/views.js.map +1 -0
  305. package/dist/base/table-view/writer.d.ts +7 -0
  306. package/dist/base/table-view/writer.js +17 -0
  307. package/dist/base/table-view/writer.js.map +1 -0
  308. package/dist/base/table-view.d.ts +34 -6
  309. package/dist/base/table-view.js +42 -6
  310. package/dist/base/table-view.js.map +1 -1
  311. package/dist/base/tenant-export-archive.d.ts +21 -0
  312. package/dist/base/tenant-export-archive.js +11 -0
  313. package/dist/base/tenant-export-archive.js.map +1 -1
  314. package/dist/base/top-list-card.d.ts +35 -12
  315. package/dist/base/top-list-card.js +24 -0
  316. package/dist/base/top-list-card.js.map +1 -1
  317. package/dist/base/types/action-target.d.ts +36 -20
  318. package/dist/base/types/component-input.d.ts +3 -0
  319. package/dist/base/types/confirm-dialog.d.ts +69 -0
  320. package/dist/base/types/confirm-dialog.js +3 -0
  321. package/dist/base/types/confirm-dialog.js.map +1 -0
  322. package/dist/base/types/custom-button.d.ts +48 -2
  323. package/dist/base/types/enum-option.d.ts +9 -0
  324. package/dist/base/types/error.d.ts +9 -0
  325. package/dist/base/types/error.js +7 -1
  326. package/dist/base/types/error.js.map +1 -1
  327. package/dist/base/types/export-status.d.ts +3 -0
  328. package/dist/base/types/export-status.js +3 -0
  329. package/dist/base/types/export-status.js.map +1 -1
  330. package/dist/base/types/field-config.d.ts +3 -0
  331. package/dist/base/types/form-mode.d.ts +3 -0
  332. package/dist/base/types/form-mode.js +3 -0
  333. package/dist/base/types/form-mode.js.map +1 -1
  334. package/dist/base/types/form-values.d.ts +6 -0
  335. package/dist/base/types/guards.d.ts +37 -7
  336. package/dist/base/types/index.d.ts +2 -0
  337. package/dist/base/types/index.js +2 -0
  338. package/dist/base/types/index.js.map +1 -1
  339. package/dist/base/types/internal/action-target.d.ts +8 -0
  340. package/dist/base/types/internal/action-target.js +16 -0
  341. package/dist/base/types/internal/action-target.js.map +1 -0
  342. package/dist/base/types/json.d.ts +6 -0
  343. package/dist/base/types/orientation.d.ts +3 -0
  344. package/dist/base/types/orientation.js +3 -0
  345. package/dist/base/types/orientation.js.map +1 -1
  346. package/dist/base/types/readonly-behavior.d.ts +9 -0
  347. package/dist/base/types/readonly-behavior.js +3 -0
  348. package/dist/base/types/readonly-behavior.js.map +1 -1
  349. package/dist/base/types/row-action.d.ts +111 -0
  350. package/dist/base/types/size.d.ts +1 -0
  351. package/dist/base/types/size.js +4 -0
  352. package/dist/base/types/size.js.map +1 -1
  353. package/dist/base/types/tone.d.ts +14 -0
  354. package/dist/base/types/tone.js +24 -0
  355. package/dist/base/types/tone.js.map +1 -0
  356. package/dist/client-base-url.d.ts +8 -0
  357. package/dist/client-base-url.js +8 -0
  358. package/dist/client-base-url.js.map +1 -1
  359. package/dist/component-slots.d.ts +17 -2
  360. package/dist/component-slots.js +18 -66
  361. package/dist/component-slots.js.map +1 -1
  362. package/dist/component.d.ts +113 -0
  363. package/dist/component.js +84 -1
  364. package/dist/component.js.map +1 -1
  365. package/dist/data-controllers/members.d.ts +16 -1
  366. package/dist/data-controllers/members.js +87 -26
  367. package/dist/data-controllers/members.js.map +1 -1
  368. package/dist/data-controllers/roles.d.ts +1 -0
  369. package/dist/data-controllers/roles.js +3 -3
  370. package/dist/data-controllers/roles.js.map +1 -1
  371. package/dist/db/{models → internal}/exportJobs.model.d.ts +2 -0
  372. package/dist/db/{models → internal}/exportJobs.model.js +4 -1
  373. package/dist/db/internal/exportJobs.model.js.map +1 -0
  374. package/dist/db/internal/inviteResolutions.model.d.ts +34 -0
  375. package/dist/db/internal/inviteResolutions.model.js +80 -0
  376. package/dist/db/internal/inviteResolutions.model.js.map +1 -0
  377. package/dist/db/internal/table-names.d.ts +4 -0
  378. package/dist/db/internal/table-names.js +8 -0
  379. package/dist/db/internal/table-names.js.map +1 -0
  380. package/dist/db/{models → internal}/tenantLifecycle.model.d.ts +10 -1
  381. package/dist/db/{models → internal}/tenantLifecycle.model.js +10 -1
  382. package/dist/db/internal/tenantLifecycle.model.js.map +1 -0
  383. package/dist/db/{tables → internal}/tenantLifecycle.table.d.ts +6 -0
  384. package/dist/db/{tables → internal}/tenantLifecycle.table.js +6 -0
  385. package/dist/db/internal/tenantLifecycle.table.js.map +1 -0
  386. package/dist/db/models/index.d.ts +0 -2
  387. package/dist/db/models/index.js +0 -2
  388. package/dist/db/models/index.js.map +1 -1
  389. package/dist/db/models/inviteResolutions.model.d.ts +1 -25
  390. package/dist/db/models/inviteResolutions.model.js +0 -68
  391. package/dist/db/models/inviteResolutions.model.js.map +1 -1
  392. package/dist/db/models/roles.model.d.ts +6 -0
  393. package/dist/db/models/roles.model.js +6 -0
  394. package/dist/db/models/roles.model.js.map +1 -1
  395. package/dist/db/models/tenantMembers.model.js +1 -1
  396. package/dist/db/models/tenantMembers.model.js.map +1 -1
  397. package/dist/db/models/user_invites.model.d.ts +24 -0
  398. package/dist/db/models/user_invites.model.js +25 -1
  399. package/dist/db/models/user_invites.model.js.map +1 -1
  400. package/dist/db/tables/exportJobs.table.d.ts +5 -1
  401. package/dist/db/tables/exportJobs.table.js +3 -3
  402. package/dist/db/tables/exportJobs.table.js.map +1 -1
  403. package/dist/db/tables/index.d.ts +0 -1
  404. package/dist/db/tables/index.js +0 -1
  405. package/dist/db/tables/index.js.map +1 -1
  406. package/dist/db/tables/inviteResolutions.table.d.ts +1 -1
  407. package/dist/db/tables/inviteResolutions.table.js +4 -3
  408. package/dist/db/tables/inviteResolutions.table.js.map +1 -1
  409. package/dist/db/tables/roles.table.d.ts +2 -0
  410. package/dist/db/tables/roles.table.js +4 -0
  411. package/dist/db/tables/roles.table.js.map +1 -1
  412. package/dist/db/tables/tenantMembers.table.d.ts +1 -0
  413. package/dist/db/tables/user_invites.table.d.ts +11 -0
  414. package/dist/db/tables/user_invites.table.js +4 -0
  415. package/dist/db/tables/user_invites.table.js.map +1 -1
  416. package/dist/guards.d.ts +36 -0
  417. package/dist/guards.js +30 -1
  418. package/dist/guards.js.map +1 -1
  419. package/dist/hooks.d.ts +133 -1
  420. package/dist/hooks.js +87 -1
  421. package/dist/hooks.js.map +1 -1
  422. package/dist/html-render/index.d.ts +15 -0
  423. package/dist/html-render/index.js +15 -0
  424. package/dist/html-render/index.js.map +1 -1
  425. package/dist/html-render/types.d.ts +4 -0
  426. package/dist/index.d.ts +6 -7
  427. package/dist/index.js +12 -17
  428. package/dist/index.js.map +1 -1
  429. package/dist/internal/attachments.d.ts +16 -0
  430. package/dist/internal/attachments.js +3 -0
  431. package/dist/internal/attachments.js.map +1 -0
  432. package/dist/internal/component-slots.d.ts +27 -0
  433. package/dist/internal/component-slots.js +97 -0
  434. package/dist/internal/component-slots.js.map +1 -0
  435. package/dist/internal/invite-membership.d.ts +8 -0
  436. package/dist/{invite-membership.js → internal/invite-membership.js} +11 -5
  437. package/dist/internal/invite-membership.js.map +1 -0
  438. package/dist/internal/invite-replacement.d.ts +7 -0
  439. package/dist/{invite-replacement.js → internal/invite-replacement.js} +8 -3
  440. package/dist/internal/invite-replacement.js.map +1 -0
  441. package/dist/internal/invite-resolution.d.ts +3 -0
  442. package/dist/internal/invite-resolution.js +50 -0
  443. package/dist/internal/invite-resolution.js.map +1 -0
  444. package/dist/internal/invites.d.ts +31 -0
  445. package/dist/internal/invites.js +44 -0
  446. package/dist/internal/invites.js.map +1 -0
  447. package/dist/internal/permission-gate.d.ts +23 -0
  448. package/dist/internal/permission-gate.js +43 -0
  449. package/dist/internal/permission-gate.js.map +1 -0
  450. package/dist/internal/tenant-access.d.ts +28 -0
  451. package/dist/internal/tenant-access.js +28 -0
  452. package/dist/internal/tenant-access.js.map +1 -0
  453. package/dist/internal/tenant-ownership.d.ts +13 -0
  454. package/dist/internal/tenant-ownership.js +95 -0
  455. package/dist/internal/tenant-ownership.js.map +1 -0
  456. package/dist/internal/uploads.d.ts +19 -0
  457. package/dist/internal/uploads.js +3 -0
  458. package/dist/internal/uploads.js.map +1 -0
  459. package/dist/invite-extensions/availability.d.ts +28 -3
  460. package/dist/invite-extensions/availability.js +26 -23
  461. package/dist/invite-extensions/availability.js.map +1 -1
  462. package/dist/invite-extensions/internal/availability.d.ts +12 -0
  463. package/dist/invite-extensions/internal/availability.js +32 -0
  464. package/dist/invite-extensions/internal/availability.js.map +1 -0
  465. package/dist/invite-extensions/internal/delivery.d.ts +44 -0
  466. package/dist/invite-extensions/{delivery.js → internal/delivery.js} +38 -0
  467. package/dist/invite-extensions/internal/delivery.js.map +1 -0
  468. package/dist/invite-extensions/internal/edit.d.ts +34 -0
  469. package/dist/invite-extensions/{edit.js → internal/edit.js} +33 -0
  470. package/dist/invite-extensions/internal/edit.js.map +1 -0
  471. package/dist/invite-extensions/internal/field-ids.d.ts +21 -0
  472. package/dist/invite-extensions/{field-ids.js → internal/field-ids.js} +13 -0
  473. package/dist/invite-extensions/internal/field-ids.js.map +1 -0
  474. package/dist/invite-extensions/internal/form-slot.d.ts +13 -0
  475. package/dist/invite-extensions/{form-slot.js → internal/form-slot.js} +49 -4
  476. package/dist/invite-extensions/internal/form-slot.js.map +1 -0
  477. package/dist/invite-extensions/internal/payload-slices.d.ts +31 -0
  478. package/dist/invite-extensions/{payload-slices.js → internal/payload-slices.js} +30 -0
  479. package/dist/invite-extensions/internal/payload-slices.js.map +1 -0
  480. package/dist/invite-extensions/internal/registry.d.ts +48 -0
  481. package/dist/invite-extensions/internal/registry.js +77 -0
  482. package/dist/invite-extensions/internal/registry.js.map +1 -0
  483. package/dist/invite-extensions/internal/types.d.ts +61 -0
  484. package/dist/invite-extensions/internal/types.js +3 -0
  485. package/dist/invite-extensions/internal/types.js.map +1 -0
  486. package/dist/invite-extensions/registry.d.ts +44 -12
  487. package/dist/invite-extensions/registry.js +51 -43
  488. package/dist/invite-extensions/registry.js.map +1 -1
  489. package/dist/invite-extensions/types.d.ts +59 -34
  490. package/dist/invite-extensions.d.ts +30 -4
  491. package/dist/invite-extensions.js +57 -7
  492. package/dist/invite-extensions.js.map +1 -1
  493. package/dist/invite-resolution.d.ts +5 -2
  494. package/dist/invite-resolution.js +16 -46
  495. package/dist/invite-resolution.js.map +1 -1
  496. package/dist/invitee-display-name.d.ts +5 -0
  497. package/dist/invitee-display-name.js +15 -0
  498. package/dist/invitee-display-name.js.map +1 -0
  499. package/dist/invites.d.ts +46 -14
  500. package/dist/invites.js +41 -44
  501. package/dist/invites.js.map +1 -1
  502. package/dist/layout-banners.d.ts +68 -0
  503. package/dist/layout-banners.js +18 -0
  504. package/dist/layout-banners.js.map +1 -1
  505. package/dist/notifications/builder.d.ts +3 -1
  506. package/dist/notifications/builder.js +10 -0
  507. package/dist/notifications/builder.js.map +1 -1
  508. package/dist/notifications/index.d.ts +1 -0
  509. package/dist/notifications/index.js +16 -0
  510. package/dist/notifications/index.js.map +1 -1
  511. package/dist/notifications/internal.d.ts +8 -5
  512. package/dist/notifications/internal.js +6 -0
  513. package/dist/notifications/internal.js.map +1 -1
  514. package/dist/notifications/sendable.d.ts +6 -0
  515. package/dist/notifications/sendable.js +13 -4
  516. package/dist/notifications/sendable.js.map +1 -1
  517. package/dist/notifications/types.d.ts +26 -1
  518. package/dist/page/categories.d.ts +19 -17
  519. package/dist/page/categories.js +24 -168
  520. package/dist/page/categories.js.map +1 -1
  521. package/dist/page/component-tree.d.ts +15 -1
  522. package/dist/page/component-tree.js +0 -40
  523. package/dist/page/component-tree.js.map +1 -1
  524. package/dist/page/controllers.d.ts +135 -0
  525. package/dist/page/controllers.js +124 -8
  526. package/dist/page/controllers.js.map +1 -1
  527. package/dist/page/declaration-conflict.d.ts +9 -0
  528. package/dist/page/declaration-conflict.js +17 -0
  529. package/dist/page/declaration-conflict.js.map +1 -0
  530. package/dist/page/form-page-routes.d.ts +7 -10
  531. package/dist/page/form-page-routes.js +14 -31
  532. package/dist/page/form-page-routes.js.map +1 -1
  533. package/dist/page/internal/categories.d.ts +62 -0
  534. package/dist/page/internal/categories.js +260 -0
  535. package/dist/page/internal/categories.js.map +1 -0
  536. package/dist/page/internal/component-target.d.ts +37 -0
  537. package/dist/page/{component-target.js → internal/component-target.js} +27 -2
  538. package/dist/page/internal/component-target.js.map +1 -0
  539. package/dist/page/internal/component-tree.d.ts +13 -0
  540. package/dist/page/internal/component-tree.js +61 -0
  541. package/dist/page/internal/component-tree.js.map +1 -0
  542. package/dist/page/{extension-assembly.d.ts → internal/extension-assembly.d.ts} +5 -2
  543. package/dist/page/{extension-assembly.js → internal/extension-assembly.js} +8 -0
  544. package/dist/page/internal/extension-assembly.js.map +1 -0
  545. package/dist/page/internal/extension-validation.d.ts +24 -0
  546. package/dist/page/{extension-validation.js → internal/extension-validation.js} +8 -0
  547. package/dist/page/internal/extension-validation.js.map +1 -0
  548. package/dist/page/internal/form-page-routes.d.ts +26 -0
  549. package/dist/page/internal/form-page-routes.js +40 -0
  550. package/dist/page/internal/form-page-routes.js.map +1 -0
  551. package/dist/page/internal/layout-filter.d.ts +21 -0
  552. package/dist/page/internal/layout-filter.js +101 -0
  553. package/dist/page/internal/layout-filter.js.map +1 -0
  554. package/dist/page/{metadata-helpers.d.ts → internal/metadata-helpers.d.ts} +4 -1
  555. package/dist/page/{metadata-helpers.js → internal/metadata-helpers.js} +19 -2
  556. package/dist/page/internal/metadata-helpers.js.map +1 -0
  557. package/dist/page/internal/nav-badges.d.ts +17 -0
  558. package/dist/page/internal/nav-badges.js +68 -0
  559. package/dist/page/internal/nav-badges.js.map +1 -0
  560. package/dist/page/internal/page-registration.d.ts +29 -0
  561. package/dist/page/internal/page-registration.js +41 -0
  562. package/dist/page/internal/page-registration.js.map +1 -0
  563. package/dist/page/internal/registry.d.ts +128 -0
  564. package/dist/page/internal/registry.js +225 -0
  565. package/dist/page/internal/registry.js.map +1 -0
  566. package/dist/page/internal/table-view-ids.d.ts +10 -0
  567. package/dist/page/internal/table-view-ids.js +39 -0
  568. package/dist/page/internal/table-view-ids.js.map +1 -0
  569. package/dist/page/internal/types.d.ts +2 -0
  570. package/dist/page/internal/types.js +6 -0
  571. package/dist/page/internal/types.js.map +1 -0
  572. package/dist/page/layout-filter.d.ts +4 -0
  573. package/dist/page/layout-filter.js +11 -0
  574. package/dist/page/layout-filter.js.map +1 -1
  575. package/dist/page/metadata.d.ts +93 -0
  576. package/dist/page/metadata.js +236 -28
  577. package/dist/page/metadata.js.map +1 -1
  578. package/dist/page/registry.d.ts +17 -36
  579. package/dist/page/registry.js +25 -127
  580. package/dist/page/registry.js.map +1 -1
  581. package/dist/page/roots.d.ts +10 -0
  582. package/dist/page/roots.js +27 -6
  583. package/dist/page/roots.js.map +1 -1
  584. package/dist/page/types.d.ts +186 -1
  585. package/dist/page/types.js +1 -2
  586. package/dist/page/types.js.map +1 -1
  587. package/dist/page.d.ts +23 -1
  588. package/dist/page.js +24 -2
  589. package/dist/page.js.map +1 -1
  590. package/dist/permission-gate.d.ts +14 -0
  591. package/dist/permission-gate.js +3 -0
  592. package/dist/permission-gate.js.map +1 -0
  593. package/dist/permissions-resolver.d.ts +24 -0
  594. package/dist/permissions-resolver.js +24 -0
  595. package/dist/permissions-resolver.js.map +1 -1
  596. package/dist/permissions.d.ts +27 -0
  597. package/dist/permissions.js +37 -0
  598. package/dist/permissions.js.map +1 -1
  599. package/dist/quick-actions.d.ts +27 -0
  600. package/dist/quick-actions.js +1 -0
  601. package/dist/quick-actions.js.map +1 -1
  602. package/dist/realtime.d.ts +29 -0
  603. package/dist/realtime.js +30 -0
  604. package/dist/realtime.js.map +1 -1
  605. package/dist/request-tenant.d.ts +17 -0
  606. package/dist/request-tenant.js +18 -1
  607. package/dist/request-tenant.js.map +1 -1
  608. package/dist/tenant-access.d.ts +38 -6
  609. package/dist/tenant-access.js +38 -8
  610. package/dist/tenant-access.js.map +1 -1
  611. package/dist/tenant-export.d.ts +19 -0
  612. package/dist/tenant-lifecycle.d.ts +13 -0
  613. package/dist/tenant-lifecycle.js +22 -1
  614. package/dist/tenant-lifecycle.js.map +1 -1
  615. package/dist/tenant-ownership.d.ts +2 -1
  616. package/dist/tenant-ownership.js +5 -85
  617. package/dist/tenant-ownership.js.map +1 -1
  618. package/dist/tenant-scoped-model.d.ts +8 -0
  619. package/dist/tenant-scoped-model.js +8 -0
  620. package/dist/tenant-scoped-model.js.map +1 -1
  621. package/dist/uploads.d.ts +24 -16
  622. package/dist/uploads.js +24 -0
  623. package/dist/uploads.js.map +1 -1
  624. package/dist/utils/fire-and-forget.d.ts +4 -0
  625. package/dist/utils/fire-and-forget.js +4 -0
  626. package/dist/utils/fire-and-forget.js.map +1 -1
  627. package/dist/utils/internal/owned-registry.d.ts +36 -0
  628. package/dist/utils/internal/owned-registry.js +60 -0
  629. package/dist/utils/internal/owned-registry.js.map +1 -0
  630. package/dist/utils/{row-instance.d.ts → internal/row-instance.d.ts} +1 -0
  631. package/dist/utils/internal/row-instance.js +12 -0
  632. package/dist/utils/internal/row-instance.js.map +1 -0
  633. package/dist/utils/internal/saas-mode.d.ts +8 -0
  634. package/dist/utils/internal/saas-mode.js +3 -0
  635. package/dist/utils/internal/saas-mode.js.map +1 -0
  636. package/dist/utils/{time.d.ts → internal/time.d.ts} +4 -0
  637. package/dist/utils/{time.js → internal/time.js} +4 -0
  638. package/dist/utils/internal/time.js.map +1 -0
  639. package/dist/utils/{type-check.d.ts → internal/type-check.d.ts} +12 -0
  640. package/dist/utils/{type-check.js → internal/type-check.js} +12 -0
  641. package/dist/utils/internal/type-check.js.map +1 -0
  642. package/dist/utils/internal/value-parser.d.ts +86 -0
  643. package/dist/utils/internal/value-parser.js +160 -0
  644. package/dist/utils/internal/value-parser.js.map +1 -0
  645. package/dist/utils/saas-mode.d.ts +25 -3
  646. package/dist/utils/saas-mode.js +24 -0
  647. package/dist/utils/saas-mode.js.map +1 -1
  648. package/package.json +3 -3
  649. package/dist/base/block-registry/describe.d.ts +0 -6
  650. package/dist/base/block-registry/describe.js.map +0 -1
  651. package/dist/base/block-registry/ui.d.ts +0 -5
  652. package/dist/base/block-registry/ui.js +0 -17
  653. package/dist/base/block-registry/ui.js.map +0 -1
  654. package/dist/base/table-view/auth.d.ts +0 -9
  655. package/dist/base/table-view/auth.js.map +0 -1
  656. package/dist/base/table-view/files.js.map +0 -1
  657. package/dist/base/table-view/guards.js +0 -85
  658. package/dist/base/table-view/guards.js.map +0 -1
  659. package/dist/base/table-view/row-rules.js.map +0 -1
  660. package/dist/base/tree.d.ts +0 -115
  661. package/dist/base/tree.js +0 -145
  662. package/dist/base/tree.js.map +0 -1
  663. package/dist/db/models/exportJobs.model.js.map +0 -1
  664. package/dist/db/models/tenantLifecycle.model.js.map +0 -1
  665. package/dist/db/tables/tenantLifecycle.table.js.map +0 -1
  666. package/dist/invite-extensions/delivery.d.ts +0 -5
  667. package/dist/invite-extensions/delivery.js.map +0 -1
  668. package/dist/invite-extensions/edit.d.ts +0 -4
  669. package/dist/invite-extensions/edit.js.map +0 -1
  670. package/dist/invite-extensions/field-ids.d.ts +0 -7
  671. package/dist/invite-extensions/field-ids.js.map +0 -1
  672. package/dist/invite-extensions/form-slot.d.ts +0 -2
  673. package/dist/invite-extensions/form-slot.js.map +0 -1
  674. package/dist/invite-extensions/internal.d.ts +0 -17
  675. package/dist/invite-extensions/internal.js +0 -55
  676. package/dist/invite-extensions/internal.js.map +0 -1
  677. package/dist/invite-extensions/payload-slices.d.ts +0 -8
  678. package/dist/invite-extensions/payload-slices.js.map +0 -1
  679. package/dist/invite-membership.d.ts +0 -3
  680. package/dist/invite-membership.js.map +0 -1
  681. package/dist/invite-replacement.d.ts +0 -2
  682. package/dist/invite-replacement.js.map +0 -1
  683. package/dist/page/component-target.d.ts +0 -10
  684. package/dist/page/component-target.js.map +0 -1
  685. package/dist/page/extension-assembly.js.map +0 -1
  686. package/dist/page/extension-validation.d.ts +0 -7
  687. package/dist/page/extension-validation.js.map +0 -1
  688. package/dist/page/metadata-helpers.js.map +0 -1
  689. package/dist/page/page-registration.d.ts +0 -13
  690. package/dist/page/page-registration.js +0 -22
  691. package/dist/page/page-registration.js.map +0 -1
  692. package/dist/utils/owned-registry.d.ts +0 -10
  693. package/dist/utils/owned-registry.js +0 -34
  694. package/dist/utils/owned-registry.js.map +0 -1
  695. package/dist/utils/row-instance.js +0 -8
  696. package/dist/utils/row-instance.js.map +0 -1
  697. package/dist/utils/time.js.map +0 -1
  698. package/dist/utils/type-check.js.map +0 -1
  699. package/dist/utils/value-parser.d.ts +0 -11
  700. package/dist/utils/value-parser.js +0 -86
  701. package/dist/utils/value-parser.js.map +0 -1
@@ -1,9 +1,23 @@
1
1
  import type { Component } from "../component";
2
+ /**
3
+ * How a position is authorized.
4
+ *
5
+ * - `own`: its id is registered in the grantable tree and mapped back from the
6
+ * component, and the position is served only once granted. Every root and
7
+ * synchronously declared child has its own permission.
8
+ * - `withheld`: never served. The id belongs to something else, so no answer
9
+ * about it can be trusted.
10
+ */
2
11
  export type ComponentAccess = "own" | "withheld";
12
+ /**
13
+ * One component of a page, at the position it occupies in the component tree.
14
+ * A page's own component is the root; every `.child()` below it is a node of
15
+ * its own, keyed by the dot-separated path of ids leading to it.
16
+ */
3
17
  export interface ComponentTreeNode {
4
18
  component: Component;
5
19
  permissionId: string;
20
+ /** 0 for the component the page declares, 1 for its children, and so on. */
6
21
  depth: number;
7
22
  access: ComponentAccess;
8
23
  }
9
- export declare function collectComponentTree(root: Component, rootPermissionId: string): ComponentTreeNode[];
@@ -1,43 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectComponentTree = collectComponentTree;
4
- const logging_1 = require("@antelopejs/interface-core/logging");
5
- const component_target_1 = require("./component-target");
6
- function childAccess(parent, childId) {
7
- if (parent.actions[childId])
8
- return "withheld";
9
- return "own";
10
- }
11
- function collectComponentTree(root, rootPermissionId) {
12
- const nodes = [];
13
- const ancestors = new Set();
14
- const walk = (node) => {
15
- if (ancestors.has(node.component)) {
16
- logging_1.Logging.Warn(`[dms] component "${node.permissionId}" nests itself; the cycle is not walked further.`);
17
- return;
18
- }
19
- nodes.push(node);
20
- if (node.access === "withheld") {
21
- logging_1.Logging.Error(`[dms] "${node.permissionId}" is claimed by both an action and a child of the same name; the child and everything below it is withheld. Rename one of them.`);
22
- return;
23
- }
24
- ancestors.add(node.component);
25
- for (const child of (0, component_target_1.getDeclaredComponentChildren)(node.component)) {
26
- walk({
27
- component: child.component,
28
- permissionId: `${node.permissionId}.${child.id}`,
29
- depth: node.depth + 1,
30
- access: childAccess(node.component, child.id),
31
- });
32
- }
33
- ancestors.delete(node.component);
34
- };
35
- walk({
36
- component: root,
37
- permissionId: rootPermissionId,
38
- depth: 0,
39
- access: "own",
40
- });
41
- return nodes;
42
- }
43
3
  //# sourceMappingURL=component-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-tree.js","sourceRoot":"","sources":["../../src/page/component-tree.ts"],"names":[],"mappings":";;AA+CA,oDA2CC;AA1FD,gEAA6D;AAE7D,yDAAkE;AAgClE,SAAS,WAAW,CAAC,MAAiB,EAAE,OAAe;IACrD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,SAAgB,oBAAoB,CAClC,IAAe,EACf,gBAAwB;IAExB,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAa,CAAC;IAEvC,MAAM,IAAI,GAAG,CAAC,IAAuB,EAAQ,EAAE;QAC7C,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,iBAAO,CAAC,IAAI,CACV,oBAAoB,IAAI,CAAC,YAAY,kDAAkD,CACxF,CAAC;YACF,OAAO;QACT,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGjB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,iBAAO,CAAC,KAAK,CACX,UAAU,IAAI,CAAC,YAAY,iIAAiI,CAC7J,CAAC;YACF,OAAO;QACT,CAAC;QAED,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAA,+CAA4B,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE;gBAChD,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;gBACrB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,gBAAgB;QAC9B,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"component-tree.js","sourceRoot":"","sources":["../../src/page/component-tree.ts"],"names":[],"mappings":""}
@@ -2,6 +2,48 @@ import { type ControllerClass } from "@antelopejs/interface-api";
2
2
  import { type ComponentInfo } from "../component";
3
3
  import type { CategoryInfo, DynamicMenuResolver, MenuOptions } from "./types";
4
4
  export declare const RegisterPage: () => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>>;
5
+ /**
6
+ * Inject components into a page owned by another module. The decorated class is
7
+ * not a page: every static component field on it becomes a component of the
8
+ * target page, keyed by its field name, and therefore permissioned as
9
+ * `<target page id>.<field name>` in that page's own permission tree — exactly
10
+ * like a component the page declares itself.
11
+ *
12
+ * The target is named by its page id, never imported: an extending module
13
+ * depends on `@antelopejs/interface-dms` alone, and stays out of the target
14
+ * module's registrations. A page id is the dotted path of its categories
15
+ * followed by its own id — it is also the page's permission id, the one listed
16
+ * in the roles screen and returned by `GetPermissionId(ThePageClass)` inside
17
+ * the owning module. The DMS members page, for instance, is
18
+ * `settings.workspace.members`.
19
+ *
20
+ * Placement is declared on each component with `.before(anchor)` /
21
+ * `.after(anchor)`, where an anchor is a static field name of the target page
22
+ * (`"table"`) or the dotted path to a nested position (`"content.tasks"`).
23
+ * Without one, the component is appended after the page's own components. When
24
+ * several components land at the same spot, `.order(n)` decides, and equal
25
+ * orders fall back to the extension class name then to declaration order —
26
+ * never to module start order.
27
+ *
28
+ * The injection applies as soon as the target page has finished registering —
29
+ * it is held until then whichever module starts first, and stays held, with a
30
+ * warning once the project has started, for a page id no module registers — and
31
+ * is removed when the extending module stops. Anchors and field names are
32
+ * checked against the target page when the injection applies: a field name the
33
+ * page or another extension already uses, or an anchor the page does not
34
+ * declare, is reported and the extension is skipped.
35
+ *
36
+ * ```ts
37
+ * @RegisterPageExtension("settings.workspace.members")
38
+ * export class SeatQuotaExtension {
39
+ * static seatQuota = CustomComponent("SeatQuotaBanner")
40
+ * .meta({ name: "Seat quota" })
41
+ * .before("table");
42
+ * }
43
+ * ```
44
+ *
45
+ * @param targetPageId Full id of the page to extend.
46
+ */
5
47
  export declare const RegisterPageExtension: (targetPageId: string) => import("@antelopejs/interface-core/decorators").ClassDecorator<import("@antelopejs/interface-core/decorators").Class<any, any[]>>;
6
48
  export declare function Category(id: string, options: MenuOptions): CategoryInfo;
7
49
  export declare function PageController(id: string, options: MenuOptions, layout?: ComponentInfo): {
@@ -16,11 +58,76 @@ export declare function RootPageController(id: string, options: Omit<MenuOptions
16
58
  extend: <T extends ControllerClass>(this: T, location: string) => T;
17
59
  location: string;
18
60
  };
61
+ /**
62
+ * Register a resolver contributing per-request entries under an existing
63
+ * category. The resolver runs during `/sitelayout`, and its entries are grafted
64
+ * onto that request's tree copy only — the global navigation tree is never
65
+ * touched, so one tenant's entries can never reach another's site layout.
66
+ *
67
+ * Dynamic and static children of the category sort together by `order`, then
68
+ * by display name and id — so entries that share a rank keep the same order on
69
+ * every host and across restarts.
70
+ *
71
+ * Entries link to an already registered page, so a single page (typically with
72
+ * `validation.requiredQueryParams`) serves them all. An entry's `permissionId`
73
+ * decides whether it is **listed**, nothing more: the target page receives the
74
+ * entry's `query` like any other caller-supplied input and must authorize the
75
+ * value itself. The menu is a convenience, never a boundary.
76
+ *
77
+ * Providers run concurrently, and one that throws — or does not answer within
78
+ * two seconds — contributes nothing to that request and is reported once: the
79
+ * rest of the menu still resolves, and its entries come back when it does.
80
+ * Call `NotifyMenuChanged()` when the underlying data changes.
81
+ *
82
+ * The registration is bound to the **registering** module, not to the category
83
+ * it targets: a provider whose category is not (or no longer) registered lies
84
+ * dormant and resolves again as soon as the category appears, so module start
85
+ * order and hot reloads need no coordination.
86
+ *
87
+ * @param categoryFullId Dot-separated `fullId` of the parent category.
88
+ * @param resolver Called once per site-layout request.
89
+ * @returns Removes this provider, for the rare case a module drops it while
90
+ * staying loaded.
91
+ */
19
92
  export declare function RegisterDynamicMenuProvider(categoryFullId: string, resolver: DynamicMenuResolver): () => void;
93
+ /**
94
+ * Signal that the navigation menu's underlying data changed (e.g. a project was
95
+ * created or deleted), so connected clients resync their site layout.
96
+ *
97
+ * The signal carries no data: it is an invalidation, and each client re-fetches
98
+ * its own `/sitelayout`, which is resolved against its own permissions.
99
+ *
100
+ * Pass the `tenantId` whose data changed so only that tenant's sessions
101
+ * re-fetch; omitting it invalidates the menu for every connected session, which
102
+ * is meant for changes that are not tenant-scoped.
103
+ */
20
104
  export declare const NotifyMenuChanged: (tenantId?: string | undefined) => Promise<void>;
105
+ /**
106
+ * Create a new top-level category at the root of the sidebar, alongside the
107
+ * built-in Pages / Modules / Settings groups. Use this to register your own
108
+ * top-level navigation group with its own label, icon and order. Pages and
109
+ * nested categories can then target it via `category`.
110
+ *
111
+ * Defaults `type` to `"label"` so the category renders as a section heading.
112
+ */
21
113
  export declare function RootCategory(id: string, options: Omit<MenuOptions, "category" | "module">): CategoryInfo;
114
+ /**
115
+ * The renderer a frontend module is written for. The DMS keys its frontend
116
+ * registry on it, and serves a renderer only the modules registered for its
117
+ * name and the major of its version.
118
+ *
119
+ * It names a framework, not a loader release: `{ name: "vue", version: "3" }`
120
+ * is Vue 3, whichever `@antelopejs/dms-frontend` release loads it. The loader
121
+ * releases a module runs on are declared by the module itself, in the
122
+ * package.json of its `sourcePath`, under `engines` keyed by the loader package
123
+ * (`"@antelopejs/dms-frontend": ">=0.4.0 <0.5.0"`). The loader reads that file,
124
+ * with or without a backend, and refuses a module whose range excludes it; the
125
+ * DMS passes the directory through without reading it.
126
+ */
22
127
  export interface FrontendRendererMetadata {
128
+ /** Framework the module targets, such as `vue`. */
23
129
  name: string;
130
+ /** Version of that framework, compared by major only, such as `3`. */
24
131
  version: string;
25
132
  }
26
133
  export type FrontendModuleValue = string | number | boolean | null | FrontendModuleValue[] | FrontendModuleOptions;
@@ -35,6 +142,26 @@ export interface AddFrontendModuleOptions {
35
142
  privateOptions?: FrontendModuleOptions;
36
143
  priority?: number;
37
144
  configKey?: string;
145
+ /**
146
+ * Absolute backend API paths (`/api/...`) the frontend server may open a
147
+ * session from on behalf of this module.
148
+ *
149
+ * A module whose own flow ends on an authenticated user — a self-service
150
+ * registration completing, an invitation being redeemed — names here the
151
+ * backend route that mints the token pair. The frontend server then accepts
152
+ * that path on its `/auth/establish` route and seals its session cookie from
153
+ * the tokens it fetched itself, so the browser never carries one.
154
+ *
155
+ * Declaring a path is what makes it a session-opening route: any backend
156
+ * endpoint left out stays refused, and the operator can still widen the list
157
+ * per deployment through the frontend server's
158
+ * `DMS_AUTH_ESTABLISH_ENDPOINTS`. The DMS's own login, signup and 2FA routes
159
+ * are wired into the frontend server directly and need no declaration.
160
+ *
161
+ * Each entry must be an absolute path under `/api/`, with no query string
162
+ * and no segment that climbs out of it; anything else is rejected at
163
+ * registration.
164
+ */
38
165
  authEstablishEndpoints?: string[];
39
166
  }
40
167
  export declare const AddFrontendModule: (config: AddFrontendModuleOptions) => Promise<void>;
@@ -44,6 +171,14 @@ export interface FrontendModuleMetadata {
44
171
  renderer: FrontendRendererMetadata;
45
172
  priority: number;
46
173
  options: FrontendModuleOptions;
174
+ /**
175
+ * Absolute backend API paths (`/api/...`) the frontend server may open a
176
+ * session from on behalf of this module, as declared by
177
+ * {@link AddFrontendModuleOptions.authEstablishEndpoints}. Empty when the
178
+ * module declared none, absent when the DMS serving this metadata predates
179
+ * the field.
180
+ */
47
181
  authEstablishEndpoints?: string[];
48
182
  }
183
+ /** Returns registered frontend source metadata for server-side module discovery, excluding private options. */
49
184
  export declare const GetFrontendModules: () => Promise<FrontendModuleMetadata[]>;
@@ -11,13 +11,26 @@ const interface_core_1 = require("@antelopejs/interface-core");
11
11
  const decorators_1 = require("@antelopejs/interface-core/decorators");
12
12
  const logging_1 = require("@antelopejs/interface-core/logging");
13
13
  const component_1 = require("../component");
14
- const categories_1 = require("./categories");
14
+ const categories_1 = require("./internal/categories");
15
+ const categories_2 = require("./categories");
15
16
  const metadata_1 = require("./metadata");
17
+ const fire_and_forget_1 = require("../utils/fire-and-forget");
18
+ /**
19
+ * Static component fields of a class, in declaration order. Underscore-prefixed
20
+ * fields are skipped, so a class can keep private static state.
21
+ */
22
+ // `object` is the contract: this walks a decorated class whose static
23
+ // fields are only known at run time, which is the whole point of the
24
+ // decorator. A narrower type would only push an assertion here.
25
+ // oxlint-disable-next-line anti-slop/no-object-parameters
16
26
  function collectStaticComponents(cl) {
17
27
  const fields = [];
18
28
  for (const key of Object.getOwnPropertyNames(cl)) {
19
29
  if (key.startsWith("_"))
20
30
  continue;
31
+ // Reading a static field whose name is only known at run time is the
32
+ // whole job here; the alternative is an assertion to a dictionary.
33
+ // oxlint-disable-next-line anti-slop/no-reflect-get
21
34
  const value = Reflect.get(cl, key);
22
35
  if (value instanceof component_1.Component) {
23
36
  fields.push({ key, component: value });
@@ -30,11 +43,18 @@ exports.RegisterPage = (0, decorators_1.MakeClassDecorator)((cl) => {
30
43
  for (const { key, component } of collectStaticComponents(cl)) {
31
44
  meta.SetComponent(key, component);
32
45
  }
33
- void meta.Register();
46
+ (0, fire_and_forget_1.fireAndForget)(meta.Register(), "page registration");
34
47
  });
35
- function buildExtensionComponents(extensionClass) {
48
+ function buildExtensionComponents(
49
+ // `object` is the contract: this walks a decorated class whose static
50
+ // fields are only known at run time, which is the whole point of the
51
+ // decorator. A narrower type would only push an assertion here.
52
+ // oxlint-disable-next-line anti-slop/no-object-parameters
53
+ extensionClass) {
36
54
  return collectStaticComponents(extensionClass).map(({ key, component }) => {
37
55
  const placement = component.placement ?? component_1.DEFAULT_PLACEMENT;
56
+ // `anchorPath` is set only when the placement names an anchor: its absence
57
+ // is what extension-assembly reads as "append at the end".
38
58
  const entry = {
39
59
  key,
40
60
  component,
@@ -47,10 +67,52 @@ function buildExtensionComponents(extensionClass) {
47
67
  return entry;
48
68
  });
49
69
  }
70
+ /**
71
+ * Inject components into a page owned by another module. The decorated class is
72
+ * not a page: every static component field on it becomes a component of the
73
+ * target page, keyed by its field name, and therefore permissioned as
74
+ * `<target page id>.<field name>` in that page's own permission tree — exactly
75
+ * like a component the page declares itself.
76
+ *
77
+ * The target is named by its page id, never imported: an extending module
78
+ * depends on `@antelopejs/interface-dms` alone, and stays out of the target
79
+ * module's registrations. A page id is the dotted path of its categories
80
+ * followed by its own id — it is also the page's permission id, the one listed
81
+ * in the roles screen and returned by `GetPermissionId(ThePageClass)` inside
82
+ * the owning module. The DMS members page, for instance, is
83
+ * `settings.workspace.members`.
84
+ *
85
+ * Placement is declared on each component with `.before(anchor)` /
86
+ * `.after(anchor)`, where an anchor is a static field name of the target page
87
+ * (`"table"`) or the dotted path to a nested position (`"content.tasks"`).
88
+ * Without one, the component is appended after the page's own components. When
89
+ * several components land at the same spot, `.order(n)` decides, and equal
90
+ * orders fall back to the extension class name then to declaration order —
91
+ * never to module start order.
92
+ *
93
+ * The injection applies as soon as the target page has finished registering —
94
+ * it is held until then whichever module starts first, and stays held, with a
95
+ * warning once the project has started, for a page id no module registers — and
96
+ * is removed when the extending module stops. Anchors and field names are
97
+ * checked against the target page when the injection applies: a field name the
98
+ * page or another extension already uses, or an anchor the page does not
99
+ * declare, is reported and the extension is skipped.
100
+ *
101
+ * ```ts
102
+ * @RegisterPageExtension("settings.workspace.members")
103
+ * export class SeatQuotaExtension {
104
+ * static seatQuota = CustomComponent("SeatQuotaBanner")
105
+ * .meta({ name: "Seat quota" })
106
+ * .before("table");
107
+ * }
108
+ * ```
109
+ *
110
+ * @param targetPageId Full id of the page to extend.
111
+ */
50
112
  exports.RegisterPageExtension = (0, decorators_1.MakeClassDecorator)((cl, targetPageId) => {
51
113
  const extensionName = cl.name || "anonymous page extension";
52
114
  if (!targetPageId.trim()) {
53
- throw new Error(`Page extension "${extensionName}" must name the page it extends by its full id, for example "settings.user.members".`);
115
+ throw new Error(`Page extension "${extensionName}" must name the page it extends by its full id, for example "settings.workspace.members".`);
54
116
  }
55
117
  const components = buildExtensionComponents(cl);
56
118
  if (components.length === 0) {
@@ -62,7 +124,7 @@ exports.RegisterPageExtension = (0, decorators_1.MakeClassDecorator)((cl, target
62
124
  targetFullId: targetPageId,
63
125
  components,
64
126
  };
65
- categories_1.internal.RegisterPageExtension.register(info);
127
+ categories_2.internal.RegisterPageExtension.register(info);
66
128
  });
67
129
  function assertHasCategoryOrModule(id, options, kind) {
68
130
  if (!options.category && !options.module) {
@@ -93,22 +155,76 @@ function RootPageController(id, options, layout) {
93
155
  meta.SetInfo(id, fullSlug, options, layout);
94
156
  return cl;
95
157
  }
158
+ /**
159
+ * Register a resolver contributing per-request entries under an existing
160
+ * category. The resolver runs during `/sitelayout`, and its entries are grafted
161
+ * onto that request's tree copy only — the global navigation tree is never
162
+ * touched, so one tenant's entries can never reach another's site layout.
163
+ *
164
+ * Dynamic and static children of the category sort together by `order`, then
165
+ * by display name and id — so entries that share a rank keep the same order on
166
+ * every host and across restarts.
167
+ *
168
+ * Entries link to an already registered page, so a single page (typically with
169
+ * `validation.requiredQueryParams`) serves them all. An entry's `permissionId`
170
+ * decides whether it is **listed**, nothing more: the target page receives the
171
+ * entry's `query` like any other caller-supplied input and must authorize the
172
+ * value itself. The menu is a convenience, never a boundary.
173
+ *
174
+ * Providers run concurrently, and one that throws — or does not answer within
175
+ * two seconds — contributes nothing to that request and is reported once: the
176
+ * rest of the menu still resolves, and its entries come back when it does.
177
+ * Call `NotifyMenuChanged()` when the underlying data changes.
178
+ *
179
+ * The registration is bound to the **registering** module, not to the category
180
+ * it targets: a provider whose category is not (or no longer) registered lies
181
+ * dormant and resolves again as soon as the category appears, so module start
182
+ * order and hot reloads need no coordination.
183
+ *
184
+ * @param categoryFullId Dot-separated `fullId` of the parent category.
185
+ * @param resolver Called once per site-layout request.
186
+ * @returns Removes this provider, for the rare case a module drops it while
187
+ * staying loaded.
188
+ */
96
189
  function RegisterDynamicMenuProvider(categoryFullId, resolver) {
97
190
  const info = { categoryFullId, resolver };
98
- categories_1.internal.RegisterDynamicMenuProvider.register(info);
99
- return () => categories_1.internal.RegisterDynamicMenuProvider.unregister(info);
191
+ categories_2.internal.RegisterDynamicMenuProvider.register(info);
192
+ return () => categories_2.internal.RegisterDynamicMenuProvider.unregister(info);
100
193
  }
194
+ /**
195
+ * Signal that the navigation menu's underlying data changed (e.g. a project was
196
+ * created or deleted), so connected clients resync their site layout.
197
+ *
198
+ * The signal carries no data: it is an invalidation, and each client re-fetches
199
+ * its own `/sitelayout`, which is resolved against its own permissions.
200
+ *
201
+ * Pass the `tenantId` whose data changed so only that tenant's sessions
202
+ * re-fetch; omitting it invalidates the menu for every connected session, which
203
+ * is meant for changes that are not tenant-scoped.
204
+ */
101
205
  exports.NotifyMenuChanged = (0, interface_core_1.InterfaceFunction)();
102
206
  const RESERVED_ROOT_CATEGORY_IDS = new Set(["pages", "modules", "settings"]);
207
+ /**
208
+ * Create a new top-level category at the root of the sidebar, alongside the
209
+ * built-in Pages / Modules / Settings groups. Use this to register your own
210
+ * top-level navigation group with its own label, icon and order. Pages and
211
+ * nested categories can then target it via `category`.
212
+ *
213
+ * Defaults `type` to `"label"` so the category renders as a section heading.
214
+ */
103
215
  function RootCategory(id, options) {
104
216
  if (RESERVED_ROOT_CATEGORY_IDS.has(id)) {
105
217
  throw new Error(`RootCategory id "${id}" is reserved by the built-in Pages/Modules/Settings groups. Choose a different id.`);
106
218
  }
107
- return categories_1.internal.RootCategory(id, {
219
+ // Spread options first so an explicitly-passed type wins, then default an
220
+ // omitted type to "label". Spreading after the default would let an explicit
221
+ // `type: undefined` clobber it.
222
+ return (0, categories_1.RootCategory)(id, {
108
223
  ...options,
109
224
  type: options.type ?? "label",
110
225
  });
111
226
  }
112
227
  exports.AddFrontendModule = (0, interface_core_1.InterfaceFunction)();
228
+ /** Returns registered frontend source metadata for server-side module discovery, excluding private options. */
113
229
  exports.GetFrontendModules = (0, interface_core_1.InterfaceFunction)();
114
230
  //# sourceMappingURL=controllers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A declaration a page cannot honour, such as two components claiming what
3
+ * only one of them may hold. Fatal: rethrown out of the hooks that isolate
4
+ * component errors, so the page fails to register instead of booting with one
5
+ * of the two declarations silently dropped.
6
+ */
7
+ export declare class PageDeclarationConflictError extends Error {
8
+ constructor(message: string);
9
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageDeclarationConflictError = void 0;
4
+ /**
5
+ * A declaration a page cannot honour, such as two components claiming what
6
+ * only one of them may hold. Fatal: rethrown out of the hooks that isolate
7
+ * component errors, so the page fails to register instead of booting with one
8
+ * of the two declarations silently dropped.
9
+ */
10
+ class PageDeclarationConflictError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = new.target.name;
14
+ }
15
+ }
16
+ exports.PageDeclarationConflictError = PageDeclarationConflictError;
17
+ //# sourceMappingURL=declaration-conflict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declaration-conflict.js","sourceRoot":"","sources":["../../src/page/declaration-conflict.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AALD,oEAKC"}
@@ -1,11 +1,8 @@
1
- export interface FormPageRouteClaim {
2
- owner: string;
3
- pageFullId: string;
4
- kind: string;
5
- fullId: string;
6
- fullSlug: string;
1
+ import { PageDeclarationConflictError } from "./declaration-conflict";
2
+ /**
3
+ * Two page-mode table views registering the same form sub-page. Fatal: it is a
4
+ * declaration the page cannot honour, not a component that merely fails to
5
+ * contribute.
6
+ */
7
+ export declare class FormPageRouteConflictError extends PageDeclarationConflictError {
7
8
  }
8
- export declare class FormPageRouteConflictError extends Error {
9
- constructor(message: string);
10
- }
11
- export declare function claimFormPageRoute(claim: FormPageRouteClaim): void;
@@ -1,37 +1,20 @@
1
1
  "use strict";
2
+ // Page-mode form sub-pages are not declared: the TableView factory registers
3
+ // one set of them per table view, deriving their id and their slug from the
4
+ // page and from the table view's own key. Two table views resolving to the same
5
+ // id or the same slug used to be silent — `publish()` disposes whatever already
6
+ // held the id, and the layout handler map keeps only the last writer for a slug
7
+ // — so a page would boot with one of its two forms quietly gone. Claims are
8
+ // checked here instead, and a collision is fatal.
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.FormPageRouteConflictError = void 0;
4
- exports.claimFormPageRoute = claimFormPageRoute;
5
- const registry_1 = require("./registry");
6
- class FormPageRouteConflictError extends Error {
7
- constructor(message) {
8
- super(message);
9
- this.name = "FormPageRouteConflictError";
10
- }
11
+ const declaration_conflict_1 = require("./declaration-conflict");
12
+ /**
13
+ * Two page-mode table views registering the same form sub-page. Fatal: it is a
14
+ * declaration the page cannot honour, not a component that merely fails to
15
+ * contribute.
16
+ */
17
+ class FormPageRouteConflictError extends declaration_conflict_1.PageDeclarationConflictError {
11
18
  }
12
19
  exports.FormPageRouteConflictError = FormPageRouteConflictError;
13
- const claimsByFullId = new Map();
14
- const claimsBySlug = new Map();
15
- function conflict(held, claim, what) {
16
- throw new FormPageRouteConflictError(`[dms] TableView "${held.owner}" and TableView "${claim.owner}" on page "${claim.pageFullId}" both register their "${claim.kind}" form page ${what}. Give one of them a URL of its own with formContainer.pages.${claim.kind}.urlSlug.`);
17
- }
18
- function claimFormPageRoute(claim) {
19
- const byId = claimsByFullId.get(claim.fullId);
20
- if (byId &&
21
- byId.owner !== claim.owner &&
22
- registry_1.pageMetadataByFullId.has(claim.fullId)) {
23
- conflict(byId, claim, `under the id "${claim.fullId}"`);
24
- }
25
- const bySlug = claimsBySlug.get(claim.fullSlug);
26
- if (bySlug &&
27
- bySlug.owner !== claim.owner &&
28
- registry_1.pageLayoutHandlers.has(claim.fullSlug)) {
29
- conflict(bySlug, claim, `at "${claim.fullSlug}"`);
30
- }
31
- if (byId && byId.fullSlug !== claim.fullSlug) {
32
- claimsBySlug.delete(byId.fullSlug);
33
- }
34
- claimsByFullId.set(claim.fullId, claim);
35
- claimsBySlug.set(claim.fullSlug, claim);
36
- }
37
20
  //# sourceMappingURL=form-page-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-page-routes.js","sourceRoot":"","sources":["../../src/page/form-page-routes.ts"],"names":[],"mappings":";;;AAuDA,gDAwBC;AAvED,yCAAsE;AAmBtE,MAAa,0BAA2B,SAAQ,KAAK;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AALD,gEAKC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;AAC7D,MAAM,YAAY,GAAG,IAAI,GAAG,EAA8B,CAAC;AAE3D,SAAS,QAAQ,CACf,IAAwB,EACxB,KAAyB,EACzB,IAAY;IAEZ,MAAM,IAAI,0BAA0B,CAClC,oBAAoB,IAAI,CAAC,KAAK,oBAAoB,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,UAAU,0BAA0B,KAAK,CAAC,IAAI,eAAe,IAAI,gEAAgE,KAAK,CAAC,IAAI,WAAW,CACxO,CAAC;AACJ,CAAC;AAUD,SAAgB,kBAAkB,CAAC,KAAyB;IAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,IACE,IAAI;QACJ,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAC1B,+BAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EACtC,CAAC;QACD,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,IACE,MAAM;QACN,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAC5B,6BAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EACtC,CAAC;QACD,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"form-page-routes.js","sourceRoot":"","sources":["../../src/page/form-page-routes.ts"],"names":[],"mappings":";AAAA,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,4EAA4E;AAC5E,kDAAkD;;;AAElD,iEAAsE;AAEtE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,mDAA4B;CAAG;AAA/E,gEAA+E"}
@@ -0,0 +1,62 @@
1
+ import type { ControllerClass } from "@antelopejs/interface-api";
2
+ import type { ComponentInfo } from "../../component";
3
+ import type { CategoryInfo, MenuOptions, PageExtensionInfo, PageInfo } from "../types";
4
+ /**
5
+ * Resolve a category to CategoryInfo
6
+ * @param category A CategoryInfo object or a ControllerClass
7
+ * @returns The resolved CategoryInfo
8
+ *
9
+ * @internal
10
+ */
11
+ export declare function resolveCategoryInfo(category: CategoryInfo | ControllerClass | undefined): CategoryInfo | undefined;
12
+ /**
13
+ * The default layout a page or category declared under `category` inherits:
14
+ * the `layout` of the nearest ancestor that declares one.
15
+ *
16
+ * @param category The parent the entry is declared under
17
+ * @returns That layout, or undefined when no ancestor declares one
18
+ *
19
+ * @internal
20
+ */
21
+ export declare function resolveInheritedLayout(category: CategoryInfo | ControllerClass | undefined): ComponentInfo | undefined;
22
+ /**
23
+ * Calculate the full slug for a page or category
24
+ * @param id The unique identifier
25
+ * @param options Menu options containing urlSlug and category
26
+ * @returns The calculated full slug
27
+ *
28
+ * @internal
29
+ */
30
+ export declare function calculateFullSlug(id: string, options: MenuOptions | RootCategoryOptions): string;
31
+ /** @internal */
32
+ export declare function validateNotInsideSettings(moduleId: string | undefined, resolved: CategoryInfo | undefined): void;
33
+ /** @internal */
34
+ export declare function createCategoryFunction(id: string, options: RootCategoryOptions): CategoryInfo;
35
+ /** @internal */
36
+ export declare function createCategoryFunction(id: string, options: MenuOptions): CategoryInfo;
37
+ /** @internal */
38
+ export declare function applyModuleResolution(id: string, options: MenuOptions): MenuOptions;
39
+ /** @internal */
40
+ export declare function clearModuleResolution(id: string): void;
41
+ /** @internal */
42
+ export declare function applyPageExtension(info: PageExtensionInfo): void;
43
+ /** @internal */
44
+ export declare function revokePageExtension(info: PageExtensionInfo): void;
45
+ /**
46
+ * Take down the metadata registered for a page.
47
+ *
48
+ * `expected` names the registration being unwound. A hot reload registers
49
+ * the replacement before the old one unregisters, so without it the departing
50
+ * page would tear down the live one's metadata, layout handler and
51
+ * permissions.
52
+ *
53
+ * @internal
54
+ */
55
+ export declare function clearPageMetadata(fullId: string, expected?: PageInfo): void;
56
+ /** @internal */
57
+ export interface RootCategoryOptions extends Omit<MenuOptions, "category"> {
58
+ category?: CategoryInfo | ControllerClass;
59
+ isModuleRoot?: boolean;
60
+ }
61
+ /** @internal */
62
+ export declare function RootCategory(id: string, options: RootCategoryOptions): CategoryInfo;