@antelopejs/dms 0.9.8 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/README.md +1 -1
  3. package/data/module-store/catalog.json +2 -2
  4. package/dist/attachments/table-view.js +2 -2
  5. package/dist/attachments/table-view.js.map +1 -1
  6. package/dist/automation/actions.d.ts +2 -0
  7. package/dist/automation/actions.js +116 -71
  8. package/dist/automation/actions.js.map +1 -1
  9. package/dist/automation/i18n.d.ts +4 -0
  10. package/dist/automation/i18n.js +19 -0
  11. package/dist/automation/i18n.js.map +1 -0
  12. package/dist/automation/send-notification.d.ts +21 -0
  13. package/dist/automation/send-notification.js +163 -0
  14. package/dist/automation/send-notification.js.map +1 -0
  15. package/dist/automation/triggers.js +19 -25
  16. package/dist/automation/triggers.js.map +1 -1
  17. package/dist/client-origin-cors.d.ts +1 -0
  18. package/dist/client-origin-cors.js +19 -0
  19. package/dist/client-origin-cors.js.map +1 -0
  20. package/dist/config.d.ts +3 -0
  21. package/dist/config.js +5 -3
  22. package/dist/config.js.map +1 -1
  23. package/dist/frontend-module.d.ts +4 -0
  24. package/dist/frontend-module.js +37 -0
  25. package/dist/frontend-module.js.map +1 -0
  26. package/dist/implementations/dms/client-ip.js +1 -1
  27. package/dist/implementations/dms/client-ip.js.map +1 -1
  28. package/dist/implementations/dms/dev-reload.d.ts +5 -0
  29. package/dist/implementations/dms/dev-reload.js +23 -3
  30. package/dist/implementations/dms/dev-reload.js.map +1 -1
  31. package/dist/implementations/dms/frontend-modules.d.ts +2 -4
  32. package/dist/implementations/dms/frontend-modules.js +22 -89
  33. package/dist/implementations/dms/frontend-modules.js.map +1 -1
  34. package/dist/implementations/dms/frontend-ready.d.ts +12 -2
  35. package/dist/implementations/dms/frontend-ready.js +34 -4
  36. package/dist/implementations/dms/frontend-ready.js.map +1 -1
  37. package/dist/implementations/dms/layout-banners.d.ts +2 -1
  38. package/dist/implementations/dms/layout-banners.js +9 -0
  39. package/dist/implementations/dms/layout-banners.js.map +1 -1
  40. package/dist/implementations/dms/manifest.d.ts +1 -2
  41. package/dist/implementations/dms/manifest.js +2 -0
  42. package/dist/implementations/dms/manifest.js.map +1 -1
  43. package/dist/implementations/dms/page.d.ts +4 -3
  44. package/dist/implementations/dms/page.js +49 -18
  45. package/dist/implementations/dms/page.js.map +1 -1
  46. package/dist/implementations/dms/permissions-resolver.d.ts +2 -2
  47. package/dist/implementations/dms/permissions-resolver.js +2 -2
  48. package/dist/implementations/dms/permissions-resolver.js.map +1 -1
  49. package/dist/implementations/dms/realtime.js +1 -0
  50. package/dist/implementations/dms/realtime.js.map +1 -1
  51. package/dist/implementations/dms-base/bulk-selection.d.ts +1 -1
  52. package/dist/implementations/dms-base/bulk-selection.js +23 -1
  53. package/dist/implementations/dms-base/bulk-selection.js.map +1 -1
  54. package/dist/implementations/dms-base/filter-tokens.js +5 -3
  55. package/dist/implementations/dms-base/filter-tokens.js.map +1 -1
  56. package/dist/implementations/dms-base/search-route.d.ts +1 -0
  57. package/dist/implementations/dms-base/search-route.js +35 -13
  58. package/dist/implementations/dms-base/search-route.js.map +1 -1
  59. package/dist/implementations/dms-base/table-view.js +11 -6
  60. package/dist/implementations/dms-base/table-view.js.map +1 -1
  61. package/dist/implementations/dms-notifications/index.d.ts +2 -2
  62. package/dist/implementations/dms-notifications/index.js +5 -5
  63. package/dist/implementations/dms-notifications/index.js.map +1 -1
  64. package/dist/index.js +28 -48
  65. package/dist/index.js.map +1 -1
  66. package/dist/pages/modules/index.d.ts +1 -0
  67. package/dist/pages/modules/index.js +1 -0
  68. package/dist/pages/modules/index.js.map +1 -1
  69. package/dist/pages/modules/modules-store.d.ts +9 -0
  70. package/dist/pages/modules/modules-store.js +30 -0
  71. package/dist/pages/modules/modules-store.js.map +1 -0
  72. package/dist/pages/settings/users/account-credentials.js +2 -2
  73. package/dist/pages/settings/users/account-credentials.js.map +1 -1
  74. package/dist/pages/settings/users/account-data-store.js +25 -8
  75. package/dist/pages/settings/users/account-data-store.js.map +1 -1
  76. package/dist/pages/settings/users/invite-extension-routes.js +9 -3
  77. package/dist/pages/settings/users/invite-extension-routes.js.map +1 -1
  78. package/dist/pages/settings/users/member-management.js +13 -14
  79. package/dist/pages/settings/users/member-management.js.map +1 -1
  80. package/dist/pages/settings/users/profile.d.ts +1 -4
  81. package/dist/pages/settings/users/profile.js +0 -35
  82. package/dist/pages/settings/users/profile.js.map +1 -1
  83. package/dist/pages/settings/users/role-editor-store.js +26 -18
  84. package/dist/pages/settings/users/role-editor-store.js.map +1 -1
  85. package/dist/pages/settings/users/role-editor.d.ts +0 -1
  86. package/dist/pages/settings/users/role-editor.js +1 -2
  87. package/dist/pages/settings/users/role-editor.js.map +1 -1
  88. package/dist/pages/settings/users/role-preview.js +1 -2
  89. package/dist/pages/settings/users/role-preview.js.map +1 -1
  90. package/dist/pages/settings/users/roles.js +2 -2
  91. package/dist/pages/settings/users/roles.js.map +1 -1
  92. package/dist/pages/settings/users/two-factor-operations.js.map +1 -1
  93. package/dist/realtime/broker.d.ts +6 -0
  94. package/dist/realtime/broker.js +8 -1
  95. package/dist/realtime/broker.js.map +1 -1
  96. package/dist/realtime/presence.d.ts +8 -3
  97. package/dist/realtime/presence.js +8 -4
  98. package/dist/realtime/presence.js.map +1 -1
  99. package/dist/realtime/sessions.d.ts +11 -1
  100. package/dist/realtime/sessions.js +21 -3
  101. package/dist/realtime/sessions.js.map +1 -1
  102. package/dist/realtime/table-view.d.ts +2 -2
  103. package/dist/realtime/table-view.js +4 -3
  104. package/dist/realtime/table-view.js.map +1 -1
  105. package/dist/routes/auth/client-ip.d.ts +1 -0
  106. package/dist/routes/auth/client-ip.js +18 -0
  107. package/dist/routes/auth/client-ip.js.map +1 -1
  108. package/dist/routes/auth/oauth/config.d.ts +2 -1
  109. package/dist/routes/auth/oauth/config.js +5 -1
  110. package/dist/routes/auth/oauth/config.js.map +1 -1
  111. package/dist/routes/auth/session-handoff.d.ts +0 -1
  112. package/dist/routes/auth/session-handoff.js +0 -2
  113. package/dist/routes/auth/session-handoff.js.map +1 -1
  114. package/dist/routes/auth.js +3 -2
  115. package/dist/routes/auth.js.map +1 -1
  116. package/dist/routes/index.d.ts +0 -1
  117. package/dist/routes/index.js +0 -1
  118. package/dist/routes/index.js.map +1 -1
  119. package/dist/routes/realtime.d.ts +13 -1
  120. package/dist/routes/realtime.js +114 -29
  121. package/dist/routes/realtime.js.map +1 -1
  122. package/dist/startup-config.d.ts +2 -0
  123. package/dist/startup-config.js +62 -0
  124. package/dist/startup-config.js.map +1 -0
  125. package/dist/store/interfaces.d.ts +3 -2
  126. package/dist/store/interfaces.js +16 -6
  127. package/dist/store/interfaces.js.map +1 -1
  128. package/dist/store/listing.js +24 -13
  129. package/dist/store/listing.js.map +1 -1
  130. package/dist/store/operations.js +4 -0
  131. package/dist/store/operations.js.map +1 -1
  132. package/dist/store/requirements.js +3 -2
  133. package/dist/store/requirements.js.map +1 -1
  134. package/dist/store/runtime.d.ts +10 -1
  135. package/dist/store/runtime.js +33 -6
  136. package/dist/store/runtime.js.map +1 -1
  137. package/dist/store/types.d.ts +10 -0
  138. package/dist/validation/auth.schema.d.ts +2 -2
  139. package/dist/validation/member-invite.schema.d.ts +2 -10
  140. package/dist/validation/member-invite.schema.js +2 -15
  141. package/dist/validation/member-invite.schema.js.map +1 -1
  142. package/frontend-vue/dms.frontend.ts +24 -5
  143. package/frontend-vue/dms.server.ts +17 -0
  144. package/frontend-vue/layers/dms-auth/server/accounts.ts +3 -4
  145. package/frontend-vue/layers/dms-core/app/build/composables/renderNow.ts +34 -0
  146. package/frontend-vue/layers/dms-core/app/build/composables/user/tablePreferences.ts +5 -1
  147. package/frontend-vue/layers/dms-core/app/build/utils/crossTab.ts +199 -0
  148. package/frontend-vue/layers/dms-core/app/build/utils/sharedRealtimeConnection.ts +410 -0
  149. package/frontend-vue/layers/dms-core/app/composables/auth/useApiData.ts +77 -12
  150. package/frontend-vue/layers/dms-core/app/composables/data-types/useDataType.ts +26 -0
  151. package/frontend-vue/layers/dms-core/app/composables/hydration/isHydratingComponent.ts +29 -0
  152. package/frontend-vue/layers/dms-core/app/composables/live/livePauseSource.ts +29 -0
  153. package/frontend-vue/layers/dms-core/app/composables/period/compareResolvers.ts +150 -9
  154. package/frontend-vue/layers/dms-core/app/composables/period/usePeriod.ts +6 -4
  155. package/frontend-vue/layers/dms-core/app/composables/period/usePeriodScope.ts +27 -1
  156. package/frontend-vue/layers/dms-core/app/composables/realtime/useUserRealtime.ts +256 -119
  157. package/frontend-vue/layers/dms-core/app/composables/translation/useComposedText.ts +21 -8
  158. package/frontend-vue/layers/dms-core/app/composables/translation/useTranslation.ts +22 -5
  159. package/frontend-vue/layers/dms-core/app/plugins/dev-error-log.ts +16 -0
  160. package/frontend-vue/layers/dms-core/app/types/user.ts +6 -0
  161. package/frontend-vue/layers/dms-core/app/utils/composedText.ts +7 -2
  162. package/frontend-vue/layers/dms-core/app/utils/formatter.ts +166 -35
  163. package/frontend-vue/layers/dms-core/app/utils/url-interpolation.ts +18 -1
  164. package/frontend-vue/layers/dms-core/i18n/locales/core-en-GB.json +134 -2
  165. package/frontend-vue/layers/dms-core/i18n/locales/core-fr-FR.json +134 -2
  166. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardBanners.vue +3 -2
  167. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardHeader.vue +41 -21
  168. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardPageBody.vue +9 -0
  169. package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardSidebar.vue +4 -19
  170. package/frontend-vue/layers/dms-layout/app/build/components/layout/Footer.vue +11 -3
  171. package/frontend-vue/layers/dms-layout/app/build/components/layout/GithubStarPrompt.vue +18 -7
  172. package/frontend-vue/layers/dms-layout/app/build/components/layout/PageHeaderActionBar.vue +8 -0
  173. package/frontend-vue/layers/dms-layout/app/build/components/layout/PageHeaderActionsOutlet.vue +14 -0
  174. package/frontend-vue/layers/dms-layout/app/build/components/layout/RowSidePanel.vue +43 -82
  175. package/frontend-vue/layers/dms-layout/app/build/components/layout/SidebarUserMenu.vue +44 -3
  176. package/frontend-vue/layers/dms-layout/app/build/components/layout/UserIdentity.vue +11 -3
  177. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleCatalogTile.vue +132 -35
  178. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleManageMenu.vue +59 -0
  179. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleSourceLabel.vue +25 -0
  180. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreBanners.vue +73 -0
  181. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreOperation.vue +116 -0
  182. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreRequirements.vue +8 -3
  183. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleStoreTile.vue +85 -207
  184. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleTile.vue +10 -3
  185. package/frontend-vue/layers/dms-layout/app/build/components/pages/modules/ModuleTileSkeleton.vue +68 -0
  186. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/NotificationInboxDisplay.vue +24 -8
  187. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/NotificationInboxItem.vue +8 -5
  188. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/region/RegionTimeZoneInput.vue +1 -0
  189. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/role-permissions.ts +19 -0
  190. package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/roles/useRoleEditor.ts +2 -1
  191. package/frontend-vue/layers/dms-layout/app/build/composables/layout/useSidePanelWidth.ts +31 -70
  192. package/frontend-vue/layers/dms-layout/app/build/composables/notification/useNotificationGroupsOpen.ts +11 -1
  193. package/frontend-vue/layers/dms-layout/app/build/utils/dev-reload-stream.ts +81 -0
  194. package/frontend-vue/layers/dms-layout/app/build/utils/module-store-catalog.ts +232 -36
  195. package/frontend-vue/layers/dms-layout/app/build/utils/modules-catalog.ts +122 -14
  196. package/frontend-vue/layers/dms-layout/app/composables/layout/useLayoutBanners.ts +32 -3
  197. package/frontend-vue/layers/dms-layout/app/composables/layout/usePageRecord.ts +50 -0
  198. package/frontend-vue/layers/dms-layout/app/composables/layout/useServedHeaderActions.ts +25 -7
  199. package/frontend-vue/layers/dms-layout/app/composables/page/useModuleHistory.ts +3 -2
  200. package/frontend-vue/layers/dms-layout/app/composables/page/useModuleStore.ts +51 -4
  201. package/frontend-vue/layers/dms-layout/app/composables/page/useModuleStoreActions.ts +194 -0
  202. package/frontend-vue/layers/dms-layout/app/composables/page/usePageComponentPreload.ts +23 -3
  203. package/frontend-vue/layers/dms-layout/app/composables/page/usePageLayout.ts +4 -2
  204. package/frontend-vue/layers/dms-layout/app/composables/page/useSiteLayout.ts +6 -1
  205. package/frontend-vue/layers/dms-layout/app/custom-layouts/DefaultLayout.vue +9 -0
  206. package/frontend-vue/layers/dms-layout/app/custom-layouts/SettingsLayout.vue +9 -0
  207. package/frontend-vue/layers/dms-layout/app/custom-pages/modules-store.vue +291 -0
  208. package/frontend-vue/layers/dms-layout/app/custom-pages/modules.vue +87 -474
  209. package/frontend-vue/layers/dms-layout/app/middleware/module-routing.global.ts +3 -0
  210. package/frontend-vue/layers/dms-layout/app/pages/[...slug].vue +6 -22
  211. package/frontend-vue/layers/dms-layout/app/plugins/command-palette-navigation.client.ts +2 -1
  212. package/frontend-vue/layers/dms-layout/app/plugins/command-palette-personal-pages.client.ts +14 -44
  213. package/frontend-vue/layers/dms-layout/app/plugins/dms-dev-reload.client.ts +14 -9
  214. package/frontend-vue/layers/dms-layout/app/theme/form-controls.ts +9 -4
  215. package/frontend-vue/layers/dms-layout/app/theme/surfaces.ts +22 -6
  216. package/frontend-vue/layers/dms-layout/app/types/module-store.ts +9 -0
  217. package/frontend-vue/layers/dms-layout/app/types/page.ts +15 -1
  218. package/frontend-vue/layers/dms-layout/app/utils/account-menu.ts +11 -0
  219. package/frontend-vue/layers/dms-layout/app/utils/breadcrumb.ts +57 -0
  220. package/frontend-vue/layers/dms-layout/app/utils/pageQuery.ts +26 -0
  221. package/frontend-vue/layers/dms-layout/app/utils/pageRecord.ts +71 -0
  222. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +39 -14
  223. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +38 -13
  224. package/frontend-vue/layers/dms-ui/app/build/components/containers/TargetComponentTree.vue +31 -0
  225. package/frontend-vue/layers/dms-ui/app/build/components/containers/constants.ts +25 -0
  226. package/frontend-vue/layers/dms-ui/app/build/components/containers/drawer/DynamicDrawer.vue +244 -15
  227. package/frontend-vue/layers/dms-ui/app/build/components/containers/modal/DynamicModal.vue +42 -25
  228. package/frontend-vue/layers/dms-ui/app/build/components/containers/row/RowHeader.vue +153 -0
  229. package/frontend-vue/layers/dms-ui/app/build/components/containers/row/RowNotFound.vue +44 -0
  230. package/frontend-vue/layers/dms-ui/app/build/components/containers/row/drawerRowHeader.ts +35 -0
  231. package/frontend-vue/layers/dms-ui/app/build/components/form/FormEntries.vue +44 -9
  232. package/frontend-vue/layers/dms-ui/app/build/components/form/FormErrorSummary.vue +11 -4
  233. package/frontend-vue/layers/dms-ui/app/build/components/form/FormFieldControl.vue +38 -5
  234. package/frontend-vue/layers/dms-ui/app/build/components/form/FormFieldNotes.vue +29 -5
  235. package/frontend-vue/layers/dms-ui/app/build/components/form/FormSectionNav.vue +3 -1
  236. package/frontend-vue/layers/dms-ui/app/build/components/form/FormSections.vue +106 -27
  237. package/frontend-vue/layers/dms-ui/app/build/components/table/Actions.vue +12 -4
  238. package/frontend-vue/layers/dms-ui/app/build/components/table/Empty.vue +4 -2
  239. package/frontend-vue/layers/dms-ui/app/build/components/table/FiltersRow.vue +38 -1
  240. package/frontend-vue/layers/dms-ui/app/build/components/table/Pagination.vue +55 -54
  241. package/frontend-vue/layers/dms-ui/app/build/components/table/RowSelection.vue +2 -1
  242. package/frontend-vue/layers/dms-ui/app/build/components/table/Table.vue +396 -288
  243. package/frontend-vue/layers/dms-ui/app/build/components/table/Tabs.vue +2 -1
  244. package/frontend-vue/layers/dms-ui/app/build/components/table/Views.vue +2 -1
  245. package/frontend-vue/layers/dms-ui/app/build/components/table-view/CardAvatar.vue +59 -0
  246. package/frontend-vue/layers/dms-ui/app/build/components/table-view/CardGridSkeleton.vue +19 -2
  247. package/frontend-vue/layers/dms-ui/app/build/components/table-view/CardRowActions.vue +38 -0
  248. package/frontend-vue/layers/dms-ui/app/build/components/table-view/CardsDisplay.vue +148 -104
  249. package/frontend-vue/layers/dms-ui/app/build/components/table-view/LiveHoldBanner.vue +17 -2
  250. package/frontend-vue/layers/dms-ui/app/build/composables/actions/bulkSelection.ts +43 -9
  251. package/frontend-vue/layers/dms-ui/app/build/composables/actions/rowComponentOptions.ts +76 -0
  252. package/frontend-vue/layers/dms-ui/app/build/composables/actions/rowNavigation.ts +172 -27
  253. package/frontend-vue/layers/dms-ui/app/build/composables/actions/useActionTargets.ts +270 -46
  254. package/frontend-vue/layers/dms-ui/app/build/composables/confirm/confirmDialogTexts.ts +2 -0
  255. package/frontend-vue/layers/dms-ui/app/build/composables/containers/closingLayers.ts +186 -0
  256. package/frontend-vue/layers/dms-ui/app/build/composables/containers/context.ts +14 -0
  257. package/frontend-vue/layers/dms-ui/app/build/composables/containers/drawerSize.ts +229 -0
  258. package/frontend-vue/layers/dms-ui/app/build/composables/containers/useResizableSize.ts +175 -0
  259. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/metricCells.ts +18 -35
  260. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/numberSuffix.ts +47 -0
  261. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/registerDefaults.ts +99 -24
  262. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/registerFieldTypes.ts +2 -1
  263. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/relationFilter.ts +75 -0
  264. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/relationRows.ts +71 -0
  265. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/relationValue.ts +39 -0
  266. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/twoLineCell.ts +3 -3
  267. package/frontend-vue/layers/dms-ui/app/build/composables/data-types/useColumnValueRenderer.ts +6 -2
  268. package/frontend-vue/layers/dms-ui/app/build/composables/form/createFormFields.ts +15 -0
  269. package/frontend-vue/layers/dms-ui/app/build/composables/form/fieldSaved.ts +40 -0
  270. package/frontend-vue/layers/dms-ui/app/build/composables/form/fieldValueRule.ts +62 -0
  271. package/frontend-vue/layers/dms-ui/app/build/composables/form/formEntryContext.ts +5 -0
  272. package/frontend-vue/layers/dms-ui/app/build/composables/form/formFooter.ts +42 -7
  273. package/frontend-vue/layers/dms-ui/app/build/composables/form/formLayout.ts +106 -4
  274. package/frontend-vue/layers/dms-ui/app/build/composables/form/formSections.ts +32 -0
  275. package/frontend-vue/layers/dms-ui/app/build/composables/form/readonlyValue.ts +19 -0
  276. package/frontend-vue/layers/dms-ui/app/build/composables/form/registerFormFunctions.ts +27 -0
  277. package/frontend-vue/layers/dms-ui/app/build/composables/form/repeaterTable.ts +65 -0
  278. package/frontend-vue/layers/dms-ui/app/build/composables/form/serverFieldErrors.ts +49 -0
  279. package/frontend-vue/layers/dms-ui/app/build/composables/form/toasterClearance.ts +118 -0
  280. package/frontend-vue/layers/dms-ui/app/build/composables/form/useInstantForm.ts +12 -1
  281. package/frontend-vue/layers/dms-ui/app/build/composables/live/currentPageLive.ts +41 -3
  282. package/frontend-vue/layers/dms-ui/app/build/composables/live/livePoller.ts +10 -2
  283. package/frontend-vue/layers/dms-ui/app/build/composables/live/pageReadClock.ts +28 -0
  284. package/frontend-vue/layers/dms-ui/app/build/composables/live/shortcuts.ts +1 -1
  285. package/frontend-vue/layers/dms-ui/app/build/composables/live/usePageLiveHost.ts +17 -3
  286. package/frontend-vue/layers/dms-ui/app/build/composables/live/useUpdatedLabel.ts +38 -0
  287. package/frontend-vue/layers/dms-ui/app/build/composables/page-toolbar/pageToolbarContext.ts +75 -0
  288. package/frontend-vue/layers/dms-ui/app/build/composables/page-toolbar/toolbarControlHeight.ts +29 -0
  289. package/frontend-vue/layers/dms-ui/app/build/composables/period/periodComparison.ts +52 -0
  290. package/frontend-vue/layers/dms-ui/app/build/composables/period/periodDisplay.ts +21 -0
  291. package/frontend-vue/layers/dms-ui/app/build/composables/period/periodShortLabels.ts +28 -0
  292. package/frontend-vue/layers/dms-ui/app/build/composables/period/usePeriodDraft.ts +1 -0
  293. package/frontend-vue/layers/dms-ui/app/build/composables/table/useRelationFilterLabels.ts +73 -0
  294. package/frontend-vue/layers/dms-ui/app/build/composables/table/useRowScrollAnchor.ts +106 -0
  295. package/frontend-vue/layers/dms-ui/app/build/composables/table/useTable.ts +9 -0
  296. package/frontend-vue/layers/dms-ui/app/build/composables/table/useTableColumns.ts +1 -2
  297. package/frontend-vue/layers/dms-ui/app/build/composables/table/utils/archivedCount.ts +31 -0
  298. package/frontend-vue/layers/dms-ui/app/build/composables/table/utils/filterEditorValue.ts +38 -0
  299. package/frontend-vue/layers/dms-ui/app/build/composables/table/utils/formatFilterValue.ts +33 -2
  300. package/frontend-vue/layers/dms-ui/app/build/composables/table/utils/scrollEdges.ts +31 -0
  301. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useCardFields.ts +33 -0
  302. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useMobileDisplay.ts +48 -0
  303. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useScrolledPastTop.ts +41 -18
  304. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableFooter.ts +3 -2
  305. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableLinkedVisit.ts +78 -0
  306. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableLiveHold.ts +135 -22
  307. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableRows.ts +56 -25
  308. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableViewRowActions.ts +77 -32
  309. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableViews.ts +86 -10
  310. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/bulkActions.ts +14 -4
  311. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/card.ts +127 -2
  312. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/compareValues.ts +13 -0
  313. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/expandedRows.ts +28 -0
  314. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/groupedRows.ts +114 -1
  315. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/linkedArrival.ts +308 -0
  316. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/locateRow.ts +106 -0
  317. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/pageArrival.ts +34 -0
  318. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/pinnedRows.ts +17 -0
  319. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/quickFilters.ts +41 -33
  320. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/recordLink.ts +24 -8
  321. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/tableCounts.ts +113 -0
  322. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/tableQuery.ts +27 -4
  323. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/views.ts +22 -6
  324. package/frontend-vue/layers/dms-ui/app/build/utils/addressSuggestions.ts +49 -0
  325. package/frontend-vue/layers/dms-ui/app/build/utils/eyebrow.ts +12 -0
  326. package/frontend-vue/layers/dms-ui/app/build/utils/fieldOptionsI18n.ts +51 -11
  327. package/frontend-vue/layers/dms-ui/app/build/utils/inputWidth.ts +53 -0
  328. package/frontend-vue/layers/dms-ui/app/build/utils/numberAdjustment.ts +6 -3
  329. package/frontend-vue/layers/dms-ui/app/build/utils/relativeDate.ts +19 -5
  330. package/frontend-vue/layers/dms-ui/app/build/utils/scrollWithin.ts +99 -0
  331. package/frontend-vue/layers/dms-ui/app/build/utils/urlVariables.ts +36 -14
  332. package/frontend-vue/layers/dms-ui/app/components/PasswordStrength.vue +1 -1
  333. package/frontend-vue/layers/dms-ui/app/components/RecursiveComponent.vue +9 -1
  334. package/frontend-vue/layers/dms-ui/app/components/blocks/LiveToggleBlock.vue +80 -32
  335. package/frontend-vue/layers/dms-ui/app/components/blocks/PageToolbarBlock.vue +137 -0
  336. package/frontend-vue/layers/dms-ui/app/components/blocks/StatGroupBlock.vue +5 -0
  337. package/frontend-vue/layers/dms-ui/app/components/chart/ApexChartHost.vue +16 -2
  338. package/frontend-vue/layers/dms-ui/app/components/chart/Chart.vue +24 -5
  339. package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +41 -23
  340. package/frontend-vue/layers/dms-ui/app/components/confirm/ConfirmModal.vue +1 -1
  341. package/frontend-vue/layers/dms-ui/app/components/container-footer/ContainerFooter.vue +34 -0
  342. package/frontend-vue/layers/dms-ui/app/components/field-row/FieldRow.vue +25 -2
  343. package/frontend-vue/layers/dms-ui/app/components/flow-canvas/FlowCanvas.vue +2 -2
  344. package/frontend-vue/layers/dms-ui/app/components/form/Form.vue +118 -36
  345. package/frontend-vue/layers/dms-ui/app/components/form/components/DatePicker.vue +20 -1
  346. package/frontend-vue/layers/dms-ui/app/components/form/components/Display.vue +13 -1
  347. package/frontend-vue/layers/dms-ui/app/components/form/components/Image.vue +8 -3
  348. package/frontend-vue/layers/dms-ui/app/components/form/components/InputAddress.vue +53 -5
  349. package/frontend-vue/layers/dms-ui/app/components/form/components/InputCode.vue +29 -5
  350. package/frontend-vue/layers/dms-ui/app/components/form/components/InputNumber.vue +45 -8
  351. package/frontend-vue/layers/dms-ui/app/components/form/components/InputPercentage.vue +28 -5
  352. package/frontend-vue/layers/dms-ui/app/components/form/components/InputSecret.vue +5 -0
  353. package/frontend-vue/layers/dms-ui/app/components/form/components/InputText.vue +19 -2
  354. package/frontend-vue/layers/dms-ui/app/components/form/components/InputTime.vue +2 -1
  355. package/frontend-vue/layers/dms-ui/app/components/form/components/Relation.vue +205 -65
  356. package/frontend-vue/layers/dms-ui/app/components/form/components/Repeater.vue +80 -30
  357. package/frontend-vue/layers/dms-ui/app/components/form/components/RepeaterTable.vue +203 -0
  358. package/frontend-vue/layers/dms-ui/app/components/form/components/Select.vue +4 -2
  359. package/frontend-vue/layers/dms-ui/app/components/grid/GridRow.vue +11 -2
  360. package/frontend-vue/layers/dms-ui/app/components/key-value-list/KeyValueList.vue +79 -70
  361. package/frontend-vue/layers/dms-ui/app/components/kpi/KpiCard.vue +117 -21
  362. package/frontend-vue/layers/dms-ui/app/components/meter/Meter.vue +2 -1
  363. package/frontend-vue/layers/dms-ui/app/components/period/PeriodSelector.vue +113 -34
  364. package/frontend-vue/layers/dms-ui/app/components/save-bar/SaveBar.vue +14 -2
  365. package/frontend-vue/layers/dms-ui/app/components/section-header/Eyebrow.vue +6 -1
  366. package/frontend-vue/layers/dms-ui/app/components/segmented/Segmented.vue +13 -0
  367. package/frontend-vue/layers/dms-ui/app/components/stat-group/StatGroup.vue +52 -3
  368. package/frontend-vue/layers/dms-ui/app/components/tab/Tab.vue +2 -1
  369. package/frontend-vue/layers/dms-ui/app/components/table-view/KanbanBoard.vue +45 -35
  370. package/frontend-vue/layers/dms-ui/app/components/table-view/KanbanDisplay.vue +4 -1
  371. package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +410 -96
  372. package/frontend-vue/layers/dms-ui/app/components/top-list/TopListCard.vue +33 -5
  373. package/frontend-vue/layers/dms-ui/app/composables/chart/apexCategoryLabels.ts +68 -0
  374. package/frontend-vue/layers/dms-ui/app/composables/chart/apexDatetimeBuckets.ts +306 -0
  375. package/frontend-vue/layers/dms-ui/app/composables/chart/formatValue.ts +4 -3
  376. package/frontend-vue/layers/dms-ui/app/composables/chart/heatmapColors.ts +93 -0
  377. package/frontend-vue/layers/dms-ui/app/composables/chart/localizeSeries.ts +62 -0
  378. package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.ts +116 -8
  379. package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.types.ts +7 -0
  380. package/frontend-vue/layers/dms-ui/app/composables/containers/types.ts +84 -1
  381. package/frontend-vue/layers/dms-ui/app/composables/containers/useDrawer.ts +69 -8
  382. package/frontend-vue/layers/dms-ui/app/composables/form/types/field-saved.ts +11 -0
  383. package/frontend-vue/layers/dms-ui/app/composables/form/types/field.ts +4 -0
  384. package/frontend-vue/layers/dms-ui/app/composables/form/types/functions.ts +1 -0
  385. package/frontend-vue/layers/dms-ui/app/composables/form/useForm.ts +142 -21
  386. package/frontend-vue/layers/dms-ui/app/composables/live/usePageLive.ts +11 -4
  387. package/frontend-vue/layers/dms-ui/app/composables/page-toolbar/usePageToolbarSize.ts +30 -0
  388. package/frontend-vue/layers/dms-ui/app/composables/table-view/kanban.ts +4 -2
  389. package/frontend-vue/layers/dms-ui/app/composables/table-view/types/action-target.ts +22 -3
  390. package/frontend-vue/layers/dms-ui/app/composables/table-view/types/config.ts +4 -0
  391. package/frontend-vue/layers/dms-ui/app/composables/table-view/types/display.ts +24 -1
  392. package/frontend-vue/layers/dms-ui/app/plugins/closing-layers.client.ts +10 -0
  393. package/frontend-vue/layers/dms-ui/app/plugins/live-pause-source.ts +15 -0
  394. package/frontend-vue/layers/dms-ui/app/plugins/register.ts +2 -0
  395. package/frontend-vue/layers/dms-ui/app/types/input-number.ts +3 -2
  396. package/frontend-vue/layers/dms-ui/app/types/page-toolbar.ts +7 -0
  397. package/frontend-vue/layers/dms-ui/app/types/row-action.ts +0 -2
  398. package/frontend-vue/layers/dms-ui/app/types/row-navigation.ts +17 -0
  399. package/frontend-vue/layers/dms-ui/app/types/table/query.ts +2 -1
  400. package/frontend-vue/layers/dms-ui/app/utils/blockRefresh.ts +3 -1
  401. package/frontend-vue/layers/dms-ui/app/utils/componentTree.ts +24 -0
  402. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +16 -4
  403. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +16 -4
  404. package/frontend-vue/package.json +2 -2
  405. package/package.json +7 -6
  406. package/skills/dms/SKILL.md +1 -1
  407. package/skills/dms-auth/SKILL.md +5 -3
  408. package/skills/dms-best-practices/REFERENCE.md +2 -0
  409. package/skills/dms-best-practices/SKILL.md +4 -0
  410. package/skills/dms-module/SKILL.md +3 -2
  411. package/skills/dms-pages/REFERENCE.md +125 -16
  412. package/skills/dms-pages/SKILL.md +1 -1
  413. package/skills/dms-project/DEV-SERVERS.md +23 -1
  414. package/skills/dms-project/REFERENCE.md +1 -1
  415. package/skills/dms-project/SKILL.md +4 -1
  416. package/skills/dms-project/scripts/dms-dev.sh +205 -17
  417. package/dist/routes/startup-gate.d.ts +0 -7
  418. package/dist/routes/startup-gate.js +0 -39
  419. package/dist/routes/startup-gate.js.map +0 -1
  420. package/frontend-vue/layers/dms-core/app/composables/period/periodRenderNow.ts +0 -42
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendNotificationAction = exports.NOTIFICATION_TONES = exports.SEND_NOTIFICATION_ACTION_ID = void 0;
4
+ const constants_1 = require("@antelopejs/interface-dms/constants");
5
+ const notifications_1 = require("@antelopejs/interface-dms/notifications");
6
+ const sendable_1 = require("@antelopejs/interface-dms/notifications/sendable");
7
+ const i18n_1 = require("./i18n");
8
+ exports.SEND_NOTIFICATION_ACTION_ID = "dms.send-notification";
9
+ const SEND_NOTIFICATION_TEXTS = "actions.sendNotification";
10
+ const DEFAULT_NOTIFICATION_ICON = "i-ph-bell";
11
+ exports.NOTIFICATION_TONES = [
12
+ "neutral",
13
+ "primary",
14
+ "success",
15
+ "warning",
16
+ "error",
17
+ ];
18
+ function isPlainObject(value) {
19
+ return typeof value === "object" && value !== null && !Array.isArray(value);
20
+ }
21
+ function isNotificationTone(value) {
22
+ return exports.NOTIFICATION_TONES.includes(value);
23
+ }
24
+ function toNotificationParams(params, ctx) {
25
+ if (params === undefined || params === null)
26
+ return undefined;
27
+ if (!isPlainObject(params)) {
28
+ throw new Error(`${exports.SEND_NOTIFICATION_ACTION_ID}: params must be an object of strings and numbers`);
29
+ }
30
+ const result = {};
31
+ for (const [key, value] of Object.entries(params)) {
32
+ if (value === undefined || value === null)
33
+ continue;
34
+ if (typeof value === "string" || typeof value === "number") {
35
+ result[key] = value;
36
+ }
37
+ else if (typeof value === "boolean") {
38
+ result[key] = String(value);
39
+ }
40
+ else {
41
+ ctx.log("warn", `param "${key}" is not a string or a number; dropped`);
42
+ }
43
+ }
44
+ return result;
45
+ }
46
+ function toTone(tone) {
47
+ const value = tone?.trim();
48
+ if (!value)
49
+ return undefined;
50
+ if (isNotificationTone(value))
51
+ return value;
52
+ throw new Error(`${exports.SEND_NOTIFICATION_ACTION_ID}: unknown tone "${value}" (expected one of ${exports.NOTIFICATION_TONES.join(", ")})`);
53
+ }
54
+ function collectRecipients(input) {
55
+ const userIds = [...(input.userIds ?? [])];
56
+ const userId = input.userId?.trim();
57
+ if (userId)
58
+ userIds.push(userId);
59
+ return { userIds, roleIds: input.roleIds ?? [] };
60
+ }
61
+ function toSendOptions(idempotencyKey, ctx) {
62
+ const key = idempotencyKey?.trim();
63
+ if (!key)
64
+ return {};
65
+ return {
66
+ idempotencyKey: `${exports.SEND_NOTIFICATION_ACTION_ID}:${ctx.procedureId}:${ctx.nodeId}:${key}`,
67
+ };
68
+ }
69
+ function buildNotification(input, ctx) {
70
+ const params = toNotificationParams(input.params, ctx);
71
+ const tone = toTone(input.tone);
72
+ const linkTo = input.linkTo?.trim();
73
+ const data = {
74
+ icon: input.icon?.trim() || DEFAULT_NOTIFICATION_ICON,
75
+ title: input.title,
76
+ description: input.description ?? "",
77
+ subject: notifications_1.AutomationSubject,
78
+ };
79
+ if (params && Object.keys(params).length > 0)
80
+ data.params = params;
81
+ if (tone)
82
+ data.tone = tone;
83
+ if (linkTo)
84
+ data.linkTo = linkTo;
85
+ return new sendable_1.SendableNotification(data);
86
+ }
87
+ function prepareSend(input, ctx) {
88
+ const { userIds, roleIds } = collectRecipients(input);
89
+ if (userIds.length === 0 && roleIds.length === 0) {
90
+ throw new Error(`${exports.SEND_NOTIFICATION_ACTION_ID} requires at least one of userId / userIds / roleIds`);
91
+ }
92
+ return {
93
+ sendable: buildNotification(input, ctx),
94
+ userIds,
95
+ roleIds,
96
+ options: toSendOptions(input.idempotencyKey, ctx),
97
+ tenantId: input.tenantId?.trim() || constants_1.DEFAULT_TENANT_ID,
98
+ };
99
+ }
100
+ exports.sendNotificationAction = {
101
+ id: exports.SEND_NOTIFICATION_ACTION_ID,
102
+ name: (0, i18n_1.nodeText)(SEND_NOTIFICATION_TEXTS, "name"),
103
+ description: (0, i18n_1.nodeText)(SEND_NOTIFICATION_TEXTS, "description"),
104
+ icon: DEFAULT_NOTIFICATION_ICON,
105
+ inputSchema: {
106
+ type: "object",
107
+ properties: (0, i18n_1.titledProperties)({
108
+ userId: {
109
+ type: "string",
110
+ description: (0, i18n_1.fieldHint)(SEND_NOTIFICATION_TEXTS, "userId"),
111
+ },
112
+ userIds: { type: "array", items: { type: "string" } },
113
+ roleIds: { type: "array", items: { type: "string" } },
114
+ tenantId: {
115
+ type: "string",
116
+ description: (0, i18n_1.fieldHint)(SEND_NOTIFICATION_TEXTS, "tenantId"),
117
+ },
118
+ title: {
119
+ type: "string",
120
+ description: (0, i18n_1.fieldHint)(SEND_NOTIFICATION_TEXTS, "title"),
121
+ },
122
+ description: {
123
+ type: "string",
124
+ description: (0, i18n_1.fieldHint)(SEND_NOTIFICATION_TEXTS, "description"),
125
+ },
126
+ params: {
127
+ type: "object",
128
+ description: (0, i18n_1.fieldHint)(SEND_NOTIFICATION_TEXTS, "params"),
129
+ },
130
+ tone: { type: "string", enum: [...exports.NOTIFICATION_TONES] },
131
+ icon: { type: "string" },
132
+ linkTo: { type: "string" },
133
+ idempotencyKey: {
134
+ type: "string",
135
+ description: (0, i18n_1.fieldHint)(SEND_NOTIFICATION_TEXTS, "idempotencyKey"),
136
+ },
137
+ }),
138
+ required: ["title"],
139
+ anyOf: [
140
+ { required: ["userId"] },
141
+ { required: ["userIds"] },
142
+ { required: ["roleIds"] },
143
+ ],
144
+ },
145
+ outputSchema: {
146
+ type: "object",
147
+ properties: (0, i18n_1.titledProperties)({ ok: { type: "boolean" } }),
148
+ },
149
+ async dryRun(input, ctx) {
150
+ prepareSend(input, ctx);
151
+ ctx.log("info", "test run: notification not sent");
152
+ return { ok: true };
153
+ },
154
+ async execute(input, ctx) {
155
+ const { sendable, userIds, roleIds, options, tenantId } = prepareSend(input, ctx);
156
+ if (roleIds.length > 0)
157
+ await sendable.toRoles(roleIds, { ...options, tenantId });
158
+ if (userIds.length > 0)
159
+ await sendable.toUsers(userIds, options);
160
+ return { ok: true };
161
+ },
162
+ };
163
+ //# sourceMappingURL=send-notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-notification.js","sourceRoot":"","sources":["../../src/automation/send-notification.ts"],"names":[],"mappings":"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"}
@@ -2,24 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TRIGGERS = void 0;
4
4
  const events_1 = require("./events");
