@antelopejs/dms 0.0.1
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.
- package/CHANGELOG.md +1 -0
- package/LICENSE +190 -0
- package/README.md +48 -0
- package/dist/attachments/access.d.ts +9 -0
- package/dist/attachments/access.js +66 -0
- package/dist/attachments/access.js.map +1 -0
- package/dist/attachments/bindings.d.ts +3 -0
- package/dist/attachments/bindings.js +25 -0
- package/dist/attachments/bindings.js.map +1 -0
- package/dist/attachments/fields.d.ts +7 -0
- package/dist/attachments/fields.js +25 -0
- package/dist/attachments/fields.js.map +1 -0
- package/dist/attachments/read.d.ts +11 -0
- package/dist/attachments/read.js +36 -0
- package/dist/attachments/read.js.map +1 -0
- package/dist/attachments/registry.d.ts +6 -0
- package/dist/attachments/registry.js +36 -0
- package/dist/attachments/registry.js.map +1 -0
- package/dist/attachments/save.d.ts +2 -0
- package/dist/attachments/save.js +86 -0
- package/dist/attachments/save.js.map +1 -0
- package/dist/attachments/table-view.d.ts +2 -0
- package/dist/attachments/table-view.js +71 -0
- package/dist/attachments/table-view.js.map +1 -0
- package/dist/attachments/uploads.d.ts +5 -0
- package/dist/attachments/uploads.js +29 -0
- package/dist/attachments/uploads.js.map +1 -0
- package/dist/automation/actions.d.ts +2 -0
- package/dist/automation/actions.js +150 -0
- package/dist/automation/actions.js.map +1 -0
- package/dist/automation/events.d.ts +49 -0
- package/dist/automation/events.js +23 -0
- package/dist/automation/events.js.map +1 -0
- package/dist/automation/index.d.ts +3 -0
- package/dist/automation/index.js +123 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/registration-lifecycle.d.ts +7 -0
- package/dist/automation/registration-lifecycle.js +24 -0
- package/dist/automation/registration-lifecycle.js.map +1 -0
- package/dist/automation/sources.d.ts +2 -0
- package/dist/automation/sources.js +81 -0
- package/dist/automation/sources.js.map +1 -0
- package/dist/automation/triggers.d.ts +2 -0
- package/dist/automation/triggers.js +139 -0
- package/dist/automation/triggers.js.map +1 -0
- package/dist/config.d.ts +58 -0
- package/dist/config.js +83 -0
- package/dist/config.js.map +1 -0
- package/dist/crons/cleanup-user-invites.d.ts +4 -0
- package/dist/crons/cleanup-user-invites.js +94 -0
- package/dist/crons/cleanup-user-invites.js.map +1 -0
- package/dist/crons/index.d.ts +4 -0
- package/dist/crons/index.js +25 -0
- package/dist/crons/index.js.map +1 -0
- package/dist/crons/sweep-stale-exports.d.ts +4 -0
- package/dist/crons/sweep-stale-exports.js +24 -0
- package/dist/crons/sweep-stale-exports.js.map +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.js +19 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/models/attachments.model.d.ts +22 -0
- package/dist/db/models/attachments.model.js +9 -0
- package/dist/db/models/attachments.model.js.map +1 -0
- package/dist/db/models/index.d.ts +4 -0
- package/dist/db/models/index.js +21 -0
- package/dist/db/models/index.js.map +1 -0
- package/dist/db/models/systemState.model.d.ts +24 -0
- package/dist/db/models/systemState.model.js +19 -0
- package/dist/db/models/systemState.model.js.map +1 -0
- package/dist/db/models/userNotificationPreferences.model.d.ts +26 -0
- package/dist/db/models/userNotificationPreferences.model.js +71 -0
- package/dist/db/models/userNotificationPreferences.model.js.map +1 -0
- package/dist/db/models/userNotifications.model.d.ts +49 -0
- package/dist/db/models/userNotifications.model.js +217 -0
- package/dist/db/models/userNotifications.model.js.map +1 -0
- package/dist/db/tables/attachments.table.d.ts +9 -0
- package/dist/db/tables/attachments.table.js +43 -0
- package/dist/db/tables/attachments.table.js.map +1 -0
- package/dist/db/tables/index.d.ts +4 -0
- package/dist/db/tables/index.js +21 -0
- package/dist/db/tables/index.js.map +1 -0
- package/dist/db/tables/systemState.table.d.ts +8 -0
- package/dist/db/tables/systemState.table.js +48 -0
- package/dist/db/tables/systemState.table.js.map +1 -0
- package/dist/db/tables/userNotificationPreferences.table.d.ts +9 -0
- package/dist/db/tables/userNotificationPreferences.table.js +49 -0
- package/dist/db/tables/userNotificationPreferences.table.js.map +1 -0
- package/dist/db/tables/userNotifications.table.d.ts +19 -0
- package/dist/db/tables/userNotifications.table.js +93 -0
- package/dist/db/tables/userNotifications.table.js.map +1 -0
- package/dist/dev/module-update-notifications.d.ts +10 -0
- package/dist/dev/module-update-notifications.js +146 -0
- package/dist/dev/module-update-notifications.js.map +1 -0
- package/dist/hooks/invite-extensions.d.ts +1 -0
- package/dist/hooks/invite-extensions.js +43 -0
- package/dist/hooks/invite-extensions.js.map +1 -0
- package/dist/hooks/tenant-deleted.d.ts +1 -0
- package/dist/hooks/tenant-deleted.js +33 -0
- package/dist/hooks/tenant-deleted.js.map +1 -0
- package/dist/implementations/dms/attachments.d.ts +6 -0
- package/dist/implementations/dms/attachments.js +10 -0
- package/dist/implementations/dms/attachments.js.map +1 -0
- package/dist/implementations/dms/client-base-url.d.ts +1 -0
- package/dist/implementations/dms/client-base-url.js +6 -0
- package/dist/implementations/dms/client-base-url.js.map +1 -0
- package/dist/implementations/dms/dev-handshake.d.ts +1 -0
- package/dist/implementations/dms/dev-handshake.js +41 -0
- package/dist/implementations/dms/dev-handshake.js.map +1 -0
- package/dist/implementations/dms/dev-reload.d.ts +10 -0
- package/dist/implementations/dms/dev-reload.js +93 -0
- package/dist/implementations/dms/dev-reload.js.map +1 -0
- package/dist/implementations/dms/frontend-bootstrap.d.ts +7 -0
- package/dist/implementations/dms/frontend-bootstrap.js +39 -0
- package/dist/implementations/dms/frontend-bootstrap.js.map +1 -0
- package/dist/implementations/dms/frontend-modules.d.ts +23 -0
- package/dist/implementations/dms/frontend-modules.js +215 -0
- package/dist/implementations/dms/frontend-modules.js.map +1 -0
- package/dist/implementations/dms/guards.d.ts +7 -0
- package/dist/implementations/dms/guards.js +45 -0
- package/dist/implementations/dms/guards.js.map +1 -0
- package/dist/implementations/dms/invite-extensions.d.ts +7 -0
- package/dist/implementations/dms/invite-extensions.js +19 -0
- package/dist/implementations/dms/invite-extensions.js.map +1 -0
- package/dist/implementations/dms/manifest.d.ts +27 -0
- package/dist/implementations/dms/manifest.js +96 -0
- package/dist/implementations/dms/manifest.js.map +1 -0
- package/dist/implementations/dms/page.d.ts +93 -0
- package/dist/implementations/dms/page.js +894 -0
- package/dist/implementations/dms/page.js.map +1 -0
- package/dist/implementations/dms/permissions-resolver.d.ts +8 -0
- package/dist/implementations/dms/permissions-resolver.js +33 -0
- package/dist/implementations/dms/permissions-resolver.js.map +1 -0
- package/dist/implementations/dms/permissions.d.ts +9 -0
- package/dist/implementations/dms/permissions.js +64 -0
- package/dist/implementations/dms/permissions.js.map +1 -0
- package/dist/implementations/dms/quick-actions.d.ts +33 -0
- package/dist/implementations/dms/quick-actions.js +52 -0
- package/dist/implementations/dms/quick-actions.js.map +1 -0
- package/dist/implementations/dms/realtime.d.ts +12 -0
- package/dist/implementations/dms/realtime.js +37 -0
- package/dist/implementations/dms/realtime.js.map +1 -0
- package/dist/implementations/dms/route-params.d.ts +2 -0
- package/dist/implementations/dms/route-params.js +24 -0
- package/dist/implementations/dms/route-params.js.map +1 -0
- package/dist/implementations/dms/tenant-access.d.ts +8 -0
- package/dist/implementations/dms/tenant-access.js +34 -0
- package/dist/implementations/dms/tenant-access.js.map +1 -0
- package/dist/implementations/dms/uploads.d.ts +8 -0
- package/dist/implementations/dms/uploads.js +11 -0
- package/dist/implementations/dms/uploads.js.map +1 -0
- package/dist/implementations/dms/warn-once.d.ts +1 -0
- package/dist/implementations/dms/warn-once.js +17 -0
- package/dist/implementations/dms/warn-once.js.map +1 -0
- package/dist/implementations/dms-auth/index.d.ts +55 -0
- package/dist/implementations/dms-auth/index.js +349 -0
- package/dist/implementations/dms-auth/index.js.map +1 -0
- package/dist/implementations/dms-base/export-jobs.d.ts +2 -0
- package/dist/implementations/dms-base/export-jobs.js +12 -0
- package/dist/implementations/dms-base/export-jobs.js.map +1 -0
- package/dist/implementations/dms-base/search-route.d.ts +29 -0
- package/dist/implementations/dms-base/search-route.js +168 -0
- package/dist/implementations/dms-base/search-route.js.map +1 -0
- package/dist/implementations/dms-base/table-view.d.ts +43 -0
- package/dist/implementations/dms-base/table-view.js +232 -0
- package/dist/implementations/dms-base/table-view.js.map +1 -0
- package/dist/implementations/dms-base/tenant-export-archive.d.ts +1 -0
- package/dist/implementations/dms-base/tenant-export-archive.js +7 -0
- package/dist/implementations/dms-base/tenant-export-archive.js.map +1 -0
- package/dist/implementations/dms-html-render/constants.d.ts +2 -0
- package/dist/implementations/dms-html-render/constants.js +6 -0
- package/dist/implementations/dms-html-render/constants.js.map +1 -0
- package/dist/implementations/dms-html-render/index.d.ts +4 -0
- package/dist/implementations/dms-html-render/index.js +50 -0
- package/dist/implementations/dms-html-render/index.js.map +1 -0
- package/dist/implementations/dms-html-render/service-jwt.d.ts +1 -0
- package/dist/implementations/dms-html-render/service-jwt.js +17 -0
- package/dist/implementations/dms-html-render/service-jwt.js.map +1 -0
- package/dist/implementations/dms-html-render/template-registry.d.ts +9 -0
- package/dist/implementations/dms-html-render/template-registry.js +28 -0
- package/dist/implementations/dms-html-render/template-registry.js.map +1 -0
- package/dist/implementations/dms-notifications/index.d.ts +19 -0
- package/dist/implementations/dms-notifications/index.js +193 -0
- package/dist/implementations/dms-notifications/index.js.map +1 -0
- package/dist/implementations/dms-notifications/registry.d.ts +6 -0
- package/dist/implementations/dms-notifications/registry.js +18 -0
- package/dist/implementations/dms-notifications/registry.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +195 -0
- package/dist/index.js.map +1 -0
- package/dist/pages/index.d.ts +3 -0
- package/dist/pages/index.js +20 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/pages/modules/index.d.ts +1 -0
- package/dist/pages/modules/index.js +18 -0
- package/dist/pages/modules/index.js.map +1 -0
- package/dist/pages/modules/modules-index.d.ts +4 -0
- package/dist/pages/modules/modules-index.js +22 -0
- package/dist/pages/modules/modules-index.js.map +1 -0
- package/dist/pages/public/auth/2fa.d.ts +9 -0
- package/dist/pages/public/auth/2fa.js +26 -0
- package/dist/pages/public/auth/2fa.js.map +1 -0
- package/dist/pages/public/auth/accounts.d.ts +9 -0
- package/dist/pages/public/auth/accounts.js +27 -0
- package/dist/pages/public/auth/accounts.js.map +1 -0
- package/dist/pages/public/auth/backup.d.ts +9 -0
- package/dist/pages/public/auth/backup.js +26 -0
- package/dist/pages/public/auth/backup.js.map +1 -0
- package/dist/pages/public/auth/forgot-validation.d.ts +9 -0
- package/dist/pages/public/auth/forgot-validation.js +26 -0
- package/dist/pages/public/auth/forgot-validation.js.map +1 -0
- package/dist/pages/public/auth/forgot.d.ts +9 -0
- package/dist/pages/public/auth/forgot.js +26 -0
- package/dist/pages/public/auth/forgot.js.map +1 -0
- package/dist/pages/public/auth/login.d.ts +9 -0
- package/dist/pages/public/auth/login.js +26 -0
- package/dist/pages/public/auth/login.js.map +1 -0
- package/dist/pages/public/auth/oauth-complete.d.ts +9 -0
- package/dist/pages/public/auth/oauth-complete.js +26 -0
- package/dist/pages/public/auth/oauth-complete.js.map +1 -0
- package/dist/pages/public/auth/recover-success.d.ts +9 -0
- package/dist/pages/public/auth/recover-success.js +26 -0
- package/dist/pages/public/auth/recover-success.js.map +1 -0
- package/dist/pages/public/auth/recover.d.ts +9 -0
- package/dist/pages/public/auth/recover.js +26 -0
- package/dist/pages/public/auth/recover.js.map +1 -0
- package/dist/pages/public/auth/signup.d.ts +9 -0
- package/dist/pages/public/auth/signup.js +26 -0
- package/dist/pages/public/auth/signup.js.map +1 -0
- package/dist/pages/public/auth/validate.d.ts +9 -0
- package/dist/pages/public/auth/validate.js +26 -0
- package/dist/pages/public/auth/validate.js.map +1 -0
- package/dist/pages/public/index.d.ts +12 -0
- package/dist/pages/public/index.js +15 -0
- package/dist/pages/public/index.js.map +1 -0
- package/dist/pages/public/onboarding/index.d.ts +9 -0
- package/dist/pages/public/onboarding/index.js +26 -0
- package/dist/pages/public/onboarding/index.js.map +1 -0
- package/dist/pages/settings/index.d.ts +2 -0
- package/dist/pages/settings/index.js +19 -0
- package/dist/pages/settings/index.js.map +1 -0
- package/dist/pages/settings/settings-index.d.ts +4 -0
- package/dist/pages/settings/settings-index.js +22 -0
- package/dist/pages/settings/settings-index.js.map +1 -0
- package/dist/pages/settings/users/appearance.d.ts +9 -0
- package/dist/pages/settings/users/appearance.js +30 -0
- package/dist/pages/settings/users/appearance.js.map +1 -0
- package/dist/pages/settings/users/category.d.ts +1 -0
- package/dist/pages/settings/users/category.js +12 -0
- package/dist/pages/settings/users/category.js.map +1 -0
- package/dist/pages/settings/users/index.d.ts +8 -0
- package/dist/pages/settings/users/index.js +27 -0
- package/dist/pages/settings/users/index.js.map +1 -0
- package/dist/pages/settings/users/invites.d.ts +37 -0
- package/dist/pages/settings/users/invites.js +307 -0
- package/dist/pages/settings/users/invites.js.map +1 -0
- package/dist/pages/settings/users/member-invite-form.d.ts +5 -0
- package/dist/pages/settings/users/member-invite-form.js +125 -0
- package/dist/pages/settings/users/member-invite-form.js.map +1 -0
- package/dist/pages/settings/users/members.d.ts +18 -0
- package/dist/pages/settings/users/members.js +222 -0
- package/dist/pages/settings/users/members.js.map +1 -0
- package/dist/pages/settings/users/notifications.d.ts +39 -0
- package/dist/pages/settings/users/notifications.js +177 -0
- package/dist/pages/settings/users/notifications.js.map +1 -0
- package/dist/pages/settings/users/profile-helpers.d.ts +56 -0
- package/dist/pages/settings/users/profile-helpers.js +141 -0
- package/dist/pages/settings/users/profile-helpers.js.map +1 -0
- package/dist/pages/settings/users/profile.d.ts +63 -0
- package/dist/pages/settings/users/profile.js +414 -0
- package/dist/pages/settings/users/profile.js.map +1 -0
- package/dist/pages/settings/users/roles.d.ts +11 -0
- package/dist/pages/settings/users/roles.js +71 -0
- package/dist/pages/settings/users/roles.js.map +1 -0
- package/dist/pages/settings/users/shortcuts.d.ts +9 -0
- package/dist/pages/settings/users/shortcuts.js +30 -0
- package/dist/pages/settings/users/shortcuts.js.map +1 -0
- package/dist/realtime/broker.d.ts +31 -0
- package/dist/realtime/broker.js +34 -0
- package/dist/realtime/broker.js.map +1 -0
- package/dist/realtime/current.d.ts +5 -0
- package/dist/realtime/current.js +20 -0
- package/dist/realtime/current.js.map +1 -0
- package/dist/realtime/heartbeat.d.ts +5 -0
- package/dist/realtime/heartbeat.js +35 -0
- package/dist/realtime/heartbeat.js.map +1 -0
- package/dist/realtime/index.d.ts +16 -0
- package/dist/realtime/index.js +143 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/instance.d.ts +1 -0
- package/dist/realtime/instance.js +6 -0
- package/dist/realtime/instance.js.map +1 -0
- package/dist/realtime/presence.d.ts +38 -0
- package/dist/realtime/presence.js +241 -0
- package/dist/realtime/presence.js.map +1 -0
- package/dist/realtime/redis-broker.d.ts +14 -0
- package/dist/realtime/redis-broker.js +127 -0
- package/dist/realtime/redis-broker.js.map +1 -0
- package/dist/realtime/registry.d.ts +7 -0
- package/dist/realtime/registry.js +34 -0
- package/dist/realtime/registry.js.map +1 -0
- package/dist/realtime/sessions.d.ts +14 -0
- package/dist/realtime/sessions.js +30 -0
- package/dist/realtime/sessions.js.map +1 -0
- package/dist/realtime/sse.d.ts +7 -0
- package/dist/realtime/sse.js +55 -0
- package/dist/realtime/sse.js.map +1 -0
- package/dist/realtime/tableview-bridge.d.ts +1 -0
- package/dist/realtime/tableview-bridge.js +38 -0
- package/dist/realtime/tableview-bridge.js.map +1 -0
- package/dist/routes/auth/constants.d.ts +3 -0
- package/dist/routes/auth/constants.js +7 -0
- package/dist/routes/auth/constants.js.map +1 -0
- package/dist/routes/auth/forgot-password.d.ts +2 -0
- package/dist/routes/auth/forgot-password.js +33 -0
- package/dist/routes/auth/forgot-password.js.map +1 -0
- package/dist/routes/auth/index.d.ts +16 -0
- package/dist/routes/auth/index.js +33 -0
- package/dist/routes/auth/index.js.map +1 -0
- package/dist/routes/auth/invite.d.ts +8 -0
- package/dist/routes/auth/invite.js +30 -0
- package/dist/routes/auth/invite.js.map +1 -0
- package/dist/routes/auth/login.d.ts +3 -0
- package/dist/routes/auth/login.js +16 -0
- package/dist/routes/auth/login.js.map +1 -0
- package/dist/routes/auth/logout.d.ts +3 -0
- package/dist/routes/auth/logout.js +22 -0
- package/dist/routes/auth/logout.js.map +1 -0
- package/dist/routes/auth/me.d.ts +2 -0
- package/dist/routes/auth/me.js +8 -0
- package/dist/routes/auth/me.js.map +1 -0
- package/dist/routes/auth/oauth/authorize-url.d.ts +5 -0
- package/dist/routes/auth/oauth/authorize-url.js +18 -0
- package/dist/routes/auth/oauth/authorize-url.js.map +1 -0
- package/dist/routes/auth/oauth/callback.d.ts +11 -0
- package/dist/routes/auth/oauth/callback.js +51 -0
- package/dist/routes/auth/oauth/callback.js.map +1 -0
- package/dist/routes/auth/oauth/config.d.ts +21 -0
- package/dist/routes/auth/oauth/config.js +55 -0
- package/dist/routes/auth/oauth/config.js.map +1 -0
- package/dist/routes/auth/oauth/identity-resolution.d.ts +16 -0
- package/dist/routes/auth/oauth/identity-resolution.js +108 -0
- package/dist/routes/auth/oauth/identity-resolution.js.map +1 -0
- package/dist/routes/auth/oauth/index.d.ts +9 -0
- package/dist/routes/auth/oauth/index.js +26 -0
- package/dist/routes/auth/oauth/index.js.map +1 -0
- package/dist/routes/auth/oauth/linking-policy.d.ts +11 -0
- package/dist/routes/auth/oauth/linking-policy.js +28 -0
- package/dist/routes/auth/oauth/linking-policy.js.map +1 -0
- package/dist/routes/auth/oauth/providers.d.ts +15 -0
- package/dist/routes/auth/oauth/providers.js +80 -0
- package/dist/routes/auth/oauth/providers.js.map +1 -0
- package/dist/routes/auth/oauth/relay.d.ts +2 -0
- package/dist/routes/auth/oauth/relay.js +25 -0
- package/dist/routes/auth/oauth/relay.js.map +1 -0
- package/dist/routes/auth/oauth/state.d.ts +2 -0
- package/dist/routes/auth/oauth/state.js +71 -0
- package/dist/routes/auth/oauth/state.js.map +1 -0
- package/dist/routes/auth/oauth/token-exchange.d.ts +2 -0
- package/dist/routes/auth/oauth/token-exchange.js +34 -0
- package/dist/routes/auth/oauth/token-exchange.js.map +1 -0
- package/dist/routes/auth/pick-tenant.d.ts +1 -0
- package/dist/routes/auth/pick-tenant.js +12 -0
- package/dist/routes/auth/pick-tenant.js.map +1 -0
- package/dist/routes/auth/refresh.d.ts +4 -0
- package/dist/routes/auth/refresh.js +61 -0
- package/dist/routes/auth/refresh.js.map +1 -0
- package/dist/routes/auth/request-2fa-email.d.ts +6 -0
- package/dist/routes/auth/request-2fa-email.js +30 -0
- package/dist/routes/auth/request-2fa-email.js.map +1 -0
- package/dist/routes/auth/request-email-verification.d.ts +2 -0
- package/dist/routes/auth/request-email-verification.js +28 -0
- package/dist/routes/auth/request-email-verification.js.map +1 -0
- package/dist/routes/auth/reset-password.d.ts +2 -0
- package/dist/routes/auth/reset-password.js +23 -0
- package/dist/routes/auth/reset-password.js.map +1 -0
- package/dist/routes/auth/session-response.d.ts +5 -0
- package/dist/routes/auth/session-response.js +42 -0
- package/dist/routes/auth/session-response.js.map +1 -0
- package/dist/routes/auth/signup.d.ts +3 -0
- package/dist/routes/auth/signup.js +103 -0
- package/dist/routes/auth/signup.js.map +1 -0
- package/dist/routes/auth/switch-tenant.d.ts +3 -0
- package/dist/routes/auth/switch-tenant.js +46 -0
- package/dist/routes/auth/switch-tenant.js.map +1 -0
- package/dist/routes/auth/types.d.ts +18 -0
- package/dist/routes/auth/types.js +3 -0
- package/dist/routes/auth/types.js.map +1 -0
- package/dist/routes/auth/validate-forgot-password-token.d.ts +2 -0
- package/dist/routes/auth/validate-forgot-password-token.js +17 -0
- package/dist/routes/auth/validate-forgot-password-token.js.map +1 -0
- package/dist/routes/auth/verify-2fa.d.ts +3 -0
- package/dist/routes/auth/verify-2fa.js +62 -0
- package/dist/routes/auth/verify-2fa.js.map +1 -0
- package/dist/routes/auth/verify-email.d.ts +2 -0
- package/dist/routes/auth/verify-email.js +21 -0
- package/dist/routes/auth/verify-email.js.map +1 -0
- package/dist/routes/auth.d.ts +30 -0
- package/dist/routes/auth.js +239 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/files.d.ts +18 -0
- package/dist/routes/files.js +76 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/index.d.ts +5 -0
- package/dist/routes/index.js +22 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/onboarding.d.ts +12 -0
- package/dist/routes/onboarding.js +90 -0
- package/dist/routes/onboarding.js.map +1 -0
- package/dist/routes/realtime.d.ts +15 -0
- package/dist/routes/realtime.js +226 -0
- package/dist/routes/realtime.js.map +1 -0
- package/dist/routes/system-state.d.ts +16 -0
- package/dist/routes/system-state.js +43 -0
- package/dist/routes/system-state.js.map +1 -0
- package/dist/test/antelope.test.d.ts +2 -0
- package/dist/test/antelope.test.js +130 -0
- package/dist/test/antelope.test.js.map +1 -0
- package/dist/test/attachment-host/index.d.ts +1 -0
- package/dist/test/attachment-host/index.js +4 -0
- package/dist/test/attachment-host/index.js.map +1 -0
- package/dist/test/attachment-host/native.d.ts +14 -0
- package/dist/test/attachment-host/native.js +158 -0
- package/dist/test/attachment-host/native.js.map +1 -0
- package/dist/test/helpers/attachments.d.ts +18 -0
- package/dist/test/helpers/attachments.js +57 -0
- package/dist/test/helpers/attachments.js.map +1 -0
- package/dist/test/helpers/auth.d.ts +23 -0
- package/dist/test/helpers/auth.js +58 -0
- package/dist/test/helpers/auth.js.map +1 -0
- package/dist/test/helpers/db.d.ts +2 -0
- package/dist/test/helpers/db.js +47 -0
- package/dist/test/helpers/db.js.map +1 -0
- package/dist/test/helpers/fixtures.d.ts +23 -0
- package/dist/test/helpers/fixtures.js +62 -0
- package/dist/test/helpers/fixtures.js.map +1 -0
- package/dist/test/helpers/http.d.ts +3 -0
- package/dist/test/helpers/http.js +22 -0
- package/dist/test/helpers/http.js.map +1 -0
- package/dist/test/helpers/logging.d.ts +5 -0
- package/dist/test/helpers/logging.js +18 -0
- package/dist/test/helpers/logging.js.map +1 -0
- package/dist/test/helpers/page-access.d.ts +16 -0
- package/dist/test/helpers/page-access.js +44 -0
- package/dist/test/helpers/page-access.js.map +1 -0
- package/dist/test/integration/auth/login.test.d.ts +1 -0
- package/dist/test/integration/auth/login.test.js +57 -0
- package/dist/test/integration/auth/login.test.js.map +1 -0
- package/dist/test/integration/auth/refresh.test.d.ts +1 -0
- package/dist/test/integration/auth/refresh.test.js +59 -0
- package/dist/test/integration/auth/refresh.test.js.map +1 -0
- package/dist/test/integration/auth/sessions.test.d.ts +1 -0
- package/dist/test/integration/auth/sessions.test.js +58 -0
- package/dist/test/integration/auth/sessions.test.js.map +1 -0
- package/dist/test/integration/auth/signup.test.d.ts +1 -0
- package/dist/test/integration/auth/signup.test.js +99 -0
- package/dist/test/integration/auth/signup.test.js.map +1 -0
- package/dist/test/integration/export-cleanup.test.d.ts +1 -0
- package/dist/test/integration/export-cleanup.test.js +144 -0
- package/dist/test/integration/export-cleanup.test.js.map +1 -0
- package/dist/test/integration/files/component-file-retries.test.d.ts +1 -0
- package/dist/test/integration/files/component-file-retries.test.js +219 -0
- package/dist/test/integration/files/component-file-retries.test.js.map +1 -0
- package/dist/test/integration/files/component-files.test.d.ts +1 -0
- package/dist/test/integration/files/component-files.test.js +264 -0
- package/dist/test/integration/files/component-files.test.js.map +1 -0
- package/dist/test/integration/files/sign-upload-token.test.d.ts +1 -0
- package/dist/test/integration/files/sign-upload-token.test.js +16 -0
- package/dist/test/integration/files/sign-upload-token.test.js.map +1 -0
- package/dist/test/integration/files/upload.test.d.ts +1 -0
- package/dist/test/integration/files/upload.test.js +114 -0
- package/dist/test/integration/files/upload.test.js.map +1 -0
- package/dist/test/integration/frontend-endpoints.test.d.ts +1 -0
- package/dist/test/integration/frontend-endpoints.test.js +84 -0
- package/dist/test/integration/frontend-endpoints.test.js.map +1 -0
- package/dist/test/integration/invite-resolution.test.d.ts +1 -0
- package/dist/test/integration/invite-resolution.test.js +438 -0
- package/dist/test/integration/invite-resolution.test.js.map +1 -0
- package/dist/test/integration/notifications.test.d.ts +1 -0
- package/dist/test/integration/notifications.test.js +263 -0
- package/dist/test/integration/notifications.test.js.map +1 -0
- package/dist/test/integration/setup.test.d.ts +1 -0
- package/dist/test/integration/setup.test.js +45 -0
- package/dist/test/integration/setup.test.js.map +1 -0
- package/dist/test/integration/tenant-lifecycle.test.d.ts +1 -0
- package/dist/test/integration/tenant-lifecycle.test.js +244 -0
- package/dist/test/integration/tenant-lifecycle.test.js.map +1 -0
- package/dist/test/unit/auth-token-purpose.test.d.ts +1 -0
- package/dist/test/unit/auth-token-purpose.test.js +84 -0
- package/dist/test/unit/auth-token-purpose.test.js.map +1 -0
- package/dist/test/unit/automation-registration-lifecycle.test.d.ts +1 -0
- package/dist/test/unit/automation-registration-lifecycle.test.js +23 -0
- package/dist/test/unit/automation-registration-lifecycle.test.js.map +1 -0
- package/dist/test/unit/db/system-state.model.test.d.ts +1 -0
- package/dist/test/unit/db/system-state.model.test.js +55 -0
- package/dist/test/unit/db/system-state.model.test.js.map +1 -0
- package/dist/test/unit/dev/module-update-notifications.test.d.ts +1 -0
- package/dist/test/unit/dev/module-update-notifications.test.js +43 -0
- package/dist/test/unit/dev/module-update-notifications.test.js.map +1 -0
- package/dist/test/unit/dist-self-imports.test.d.ts +1 -0
- package/dist/test/unit/dist-self-imports.test.js +25 -0
- package/dist/test/unit/dist-self-imports.test.js.map +1 -0
- package/dist/test/unit/frontend-bootstrap.test.d.ts +1 -0
- package/dist/test/unit/frontend-bootstrap.test.js +55 -0
- package/dist/test/unit/frontend-bootstrap.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/archive-filter.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/archive-filter.test.js +63 -0
- package/dist/test/unit/implementations/dms/archive-filter.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/category-slug-registry.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/category-slug-registry.test.js +187 -0
- package/dist/test/unit/implementations/dms/category-slug-registry.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.js +168 -0
- package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/dynamic-menu.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/dynamic-menu.test.js +478 -0
- package/dist/test/unit/implementations/dms/dynamic-menu.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/frontend-module-metadata.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/frontend-module-metadata.test.js +38 -0
- package/dist/test/unit/implementations/dms/frontend-module-metadata.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/gate-consistency.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/gate-consistency.test.js +112 -0
- package/dist/test/unit/implementations/dms/gate-consistency.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/manifest-strip.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/manifest-strip.test.js +91 -0
- package/dist/test/unit/implementations/dms/manifest-strip.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/notify-menu-changed.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/notify-menu-changed.test.js +47 -0
- package/dist/test/unit/implementations/dms/notify-menu-changed.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/page-tenant-gate.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/page-tenant-gate.test.js +189 -0
- package/dist/test/unit/implementations/dms/page-tenant-gate.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/permission-teardown.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/permission-teardown.test.js +105 -0
- package/dist/test/unit/implementations/dms/permission-teardown.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/quick-actions-access.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/quick-actions-access.test.js +159 -0
- package/dist/test/unit/implementations/dms/quick-actions-access.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/quick-actions-openform.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/quick-actions-openform.test.js +184 -0
- package/dist/test/unit/implementations/dms/quick-actions-openform.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/subscribe-message.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/subscribe-message.test.js +68 -0
- package/dist/test/unit/implementations/dms/subscribe-message.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/surface-redaction.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/surface-redaction.test.js +171 -0
- package/dist/test/unit/implementations/dms/surface-redaction.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/user-can-access-page.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/user-can-access-page.test.js +113 -0
- package/dist/test/unit/implementations/dms/user-can-access-page.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/user-permissions-gate.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/user-permissions-gate.test.js +158 -0
- package/dist/test/unit/implementations/dms/user-permissions-gate.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/warn-once.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/warn-once.test.js +179 -0
- package/dist/test/unit/implementations/dms/warn-once.test.js.map +1 -0
- package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.js +121 -0
- package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.js.map +1 -0
- package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.js +120 -0
- package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.js.map +1 -0
- package/dist/test/unit/implementations/dms-html-render/generate-html.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms-html-render/generate-html.test.js +44 -0
- package/dist/test/unit/implementations/dms-html-render/generate-html.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/component-children-permissions.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/component-children-permissions.test.js +357 -0
- package/dist/test/unit/interfaces/dms/component-children-permissions.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/component-transform.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/component-transform.test.js +45 -0
- package/dist/test/unit/interfaces/dms/component-transform.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.js +70 -0
- package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/invite-extension.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/invite-extension.test.js +371 -0
- package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/module-permission-registration.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/module-permission-registration.test.js +96 -0
- package/dist/test/unit/interfaces/dms/module-permission-registration.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.js +28 -0
- package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/native-file-registration.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/native-file-registration.test.js +135 -0
- package/dist/test/unit/interfaces/dms/native-file-registration.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/page-extension.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/page-extension.test.js +599 -0
- package/dist/test/unit/interfaces/dms/page-extension.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/page-layout-gate.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/page-layout-gate.test.js +143 -0
- package/dist/test/unit/interfaces/dms/page-layout-gate.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/page-permission-teardown.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/page-permission-teardown.test.js +75 -0
- package/dist/test/unit/interfaces/dms/page-permission-teardown.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/page-registration-identity.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/page-registration-identity.test.js +203 -0
- package/dist/test/unit/interfaces/dms/page-registration-identity.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/page-teardown.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/page-teardown.test.js +290 -0
- package/dist/test/unit/interfaces/dms/page-teardown.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.js +92 -0
- package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js +88 -0
- package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.js +29 -0
- package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.js +254 -0
- package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.js +56 -0
- package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.js +175 -0
- package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/layouts.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/layouts.test.js +33 -0
- package/dist/test/unit/interfaces/dms-base/layouts.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.js +85 -0
- package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.js +29 -0
- package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js +205 -0
- package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js +208 -0
- package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js.map +1 -0
- package/dist/test/unit/oauth-account-guard.test.d.ts +1 -0
- package/dist/test/unit/oauth-account-guard.test.js +96 -0
- package/dist/test/unit/oauth-account-guard.test.js.map +1 -0
- package/dist/test/unit/oauth-claim-account.test.d.ts +1 -0
- package/dist/test/unit/oauth-claim-account.test.js +90 -0
- package/dist/test/unit/oauth-claim-account.test.js.map +1 -0
- package/dist/test/unit/oauth-config.test.d.ts +1 -0
- package/dist/test/unit/oauth-config.test.js +112 -0
- package/dist/test/unit/oauth-config.test.js.map +1 -0
- package/dist/test/unit/oauth-linking-policy.test.d.ts +1 -0
- package/dist/test/unit/oauth-linking-policy.test.js +114 -0
- package/dist/test/unit/oauth-linking-policy.test.js.map +1 -0
- package/dist/test/unit/oauth-provider-identity.test.d.ts +1 -0
- package/dist/test/unit/oauth-provider-identity.test.js +126 -0
- package/dist/test/unit/oauth-provider-identity.test.js.map +1 -0
- package/dist/test/unit/oauth-relay.test.d.ts +1 -0
- package/dist/test/unit/oauth-relay.test.js +40 -0
- package/dist/test/unit/oauth-relay.test.js.map +1 -0
- package/dist/test/unit/oauth-state.test.d.ts +1 -0
- package/dist/test/unit/oauth-state.test.js +61 -0
- package/dist/test/unit/oauth-state.test.js.map +1 -0
- package/dist/test/unit/request-authenticators.test.d.ts +1 -0
- package/dist/test/unit/request-authenticators.test.js +153 -0
- package/dist/test/unit/request-authenticators.test.js.map +1 -0
- package/dist/test/unit/request-tenant-guards.test.d.ts +1 -0
- package/dist/test/unit/request-tenant-guards.test.js +161 -0
- package/dist/test/unit/request-tenant-guards.test.js.map +1 -0
- package/dist/test/unit/signup-account-guard.test.d.ts +1 -0
- package/dist/test/unit/signup-account-guard.test.js +123 -0
- package/dist/test/unit/signup-account-guard.test.js.map +1 -0
- package/dist/test/unit/upload-constraints.test.d.ts +1 -0
- package/dist/test/unit/upload-constraints.test.js +43 -0
- package/dist/test/unit/upload-constraints.test.js.map +1 -0
- package/dist/test/unit/upload-token.test.d.ts +1 -0
- package/dist/test/unit/upload-token.test.js +46 -0
- package/dist/test/unit/upload-token.test.js.map +1 -0
- package/dist/test/unit/utils/row-action-rule-evaluator.test.d.ts +1 -0
- package/dist/test/unit/utils/row-action-rule-evaluator.test.js +143 -0
- package/dist/test/unit/utils/row-action-rule-evaluator.test.js.map +1 -0
- package/dist/test/unit/utils/tenant-export-archive.test.d.ts +1 -0
- package/dist/test/unit/utils/tenant-export-archive.test.js +138 -0
- package/dist/test/unit/utils/tenant-export-archive.test.js.map +1 -0
- package/dist/test/unit/utils/type-check.test.d.ts +1 -0
- package/dist/test/unit/utils/type-check.test.js +143 -0
- package/dist/test/unit/utils/type-check.test.js.map +1 -0
- package/dist/test/unit/utils/value-parser.test.d.ts +1 -0
- package/dist/test/unit/utils/value-parser.test.js +166 -0
- package/dist/test/unit/utils/value-parser.test.js.map +1 -0
- package/dist/test/unit/validation/auth.schema.test.d.ts +1 -0
- package/dist/test/unit/validation/auth.schema.test.js +77 -0
- package/dist/test/unit/validation/auth.schema.test.js.map +1 -0
- package/dist/test/unit/validation/file.schema.test.d.ts +1 -0
- package/dist/test/unit/validation/file.schema.test.js +140 -0
- package/dist/test/unit/validation/file.schema.test.js.map +1 -0
- package/dist/test/unit/validation/member-invite.schema.test.d.ts +1 -0
- package/dist/test/unit/validation/member-invite.schema.test.js +117 -0
- package/dist/test/unit/validation/member-invite.schema.test.js.map +1 -0
- package/dist/test/unit/validation/onboarding/register-admin.schema.test.d.ts +1 -0
- package/dist/test/unit/validation/onboarding/register-admin.schema.test.js +69 -0
- package/dist/test/unit/validation/onboarding/register-admin.schema.test.js.map +1 -0
- package/dist/test/unit/validation/user-notification-preferences.schema.test.d.ts +1 -0
- package/dist/test/unit/validation/user-notification-preferences.schema.test.js +29 -0
- package/dist/test/unit/validation/user-notification-preferences.schema.test.js.map +1 -0
- package/dist/utils/account-notifications.d.ts +10 -0
- package/dist/utils/account-notifications.js +147 -0
- package/dist/utils/account-notifications.js.map +1 -0
- package/dist/utils/auth-key.d.ts +1 -0
- package/dist/utils/auth-key.js +12 -0
- package/dist/utils/auth-key.js.map +1 -0
- package/dist/utils/ensure-default-tenant.d.ts +1 -0
- package/dist/utils/ensure-default-tenant.js +27 -0
- package/dist/utils/ensure-default-tenant.js.map +1 -0
- package/dist/utils/export-jobs-run.d.ts +17 -0
- package/dist/utils/export-jobs-run.js +212 -0
- package/dist/utils/export-jobs-run.js.map +1 -0
- package/dist/utils/export-jobs.d.ts +14 -0
- package/dist/utils/export-jobs.js +241 -0
- package/dist/utils/export-jobs.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.js +26 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/row-action-rule-evaluator.d.ts +4 -0
- package/dist/utils/row-action-rule-evaluator.js +47 -0
- package/dist/utils/row-action-rule-evaluator.js.map +1 -0
- package/dist/utils/run-in-batches.d.ts +1 -0
- package/dist/utils/run-in-batches.js +17 -0
- package/dist/utils/run-in-batches.js.map +1 -0
- package/dist/utils/tenant-export-archive.d.ts +6 -0
- package/dist/utils/tenant-export-archive.js +271 -0
- package/dist/utils/tenant-export-archive.js.map +1 -0
- package/dist/utils/upload-constraints.d.ts +4 -0
- package/dist/utils/upload-constraints.js +19 -0
- package/dist/utils/upload-constraints.js.map +1 -0
- package/dist/utils/upload-token.d.ts +11 -0
- package/dist/utils/upload-token.js +75 -0
- package/dist/utils/upload-token.js.map +1 -0
- package/dist/utils/user-agent.d.ts +3 -0
- package/dist/utils/user-agent.js +22 -0
- package/dist/utils/user-agent.js.map +1 -0
- package/dist/validation/auth.schema.d.ts +149 -0
- package/dist/validation/auth.schema.js +102 -0
- package/dist/validation/auth.schema.js.map +1 -0
- package/dist/validation/file.schema.d.ts +27 -0
- package/dist/validation/file.schema.js +50 -0
- package/dist/validation/file.schema.js.map +1 -0
- package/dist/validation/member-invite.schema.d.ts +59 -0
- package/dist/validation/member-invite.schema.js +38 -0
- package/dist/validation/member-invite.schema.js.map +1 -0
- package/dist/validation/onboarding/index.d.ts +1 -0
- package/dist/validation/onboarding/index.js +18 -0
- package/dist/validation/onboarding/index.js.map +1 -0
- package/dist/validation/onboarding/register-admin.schema.d.ts +22 -0
- package/dist/validation/onboarding/register-admin.schema.js +54 -0
- package/dist/validation/onboarding/register-admin.schema.js.map +1 -0
- package/dist/validation/password.d.ts +3 -0
- package/dist/validation/password.js +40 -0
- package/dist/validation/password.js.map +1 -0
- package/dist/validation/user-notification-preferences.schema.d.ts +2 -0
- package/dist/validation/user-notification-preferences.schema.js +39 -0
- package/dist/validation/user-notification-preferences.schema.js.map +1 -0
- package/frontend-vue/.prettierrc +10 -0
- package/frontend-vue/.vscode/settings.json +42 -0
- package/frontend-vue/antelope.config.json +5 -0
- package/frontend-vue/deferred-plugins.ts +29 -0
- package/frontend-vue/dms.email.ts +13 -0
- package/frontend-vue/dms.frontend.ts +190 -0
- package/frontend-vue/eslint.config.mjs +50 -0
- package/frontend-vue/i18n.config.ts +3 -0
- package/frontend-vue/layers/dms-auth/app/components/OAuthButtons.vue +58 -0
- package/frontend-vue/layers/dms-auth/app/composables/useAuthLinks.ts +33 -0
- package/frontend-vue/layers/dms-auth/app/composables/useCooldown.ts +23 -0
- package/frontend-vue/layers/dms-auth/app/composables/useLogout.ts +32 -0
- package/frontend-vue/layers/dms-auth/app/composables/useOAuthErrorToast.ts +39 -0
- package/frontend-vue/layers/dms-auth/app/composables/usePostLoginRedirect.ts +28 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/2fa.vue +168 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/accounts.vue +168 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/backup.vue +98 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/forgot-validation.vue +158 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/forgot.vue +82 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/login.vue +201 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/oauth-complete.vue +80 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/recover-success.vue +15 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/recover.vue +124 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/signup.vue +140 -0
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/validate.vue +151 -0
- package/frontend-vue/layers/dms-auth/app/middleware/auth.ts +91 -0
- package/frontend-vue/layers/dms-auth/app/utils/accountsFlow.ts +22 -0
- package/frontend-vue/layers/dms-auth/i18n/locales/auth-en-GB.json +174 -0
- package/frontend-vue/layers/dms-auth/i18n/locales/auth-fr-FR.json +174 -0
- package/frontend-vue/layers/dms-auth/shared/oauth.ts +48 -0
- package/frontend-vue/layers/dms-core/app/components/PermissionGate.vue +13 -0
- package/frontend-vue/layers/dms-core/app/composables/auth/useAuthFetch.ts +134 -0
- package/frontend-vue/layers/dms-core/app/composables/auth/useCurrentUser.ts +23 -0
- package/frontend-vue/layers/dms-core/app/composables/auth/useMultiAccount.ts +250 -0
- package/frontend-vue/layers/dms-core/app/composables/auth/usePermissions.ts +73 -0
- package/frontend-vue/layers/dms-core/app/composables/auth/useSessionRecovery.ts +50 -0
- package/frontend-vue/layers/dms-core/app/composables/components/useComponentEvent.ts +29 -0
- package/frontend-vue/layers/dms-core/app/composables/data-types/useDataType.ts +39 -0
- package/frontend-vue/layers/dms-core/app/composables/functions/useDefinedFunction.ts +23 -0
- package/frontend-vue/layers/dms-core/app/composables/leave-guard/index.ts +2 -0
- package/frontend-vue/layers/dms-core/app/composables/leave-guard/types.ts +19 -0
- package/frontend-vue/layers/dms-core/app/composables/leave-guard/useLeaveGuard.ts +105 -0
- package/frontend-vue/layers/dms-core/app/composables/period/compareResolvers.ts +44 -0
- package/frontend-vue/layers/dms-core/app/composables/period/presetResolvers.ts +142 -0
- package/frontend-vue/layers/dms-core/app/composables/period/types.ts +59 -0
- package/frontend-vue/layers/dms-core/app/composables/period/usePeriod.ts +173 -0
- package/frontend-vue/layers/dms-core/app/composables/period/usePeriodScope.ts +86 -0
- package/frontend-vue/layers/dms-core/app/composables/realtime/usePageRealtime.ts +46 -0
- package/frontend-vue/layers/dms-core/app/composables/realtime/useRealtimeTopic.ts +25 -0
- package/frontend-vue/layers/dms-core/app/composables/realtime/useSseStream.ts +173 -0
- package/frontend-vue/layers/dms-core/app/composables/realtime/useUserRealtime.ts +286 -0
- package/frontend-vue/layers/dms-core/app/composables/translation/useTranslation.ts +104 -0
- package/frontend-vue/layers/dms-core/app/composables/translation/useUniqueLocales.ts +18 -0
- package/frontend-vue/layers/dms-core/app/composables/useApiError.ts +57 -0
- package/frontend-vue/layers/dms-core/app/composables/useEventedAction.ts +53 -0
- package/frontend-vue/layers/dms-core/app/composables/useHomepage.ts +6 -0
- package/frontend-vue/layers/dms-core/app/composables/useTrailingDeduper.ts +24 -0
- package/frontend-vue/layers/dms-core/app/composables/user/usePreferences.ts +98 -0
- package/frontend-vue/layers/dms-core/app/composables/watch/useWatch.ts +132 -0
- package/frontend-vue/layers/dms-core/app/types/auth-types.ts +2 -0
- package/frontend-vue/layers/dms-core/app/types/auth.ts +31 -0
- package/frontend-vue/layers/dms-core/app/types/button.ts +7 -0
- package/frontend-vue/layers/dms-core/app/types/color.ts +11 -0
- package/frontend-vue/layers/dms-core/app/types/component.ts +23 -0
- package/frontend-vue/layers/dms-core/app/types/data-type.ts +11 -0
- package/frontend-vue/layers/dms-core/app/types/http.ts +18 -0
- package/frontend-vue/layers/dms-core/app/types/image.ts +5 -0
- package/frontend-vue/layers/dms-core/app/types/json.ts +6 -0
- package/frontend-vue/layers/dms-core/app/types/menu.ts +36 -0
- package/frontend-vue/layers/dms-core/app/types/orientation.ts +4 -0
- package/frontend-vue/layers/dms-core/app/types/row-action-operators.ts +60 -0
- package/frontend-vue/layers/dms-core/app/types/row-action.ts +51 -0
- package/frontend-vue/layers/dms-core/app/types/size.ts +7 -0
- package/frontend-vue/layers/dms-core/app/types/user.ts +9 -0
- package/frontend-vue/layers/dms-core/app/types/utils.ts +1 -0
- package/frontend-vue/layers/dms-core/app/types/watch.ts +25 -0
- package/frontend-vue/layers/dms-core/app/utils/dedupedRefresh.ts +33 -0
- package/frontend-vue/layers/dms-core/app/utils/downloadFile.ts +8 -0
- package/frontend-vue/layers/dms-core/app/utils/formatter.ts +280 -0
- package/frontend-vue/layers/dms-core/app/utils/http-status.ts +8 -0
- package/frontend-vue/layers/dms-core/app/utils/menu.ts +187 -0
- package/frontend-vue/layers/dms-core/app/utils/query-validation.ts +37 -0
- package/frontend-vue/layers/dms-core/app/utils/routePath.ts +11 -0
- package/frontend-vue/layers/dms-core/app/utils/row-action-rule-evaluator.ts +90 -0
- package/frontend-vue/layers/dms-core/app/utils/stringTypeParser.ts +80 -0
- package/frontend-vue/layers/dms-core/app/utils/trailingDeduper.ts +42 -0
- package/frontend-vue/layers/dms-core/app/utils/type-check.ts +32 -0
- package/frontend-vue/layers/dms-core/app/utils/url-interpolation.ts +16 -0
- package/frontend-vue/layers/dms-core/i18n/locales/core-en-GB.json +441 -0
- package/frontend-vue/layers/dms-core/i18n/locales/core-fr-FR.json +441 -0
- package/frontend-vue/layers/dms-core/shared/types/app-config.ts +37 -0
- package/frontend-vue/layers/dms-core/shared/types/runtime-config.d.ts +73 -0
- package/frontend-vue/layers/dms-core/types.d.ts +15 -0
- package/frontend-vue/layers/dms-layout/app/app.config.ts +258 -0
- package/frontend-vue/layers/dms-layout/app/assets/css/main.css +268 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/Container.vue +13 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardHeader.vue +271 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardSidebar.vue +341 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/Footer.vue +48 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/PageHeader.vue +67 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/QuickActionsPopover.vue +68 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/sidebarState.ts +17 -0
- package/frontend-vue/layers/dms-layout/app/build/components/notification/NotificationCard.vue +99 -0
- package/frontend-vue/layers/dms-layout/app/build/components/notification/NotificationPopover.vue +231 -0
- package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/NotificationPreferencesForm.vue +291 -0
- package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/notification/NotificationsList.vue +226 -0
- package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/shortcut/KeyboardShortcut.vue +19 -0
- package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/theme/CssVariablesList.vue +209 -0
- package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/theme/ScalePreview.vue +43 -0
- package/frontend-vue/layers/dms-layout/app/build/components/pages/settings/theme/ThemePreview.vue +78 -0
- package/frontend-vue/layers/dms-layout/app/components/AppWidgetsDock.vue +81 -0
- package/frontend-vue/layers/dms-layout/app/components/layout/AppLogo.vue +11 -0
- package/frontend-vue/layers/dms-layout/app/components/layout/DashboardSearch.vue +17 -0
- package/frontend-vue/layers/dms-layout/app/components/layout/HStack.vue +36 -0
- package/frontend-vue/layers/dms-layout/app/components/layout/Spacer.vue +28 -0
- package/frontend-vue/layers/dms-layout/app/components/layout/VStack.vue +33 -0
- package/frontend-vue/layers/dms-layout/app/components/navigation/AccordionItemSync.vue +45 -0
- package/frontend-vue/layers/dms-layout/app/components/navigation/CollapsedMenuItem.vue +187 -0
- package/frontend-vue/layers/dms-layout/app/components/navigation/NavigationMenu.vue +224 -0
- package/frontend-vue/layers/dms-layout/app/components/profile/ProfileLanguage.vue +71 -0
- package/frontend-vue/layers/dms-layout/app/components/profile/ProfileSessions.vue +321 -0
- package/frontend-vue/layers/dms-layout/app/components/profile/ProfileTwoFactor.vue +501 -0
- package/frontend-vue/layers/dms-layout/app/composables/favorites/useFavoritePages.ts +87 -0
- package/frontend-vue/layers/dms-layout/app/composables/general/types/index.ts +20 -0
- package/frontend-vue/layers/dms-layout/app/composables/general/useInterfaceScale.ts +12 -0
- package/frontend-vue/layers/dms-layout/app/composables/general/useSystemState.ts +43 -0
- package/frontend-vue/layers/dms-layout/app/composables/layout/stack-types.ts +24 -0
- package/frontend-vue/layers/dms-layout/app/composables/layout/useInfiniteScroll.ts +45 -0
- package/frontend-vue/layers/dms-layout/app/composables/notification/types/events.ts +6 -0
- package/frontend-vue/layers/dms-layout/app/composables/notification/useNotifications.ts +223 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useCurrentModule.ts +33 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useFirstAccessiblePage.ts +91 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useIsOwner.ts +6 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useModuleHistory.ts +42 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useModulesListing.ts +88 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/usePageComponentPreload.ts +67 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/usePageLayout.ts +27 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/usePageLeaveGuard.ts +14 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/usePrefetch.ts +21 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useQuickActions.ts +95 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useSiteLayout.ts +408 -0
- package/frontend-vue/layers/dms-layout/app/composables/useAppOverlay.ts +31 -0
- package/frontend-vue/layers/dms-layout/app/composables/useAppWidgets.ts +58 -0
- package/frontend-vue/layers/dms-layout/app/composables/useCommandPaletteSources.ts +171 -0
- package/frontend-vue/layers/dms-layout/app/composables/useDevReload.ts +401 -0
- package/frontend-vue/layers/dms-layout/app/composables/useFooterLinks.ts +32 -0
- package/frontend-vue/layers/dms-layout/app/composables/useHeaderActions.ts +72 -0
- package/frontend-vue/layers/dms-layout/app/composables/useSidebarWidgets.ts +144 -0
- package/frontend-vue/layers/dms-layout/app/custom-layouts/DefaultLayout.vue +55 -0
- package/frontend-vue/layers/dms-layout/app/custom-layouts/EmptyLayout.vue +23 -0
- package/frontend-vue/layers/dms-layout/app/custom-pages/modules.vue +114 -0
- package/frontend-vue/layers/dms-layout/app/custom-pages/settings/appearance.vue +174 -0
- package/frontend-vue/layers/dms-layout/app/custom-pages/settings/index.vue +164 -0
- package/frontend-vue/layers/dms-layout/app/custom-pages/settings/notifications.vue +15 -0
- package/frontend-vue/layers/dms-layout/app/custom-pages/settings/shortcuts.vue +136 -0
- package/frontend-vue/layers/dms-layout/app/emails/EmailAdminInvite.vue +32 -0
- package/frontend-vue/layers/dms-layout/app/emails/EmailExportReady.vue +45 -0
- package/frontend-vue/layers/dms-layout/app/emails/EmailResetPassword.vue +31 -0
- package/frontend-vue/layers/dms-layout/app/emails/EmailTwoFactor.vue +18 -0
- package/frontend-vue/layers/dms-layout/app/emails/EmailUserValidation.vue +30 -0
- package/frontend-vue/layers/dms-layout/app/emails/components/EmailButton.vue +21 -0
- package/frontend-vue/layers/dms-layout/app/emails/components/EmailLayout.vue +52 -0
- package/frontend-vue/layers/dms-layout/app/emails/components/EmailOTP.vue +22 -0
- package/frontend-vue/layers/dms-layout/app/emails/components/index.ts +93 -0
- package/frontend-vue/layers/dms-layout/app/error.vue +148 -0
- package/frontend-vue/layers/dms-layout/app/middleware/homepage-redirect.global.ts +11 -0
- package/frontend-vue/layers/dms-layout/app/middleware/module-routing.global.ts +136 -0
- package/frontend-vue/layers/dms-layout/app/middleware/page-leave-guard.global.ts +14 -0
- package/frontend-vue/layers/dms-layout/app/pages/[...slug].vue +475 -0
- package/frontend-vue/layers/dms-layout/app/plugins/command-palette-navigation.client.ts +76 -0
- package/frontend-vue/layers/dms-layout/app/plugins/command-palette-personal-pages.client.ts +97 -0
- package/frontend-vue/layers/dms-layout/app/plugins/command-palette-quick-actions.client.ts +44 -0
- package/frontend-vue/layers/dms-layout/app/plugins/command-palette-session.client.ts +96 -0
- package/frontend-vue/layers/dms-layout/app/plugins/dms-dev-reload.client.ts +45 -0
- package/frontend-vue/layers/dms-layout/app/plugins/dms-menu-sync.client.ts +45 -0
- package/frontend-vue/layers/dms-layout/app/plugins/interface-scale.ts +9 -0
- package/frontend-vue/layers/dms-layout/app/plugins/language-sync.ts +10 -0
- package/frontend-vue/layers/dms-layout/app/plugins/notification-stream.client.ts +61 -0
- package/frontend-vue/layers/dms-layout/app/plugins/profile-sync.client.ts +24 -0
- package/frontend-vue/layers/dms-layout/app/plugins/seo.ts +29 -0
- package/frontend-vue/layers/dms-layout/app/types/page-setup.ts +31 -0
- package/frontend-vue/layers/dms-layout/app/types/page.ts +129 -0
- package/frontend-vue/layers/dms-layout/app/utils/account-menu.ts +28 -0
- package/frontend-vue/layers/dms-layout/app/utils/dms-icons.ts +1 -0
- package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +272 -0
- package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +276 -0
- package/frontend-vue/layers/dms-layout/public/fonts/Geist-Italic-Variable.woff2 +0 -0
- package/frontend-vue/layers/dms-layout/public/fonts/Geist-Variable.woff2 +0 -0
- package/frontend-vue/layers/dms-layout/public/fonts/GeistMono-Italic-Variable.woff2 +0 -0
- package/frontend-vue/layers/dms-layout/public/fonts/GeistMono-Variable.woff2 +0 -0
- package/frontend-vue/layers/dms-layout/public/fonts/LICENSE.txt +92 -0
- package/frontend-vue/layers/dms-layout/public/images/antelope-logo/dark.svg +46 -0
- package/frontend-vue/layers/dms-layout/public/images/antelope-logo/icon.svg +29 -0
- package/frontend-vue/layers/dms-layout/public/images/antelope-logo/light.svg +46 -0
- package/frontend-vue/layers/dms-onboarding/app/components/onboarding/steps/register.vue +172 -0
- package/frontend-vue/layers/dms-onboarding/app/composables/onboarding/index.ts +1 -0
- package/frontend-vue/layers/dms-onboarding/app/composables/onboarding/useOnboardingMiddleware.ts +51 -0
- package/frontend-vue/layers/dms-onboarding/app/custom-pages/onboarding.vue +9 -0
- package/frontend-vue/layers/dms-onboarding/app/middleware/onboarding.global.ts +21 -0
- package/frontend-vue/layers/dms-onboarding/i18n/locales/onboarding-en-GB.json +22 -0
- package/frontend-vue/layers/dms-onboarding/i18n/locales/onboarding-fr-FR.json +22 -0
- package/frontend-vue/layers/dms-ui/app/build/components/containers/drawer/DynamicDrawer.vue +117 -0
- package/frontend-vue/layers/dms-ui/app/build/components/containers/modal/DynamicModal.vue +131 -0
- package/frontend-vue/layers/dms-ui/app/build/components/form/PermissionsTreeNode.vue +148 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/Actions.vue +258 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/Empty.vue +143 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/FiltersRow.vue +197 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/Menu.vue +133 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuColumns.vue +163 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuFilter.vue +371 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuImport.vue +71 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuPage.vue +60 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuRoot.vue +140 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuSort.vue +107 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/MenuViewMode.vue +115 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/Pagination.vue +111 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/RowSelection.vue +89 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/Table.vue +814 -0
- package/frontend-vue/layers/dms-ui/app/build/components/table/Tabs.vue +94 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/data-types/registerDefaults.ts +573 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/form/registerFormFunctions.ts +43 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/shortcuts/useShortcutRegistry.ts +31 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/constants.ts +10 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/types.ts +4 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/useTable.ts +181 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/useTableColumns.ts +566 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/useTableConfigClipboard.ts +124 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/useTableContext.ts +14 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/useTableStates.ts +113 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/utils/formatFilterValue.ts +32 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table/utils/menuItemFactory.ts +25 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/registerDefaultFunctions.ts +32 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/types.ts +14 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableViewConfig.ts +130 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableViewRowActions.ts +826 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/tableQuery.ts +75 -0
- package/frontend-vue/layers/dms-ui/app/build/types/tree.ts +172 -0
- package/frontend-vue/layers/dms-ui/app/components/PasswordStrength.vue +62 -0
- package/frontend-vue/layers/dms-ui/app/components/Placeholder.vue +49 -0
- package/frontend-vue/layers/dms-ui/app/components/RecursiveComponent.vue +85 -0
- package/frontend-vue/layers/dms-ui/app/components/activity/ActivityItem.vue +64 -0
- package/frontend-vue/layers/dms-ui/app/components/banner/Banner.vue +90 -0
- package/frontend-vue/layers/dms-ui/app/components/card/Card.vue +37 -0
- package/frontend-vue/layers/dms-ui/app/components/card/NavCard.vue +45 -0
- package/frontend-vue/layers/dms-ui/app/components/chart/ApexChartHost.vue +84 -0
- package/frontend-vue/layers/dms-ui/app/components/chart/Chart.vue +325 -0
- package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +196 -0
- package/frontend-vue/layers/dms-ui/app/components/chart/internal/Sparkline.vue +119 -0
- package/frontend-vue/layers/dms-ui/app/components/chart/internal/TrendBadge.vue +57 -0
- package/frontend-vue/layers/dms-ui/app/components/confirm/ConfirmModal.vue +58 -0
- package/frontend-vue/layers/dms-ui/app/components/copy/CopyButton.vue +38 -0
- package/frontend-vue/layers/dms-ui/app/components/flow-canvas/FlowCanvas.vue +501 -0
- package/frontend-vue/layers/dms-ui/app/components/form/Form.vue +533 -0
- package/frontend-vue/layers/dms-ui/app/components/form/LocalizedField.vue +151 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Calendar.vue +121 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Cascader.vue +482 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Checkbox.vue +18 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DatePicker.vue +151 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DatePickerRange.vue +61 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Display.vue +59 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DisplayColor.vue +31 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DisplayFile.vue +35 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DisplayImage.vue +54 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DisplayPassword.vue +28 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/DisplayRichText.vue +31 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/File.vue +433 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Image.vue +946 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputAddress.vue +525 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputColor.vue +57 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputEmail.vue +14 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputNumber.vue +22 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputPassword.vue +110 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputPercentage.vue +48 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputPhone.vue +18 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputText.vue +18 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputTime.vue +64 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/InputTree.vue +98 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/PermissionsTree.vue +133 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/RadioGroup.vue +24 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Relation.vue +424 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/RichText.vue +286 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Select.vue +118 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Slider.vue +13 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Switch.vue +18 -0
- package/frontend-vue/layers/dms-ui/app/components/form/components/Textarea.vue +18 -0
- package/frontend-vue/layers/dms-ui/app/components/grid/Grid.vue +42 -0
- package/frontend-vue/layers/dms-ui/app/components/grid/GridRow.vue +28 -0
- package/frontend-vue/layers/dms-ui/app/components/grid/constants.ts +7 -0
- package/frontend-vue/layers/dms-ui/app/components/kpi/KpiCard.vue +163 -0
- package/frontend-vue/layers/dms-ui/app/components/master-detail/MasterDetail.vue +75 -0
- package/frontend-vue/layers/dms-ui/app/components/period/PeriodSelector.vue +308 -0
- package/frontend-vue/layers/dms-ui/app/components/segmented/Segmented.vue +106 -0
- package/frontend-vue/layers/dms-ui/app/components/status/StatusSummary.vue +118 -0
- package/frontend-vue/layers/dms-ui/app/components/tab/Tab.vue +82 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/CascaderPath.vue +78 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/ExportToastContent.vue +24 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/FilePreview.vue +57 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/ImagePreview.vue +78 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/KanbanBoard.vue +486 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/KanbanDisplay.vue +70 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/PresenceEditModal.vue +142 -0
- package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +1143 -0
- package/frontend-vue/layers/dms-ui/app/components/top-list/TopListCard.vue +235 -0
- package/frontend-vue/layers/dms-ui/app/components/top-list/internal/TopListRow.vue +96 -0
- package/frontend-vue/layers/dms-ui/app/components/tree/Tree.vue +195 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/apexAnnotations.ts +74 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/apexLocales.ts +42 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/apexPlotOptions.ts +100 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/apexTypeConfigs.ts +109 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/events.ts +44 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/formatValue.ts +156 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/resolveSparklineAccent.ts +56 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/types.ts +145 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.ts +709 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/useApexChart.types.ts +80 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/useChartFetch.ts +204 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/useChartTheme.ts +119 -0
- package/frontend-vue/layers/dms-ui/app/composables/chart/useThemeRevision.ts +59 -0
- package/frontend-vue/layers/dms-ui/app/composables/confirm/index.ts +2 -0
- package/frontend-vue/layers/dms-ui/app/composables/confirm/useConfirm.ts +24 -0
- package/frontend-vue/layers/dms-ui/app/composables/confirm/usePresenceEditWarning.ts +19 -0
- package/frontend-vue/layers/dms-ui/app/composables/containers/index.ts +3 -0
- package/frontend-vue/layers/dms-ui/app/composables/containers/openDynamicContainer.ts +99 -0
- package/frontend-vue/layers/dms-ui/app/composables/containers/types.ts +43 -0
- package/frontend-vue/layers/dms-ui/app/composables/containers/useDrawer.ts +27 -0
- package/frontend-vue/layers/dms-ui/app/composables/containers/useModal.ts +27 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/api.ts +8 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/content-language.ts +5 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/events.ts +7 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/field-loading.ts +6 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/field.ts +28 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/functions.ts +5 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/index.ts +5 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/props.ts +29 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/validation.ts +7 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/types/value.ts +12 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/useForm.ts +543 -0
- package/frontend-vue/layers/dms-ui/app/composables/form/useUploadWithProgress.ts +40 -0
- package/frontend-vue/layers/dms-ui/app/composables/resolveDmsComponent.ts +61 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/shortcuts/index.ts +3 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/shortcuts/tabBuildShortcuts.ts +16 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/shortcuts/tabShortcuts.ts +8 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/shortcuts/useTabShortcuts.ts +14 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/composable.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/events.ts +3 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/index.ts +3 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/item.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/props.ts +25 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/useTab.ts +122 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/kanban.ts +151 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/index.ts +61 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/tableViewDelete.ts +23 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/tableViewEscape.ts +24 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/tableViewMetaR.ts +9 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/tableViewShiftA.ts +41 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/tableViewShiftF.ts +18 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/shortcuts/tableViewShiftN.ts +22 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/action-target.ts +48 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/column.ts +39 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/config.ts +94 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/custom-button.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/display.ts +160 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/events.ts +23 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/functions.ts +3 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/index.ts +5 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/useTableViewDisplays.ts +66 -0
- package/frontend-vue/layers/dms-ui/app/composables/table-view/useTableViewExport.ts +49 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/index.ts +50 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeArrowDown.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeArrowUp.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeEnd.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeEnter.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeEscape.ts +14 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeHome.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeShiftA.ts +32 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/shortcuts/treeSpace.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/types/events.ts +8 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/types/index.ts +4 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/types/navigation.ts +7 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/types/node.ts +12 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/types/props.ts +34 -0
- package/frontend-vue/layers/dms-ui/app/composables/tree/useTree.ts +336 -0
- package/frontend-vue/layers/dms-ui/app/composables/useExportJob.ts +356 -0
- package/frontend-vue/layers/dms-ui/app/composables/useFileReadUrls.ts +105 -0
- package/frontend-vue/layers/dms-ui/app/composables/usePasswordStrength.ts +71 -0
- package/frontend-vue/layers/dms-ui/app/config/shortcuts-registry.ts +19 -0
- package/frontend-vue/layers/dms-ui/app/plugins/register.ts +9 -0
- package/frontend-vue/layers/dms-ui/app/plugins/shortcuts.ts +10 -0
- package/frontend-vue/layers/dms-ui/app/plugins/table-view-displays.client.ts +31 -0
- package/frontend-vue/layers/dms-ui/app/types/modal.ts +9 -0
- package/frontend-vue/layers/dms-ui/app/types/quick-actions.ts +11 -0
- package/frontend-vue/layers/dms-ui/app/types/row-action.ts +12 -0
- package/frontend-vue/layers/dms-ui/app/types/shortcuts.ts +16 -0
- package/frontend-vue/layers/dms-ui/app/types/table/base.ts +10 -0
- package/frontend-vue/layers/dms-ui/app/types/table/index.ts +2 -0
- package/frontend-vue/layers/dms-ui/app/types/table/query.ts +14 -0
- package/frontend-vue/layers/dms-ui/app/utils/cascader.ts +203 -0
- package/frontend-vue/layers/dms-ui/app/utils/fileConstraints.ts +47 -0
- package/frontend-vue/layers/dms-ui/app/utils/imageResize.ts +100 -0
- package/frontend-vue/layers/dms-ui/app/utils/rowClickAction.ts +48 -0
- package/frontend-vue/layers/dms-ui/app/utils/semanticTint.ts +21 -0
- package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +460 -0
- package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +461 -0
- package/frontend-vue/package.json +93 -0
- package/frontend-vue/pnpm-lock.yaml +7008 -0
- package/frontend-vue/pnpm-workspace.yaml +9 -0
- package/frontend-vue/tests/api-message-i18n.test.ts +46 -0
- package/frontend-vue/tests/async-data-key-owners.test.ts +74 -0
- package/frontend-vue/tests/cascader.test.ts +189 -0
- package/frontend-vue/tests/chart-auto-y-range.test.ts +115 -0
- package/frontend-vue/tests/chart-click-payload.test.ts +34 -0
- package/frontend-vue/tests/chart-colors.browser.html +157 -0
- package/frontend-vue/tests/chart-colors.test.ts +177 -0
- package/frontend-vue/tests/chart-options.test.ts +281 -0
- package/frontend-vue/tests/chart-series-styles.test.ts +131 -0
- package/frontend-vue/tests/chart-value-precision.test.ts +54 -0
- package/frontend-vue/tests/chart-value-propagation.test.ts +156 -0
- package/frontend-vue/tests/command-palette-search-text.test.ts +118 -0
- package/frontend-vue/tests/dev-reload.test.ts +252 -0
- package/frontend-vue/tests/file-constraints.test.ts +72 -0
- package/frontend-vue/tests/file-read-urls.test.ts +135 -0
- package/frontend-vue/tests/fixtures/TableCellLayout.vue +73 -0
- package/frontend-vue/tests/fixtures/chart-axes.html +39 -0
- package/frontend-vue/tests/fixtures/chart-axes.ts +67 -0
- package/frontend-vue/tests/fixtures/chart-precision.html +37 -0
- package/frontend-vue/tests/fixtures/chart-precision.ts +118 -0
- package/frontend-vue/tests/fixtures/theming/app/app.vue +49 -0
- package/frontend-vue/tests/fixtures/theming/base/app/app.config.ts +1 -0
- package/frontend-vue/tests/fixtures/theming/config.ts +7 -0
- package/frontend-vue/tests/fixtures/theming/consumer/app/app.config.ts +15 -0
- package/frontend-vue/tests/fixtures/theming/consumer/public/brand/dark.svg +1 -0
- package/frontend-vue/tests/fixtures/theming/consumer/public/brand/icon.svg +1 -0
- package/frontend-vue/tests/fixtures/theming/consumer/public/brand/light.svg +1 -0
- package/frontend-vue/tests/fixtures/theming/consumer.css +19 -0
- package/frontend-vue/tests/fixtures/theming/index.html +11 -0
- package/frontend-vue/tests/fixtures/theming/main.ts +36 -0
- package/frontend-vue/tests/fixtures/theming/runtime.ts +12 -0
- package/frontend-vue/tests/fixtures/theming/vite.config.ts +36 -0
- package/frontend-vue/tests/form-required-fields.test.ts +88 -0
- package/frontend-vue/tests/form-reset.test.ts +66 -0
- package/frontend-vue/tests/image-reference-preservation.test.ts +234 -0
- package/frontend-vue/tests/menu-navigation.test.ts +106 -0
- package/frontend-vue/tests/multi-account-validate.test.ts +99 -0
- package/frontend-vue/tests/onboarding-register.test.ts +128 -0
- package/frontend-vue/tests/page-layout-background-refresh.test.ts +321 -0
- package/frontend-vue/tests/page-layout-registration.test.ts +70 -0
- package/frontend-vue/tests/period-presets.test.ts +96 -0
- package/frontend-vue/tests/period-relative-refresh.test.ts +61 -0
- package/frontend-vue/tests/period-scope-first-fetch.test.ts +276 -0
- package/frontend-vue/tests/post-login-redirect.test.ts +87 -0
- package/frontend-vue/tests/quick-actions.test.ts +32 -0
- package/frontend-vue/tests/realtime-auth-recovery.test.ts +146 -0
- package/frontend-vue/tests/sidebar-footer-navigation.test.ts +128 -0
- package/frontend-vue/tests/sidebar-widget-position.test.ts +117 -0
- package/frontend-vue/tests/site-layout-hydration.test.ts +82 -0
- package/frontend-vue/tests/site-layout-refresh.test.ts +131 -0
- package/frontend-vue/tests/sse-stream.test.ts +268 -0
- package/frontend-vue/tests/string-type-parser.test.ts +50 -0
- package/frontend-vue/tests/table-async-data-key.test.ts +33 -0
- package/frontend-vue/tests/table-cell-wrap.test.ts +44 -0
- package/frontend-vue/tests/table-row-hover.test.ts +153 -0
- package/frontend-vue/tests/theming-browser.mjs +130 -0
- package/frontend-vue/tests/trailing-deduper.test.ts +74 -0
- package/frontend-vue/tests/trend-delta-format.test.ts +24 -0
- package/frontend-vue/tests/vue-inventory.test.ts +92 -0
- package/frontend-vue/tests/widget-label-i18n.test.ts +179 -0
- package/frontend-vue/vitest.config.ts +20 -0
- package/package.json +127 -0
- package/skills/dms/REFERENCE.md +39 -0
- package/skills/dms/SKILL.md +98 -0
- package/skills/dms-auth/SKILL.md +105 -0
- package/skills/dms-dev/SKILL.md +107 -0
- package/skills/dms-dev/scripts/dms-dev.sh +198 -0
- package/skills/dms-module/REFERENCE.md +84 -0
- package/skills/dms-module/SKILL.md +104 -0
- package/skills/dms-pages/REFERENCE.md +27 -0
- package/skills/dms-pages/SKILL.md +110 -0
- package/skills/dms-project/REFERENCE.md +24 -0
- package/skills/dms-project/SKILL.md +122 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dms-dev
|
|
3
|
+
description: Starts, stops, or restarts the AntelopeJS DMS backend and Inertia frontend.
|
|
4
|
+
category: tooling
|
|
5
|
+
tags: [dev-server, restart, backend, inertia, workflow]
|
|
6
|
+
allowed-tools: Bash(bash:*), Bash(pkill:*), Bash(pgrep:*), Bash(tail:*), Bash(curl:*), Read, Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# dms-dev
|
|
10
|
+
|
|
11
|
+
Owns the dev-server lifecycle for an AntelopeJS DMS project. Ships with the
|
|
12
|
+
`@antelopejs/dms` package's skills; the bundled `dms-dev.sh` (in this skill's
|
|
13
|
+
`scripts/` directory) does the work, and this skill tells you how to drive it and how to
|
|
14
|
+
resolve the project path. For authoring see the sibling **dms**, **dms-module**,
|
|
15
|
+
**dms-pages**, and **dms-auth** skills.
|
|
16
|
+
|
|
17
|
+
## Choose the process manager
|
|
18
|
+
|
|
19
|
+
In an Amp orb, use the repository's `.amp/services.yaml` with `amp orb services ensure`,
|
|
20
|
+
or `amp orb service start` for a one-off service. Inspect readiness with service logs and
|
|
21
|
+
HTTP checks; share the returned portal URL for browser review. The bundled detached-shell
|
|
22
|
+
script is for local shells, not managed orbs: its processes do not survive orb updates.
|
|
23
|
+
|
|
24
|
+
## Why full restart, not hot reload
|
|
25
|
+
|
|
26
|
+
The DMS has two coupled processes, both started from the DMS backend package directory:
|
|
27
|
+
|
|
28
|
+
- **Backend**: the AntelopeJS project — `ajs project dev -w` (`ajs project run` is the legacy alias). Listens on `http://localhost:5010`. Ready when the log emits `Server started, listening on http://localhost:5010`.
|
|
29
|
+
- **Frontend**: the `@antelopejs/dms-frontend` loader — `ajs-dms dev`. It auto-discovers the running backend via `.antelope/dev.json`, so `-b <backend-url>` is optional. Listens on `http://localhost:3001`. Ready when the log emits `Local: http://localhost:3001/`.
|
|
30
|
+
|
|
31
|
+
By default the script runs each via the project's `pnpm dev` / `pnpm frontend:dev` scripts — a convention our playground projects adopt that expands to the two commands above. Those script names aren't shipped by the DMS, so if a project starts its servers differently, override the actual commands with the `DMS_BACK_CMD` / `DMS_FRONT_CMD` env vars (the script reads them; readiness detection and process cleanup already cover `ajs`, `ajs-dms`, and the loader's Node entry point directly).
|
|
32
|
+
|
|
33
|
+
Order matters: start the backend first and wait for ready, **then** start the frontend. The frontend materializes the backend's layers into a `~/.antelopejs/dms-frontend/` workspace at startup; starting it before the backend is up produces stale or empty layer copies.
|
|
34
|
+
|
|
35
|
+
The docs claim dev-mode watchers normally propagate edits (backend `-w` recompile, live layer resync into `~/.antelopejs/dms-frontend/`) — and they often do. But the failure modes are silent: `RegisterModule` can throw "already registered" on rebuild, and a missed resync serves a stale layer copy that *looks* like your bug. The documented troubleshooting recipe — and this skill's contract as an agent — is: **full restart both, backend first, before verifying any change**. A 60-second restart beats debugging a phantom.
|
|
36
|
+
|
|
37
|
+
## Resolving the backend path (do this FIRST, eagerly)
|
|
38
|
+
|
|
39
|
+
The script needs `DMS_BACK_DIR` set to the absolute path of the project's DMS backend package directory (the one whose scripts start the AntelopeJS backend and Inertia frontend). Resolve it the **first time this skill loads in a session**.
|
|
40
|
+
|
|
41
|
+
Resolve in this order:
|
|
42
|
+
|
|
43
|
+
1. **Inspect the current repository** for `package.json`, `antelope.config.ts`, and service configuration. Use the project they identify when the path is unambiguous.
|
|
44
|
+
2. **Check project memory** for a reference memory named `dms-back-path`. If it exists, verify that the directory still exists and contains a `package.json`; otherwise treat the memory as stale.
|
|
45
|
+
3. **Ask only if the path is still ambiguous**: "Which AntelopeJS DMS project should I run? Give me the absolute path to its DMS backend package directory." Verify the answer, then save it as a reference memory so future invocations skip the prompt:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
---
|
|
49
|
+
name: dms-back-path
|
|
50
|
+
description: Absolute path to the DMS backend package directory for this project, used by the dms-dev skill to run pnpm dev / pnpm frontend:dev.
|
|
51
|
+
metadata:
|
|
52
|
+
type: reference
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
/absolute/path/to/the-backend-package
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Also add the index line to `MEMORY.md`: `- [DMS backend path](dms-back-path.md) — where dms-dev runs pnpm dev / pnpm frontend:dev`.
|
|
59
|
+
|
|
60
|
+
Once resolved, export it for the script invocation:
|
|
61
|
+
`DMS_BACK_DIR=<path> bash "<skill-base-dir>/scripts/dms-dev.sh" <command>`.
|
|
62
|
+
|
|
63
|
+
## How to invoke
|
|
64
|
+
|
|
65
|
+
```sh
|
|
66
|
+
DMS_BACK_DIR=<resolved-path> bash "<skill-base-dir>/scripts/dms-dev.sh" restart
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`<skill-base-dir>` is this skill's base directory — announced when the skill loads; the
|
|
70
|
+
bundled script lives at `scripts/dms-dev.sh` under it. Subcommands:
|
|
71
|
+
|
|
72
|
+
| Command | Use when |
|
|
73
|
+
|-------------------|-------------------------------------------------------------------------|
|
|
74
|
+
| `restart` | After any source edit, or unconditionally if you don't know the state. |
|
|
75
|
+
| `start` | When you're sure nothing is running (fresh shell / after `stop`). |
|
|
76
|
+
| `stop` | Before walking away, before destructive operations, on session cleanup. |
|
|
77
|
+
| `status` | Quickly check what's running. |
|
|
78
|
+
| `back-log [N]` | Read the last N (default 60) backend log lines. Use to diagnose boot. |
|
|
79
|
+
| `front-log [N]` | Same for the frontend log. |
|
|
80
|
+
|
|
81
|
+
The script writes the long-running server logs to `/tmp/dms-back.log` and `/tmp/dms-front.log`. The `Bash` tool invocation completes as soon as both servers print their ready strings (or after a 180 s timeout per server — worst case ~6 minutes for a restart; override with `DMS_DEV_TIMEOUT`). The servers themselves keep running detached via `setsid nohup` so they survive the Bash call exiting.
|
|
82
|
+
|
|
83
|
+
## When to reach for the subcommands
|
|
84
|
+
|
|
85
|
+
- The user edits any `.ts` or `.vue` file under the DMS backend package or under a DMS module's `src/` or `frontend-vue/` and then wants to test the change live. Run `restart` unconditionally — don't try hot reload.
|
|
86
|
+
- The user says "restart the dms", "restart servers", "reload", or "test it now". Run `restart`.
|
|
87
|
+
- A browser smoke test fails in a way that looks like stale state. Run `restart` before diagnosing.
|
|
88
|
+
- The user asks "is the dms running?". Run `status`.
|
|
89
|
+
- A boot fails (backend never prints "Server started" or frontend never prints "Local:"). Print the relevant `back-log` / `front-log` tail to diagnose; common causes include `RegisterModule … already registered` (a previous stop failed — run `stop` then `restart`), port already in use (kill the listed PID), or a missing dependency (run `pnpm install` in the offending module).
|
|
90
|
+
- **You are handing off to the user for manual testing** (e.g. a plan phase whose acceptance criterion is "user verifies in browser"). Run `restart` yourself first, wait for both ready strings, and only *then* tell the user what to click. Never ask the user to start the servers themselves — that's the whole reason this skill exists.
|
|
91
|
+
|
|
92
|
+
## Common pitfalls
|
|
93
|
+
|
|
94
|
+
- **Zombie frontend processes.** The frontend CLI can spawn child processes that survive `pkill ajs`. The script's `stop` does an automatic second-pass kill via `pgrep | xargs kill -9` to catch them. If `start` reports servers already running, run `stop` and check that `status` shows `(none)` before starting again.
|
|
95
|
+
- **Backend exits with "Module already registered".** Means a previous instance is still holding the registration. Run `stop` to clear it, then `restart`.
|
|
96
|
+
- **Frontend's "auth redirect" 302** on `/modules/...` URLs is **normal** — it's the auth-protected admin routes. The frontend layer is loaded correctly even when curl returns 302. Don't restart on this alone; have the user log in.
|
|
97
|
+
- **Don't run `start` or `restart` more than once concurrently** in a single session — the second invocation will hit a port/lock conflict. If multiple background Bash tasks are queued, use the foreground `restart`.
|
|
98
|
+
- **Stale `dms-back-path` memory.** If the saved path no longer exists or the user has switched projects, the script will fail fast with a clear error. Re-prompt the user and overwrite the memory entry.
|
|
99
|
+
- **Stubbornly stale frontend after restarts.** The loader serves layers from physical copies under `~/.antelopejs/dms-frontend/<hash>/`. If a layer edit still doesn't show after a full restart, reset the workspaces with `ajs-dms clean --all` (run in the backend package dir — bare `ajs-dms clean` exits with an error asking for `-b` or `--all`, and `-b <url>` misses autodiscovered workspaces, which are keyed by project path), then `restart`.
|
|
100
|
+
- **`ajs-dms` reports a refused credential (401), or the backend logs "no valid bootstrap credential".** The frontend authenticates to the layer endpoints with the ephemeral secret a dev backend publishes to `<project>/.antelope/dms-dev.json`. A 401 means that file is absent (backend not in dev mode), or stale — it outlives the backend that wrote it, exactly like `dev.json`, so a stopped instance leaves one behind whose pid no longer resolves. `restart` rewrites it. If the frontend runs outside the project tree, give it `DMS_BOOTSTRAP_SECRET` explicitly.
|
|
101
|
+
|
|
102
|
+
## Don't
|
|
103
|
+
|
|
104
|
+
- Don't try to hot-reload by editing files and refreshing the browser without `restart`. It will work intermittently and waste debugging cycles on phantom issues.
|
|
105
|
+
- Don't `pkill -9 node` — it kills unrelated processes. The script targets specific patterns (`antelope-runner`, `ajs project run|dev`, `ajs-dms dev`, and paths ending in `dms-frontend/dist/index.js dev`).
|
|
106
|
+
- Don't hardcode a backend path into a session. Always resolve via memory-or-prompt so the skill works across projects.
|
|
107
|
+
- Don't ask the user to start or restart the servers themselves before manual testing. You have the script — run it, wait for ready, then hand off. Asking the user to do it defeats the point of the skill and breaks the testing loop.
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# dms-dev — start / stop / restart the AntelopeJS DMS dev servers.
|
|
3
|
+
# Run from the DMS backend package dir (DMS_BACK_DIR). By default it invokes that project's
|
|
4
|
+
# `pnpm dev` / `pnpm frontend:dev` scripts — a convention our playground projects adopt, which
|
|
5
|
+
# expand to `ajs project dev …` (the AntelopeJS backend; `ajs project run` is the legacy
|
|
6
|
+
# alias) and `ajs-dms dev` (the Inertia frontend loader — it auto-discovers the backend, -b optional).
|
|
7
|
+
# Those script names aren't shipped by the DMS, so override the actual commands with
|
|
8
|
+
# DMS_BACK_CMD / DMS_FRONT_CMD when a project starts its servers differently.
|
|
9
|
+
# Dev watchers cover many edits, but the deterministic recipe when verifying a change is:
|
|
10
|
+
# stop both → start backend → wait for "Server started, listening" → start frontend.
|
|
11
|
+
|
|
12
|
+
set -uo pipefail
|
|
13
|
+
|
|
14
|
+
DMS_BACK_DIR="${DMS_BACK_DIR:-}"
|
|
15
|
+
BACK_CMD="${DMS_BACK_CMD:-pnpm dev}"
|
|
16
|
+
FRONT_CMD="${DMS_FRONT_CMD:-pnpm frontend:dev}"
|
|
17
|
+
BACK_LOG="${DMS_BACK_LOG:-/tmp/dms-back.log}"
|
|
18
|
+
FRONT_LOG="${DMS_FRONT_LOG:-/tmp/dms-front.log}"
|
|
19
|
+
BACK_READY_PATTERN='Server started, listening'
|
|
20
|
+
FRONT_READY_PATTERN='Local:.*localhost:'
|
|
21
|
+
# Patterns that indicate a fatal startup error — detecting any of these aborts
|
|
22
|
+
# the wait immediately instead of burning the full timeout.
|
|
23
|
+
BACK_ERROR_PATTERN='Failed to load module|Module load failed|Error loading module|UnhandledPromiseRejection|Cannot find module|ENOENT.*package\.json|TypeError:.*at .*ajs|FATAL'
|
|
24
|
+
FRONT_ERROR_PATTERN='Cannot find module|Failed to compile|Vite error|ENOENT.*package\.json|EADDRINUSE'
|
|
25
|
+
WAIT_TIMEOUT="${DMS_DEV_TIMEOUT:-180}"
|
|
26
|
+
|
|
27
|
+
PROC_PATTERN='antelope-runner|ajs project (run|dev)|(^|[[:space:]/])ajs-dms dev|dms-frontend/dist/index\.js dev'
|
|
28
|
+
|
|
29
|
+
log() { printf '[dms-dev] %s\n' "$*"; }
|
|
30
|
+
|
|
31
|
+
require_dms_back_dir() {
|
|
32
|
+
if [ -z "$DMS_BACK_DIR" ]; then
|
|
33
|
+
log "error: DMS_BACK_DIR is not set. Pass it as an env var, e.g.:"
|
|
34
|
+
log " DMS_BACK_DIR=/path/to/backend-package $(basename "$0") $1"
|
|
35
|
+
exit 2
|
|
36
|
+
fi
|
|
37
|
+
if [ ! -d "$DMS_BACK_DIR" ]; then
|
|
38
|
+
log "error: DMS_BACK_DIR=$DMS_BACK_DIR does not exist or is not a directory."
|
|
39
|
+
exit 2
|
|
40
|
+
fi
|
|
41
|
+
if [ ! -f "$DMS_BACK_DIR/package.json" ]; then
|
|
42
|
+
log "error: DMS_BACK_DIR=$DMS_BACK_DIR has no package.json — not a DMS backend project."
|
|
43
|
+
exit 2
|
|
44
|
+
fi
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
stop_servers() {
|
|
48
|
+
log "stopping dev servers…"
|
|
49
|
+
pkill -9 -f "antelope-runner" 2>/dev/null || true
|
|
50
|
+
pkill -9 -f "ajs project (run|dev)" 2>/dev/null || true
|
|
51
|
+
pkill -9 -f "(^|[[:space:]/])ajs-dms dev" 2>/dev/null || true
|
|
52
|
+
pkill -9 -f "dms-frontend/dist/index\.js dev" 2>/dev/null || true
|
|
53
|
+
sleep 2
|
|
54
|
+
if pgrep -af "$PROC_PATTERN" >/dev/null 2>&1; then
|
|
55
|
+
log "warning: some processes are still running, killing again:"
|
|
56
|
+
pgrep -af "$PROC_PATTERN" | sed 's/^/ /'
|
|
57
|
+
pgrep -af "$PROC_PATTERN" | awk '{print $1}' | xargs -r kill -9 2>/dev/null || true
|
|
58
|
+
sleep 2
|
|
59
|
+
fi
|
|
60
|
+
if pgrep -af "$PROC_PATTERN" >/dev/null 2>&1; then
|
|
61
|
+
log "error: could not stop all processes:"
|
|
62
|
+
pgrep -af "$PROC_PATTERN" | sed 's/^/ /'
|
|
63
|
+
return 1
|
|
64
|
+
fi
|
|
65
|
+
log "stopped."
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
wait_for() {
|
|
69
|
+
local log_file="$1" pattern="$2" label="$3" error_pattern="$4" proc_pattern="$5" started
|
|
70
|
+
started=$(date +%s)
|
|
71
|
+
# Grace period: pnpm forks/execs into the actual dev process, so pgrep can
|
|
72
|
+
# legitimately return nothing for the first second or two. Don't treat that
|
|
73
|
+
# as a failure.
|
|
74
|
+
local grace_until=$((started + 8))
|
|
75
|
+
while ! grep -qE "$pattern" "$log_file" 2>/dev/null; do
|
|
76
|
+
if grep -qE "$error_pattern" "$log_file" 2>/dev/null; then
|
|
77
|
+
log "FAILED TO START: $label — fatal error detected in $log_file:"
|
|
78
|
+
grep -nE "$error_pattern" "$log_file" | head -5 | sed 's/^/ /'
|
|
79
|
+
log "tail of $log_file:"
|
|
80
|
+
tail -40 "$log_file" | sed 's/^/ /'
|
|
81
|
+
return 1
|
|
82
|
+
fi
|
|
83
|
+
if [ "$(date +%s)" -gt "$grace_until" ] && ! pgrep -f "$proc_pattern" >/dev/null 2>&1; then
|
|
84
|
+
log "FAILED TO START: $label — process exited before becoming ready. Tail of $log_file:"
|
|
85
|
+
tail -40 "$log_file" | sed 's/^/ /'
|
|
86
|
+
return 1
|
|
87
|
+
fi
|
|
88
|
+
if [ $(($(date +%s) - started)) -gt "$WAIT_TIMEOUT" ]; then
|
|
89
|
+
log "FAILED TO START: $label — timed out after ${WAIT_TIMEOUT}s waiting for readiness pattern. Tail of $log_file:"
|
|
90
|
+
tail -40 "$log_file" | sed 's/^/ /'
|
|
91
|
+
return 1
|
|
92
|
+
fi
|
|
93
|
+
sleep 2
|
|
94
|
+
done
|
|
95
|
+
log "$label ready."
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
start_backend() {
|
|
99
|
+
require_dms_back_dir start
|
|
100
|
+
log "starting backend in $DMS_BACK_DIR (logs → $BACK_LOG)…"
|
|
101
|
+
: > "$BACK_LOG"
|
|
102
|
+
# shellcheck disable=SC2086 # word-splitting of the command is intentional
|
|
103
|
+
( cd "$DMS_BACK_DIR" && setsid nohup $BACK_CMD >> "$BACK_LOG" 2>&1 < /dev/null & )
|
|
104
|
+
wait_for "$BACK_LOG" "$BACK_READY_PATTERN" "backend (http://localhost:5010)" \
|
|
105
|
+
"$BACK_ERROR_PATTERN" 'pnpm.*\bdev\b|antelope-runner|ajs project (run|dev)'
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
start_frontend() {
|
|
109
|
+
require_dms_back_dir start
|
|
110
|
+
log "starting frontend in $DMS_BACK_DIR (logs → $FRONT_LOG)…"
|
|
111
|
+
: > "$FRONT_LOG"
|
|
112
|
+
# shellcheck disable=SC2086 # word-splitting of the command is intentional
|
|
113
|
+
( cd "$DMS_BACK_DIR" && setsid nohup $FRONT_CMD >> "$FRONT_LOG" 2>&1 < /dev/null & )
|
|
114
|
+
wait_for "$FRONT_LOG" "$FRONT_READY_PATTERN" "frontend (http://localhost:3001)" \
|
|
115
|
+
"$FRONT_ERROR_PATTERN" 'pnpm.*frontend:dev|(^|[[:space:]/])ajs-dms dev|dms-frontend/dist/index\.js dev'
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
status() {
|
|
119
|
+
log "running processes:"
|
|
120
|
+
if ! pgrep -af "$PROC_PATTERN"; then
|
|
121
|
+
echo " (none)"
|
|
122
|
+
fi
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
usage() {
|
|
126
|
+
cat <<EOF
|
|
127
|
+
Usage: $(basename "$0") <command>
|
|
128
|
+
|
|
129
|
+
Commands:
|
|
130
|
+
restart Stop both servers, start backend, wait, start frontend, wait.
|
|
131
|
+
Use this after ANY edit to the DMS backend or any DMS module's sources.
|
|
132
|
+
start Same as restart but does not stop first (errors if already running).
|
|
133
|
+
stop Kill both servers and any zombie processes.
|
|
134
|
+
status Show running DMS dev processes.
|
|
135
|
+
back-log [N] Tail the last N (default 60) lines of the backend log.
|
|
136
|
+
front-log [N] Tail the last N (default 60) lines of the frontend log.
|
|
137
|
+
|
|
138
|
+
Environment:
|
|
139
|
+
DMS_BACK_DIR REQUIRED for start/restart. Absolute path to the DMS backend package
|
|
140
|
+
directory of the AntelopeJS DMS project to run.
|
|
141
|
+
DMS_BACK_CMD Command to start the backend, run in DMS_BACK_DIR (default: "pnpm dev",
|
|
142
|
+
the playground convention for "ajs project dev -w" / legacy "run -w").
|
|
143
|
+
DMS_FRONT_CMD Command to start the frontend, run in DMS_BACK_DIR (default:
|
|
144
|
+
"pnpm frontend:dev", the playground convention for "ajs-dms dev").
|
|
145
|
+
DMS_BACK_LOG (default: /tmp/dms-back.log)
|
|
146
|
+
DMS_FRONT_LOG (default: /tmp/dms-front.log)
|
|
147
|
+
DMS_DEV_TIMEOUT (default: 180 seconds per server)
|
|
148
|
+
EOF
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
cmd="${1:-}"
|
|
152
|
+
case "$cmd" in
|
|
153
|
+
restart)
|
|
154
|
+
stop_servers || true
|
|
155
|
+
if ! start_backend; then
|
|
156
|
+
log "aborting restart: backend failed to start."
|
|
157
|
+
exit 1
|
|
158
|
+
fi
|
|
159
|
+
if ! start_frontend; then
|
|
160
|
+
log "aborting restart: frontend failed to start."
|
|
161
|
+
exit 1
|
|
162
|
+
fi
|
|
163
|
+
;;
|
|
164
|
+
start)
|
|
165
|
+
if pgrep -af "$PROC_PATTERN" >/dev/null 2>&1; then
|
|
166
|
+
log "error: servers already running. Use restart, or stop first."
|
|
167
|
+
status
|
|
168
|
+
exit 1
|
|
169
|
+
fi
|
|
170
|
+
if ! start_backend; then
|
|
171
|
+
log "aborting start: backend failed to start."
|
|
172
|
+
exit 1
|
|
173
|
+
fi
|
|
174
|
+
if ! start_frontend; then
|
|
175
|
+
log "aborting start: frontend failed to start."
|
|
176
|
+
exit 1
|
|
177
|
+
fi
|
|
178
|
+
;;
|
|
179
|
+
stop)
|
|
180
|
+
stop_servers
|
|
181
|
+
;;
|
|
182
|
+
status)
|
|
183
|
+
status
|
|
184
|
+
;;
|
|
185
|
+
back-log)
|
|
186
|
+
tail -n "${2:-60}" "$BACK_LOG"
|
|
187
|
+
;;
|
|
188
|
+
front-log)
|
|
189
|
+
tail -n "${2:-60}" "$FRONT_LOG"
|
|
190
|
+
;;
|
|
191
|
+
""|-h|--help|help)
|
|
192
|
+
usage
|
|
193
|
+
;;
|
|
194
|
+
*)
|
|
195
|
+
usage
|
|
196
|
+
exit 2
|
|
197
|
+
;;
|
|
198
|
+
esac
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# dms-module — reference
|
|
2
|
+
|
|
3
|
+
Deep material for [SKILL.md](SKILL.md): the directory layout, the full `package.json` manifest,
|
|
4
|
+
defining the module's own interface, and the scaffolding checklist.
|
|
5
|
+
|
|
6
|
+
## Directory layout
|
|
7
|
+
|
|
8
|
+
One layout that works, not a requirement — mirror the module you copied rather than mixing shapes.
|
|
9
|
+
The **package name is free** (nothing in the framework or DMS keys on it); the official
|
|
10
|
+
first-party modules follow `dms-<name>` purely for discoverability.
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
<your-module>/
|
|
14
|
+
src/
|
|
15
|
+
index.ts # entry: construct/start/stop/destroy lifecycle
|
|
16
|
+
db/ # schema, models, tables (if it owns data)
|
|
17
|
+
pages/ # @RegisterPage classes + category.ts (see dms-pages)
|
|
18
|
+
routes/ # HTTP controllers feeding the components
|
|
19
|
+
interfaces/<name>/index.ts # the module's OWN interface (rare — many modules ship none)
|
|
20
|
+
implementations/<name>/index.ts # implementation of that interface
|
|
21
|
+
frontend-vue/ # Vue module: dms.frontend.ts, app/, i18n/locales/
|
|
22
|
+
package.json / tsconfig.json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## The full `package.json` manifest
|
|
26
|
+
|
|
27
|
+
```jsonc
|
|
28
|
+
{
|
|
29
|
+
"main": "dist/index.js", "types": "dist/index.d.ts",
|
|
30
|
+
"antelopeJs": {
|
|
31
|
+
"baseUrl": "dist",
|
|
32
|
+
"implements": ["<your-interface-package>"] // the interface THIS module provides (omit/[] if none)
|
|
33
|
+
},
|
|
34
|
+
"exports": {
|
|
35
|
+
".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" },
|
|
36
|
+
"./package.json": "./package.json",
|
|
37
|
+
// the module's own interface, as an EXPLICIT subpath (only if it defines one):
|
|
38
|
+
"./interfaces/<name>": {
|
|
39
|
+
"types": "./dist/interfaces/<name>/index.d.ts",
|
|
40
|
+
"default": "./dist/interfaces/<name>/index.js"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"typesVersions": { "*": { "interfaces/<name>": ["dist/interfaces/<name>/index.d.ts"] } }
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Defining the module's own interface
|
|
48
|
+
|
|
49
|
+
Interface authoring (`InterfaceFunction`, `RegisteringProxy`, implementation shape) is pure
|
|
50
|
+
AntelopeJS — see the **antelopejs** plugin's author/consume skills. The DMS-specific parts:
|
|
51
|
+
|
|
52
|
+
- **Define** in a companion package, `packages/interface-<name>/src/`, **implement** at
|
|
53
|
+
`src/implementations/<name>/index.ts` in the module, **wire** with `ImplementInterface` in
|
|
54
|
+
`construct` (the lifecycle entry in [SKILL.md](SKILL.md)). Keep `/** @internal */` on the
|
|
55
|
+
`internal` namespace — the convention marking the registration surface as non-consumer API.
|
|
56
|
+
- **Expose** each directory index as an explicit `exports` entry, plus the `typesVersions`
|
|
57
|
+
mapping that lets a consumer on `moduleResolution: node` resolve the types. Consumers add
|
|
58
|
+
the interface package to `dependencies` and
|
|
59
|
+
`import { … } from "@antelopejs/interface-<name>"`.
|
|
60
|
+
- Anything consumer-facing lives in the interface package; never re-export internal modules —
|
|
61
|
+
if a helper needs internal infrastructure, use the hook-setter indirection pattern the
|
|
62
|
+
existing modules use rather than exposing the internals. Runtime behaviour stays in the
|
|
63
|
+
module and reaches consumers as an `InterfaceFunction` the module implements, so the
|
|
64
|
+
contract never drags the module's npm dependencies along.
|
|
65
|
+
|
|
66
|
+
## Scaffolding checklist
|
|
67
|
+
|
|
68
|
+
1. **Confirm the path and module id** — the short `id` in `RegisterModule` and pages'
|
|
69
|
+
`module:` field (e.g. a `dms-cookbook` module would register id `cookbook`). Module pages are **owner-only** (see
|
|
70
|
+
[SKILL.md](SKILL.md)): confirm an owner/admin area is wanted; end-user screens belong in a project.
|
|
71
|
+
2. **Pick the closest reference shape**: pages + routes, no data or own interface → `dms-lang`
|
|
72
|
+
(`implements: []`); own data + interface published as `@antelopejs/interface-dms-database` → `dms-database`;
|
|
73
|
+
own interface published as a standalone `interface-*` package → `dms-automation`.
|
|
74
|
+
3. **Scaffold the layout above**: `src/index.ts`, `src/pages/`, `src/routes/` (if it serves data),
|
|
75
|
+
`packages/interface-<name>/` + `src/implementations/<name>/` (only if it exposes one),
|
|
76
|
+
`frontend-vue/` (components registered from the root `dms.frontend.ts`), and the manifest
|
|
77
|
+
(`antelopeJs` block, plus the interface package's `exports`/`typesVersions`).
|
|
78
|
+
4. **Wire the basics**: `RegisterModule({ id, title, icon, … })`, one `@RegisterPage()` page,
|
|
79
|
+
the `AddFrontendModule` call. Add the `$dms_<name>.*` keys to **every** locale file under
|
|
80
|
+
`frontend-vue/i18n/locales/`.
|
|
81
|
+
5. **Load and verify**: add the module to a consumer project's `antelope.config.ts` (the
|
|
82
|
+
backend's `playground` is the reference consumer) as a `package`/`git`/local-path module,
|
|
83
|
+
then **full-restart via dms-dev** — don't rely on hot reload. Keep the repo conventions
|
|
84
|
+
(**dms**: pnpm only, `_id` rows, no `switch`/`case`, TSDoc-only comments).
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dms-module
|
|
3
|
+
description: Packages a DISTRIBUTABLE DMS extension module (a reusable module other projects install, like the official dms-* modules — the package name itself is free). Use when creating a publishable DMS module, editing its package.json antelopeJs.implements manifest, registering it with RegisterModule, or defining the module's own AntelopeJS interface. For an app that just USES the DMS, see dms-project instead.
|
|
4
|
+
category: packaging
|
|
5
|
+
tags: [module, packaging, distribution, interfaces, frontend, inertia]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Building a distributable DMS module
|
|
9
|
+
|
|
10
|
+
> **Most work on the DMS is a project, not a module.** An app that loads the DMS and registers
|
|
11
|
+
> its own pages wants **dms-project** — not this. This skill is the rarer case: packaging a
|
|
12
|
+
> reusable extension to *ship* to other projects (the way the official `dms-*` modules do).
|
|
13
|
+
> The page/component/auth APIs are identical to a project; only the packaging differs.
|
|
14
|
+
|
|
15
|
+
For the mental model see the **dms** skill; for the framework underneath
|
|
16
|
+
(`ImplementInterface`, the `ajs` CLI) see the **antelopejs** plugin. A DMS module is an
|
|
17
|
+
ordinary AntelopeJS module that (1) depends on **`@antelopejs/dms`**, (2) registers a
|
|
18
|
+
module + pages on load, and (3) attaches a Vue 3 module via `AddFrontendModule` for any custom
|
|
19
|
+
frontend. A consumer installs it and adds it to their `antelope.config.ts` as a
|
|
20
|
+
`package`/`git` module — not as the project's `local` module. The official modules are the
|
|
21
|
+
reference implementations; full walkthrough: `docs/02.building/10.distributable-module.md`.
|
|
22
|
+
See [REFERENCE.md](REFERENCE.md) for the directory layout, the full `package.json` manifest,
|
|
23
|
+
defining the module's own interface, and the scaffolding checklist.
|
|
24
|
+
|
|
25
|
+
## The `package.json` manifest
|
|
26
|
+
|
|
27
|
+
The `antelopeJs` block is what makes it a DMS module ([REFERENCE.md](REFERENCE.md) has the full
|
|
28
|
+
manifest, including the `exports`/`typesVersions` entries for an interface subpath).
|
|
29
|
+
`implements` lists only the interfaces the module *provides* — the official modules keep it `[]`
|
|
30
|
+
when they provide none (`dms-lang`, `dms-saas`); consumed interfaces are plain `dependencies`
|
|
31
|
+
(no manifest field). Typical dependencies: `@antelopejs/dms` plus
|
|
32
|
+
`@antelopejs/interface-{core,api,api-util,auth,database,database-decorators}`. The frontend is
|
|
33
|
+
attached at runtime by the `AddFrontendModule` call in `construct`; there is no manifest field for it.
|
|
34
|
+
|
|
35
|
+
## The lifecycle entry (`src/index.ts`)
|
|
36
|
+
|
|
37
|
+
The AntelopeJS loader calls four optional exports. Register everything in `construct`; start
|
|
38
|
+
runtime work in `start`; tear down in `stop`/`destroy`. Side-effect imports (`import "./pages"`)
|
|
39
|
+
run the `@RegisterPage` decorators.
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import "./db";
|
|
43
|
+
import "./pages";
|
|
44
|
+
import path from "node:path";
|
|
45
|
+
import { ImplementInterface } from "@antelopejs/interface-core";
|
|
46
|
+
import { AddFrontendModule, RegisterModule } from "@antelopejs/interface-dms/page";
|
|
47
|
+
|
|
48
|
+
export const myModule = RegisterModule({
|
|
49
|
+
id: "<name>", // the module id pages attach to (module: "<name>")
|
|
50
|
+
title: "$dms_<name>.title", // i18n key — add it to every locale file
|
|
51
|
+
description: "$dms_<name>.description",
|
|
52
|
+
icon: "i-ph-cube",
|
|
53
|
+
// landingPage: "<page-id>", defaultCategory: { displayName: "…", icon: "…", order: 0 },
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export async function construct(config: Config): Promise<void> {
|
|
57
|
+
void ImplementInterface( // wire the module's own interface to its implementation, if any
|
|
58
|
+
await import("<your-module-package>/interfaces/<name>"),
|
|
59
|
+
await import("./implementations/<name>"),
|
|
60
|
+
);
|
|
61
|
+
AddFrontendModule({
|
|
62
|
+
name: "<your-module-package>",
|
|
63
|
+
sourcePath: path.join(__dirname, "../frontend"),
|
|
64
|
+
renderer: { name: "vue", version: "3" },
|
|
65
|
+
options: {},
|
|
66
|
+
privateOptions: {},
|
|
67
|
+
// priority: -1, // negative only to override base-layer components (base sits at 0)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export async function start(): Promise<void> { /* RegisterSchema("<name>") once the DB is up; cron, caches */ }
|
|
72
|
+
export function stop(): void { /* stop cron, release resources */ }
|
|
73
|
+
export function destroy(): void { /* deactivate subscriptions */ }
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`RegisterModule` runs at import time (top level), so the module exists before its pages
|
|
77
|
+
register — it returns the module's root `CategoryInfo`. `AddFrontendModule` is what surfaces the
|
|
78
|
+
module's frontend; without it the module is backend-only.
|
|
79
|
+
|
|
80
|
+
## Navigation & access — module pages are owner-only
|
|
81
|
+
|
|
82
|
+
Three constraints are enforced at registration: a page's `category` must **descend from the
|
|
83
|
+
module root** (nest under what `RegisterModule` returned, or rely on `defaultCategory`),
|
|
84
|
+
module pages cannot use the Settings category, and the module must exist before a page names
|
|
85
|
+
it. Pages resolve at `/modules/<moduleId>/<urlSlug>`; entering the module lands on
|
|
86
|
+
`landingPage` if set, else the first page by `order`. Access is **owner-only by design**: the
|
|
87
|
+
Modules group is visible to the platform owner alone (the `*` holder), and the
|
|
88
|
+
`modules.<moduleId>.…` permission ids are module-scoped — never grantable through Roles. On a
|
|
89
|
+
SaaS deployment that means you, the maker, not your customers; a screen for end users belongs
|
|
90
|
+
in a **project** page instead.
|
|
91
|
+
|
|
92
|
+
## Build, verify, reload
|
|
93
|
+
|
|
94
|
+
- `pnpm build` compiles `src/` only (`tsc`) — Vue template/compile errors surface only in the
|
|
95
|
+
running frontend. When a change doesn't show — or `RegisterModule` throws "already
|
|
96
|
+
registered" on rebuild — **full-restart via the dms-dev skill** (its pitfalls also cover
|
|
97
|
+
stubbornly stale `~/.antelopejs/dms-frontend` workspaces).
|
|
98
|
+
|
|
99
|
+
## Scaffolding (no DMS-specific generator)
|
|
100
|
+
|
|
101
|
+
`ajs module init <path>` scaffolds a **generic** AntelopeJS module shell; nothing generates the
|
|
102
|
+
DMS shape (a companion interface package, `frontend-vue/`, `Dms<Name>` prefix, i18n keys) — follow the
|
|
103
|
+
checklist in [REFERENCE.md](REFERENCE.md), and keep the repo conventions (**dms**:
|
|
104
|
+
pnpm only, `_id` rows, no `switch`/`case`, TSDoc-only comments).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# dms-pages — reference
|
|
2
|
+
|
|
3
|
+
Deep material for [SKILL.md](SKILL.md): the full component builder catalog and the DataTypes
|
|
4
|
+
catalog.
|
|
5
|
+
|
|
6
|
+
## Component builders
|
|
7
|
+
|
|
8
|
+
Main builders: `Form`; `TableView(controller, options)`; `Tree`; the charts (`ChartLine`,
|
|
9
|
+
`ChartArea`, `ChartBar`, `ChartColumn`, `ChartDonut`, `ChartPie`, `ChartScatter`,
|
|
10
|
+
`ChartMixed`, `ChartRadar`, `ChartRadialBar`, `ChartHeatmap`, `ChartCandlestick`, usually
|
|
11
|
+
inside `ChartCard`); layout `Grid` + `GridRow`, `HStack` / `VStack` / `Spacer`, `Tab`,
|
|
12
|
+
`Placeholder`; dashboard widgets `KpiCard`, `TopListCard`, `PeriodSelector`; and
|
|
13
|
+
`CustomComponent` (deep import from `@antelopejs/interface-dms/base/custom` — not in the barrel). Nest with
|
|
14
|
+
`.child("key", builder)`; `Grid` children must be `GridRow`s. Builders also carry a
|
|
15
|
+
behavioral DSL — permissioned `.action()`s and `.watch()` reactivity — see
|
|
16
|
+
`docs/02.building/05.actions-and-reactivity.md`.
|
|
17
|
+
|
|
18
|
+
## DataTypes
|
|
19
|
+
|
|
20
|
+
A field's `type` is a **DataType instance**: `new DefaultDataTypes.StringType({ … })`. The
|
|
21
|
+
catalog (21 built in, `@antelopejs/interface-dms/base/data-types`): `String`, `Number`, `Date`,
|
|
22
|
+
`Boolean`, `Select`, `Price`, `Percentage`, `Email`, `Color`, `Password`, `Url`, `Phone`,
|
|
23
|
+
`Tree`, `Relation`, `CascaderRelation`, `Address`, `Permissions`, `RichText`, `StringTime`,
|
|
24
|
+
`File`, `Image` (each as `<Name>Type`), plus `StatusType` via the `data-types` barrel. The
|
|
25
|
+
same types drive TableView columns and filters — options per type are in
|
|
26
|
+
`docs/04.components/08.data-types.md`. Custom types: subclass `DataType`, decorate with
|
|
27
|
+
`@RegisterDataType("id")` (frontend side: `docs/05.extending-the-dashboard/04.custom-data-types.md`).
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dms-pages
|
|
3
|
+
description: Declares admin pages and composes backend-driven UI on the AntelopeJS DMS. Use when adding a dashboard screen, writing a @RegisterPage / PageController class, composing Form / TableView / Tree / Chart / Grid builders imported from @antelopejs/interface-dms/base, or choosing DataTypes and wiring the routes and DataControllers that feed them.
|
|
4
|
+
category: dashboard
|
|
5
|
+
tags: [pages, components, forms, tables, data-types, navigation]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Pages & components
|
|
9
|
+
|
|
10
|
+
The DMS is backend-driven: you declare a **page** and attach **components** to it as static
|
|
11
|
+
fields. The builders produce a serializable description that the shared Vue 3 + Inertia frontend
|
|
12
|
+
renders — you write no Vue for standard screens. Depth: `docs/02.building/03.pages-and-components.md`
|
|
13
|
+
(pages), `docs/02.building/04.navigation.md` (nav tree), and the `docs/04.components/`
|
|
14
|
+
catalog (one chapter per component family).
|
|
15
|
+
|
|
16
|
+
## Declaring a page
|
|
17
|
+
|
|
18
|
+
A page is a class extending `PageController(id, options)` decorated with `@RegisterPage()`.
|
|
19
|
+
Registration happens at import time — make sure `src/index.ts` imports your pages module.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { PageController, RegisterPage } from "@antelopejs/interface-dms/page";
|
|
23
|
+
|
|
24
|
+
@RegisterPage()
|
|
25
|
+
export class RecipesPage extends PageController("recipes", {
|
|
26
|
+
displayName: "Recipes", // sidebar label (use a "$dms_x.y" i18n key in real modules)
|
|
27
|
+
icon: "i-ph-cooking-pot", // any iconify name
|
|
28
|
+
module: "cookbook", // attach under a RegisterModule'd module by id; can be combined with a category inside the module
|
|
29
|
+
order: 0,
|
|
30
|
+
}) {}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`options` is the `MenuOptions` shape (`@antelopejs/interface-dms/page`): `displayName`, `icon`,
|
|
34
|
+
`module` and/or `category` (at least one required; a module page's explicit category must
|
|
35
|
+
descend from the module's root), `urlSlug` (defaults to the id), `order`, `description`, `hidden`,
|
|
36
|
+
`type`, plus auth knobs (`publicAccess`, `authOnly`, `permission`, `noComponentPermissions` —
|
|
37
|
+
see **dms-auth**). `Category(id, options)` returns a `CategoryInfo` to pass as a page's
|
|
38
|
+
`category`; `RegisterModule({ id, … })` creates a module root that pages attach to via
|
|
39
|
+
`module: "<id>"`. Module pages live under `MODULE_URL_PREFIX` (`/modules`), e.g.
|
|
40
|
+
`/modules/<moduleId>/<urlSlug>`, and are **owner-only by design** — a screen for regular
|
|
41
|
+
users belongs under `pagesCategory` or a normal `Category`, not under a module.
|
|
42
|
+
|
|
43
|
+
## Composing components
|
|
44
|
+
|
|
45
|
+
Each **static field on the page class whose value is a component builder** becomes a named
|
|
46
|
+
component. Builders are fluent; import from `@antelopejs/interface-dms/base` (barrel or subpaths):
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import { PageController, RegisterPage } from "@antelopejs/interface-dms/page";
|
|
50
|
+
import { Form } from "@antelopejs/interface-dms/base/form";
|
|
51
|
+
import { DefaultDataTypes } from "@antelopejs/interface-dms/base/data-types/default-types";
|
|
52
|
+
import { HttpMethod } from "@antelopejs/interface-dms/base/types";
|
|
53
|
+
|
|
54
|
+
@RegisterPage()
|
|
55
|
+
export class SubmitRecipePage extends PageController("submit-recipe", { displayName: "Submit Recipe", module: "cookbook" }) {
|
|
56
|
+
static form = Form({
|
|
57
|
+
title: "Submit a Recipe",
|
|
58
|
+
fields: [
|
|
59
|
+
{ id: "chef", label: "Chef Name", type: new DefaultDataTypes.StringType({ maxLength: 100 }) },
|
|
60
|
+
{ id: "email", label: "Email", type: new DefaultDataTypes.EmailType() },
|
|
61
|
+
],
|
|
62
|
+
submitUrl: "/api/recipes", // a route — often declared on this same class
|
|
63
|
+
submitUrlMethod: HttpMethod.post,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The full catalog — `Form`, `TableView`, `Tree`, the charts, layout containers, dashboard
|
|
69
|
+
widgets, `CustomComponent` — plus nesting rules and the behavioral DSL (permissioned
|
|
70
|
+
`.action()`s, `.watch()` reactivity) is in [REFERENCE.md](REFERENCE.md).
|
|
71
|
+
|
|
72
|
+
**Custom UI: decompose, don't monolith.** Never build a whole screen as one full-page
|
|
73
|
+
`CustomComponent` SFC — that silently opts out of per-component permissions,
|
|
74
|
+
`.action()`/`.watch()` reactivity, `PeriodSelector` scoping, and backend-driven layout. Use
|
|
75
|
+
built-in builders wherever they suffice and one small `CustomComponent` per part that
|
|
76
|
+
genuinely needs Vue (`docs/04.components/04.custom-component.md`).
|
|
77
|
+
|
|
78
|
+
## Feeding components with data
|
|
79
|
+
|
|
80
|
+
Components pull data from URLs; declare routes with the `@antelopejs/interface-api`
|
|
81
|
+
decorators (`Controller`, `Get`, `Post`, `@Parameter`, `@JSONBody`), return a plain object
|
|
82
|
+
for 200 or throw `new HTTPResult(status, body)`. `GetModel(Model)` (from
|
|
83
|
+
`@antelopejs/interface-database-decorators`) gives `get` / `getAll` / `insert` / `update` /
|
|
84
|
+
`delete`. Routes under a controller that a page or DataController wraps **inherit** its auth —
|
|
85
|
+
already gated to logged-in callers (see **dms-auth**).
|
|
86
|
+
|
|
87
|
+
A **`TableView` is normally backed by a `DataController`**: a class
|
|
88
|
+
`extends DataController(TableClass, TableViewRoutes.All, Controller("/path"))` registered
|
|
89
|
+
with `@RegisterDataController()` (both from `@antelopejs/interface-data-api`).
|
|
90
|
+
`TableViewRoutes` (from `@antelopejs/interface-dms/base/table-view`) provides the presets — `Get`, `List`,
|
|
91
|
+
`Select`, `Count`, `New`, `Edit`, `Delete`, `Archive`, `Restore`, or `All`. Field decorators:
|
|
92
|
+
`@Column` / `@Select` / `@Exported` / `@ArchiveField` / `@Searchable` from `@antelopejs/interface-dms/base` (plus
|
|
93
|
+
class-level `@ColumnGroup(id, config)`), `@Listable` / `@Sortable` from
|
|
94
|
+
`@antelopejs/interface-data-api/metadata`. Read a
|
|
95
|
+
real one first: `@antelopejs/interface-dms/data-controllers` (`members`); guide in
|
|
96
|
+
`docs/04.components/09.data-controller.md` (+ `06.tables.md`). Database rows carry **`_id`**
|
|
97
|
+
as the primary key — return and type it as `_id`, never alias to `id`.
|
|
98
|
+
|
|
99
|
+
## DataTypes
|
|
100
|
+
|
|
101
|
+
A field's `type` is a **DataType instance**: `new DefaultDataTypes.StringType({ … })`; the same
|
|
102
|
+
types drive TableView columns and filters. See [REFERENCE.md](REFERENCE.md) for the catalog of
|
|
103
|
+
built-in types and how to register custom ones.
|
|
104
|
+
|
|
105
|
+
## Verify in the browser
|
|
106
|
+
|
|
107
|
+
The build only typechecks `src/` — it will not catch a Vue error in a custom component or a
|
|
108
|
+
wrong URL. After editing pages, full-restart and click through (see **dms-dev**). A hand-written link
|
|
109
|
+
to a module page must include the `/modules/<moduleId>` prefix (or read `fullSlug` from the
|
|
110
|
+
layout) — a missing prefix 404s through the frontend catch-all even though the build is clean.
|