5
+ const i18n_1 = require("./i18n");
5
6
  const EMPTY_CONFIG_SCHEMA = { type: "object", properties: {} };
6
7
  const TENANT_ID_PROPERTY = { type: "string" };
7
8
  const AT_PROPERTY = { type: "string" };
8
9
  function createEventTrigger(spec) {
9
10
  return {
10
11
  id: spec.event,
11
- name: spec.name,
12
- description: spec.description,
12
+ name: (0, i18n_1.nodeText)(`triggers.${spec.texts}`, "name"),
13
+ description: (0, i18n_1.nodeText)(`triggers.${spec.texts}`, "description"),
13
14
  icon: spec.icon,
14
15
  cluster: "replicated",
15
16
  configSchema: EMPTY_CONFIG_SCHEMA,
16
17
  outputSchema: {
17
18
  type: "object",
18
- properties: {
19
+ properties: (0, i18n_1.titledProperties)({
19
20
  tenantId: TENANT_ID_PROPERTY,
20
21
  ...spec.outputProperties,
21
22
  at: AT_PROPERTY,
22
- },
23
+ }),
23
24
  },
24
25
  async activate(_config, emit) {
25
26
  const listener = (payload) => emit(payload);
@@ -34,28 +35,28 @@ function createEventTrigger(spec) {
34
35
  function createRecordTrigger(spec) {
35
36
  return {
36
37
  id: spec.event,
37
- name: spec.name,
38
- description: spec.description,
38
+ name: (0, i18n_1.nodeText)(`triggers.${spec.texts}`, "name"),
39
+ description: (0, i18n_1.nodeText)(`triggers.${spec.texts}`, "description"),
39
40
  icon: spec.icon,
40
41
  cluster: "replicated",
41
42
  configSchema: {
42
43
  type: "object",
43
- properties: {
44
+ properties: (0, i18n_1.titledProperties)({
44
45
  location: {
45
46
  type: "string",
46
- description: 'Data controller location to watch, e.g. "/api/tables/members". Leave empty to fire for every table.',
47
+ description: (0, i18n_1.fieldHint)("triggers.record", "location"),
47
48
  },
48
- },
49
+ }),
49
50
  },
50
51
  outputSchema: {
51
52
  type: "object",
52
- properties: {
53
+ properties: (0, i18n_1.titledProperties)({
53
54
  location: { type: "string" },
54
55
  ids: { type: "array", items: { type: "string" } },
55
56
  actorId: { type: "string" },
56
57
  actorName: { type: "string" },
57
58
  at: AT_PROPERTY,
58
- },
59
+ }),
59
60
  },
60
61
  async activate(config, emit) {
61
62
  const location = config?.location?.trim();
@@ -75,8 +76,7 @@ function createRecordTrigger(spec) {
75
76
  exports.TRIGGERS = [
76
77
  createEventTrigger({
77
78
  event: "dms.member-added",
78
- name: "Member added",
79
- description: "Fires when a user becomes a member of a tenant",
79
+ texts: "memberAdded",
80
80
  icon: "i-ph-user-plus",
81
81
  outputProperties: {
82
82
  userId: { type: "string" },
@@ -86,8 +86,7 @@ exports.TRIGGERS = [
86
86
  }),
87
87
  createEventTrigger({
88
88
  event: "dms.member-removed",
89
- name: "Member removed",
90
- description: "Fires when members are removed from a tenant",
89
+ texts: "memberRemoved",
91
90
  icon: "i-ph-user-minus",
92
91
  outputProperties: {
93
92
  userIds: { type: "array", items: { type: "string" } },
@@ -95,8 +94,7 @@ exports.TRIGGERS = [
95
94
  }),
96
95
  createEventTrigger({
97
96
  event: "dms.invite-created",
98
- name: "Invite created",
99
- description: "Fires when a user invite is created on a tenant",
97
+ texts: "inviteCreated",
100
98
  icon: "i-ph-paper-plane-tilt",
101
99
  outputProperties: {
102
100
  inviteId: { type: "string" },
@@ -108,8 +106,7 @@ exports.TRIGGERS = [
108
106
  }),
109
107
  createEventTrigger({
110
108
  event: "dms.user-registered",
111
- name: "User registered",
112
- description: "Fires when a new user completes signup",
109
+ texts: "userRegistered",
113
110
  icon: "i-ph-user-circle-plus",
114
111
  outputProperties: {
115
112
  userId: { type: "string" },
@@ -119,20 +116,17 @@ exports.TRIGGERS = [
119
116
  }),
120
117
  createRecordTrigger({
121
118
  event: "dms.record-created",
122
- name: "Record created",
123
- description: "Fires when rows are created in a TableView-backed table",
119
+ texts: "recordCreated",
124
120
  icon: "i-ph-plus-circle",
125
121
  }),
126
122
  createRecordTrigger({
127
123
  event: "dms.record-updated",
128
- name: "Record updated",
129
- description: "Fires when rows are updated in a TableView-backed table",
124
+ texts: "recordUpdated",
130
125
  icon: "i-ph-pencil-simple",
131
126
  }),
132
127
  createRecordTrigger({
133
128
  event: "dms.record-deleted",
134
- name: "Record deleted",
135
- description: "Fires when rows are deleted in a TableView-backed table",
129
+ texts: "recordDeleted",
136
130
  icon: "i-ph-trash",
137
131
  }),
138
132
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../src/automation/triggers.ts"],"names":[],"mappings":";;;AAIA,qCAKkB;AAElB,MAAM,mBAAmB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAE3E,MAAM,kBAAkB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC1D,MAAM,WAAW,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAcnD,SAAS,kBAAkB,CAAC,IAAyB;IACnD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,KAAK;QACd,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,YAAY;QACrB,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,kBAAkB;gBAC5B,GAAG,IAAI,CAAC,gBAAgB;gBACxB,EAAE,EAAE,WAAW;aAChB;SACF;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI;YAC1B,MAAM,QAAQ,GAA4B,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrE,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,MAAM;YACrB,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAiC,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAaD,SAAS,mBAAmB,CAAC,IAAuB;IAClD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,KAAK;QACd,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,YAAY;QACrB,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qGAAqG;iBACxG;aACF;SACF;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACjD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC7B,EAAE,EAAE,WAAW;aAChB;SACF;QACD,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;YACzB,MAAM,QAAQ,GACZ,MACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpB,MAAM,QAAQ,GAA4B,CAAC,OAAO,EAAE,EAAE;gBACpD,IAAI,QAAQ,IAAK,OAA+B,CAAC,QAAQ,KAAK,QAAQ;oBACpE,OAAO;gBACT,IAAI,CAAC,OAAO,CAAC,CAAC;YAChB,CAAC,CAAC;YACF,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,MAAM;YACrB,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAiC,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAEY,QAAA,QAAQ,GAAkB;IACrC,kBAAkB,CAAC;QACjB,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,gBAAgB;QACtB,gBAAgB,EAAE;YAChB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;KACF,CAAC;IACF,kBAAkB,CAAC;QACjB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,iBAAiB;QACvB,gBAAgB,EAAE;YAChB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACtD;KACF,CAAC;IACF,kBAAkB,CAAC;QACjB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,iDAAiD;QAC9D,IAAI,EAAE,uBAAuB;QAC7B,gBAAgB,EAAE;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;KACF,CAAC;IACF,kBAAkB,CAAC;QACjB,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,uBAAuB;QAC7B,gBAAgB,EAAE;YAChB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;KACF,CAAC;IACF,mBAAmB,CAAC;QAClB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yDAAyD;QACtE,IAAI,EAAE,kBAAkB;KACzB,CAAC;IACF,mBAAmB,CAAC;QAClB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yDAAyD;QACtE,IAAI,EAAE,oBAAoB;KAC3B,CAAC;IACF,mBAAmB,CAAC;QAClB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yDAAyD;QACtE,IAAI,EAAE,YAAY;KACnB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../src/automation/triggers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function allowClientOrigin(): Promise<void>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allowClientOrigin = allowClientOrigin;
4
+ const interface_api_1 = require("@antelopejs/interface-api");
5
+ const config_1 = require("./config");
6
+ function listOrigins(allowedOrigins) {
7
+ return allowedOrigins === undefined ? [] : [allowedOrigins].flat();
8
+ }
9
+ async function allowClientOrigin() {
10
+ const origin = (0, config_1.getConfig)().clientBaseUrl;
11
+ if (!origin)
12
+ return;
13
+ const cors = await (0, interface_api_1.GetCorsConfig)();
14
+ const origins = listOrigins(cors.allowedOrigins);
15
+ if (origins.includes(origin))
16
+ return;
17
+ await (0, interface_api_1.SetCorsConfig)({ ...cors, allowedOrigins: [...origins, origin] });
18
+ }
19
+ //# sourceMappingURL=client-origin-cors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-origin-cors.js","sourceRoot":"","sources":["../src/client-origin-cors.ts"],"names":[],"mappings":";;AAiBA,8CAOC;AAxBD,6DAImC;AACnC,qCAAqC;AAErC,SAAS,WAAW,CAClB,cAAyC;IAEzC,OAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC;AAMM,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAa,GAAE,CAAC;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO;IACrC,MAAM,IAAA,6BAAa,EAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC"}
package/dist/config.d.ts CHANGED
@@ -25,6 +25,7 @@ export interface AuthConfig {
25
25
  mustValidateEmail: boolean;
26
26
  oauth?: OAuthConfig;
27
27
  trustedProxies?: number;
28
+ clientIpHeader?: string;
28
29
  signInCountry?: SignInCountryConfig;
29
30
  }
30
31
  export interface DmsMetaConfig {
@@ -57,8 +58,10 @@ export interface Config {
57
58
  store?: StoreConfig;
58
59
  docsPreview?: boolean;
59
60
  }
61
+ export declare const DEFAULT_ACCESS_TOKEN_LIFETIME = 3600000;
60
62
  export declare const DEFAULT_MAX_UPLOAD_SIZE: number;
61
63
  export declare const DEFAULT_CLIENT_BASE_URL = "http://localhost:3001";
64
+ export declare const DEFAULT_API_BASE_URL = "http://127.0.0.1:5010";
62
65
  export declare function getConfig(): Config;
63
66
  export declare function setDevClientBaseUrl(url: string): void;
64
67
  export declare function getClientBaseUrl(): string | undefined;
package/dist/config.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_CLIENT_BASE_URL = exports.DEFAULT_MAX_UPLOAD_SIZE = void 0;
3
+ exports.DEFAULT_API_BASE_URL = exports.DEFAULT_CLIENT_BASE_URL = exports.DEFAULT_MAX_UPLOAD_SIZE = exports.DEFAULT_ACCESS_TOKEN_LIFETIME = void 0;
4
4
  exports.getConfig = getConfig;
5
5
  exports.setDevClientBaseUrl = setDevClientBaseUrl;
6
6
  exports.getClientBaseUrl = getClientBaseUrl;
@@ -17,11 +17,12 @@ exports.applyConfig = applyConfig;
17
17
  const defu_1 = require("defu");
18
18
  const time_1 = require("@antelopejs/interface-dms/utils/internal/time");
19
19
  const REFRESH_TOKEN_LIFETIME_DAYS = 30;
20
+ exports.DEFAULT_ACCESS_TOKEN_LIFETIME = time_1.MILLISECONDS_PER_HOUR;
20
21
  let globalAuthConfig = {
21
22
  jwtSecret: "",
22
23
  emailValidationTokenLifetime: time_1.MILLISECONDS_PER_DAY,
23
24
  passwordRecoverTokenLifetime: time_1.MILLISECONDS_PER_DAY,
24
- accessTokenLifetime: time_1.MILLISECONDS_PER_HOUR,
25
+ accessTokenLifetime: exports.DEFAULT_ACCESS_TOKEN_LIFETIME,
25
26
  refreshTokenLifetime: REFRESH_TOKEN_LIFETIME_DAYS * time_1.MILLISECONDS_PER_DAY,
26
27
  userSensitiveKeys: [],
27
28
  mustValidateEmail: false,
@@ -44,9 +45,10 @@ let globalFrontendConfig = {
44
45
  requireBootstrap: "warn",
45
46
  };
46
47
  exports.DEFAULT_CLIENT_BASE_URL = "http://localhost:3001";
48
+ exports.DEFAULT_API_BASE_URL = "http://127.0.0.1:5010";
47
49
  let globalConfig = {
48
50
  clientBaseUrl: exports.DEFAULT_CLIENT_BASE_URL,
49
- apiBaseUrl: "http://127.0.0.1:5010",
51
+ apiBaseUrl: exports.DEFAULT_API_BASE_URL,
50
52
  };
51
53
  let devClientBaseUrl;
52
54
  let devApiBaseUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FrontendModuleFunction } from "@antelopejs/interface-dms/page";
2
+ import { type Config } from "./config";
3
+ export declare const SESSION_HANDOFF_ENDPOINT = "/api/auth/session-handoff";
4
+ export declare const frontendModule: FrontendModuleFunction<Config>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.frontendModule = exports.SESSION_HANDOFF_ENDPOINT = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const time_1 = require("@antelopejs/interface-dms/utils/internal/time");
9
+ const config_1 = require("./config");
10
+ const config_2 = require("./routes/auth/oauth/config");
11
+ exports.SESSION_HANDOFF_ENDPOINT = "/api/auth/session-handoff";
12
+ const DEFAULT_HOMEPAGE = "/";
13
+ const frontendModule = (config) => ({
14
+ name: "@antelopejs/dms-frontend-vue",
15
+ sourcePath: node_path_1.default.join(__dirname, "../frontend-vue"),
16
+ renderer: { name: "vue", version: "3" },
17
+ configKey: "dms",
18
+ priority: 0,
19
+ authEstablishEndpoints: [exports.SESSION_HANDOFF_ENDPOINT],
20
+ privateOptions: {
21
+ htmlRender: { serviceSecret: "" },
22
+ oauth: { relaySecret: "" },
23
+ },
24
+ options: {
25
+ baseURL: config.apiBaseUrl ?? config_1.DEFAULT_API_BASE_URL,
26
+ clientBaseUrl: config.clientBaseUrl ?? config_1.DEFAULT_CLIENT_BASE_URL,
27
+ mustValidateEmail: false,
28
+ token: {
29
+ maxAgeInSeconds: (config.auth?.accessTokenLifetime ?? config_1.DEFAULT_ACCESS_TOKEN_LIFETIME) /
30
+ time_1.MILLISECONDS_PER_SECOND,
31
+ },
32
+ homepage: config.homepage ?? DEFAULT_HOMEPAGE,
33
+ oauthProviders: (0, config_2.describeEnabledOAuthProviders)(config.auth?.oauth).map(({ id, label, icon }) => ({ id, label, icon })),
34
+ },
35
+ });
36
+ exports.frontendModule = frontendModule;
37
+ //# sourceMappingURL=frontend-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-module.js","sourceRoot":"","sources":["../src/frontend-module.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAK7B,wEAAwF;AACxF,qCAKkB;AAClB,uDAA2E;AAM9D,QAAA,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAatB,MAAM,cAAc,GAAmC,CAC5D,MAAc,EACc,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;IACvC,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,CAAC;IACX,sBAAsB,EAAE,CAAC,gCAAwB,CAAC;IAClD,cAAc,EAAE;QACd,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACjC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;KAC3B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC,UAAU,IAAI,6BAAoB;QAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,gCAAuB;QAC9D,iBAAiB,EAAE,KAAK;QACxB,KAAK,EAAE;YACL,eAAe,EACb,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,IAAI,sCAA6B,CAAC;gBACnE,8BAAuB;SAC1B;QACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,gBAAgB;QAC7C,cAAc,EAAE,IAAA,sCAA6B,EAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CACnE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/C;KACF;CACF,CAAC,CAAC;AA3BU,QAAA,cAAc,kBA2BxB"}
@@ -4,6 +4,6 @@ exports.ResolveClientIp = ResolveClientIp;
4
4
  const config_1 = require("../../config");
5
5
  const client_ip_1 = require("../../routes/auth/client-ip");
6
6
  function ResolveClientIp(source) {
7
- return (0, client_ip_1.resolveClientIp)(source, (0, client_ip_1.trustedProxyCount)((0, config_1.getAuthConfig)()));
7
+ return (0, client_ip_1.resolveRequestClientIp)(source, (0, config_1.getAuthConfig)());
8
8
  }
9
9
  //# sourceMappingURL=client-ip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-ip.js","sourceRoot":"","sources":["../../../src/implementations/dms/client-ip.ts"],"names":[],"mappings":";;AAOA,0CAEC;AARD,yCAA6C;AAC7C,2DAGqC;AAErC,SAAgB,eAAe,CAAC,MAA2B;IACzD,OAAO,IAAA,2BAAe,EAAC,MAAM,EAAE,IAAA,6BAAiB,EAAC,IAAA,sBAAa,GAAE,CAAC,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"client-ip.js","sourceRoot":"","sources":["../../../src/implementations/dms/client-ip.ts"],"names":[],"mappings":";;AAIA,0CAEC;AALD,yCAA6C;AAC7C,2DAAqE;AAErE,SAAgB,eAAe,CAAC,MAA2B;IACzD,OAAO,IAAA,kCAAsB,EAAC,MAAM,EAAE,IAAA,sBAAa,GAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import type { PassThrough } from "node:stream";
2
+ export declare const DEV_RELOAD_TOPIC = "dms:dev-reload";
2
3
  type SlugProvider = () => string[];
4
+ type ReloadType = "resync" | "error";
5
+ type DevReloadListener = (type: ReloadType) => void;
6
+ export declare const isDevReloadEnabled: () => boolean;
7
+ export declare function addDevReloadListener(listener: DevReloadListener): () => void;
3
8
  export declare function setSlugProvider(provider: SlugProvider): void;
4
9
  export declare function scheduleBroadcast(): void;
5
10
  export declare function cancelScheduledBroadcast(): void;
@@ -12,7 +12,8 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DevReloadController = void 0;
15
+ exports.DevReloadController = exports.isDevReloadEnabled = exports.DEV_RELOAD_TOPIC = void 0;
16
+ exports.addDevReloadListener = addDevReloadListener;
16
17
  exports.setSlugProvider = setSlugProvider;
17
18
  exports.scheduleBroadcast = scheduleBroadcast;
18
19
  exports.cancelScheduledBroadcast = cancelScheduledBroadcast;
@@ -23,10 +24,20 @@ const SSE_CONTENT_TYPE = "text/event-stream";
23
24
  const SSE_RECONNECT_HINT_MS = 500;
24
25
  const SSE_HELLO_PAYLOAD = `retry: ${SSE_RECONNECT_HINT_MS}\n: connected\n\n`;
25
26
  const PRODUCTION_ENV = "production";
27
+ exports.DEV_RELOAD_TOPIC = "dms:dev-reload";
26
28
  const clients = new Set();
29
+ const listeners = new Set();
27
30
  let broadcastTimer = null;
28
31
  let slugProvider = () => [];
29
32
  const isProduction = () => process.env.NODE_ENV === PRODUCTION_ENV;
33
+ const isDevReloadEnabled = () => !isProduction();
34
+ exports.isDevReloadEnabled = isDevReloadEnabled;
35
+ function addDevReloadListener(listener) {
36
+ if (isProduction())
37
+ return () => { };
38
+ listeners.add(listener);
39
+ return () => listeners.delete(listener);
40
+ }
30
41
  function setSlugProvider(provider) {
31
42
  slugProvider = provider;
32
43
  }
@@ -43,12 +54,21 @@ function writeToClient(stream, payload) {
43
54
  }
44
55
  function runBroadcast() {
45
56
  broadcastTimer = null;
46
- if (clients.size === 0)
57
+ if (clients.size === 0 && listeners.size === 0)
47
58
  return;
48
- const payload = formatSseMessage(slugProvider().length === 0 ? "error" : "resync");
59
+ const type = slugProvider().length === 0 ? "error" : "resync";
60
+ const payload = formatSseMessage(type);
49
61
  for (const stream of clients) {
50
62
  writeToClient(stream, payload);
51
63
  }
64
+ for (const listener of listeners) {
65
+ try {
66
+ listener(type);
67
+ }
68
+ catch {
69
+ listeners.delete(listener);
70
+ }
71
+ }
52
72
  }
53
73
  function scheduleBroadcast() {
54
74
  if (isProduction())
@@ -1 +1 @@
1
- {"version":3,"file":"dev-reload.js","sourceRoot":"","sources":["../../../src/implementations/dms/dev-reload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-reload.js","sourceRoot":"","sources":["../../../src/implementations/dms/dev-reload.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import type { PassThrough } from "node:stream";
2
1
  import type { RequestContext } from "@antelopejs/interface-api";
3
2
  import type { AddFrontendModuleOptions, FrontendBackendProxy, FrontendModuleMetadata, FrontendPublicEndpoint, FrontendModuleOptions } from "@antelopejs/interface-dms/page";
4
3
  import { type FrontendManifest } from "./manifest";
5
4
  interface FrontendModule {
6
5
  name: string;
7
- archiveName: string;
8
6
  path: string;
9
7
  priority: number;
10
8
  options?: FrontendModuleOptions;
@@ -14,6 +12,7 @@ interface FrontendModule {
14
12
  authEstablishEndpoints: string[];
15
13
  publicEndpoints: Required<FrontendPublicEndpoint>[];
16
14
  backendProxies: Required<FrontendBackendProxy>[];
15
+ packageVersion?: string;
17
16
  }
18
17
  type ServedModule = Omit<FrontendModule, "path" | "authEstablishEndpoints" | "publicEndpoints" | "backendProxies"> & {
19
18
  path?: string;
@@ -21,11 +20,10 @@ type ServedModule = Omit<FrontendModule, "path" | "authEstablishEndpoints" | "pu
21
20
  publicEndpoints?: Required<FrontendPublicEndpoint>[];
22
21
  backendProxies?: Required<FrontendBackendProxy>[];
23
22
  };
24
- export declare function createIgnoreFilter(modulePath: string): (entryData: any) => any;
25
23
  export declare function AddFrontendModule(config: AddFrontendModuleOptions): void;
24
+ export declare function frontendModuleVersions(): Map<string, string | undefined>;
26
25
  export declare function frontendModuleNamesUnder(folder: string): string[];
27
26
  export declare function removeFrontendModulesUnder(folder: string): string[];
28
27
  export declare function GetFrontendModules(): FrontendModuleMetadata[];
29
28
  export declare function buildFrontendManifest(requestContext: RequestContext, clientUrl: string | undefined, renderer: string | undefined, rendererVersion: string | undefined, bootstrapHeader: string | undefined): Promise<FrontendManifest<ServedModule>>;
30
- export declare function writeFrontendModules(out: PassThrough, renderer: string | undefined, rendererVersion: string | undefined, bootstrapHeader: string | undefined): Promise<void>;
31
29
  export {};