@abraca/nuxt 0.3.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.d.mts +26 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +51 -8
- package/dist/runtime/components/AAccountSwitcherModal.d.vue.ts +10 -0
- package/dist/runtime/components/AAccountSwitcherModal.vue +158 -0
- package/dist/runtime/components/AAccountSwitcherModal.vue.d.ts +10 -0
- package/dist/runtime/components/AClaimAccountModal.d.vue.ts +10 -0
- package/dist/runtime/components/AClaimAccountModal.vue +230 -0
- package/dist/runtime/components/AClaimAccountModal.vue.d.ts +10 -0
- package/dist/runtime/components/ACollaborationUsers.vue +1 -0
- package/dist/runtime/components/AColorPicker.vue +4 -2
- package/dist/runtime/components/ACommandPalette.vue +4 -2
- package/dist/runtime/components/AConnectServerModal.d.vue.ts +12 -0
- package/dist/runtime/components/AConnectServerModal.vue +200 -0
- package/dist/runtime/components/AConnectServerModal.vue.d.ts +12 -0
- package/dist/runtime/components/AConnectionStatus.vue +1 -0
- package/dist/runtime/components/ADocPickModal.d.vue.ts +13 -0
- package/dist/runtime/components/ADocPickModal.vue +71 -0
- package/dist/runtime/components/ADocPickModal.vue.d.ts +13 -0
- package/dist/runtime/components/ADocRenderer.d.vue.ts +1 -1
- package/dist/runtime/components/ADocRenderer.vue +6 -0
- package/dist/runtime/components/ADocRenderer.vue.d.ts +1 -1
- package/dist/runtime/components/ADocTypeSelect.vue +4 -3
- package/dist/runtime/components/ADocumentTree.d.vue.ts +3 -3
- package/dist/runtime/components/ADocumentTree.vue +118 -10
- package/dist/runtime/components/ADocumentTree.vue.d.ts +3 -3
- package/dist/runtime/components/AEditor.d.vue.ts +4 -4
- package/dist/runtime/components/AEditor.vue +16 -1
- package/dist/runtime/components/AEditor.vue.d.ts +4 -4
- package/dist/runtime/components/AFloatingWindow.d.vue.ts +54 -2
- package/dist/runtime/components/AFloatingWindow.vue +15 -14
- package/dist/runtime/components/AFloatingWindow.vue.d.ts +54 -2
- package/dist/runtime/components/AIconPicker.vue +2 -0
- package/dist/runtime/components/AInviteRedeemModal.d.vue.ts +10 -0
- package/dist/runtime/components/AInviteRedeemModal.vue +122 -0
- package/dist/runtime/components/AInviteRedeemModal.vue.d.ts +10 -0
- package/dist/runtime/components/ANodePanel.vue +10 -2
- package/dist/runtime/components/ANotifications.vue +3 -1
- package/dist/runtime/components/APermissionGuard.vue +1 -0
- package/dist/runtime/components/APresence.vue +1 -0
- package/dist/runtime/components/AProvider.d.vue.ts +0 -1
- package/dist/runtime/components/AProvider.vue +17 -4
- package/dist/runtime/components/AProvider.vue.d.ts +0 -1
- package/dist/runtime/components/ARoleBadge.vue +1 -0
- package/dist/runtime/components/ASpaceFormModal.d.vue.ts +16 -0
- package/dist/runtime/components/ASpaceFormModal.vue +182 -0
- package/dist/runtime/components/ASpaceFormModal.vue.d.ts +16 -0
- package/dist/runtime/components/AVoiceBar.vue +3 -1
- package/dist/runtime/components/AVoiceTile.vue +1 -0
- package/dist/runtime/components/AWindowLayer.vue +1 -0
- package/dist/runtime/components/aware/AArea.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AArea.vue +2 -1
- package/dist/runtime/components/aware/AArea.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AAvatar.vue +2 -0
- package/dist/runtime/components/aware/AButton.vue +2 -1
- package/dist/runtime/components/aware/ACursorLabel.vue +1 -0
- package/dist/runtime/components/aware/ADocBadge.vue +2 -0
- package/dist/runtime/components/aware/AFacepile.vue +2 -0
- package/dist/runtime/components/aware/AInput.vue +3 -2
- package/dist/runtime/components/aware/ASelect.vue +3 -2
- package/dist/runtime/components/aware/ATextarea.vue +3 -2
- package/dist/runtime/components/aware/AUserList.vue +2 -0
- package/dist/runtime/components/chat/AChatAgentStatus.d.vue.ts +15 -0
- package/dist/runtime/components/chat/AChatAgentStatus.vue +95 -0
- package/dist/runtime/components/chat/AChatAgentStatus.vue.d.ts +15 -0
- package/dist/runtime/components/chat/AChatDocLink.d.vue.ts +18 -0
- package/dist/runtime/components/chat/AChatDocLink.vue +29 -0
- package/dist/runtime/components/chat/AChatDocLink.vue.d.ts +18 -0
- package/dist/runtime/components/chat/AChatDocQuote.d.vue.ts +26 -0
- package/dist/runtime/components/chat/AChatDocQuote.vue +47 -0
- package/dist/runtime/components/chat/AChatDocQuote.vue.d.ts +26 -0
- package/dist/runtime/components/chat/AChatInput.d.vue.ts +45 -0
- package/dist/runtime/components/chat/AChatInput.vue +219 -0
- package/dist/runtime/components/chat/AChatInput.vue.d.ts +45 -0
- package/dist/runtime/components/chat/AChatList.d.vue.ts +59 -0
- package/dist/runtime/components/chat/AChatList.vue +184 -0
- package/dist/runtime/components/chat/AChatList.vue.d.ts +59 -0
- package/dist/runtime/components/chat/AChatMemberList.d.vue.ts +24 -0
- package/dist/runtime/components/chat/AChatMemberList.vue +97 -0
- package/dist/runtime/components/chat/AChatMemberList.vue.d.ts +24 -0
- package/dist/runtime/components/chat/AChatMessages.d.vue.ts +31 -0
- package/dist/runtime/components/chat/AChatMessages.vue +161 -0
- package/dist/runtime/components/chat/AChatMessages.vue.d.ts +31 -0
- package/dist/runtime/components/chat/AChatPanel.d.vue.ts +84 -0
- package/dist/runtime/components/chat/AChatPanel.vue +89 -0
- package/dist/runtime/components/chat/AChatPanel.vue.d.ts +84 -0
- package/dist/runtime/components/chat/AChatTypingIndicator.d.vue.ts +11 -0
- package/dist/runtime/components/chat/AChatTypingIndicator.vue +58 -0
- package/dist/runtime/components/chat/AChatTypingIndicator.vue.d.ts +11 -0
- package/dist/runtime/components/editor/AColorPalettePopover.d.vue.ts +23 -0
- package/dist/runtime/components/editor/AColorPalettePopover.vue +71 -0
- package/dist/runtime/components/editor/AColorPalettePopover.vue.d.ts +23 -0
- package/dist/runtime/components/editor/ADocLinkPopover.d.vue.ts +7 -0
- package/dist/runtime/components/editor/ADocLinkPopover.vue +74 -0
- package/dist/runtime/components/editor/ADocLinkPopover.vue.d.ts +7 -0
- package/dist/runtime/components/editor/AFileAudioPlayer.d.vue.ts +10 -0
- package/dist/runtime/components/editor/AFileAudioPlayer.vue +353 -0
- package/dist/runtime/components/editor/AFileAudioPlayer.vue.d.ts +10 -0
- package/dist/runtime/components/editor/AFileGlbViewer.d.vue.ts +13 -0
- package/dist/runtime/components/editor/AFileGlbViewer.vue +187 -0
- package/dist/runtime/components/editor/AFileGlbViewer.vue.d.ts +13 -0
- package/dist/runtime/components/editor/AFileVideoPlayer.d.vue.ts +7 -0
- package/dist/runtime/components/editor/AFileVideoPlayer.vue +62 -0
- package/dist/runtime/components/editor/AFileVideoPlayer.vue.d.ts +7 -0
- package/dist/runtime/components/editor/ALinkPopover.d.vue.ts +8 -0
- package/dist/runtime/components/editor/ALinkPopover.vue +149 -0
- package/dist/runtime/components/editor/ALinkPopover.vue.d.ts +8 -0
- package/dist/runtime/components/editor/ALocationPickerPopover.d.vue.ts +28 -0
- package/dist/runtime/components/editor/ALocationPickerPopover.vue +232 -0
- package/dist/runtime/components/editor/ALocationPickerPopover.vue.d.ts +28 -0
- package/dist/runtime/components/renderers/ACalendarRenderer.d.vue.ts +2 -0
- package/dist/runtime/components/renderers/ACalendarRenderer.vue +207 -327
- package/dist/runtime/components/renderers/ACalendarRenderer.vue.d.ts +2 -0
- package/dist/runtime/components/renderers/ACallRenderer.vue +3 -0
- package/dist/runtime/components/renderers/AChecklistRenderer.vue +1 -0
- package/dist/runtime/components/renderers/ADashboardRenderer.vue +14 -12
- package/dist/runtime/components/renderers/AGalleryRenderer.vue +120 -12
- package/dist/runtime/components/renderers/AGraphRenderer.vue +5 -2
- package/dist/runtime/components/renderers/AKanbanRenderer.vue +21 -5
- package/dist/runtime/components/renderers/AMapRenderer.vue +2 -0
- package/dist/runtime/components/renderers/AMediaRenderer.d.vue.ts +19 -0
- package/dist/runtime/components/renderers/AMediaRenderer.vue +224 -0
- package/dist/runtime/components/renderers/AMediaRenderer.vue.d.ts +19 -0
- package/dist/runtime/components/renderers/AOutlineRenderer.vue +1 -0
- package/dist/runtime/components/renderers/ASpatialRenderer.d.vue.ts +19 -0
- package/dist/runtime/components/renderers/ASpatialRenderer.vue +436 -0
- package/dist/runtime/components/renderers/ASpatialRenderer.vue.d.ts +19 -0
- package/dist/runtime/components/renderers/ATableRenderer.vue +65 -45
- package/dist/runtime/components/renderers/ATimelineRenderer.vue +282 -260
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +41 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +109 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +41 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +49 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +152 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +49 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +39 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +101 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +39 -0
- package/dist/runtime/components/renderers/calendar/ACalendarMonthView.d.vue.ts +43 -0
- package/dist/runtime/components/renderers/calendar/ACalendarMonthView.vue +87 -0
- package/dist/runtime/components/renderers/calendar/ACalendarMonthView.vue.d.ts +43 -0
- package/dist/runtime/components/renderers/calendar/ACalendarToolbar.d.vue.ts +38 -0
- package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue +206 -0
- package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +38 -0
- package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.d.vue.ts +28 -0
- package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.vue +33 -0
- package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.vue.d.ts +28 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +50 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +188 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +50 -0
- package/dist/runtime/components/renderers/media/MediaPlaylist.d.vue.ts +25 -0
- package/dist/runtime/components/renderers/media/MediaPlaylist.vue +115 -0
- package/dist/runtime/components/renderers/media/MediaPlaylist.vue.d.ts +25 -0
- package/dist/runtime/components/renderers/media/MediaSyncBar.d.vue.ts +21 -0
- package/dist/runtime/components/renderers/media/MediaSyncBar.vue +61 -0
- package/dist/runtime/components/renderers/media/MediaSyncBar.vue.d.ts +21 -0
- package/dist/runtime/components/renderers/media/MediaTransportBar.d.vue.ts +22 -0
- package/dist/runtime/components/renderers/media/MediaTransportBar.vue +98 -0
- package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +22 -0
- package/dist/runtime/components/renderers/spatial/SpatialGround.d.vue.ts +20 -0
- package/dist/runtime/components/renderers/spatial/SpatialGround.vue +26 -0
- package/dist/runtime/components/renderers/spatial/SpatialGround.vue.d.ts +20 -0
- package/dist/runtime/components/renderers/spatial/SpatialObject.d.vue.ts +17 -0
- package/dist/runtime/components/renderers/spatial/SpatialObject.vue +257 -0
- package/dist/runtime/components/renderers/spatial/SpatialObject.vue.d.ts +17 -0
- package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue +18 -0
- package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.d.vue.ts +8 -0
- package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue +53 -0
- package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue.d.ts +8 -0
- package/dist/runtime/components/renderers/table/ATableColumnHeader.d.vue.ts +25 -0
- package/dist/runtime/components/renderers/table/ATableColumnHeader.vue +129 -0
- package/dist/runtime/components/renderers/table/ATableColumnHeader.vue.d.ts +25 -0
- package/dist/runtime/components/renderers/table/ATableFlatMode.d.vue.ts +21 -0
- package/dist/runtime/components/renderers/table/ATableFlatMode.vue +370 -0
- package/dist/runtime/components/renderers/table/ATableFlatMode.vue.d.ts +21 -0
- package/dist/runtime/components/renderers/table/ATableToolbar.d.vue.ts +22 -0
- package/dist/runtime/components/renderers/table/ATableToolbar.vue +106 -0
- package/dist/runtime/components/renderers/table/ATableToolbar.vue.d.ts +22 -0
- package/dist/runtime/components/renderers/table/cells/ATableCell.d.vue.ts +18 -0
- package/dist/runtime/components/renderers/table/cells/ATableCell.vue +54 -0
- package/dist/runtime/components/renderers/table/cells/ATableCell.vue.d.ts +18 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +14 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +67 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +14 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellDate.d.vue.ts +16 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellDate.vue +91 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellDate.vue.d.ts +16 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellMembers.d.vue.ts +6 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellMembers.vue +30 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellMembers.vue.d.ts +6 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.d.vue.ts +17 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.vue +76 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.vue.d.ts +17 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellNumber.d.vue.ts +17 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellNumber.vue +54 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellNumber.vue.d.ts +17 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellRating.d.vue.ts +16 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellRating.vue +35 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellRating.vue.d.ts +16 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellSelect.d.vue.ts +18 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellSelect.vue +111 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellSelect.vue.d.ts +18 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellSlider.d.vue.ts +16 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellSlider.vue +35 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellSlider.vue.d.ts +16 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellTags.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellTags.vue +92 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellTags.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellText.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellText.vue +44 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellText.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellToggle.d.vue.ts +14 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellToggle.vue +31 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellToggle.vue.d.ts +14 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellUrl.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellUrl.vue +63 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellUrl.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/timeline/ATimelineAxis.d.vue.ts +9 -0
- package/dist/runtime/components/renderers/timeline/ATimelineAxis.vue +53 -0
- package/dist/runtime/components/renderers/timeline/ATimelineAxis.vue.d.ts +9 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +26 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +59 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +26 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +28 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +109 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +28 -0
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +43 -0
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +168 -0
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +43 -0
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +24 -0
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +46 -0
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +24 -0
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +34 -0
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue +193 -0
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +34 -0
- package/dist/runtime/components/settings/ASettingsAdminPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsAdminPanel.vue +159 -0
- package/dist/runtime/components/settings/ASettingsAdminPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsConnectionPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsConnectionPanel.vue +146 -0
- package/dist/runtime/components/settings/ASettingsConnectionPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsInvitesPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsInvitesPanel.vue +157 -0
- package/dist/runtime/components/settings/ASettingsInvitesPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsMembersPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsMembersPanel.vue +134 -0
- package/dist/runtime/components/settings/ASettingsMembersPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsModal.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsModal.vue +176 -0
- package/dist/runtime/components/settings/ASettingsModal.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsOfflinePanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsOfflinePanel.vue +170 -0
- package/dist/runtime/components/settings/ASettingsOfflinePanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsPluginsPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsPluginsPanel.vue +96 -0
- package/dist/runtime/components/settings/ASettingsPluginsPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsProfilePanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsProfilePanel.vue +223 -0
- package/dist/runtime/components/settings/ASettingsProfilePanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsSecurityPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsSecurityPanel.vue +312 -0
- package/dist/runtime/components/settings/ASettingsSecurityPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsSpacesPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +195 -0
- package/dist/runtime/components/settings/ASettingsSpacesPanel.vue.d.ts +3 -0
- package/dist/runtime/components/settings/ASettingsTrashPanel.d.vue.ts +3 -0
- package/dist/runtime/components/settings/ASettingsTrashPanel.vue +135 -0
- package/dist/runtime/components/settings/ASettingsTrashPanel.vue.d.ts +3 -0
- package/dist/runtime/components/shell/AChildContextMenu.d.vue.ts +30 -0
- package/dist/runtime/components/shell/AChildContextMenu.vue +48 -0
- package/dist/runtime/components/shell/AChildContextMenu.vue.d.ts +30 -0
- package/dist/runtime/components/shell/ACursorOverlay.d.vue.ts +11 -0
- package/dist/runtime/components/shell/ACursorOverlay.vue +55 -0
- package/dist/runtime/components/shell/ACursorOverlay.vue.d.ts +11 -0
- package/dist/runtime/components/shell/ADocDragGhost.d.vue.ts +3 -0
- package/dist/runtime/components/shell/ADocDragGhost.vue +58 -0
- package/dist/runtime/components/shell/ADocDragGhost.vue.d.ts +3 -0
- package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +111 -0
- package/dist/runtime/components/shell/ADocPanelSettings.vue +621 -0
- package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +111 -0
- package/dist/runtime/components/shell/AFavoritesList.d.vue.ts +27 -0
- package/dist/runtime/components/shell/AFavoritesList.vue +83 -0
- package/dist/runtime/components/shell/AFavoritesList.vue.d.ts +27 -0
- package/dist/runtime/components/shell/ANodeContextMenu.d.vue.ts +17 -0
- package/dist/runtime/components/shell/ANodeContextMenu.vue +14 -0
- package/dist/runtime/components/shell/ANodeContextMenu.vue.d.ts +17 -0
- package/dist/runtime/components/shell/ASidebar.d.vue.ts +54 -0
- package/dist/runtime/components/shell/ASidebar.vue +92 -0
- package/dist/runtime/components/shell/ASidebar.vue.d.ts +54 -0
- package/dist/runtime/components/shell/ASidebarToggle.d.vue.ts +7 -0
- package/dist/runtime/components/shell/ASidebarToggle.vue +23 -0
- package/dist/runtime/components/shell/ASidebarToggle.vue.d.ts +7 -0
- package/dist/runtime/components/shell/ASpaceSwitcher.d.vue.ts +32 -0
- package/dist/runtime/components/shell/ASpaceSwitcher.vue +63 -0
- package/dist/runtime/components/shell/ASpaceSwitcher.vue.d.ts +32 -0
- package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +25 -0
- package/dist/runtime/components/shell/ASyncStatus.vue +96 -0
- package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +25 -0
- package/dist/runtime/components/shell/AUserMenu.d.vue.ts +28 -0
- package/dist/runtime/components/shell/AUserMenu.vue +79 -0
- package/dist/runtime/components/shell/AUserMenu.vue.d.ts +28 -0
- package/dist/runtime/components/shell/AUserProfilePopover.d.vue.ts +54 -0
- package/dist/runtime/components/shell/AUserProfilePopover.vue +176 -0
- package/dist/runtime/components/shell/AUserProfilePopover.vue.d.ts +54 -0
- package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +96 -0
- package/dist/runtime/components/shell/AWelcomeScreen.vue +422 -0
- package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +96 -0
- package/dist/runtime/composables/useAAField.js +2 -0
- package/dist/runtime/composables/useAbraLocale.js +1 -0
- package/dist/runtime/composables/useAbracadabra.js +1 -0
- package/dist/runtime/composables/useAbracadabraAuth.d.ts +3 -4
- package/dist/runtime/composables/useAbracadabraAuth.js +4 -0
- package/dist/runtime/composables/useAwareness.js +1 -0
- package/dist/runtime/composables/useAwarenessPeers.js +1 -0
- package/dist/runtime/composables/useBackgroundSync.d.ts +5 -0
- package/dist/runtime/composables/useBackgroundSync.js +24 -3
- package/dist/runtime/composables/useCalendarView.d.ts +86 -0
- package/dist/runtime/composables/useCalendarView.js +316 -0
- package/dist/runtime/composables/useChat.d.ts +2 -1
- package/dist/runtime/composables/useChat.js +17 -10
- package/dist/runtime/composables/useChatUsers.js +1 -0
- package/dist/runtime/composables/useChildTree.d.ts +4 -2
- package/dist/runtime/composables/useChildTree.js +31 -21
- package/dist/runtime/composables/useCommandPalette.js +16 -17
- package/dist/runtime/composables/useConnectionStatus.d.ts +1 -1
- package/dist/runtime/composables/useConnectionStatus.js +1 -1
- package/dist/runtime/composables/useCrossWindowSync.d.ts +11 -0
- package/dist/runtime/composables/useCrossWindowSync.js +38 -0
- package/dist/runtime/composables/useDashboard.js +17 -9
- package/dist/runtime/composables/useDevicePairing.js +2 -0
- package/dist/runtime/composables/useDocDragBus.d.ts +28 -0
- package/dist/runtime/composables/useDocDragBus.js +22 -0
- package/dist/runtime/composables/useDocDropZone.d.ts +51 -0
- package/dist/runtime/composables/useDocDropZone.js +84 -0
- package/dist/runtime/composables/useDocExport.js +2 -0
- package/dist/runtime/composables/useDocImport.js +1 -0
- package/dist/runtime/composables/useDocLabels.d.ts +22 -0
- package/dist/runtime/composables/useDocLabels.js +11 -0
- package/dist/runtime/composables/useDocLinkPick.d.ts +18 -0
- package/dist/runtime/composables/useDocLinkPick.js +22 -0
- package/dist/runtime/composables/useDocSeo.js +3 -2
- package/dist/runtime/composables/useDocSlugs.js +3 -0
- package/dist/runtime/composables/useDocTree.d.ts +1 -0
- package/dist/runtime/composables/useDocTree.js +6 -2
- package/dist/runtime/composables/useEditor.js +1 -0
- package/dist/runtime/composables/useEditorDragHandle.js +2 -0
- package/dist/runtime/composables/useEditorEmojis.d.ts +22 -0
- package/dist/runtime/composables/useEditorEmojis.js +57 -0
- package/dist/runtime/composables/useEditorMentions.d.ts +10 -3
- package/dist/runtime/composables/useEditorMentions.js +31 -3
- package/dist/runtime/composables/useEditorSuggestions.d.ts +2 -2
- package/dist/runtime/composables/useEditorSuggestions.js +27 -19
- package/dist/runtime/composables/useEditorToolbar.d.ts +1 -1
- package/dist/runtime/composables/useEditorToolbar.js +3 -0
- package/dist/runtime/composables/useFavorites.d.ts +13 -0
- package/dist/runtime/composables/useFavorites.js +42 -0
- package/dist/runtime/composables/useFileIndex.js +2 -0
- package/dist/runtime/composables/useFileTransfer.js +13 -1
- package/dist/runtime/composables/useFollowUser.js +2 -0
- package/dist/runtime/composables/useIdentityDoc.d.ts +89 -0
- package/dist/runtime/composables/useIdentityDoc.js +349 -0
- package/dist/runtime/composables/useInstalledPlugins.d.ts +31 -0
- package/dist/runtime/composables/useInstalledPlugins.js +58 -0
- package/dist/runtime/composables/useInvites.js +1 -0
- package/dist/runtime/composables/useJoinLink.d.ts +25 -0
- package/dist/runtime/composables/useJoinLink.js +58 -0
- package/dist/runtime/composables/useMediaExtractor.d.ts +31 -0
- package/dist/runtime/composables/useMediaExtractor.js +46 -0
- package/dist/runtime/composables/useMediaPlayback.d.ts +43 -0
- package/dist/runtime/composables/useMediaPlayback.js +465 -0
- package/dist/runtime/composables/useNodeContextMenu.d.ts +26 -0
- package/dist/runtime/composables/useNodeContextMenu.js +99 -0
- package/dist/runtime/composables/useNodePanel.d.ts +7 -1
- package/dist/runtime/composables/useNodePanel.js +45 -8
- package/dist/runtime/composables/useNodePanelFollow.d.ts +2 -0
- package/dist/runtime/composables/useNodePanelFollow.js +37 -0
- package/dist/runtime/composables/useNotifications.d.ts +1 -0
- package/dist/runtime/composables/useNotifications.js +7 -2
- package/dist/runtime/composables/usePluginRegistry.js +1 -0
- package/dist/runtime/composables/useRendererBase.d.ts +16 -1
- package/dist/runtime/composables/useRendererBase.js +10 -1
- package/dist/runtime/composables/useSearchIndex.js +2 -0
- package/dist/runtime/composables/useSettingsModal.d.ts +18 -0
- package/dist/runtime/composables/useSettingsModal.js +30 -0
- package/dist/runtime/composables/useSlideoverSwipe.d.ts +39 -0
- package/dist/runtime/composables/useSlideoverSwipe.js +48 -0
- package/dist/runtime/composables/useSlugRoute.js +2 -0
- package/dist/runtime/composables/useSpaces.js +2 -0
- package/dist/runtime/composables/useSpatialCamera.d.ts +16 -0
- package/dist/runtime/composables/useSpatialCamera.js +175 -0
- package/dist/runtime/composables/useSpatialDrag.d.ts +14 -0
- package/dist/runtime/composables/useSpatialDrag.js +137 -0
- package/dist/runtime/composables/useTableView.d.ts +29 -0
- package/dist/runtime/composables/useTableView.js +184 -0
- package/dist/runtime/composables/useTimelineView.d.ts +55 -0
- package/dist/runtime/composables/useTimelineView.js +434 -0
- package/dist/runtime/composables/useTiptapDragState.d.ts +8 -0
- package/dist/runtime/composables/useTiptapDragState.js +5 -0
- package/dist/runtime/composables/useTouchDrag.d.ts +2 -0
- package/dist/runtime/composables/useTouchDrag.js +3 -0
- package/dist/runtime/composables/useTrash.d.ts +4 -0
- package/dist/runtime/composables/useTrash.js +6 -3
- package/dist/runtime/composables/useTreeUndoManager.d.ts +22 -0
- package/dist/runtime/composables/useTreeUndoManager.js +45 -0
- package/dist/runtime/composables/useUndoRedo.d.ts +37 -0
- package/dist/runtime/composables/useUndoRedo.js +115 -0
- package/dist/runtime/composables/useVoice.js +2 -0
- package/dist/runtime/composables/useWebRTC.js +2 -0
- package/dist/runtime/composables/useWindowManager.d.ts +2 -0
- package/dist/runtime/composables/useWindowManager.js +63 -1
- package/dist/runtime/extensions/code-preview.d.ts +2 -0
- package/dist/runtime/extensions/code-preview.js +17 -0
- package/dist/runtime/extensions/code-tree.d.ts +2 -0
- package/dist/runtime/extensions/code-tree.js +33 -0
- package/dist/runtime/extensions/doc-embed.d.ts +12 -0
- package/dist/runtime/extensions/doc-embed.js +63 -0
- package/dist/runtime/extensions/doc-link-drop.d.ts +3 -0
- package/dist/runtime/extensions/doc-link-drop.js +63 -0
- package/dist/runtime/extensions/document-header.js +1 -1
- package/dist/runtime/extensions/field.d.ts +3 -0
- package/dist/runtime/extensions/field.js +53 -0
- package/dist/runtime/extensions/mention-drop.d.ts +8 -0
- package/dist/runtime/extensions/mention-drop.js +47 -0
- package/dist/runtime/extensions/meta-field.js +2 -0
- package/dist/runtime/extensions/selection-drag.d.ts +13 -0
- package/dist/runtime/extensions/selection-drag.js +126 -0
- package/dist/runtime/extensions/views/AccordionItemView.vue +1 -0
- package/dist/runtime/extensions/views/BadgeView.vue +1 -0
- package/dist/runtime/extensions/views/CardView.vue +1 -0
- package/dist/runtime/extensions/views/CodeCollapseView.vue +1 -0
- package/dist/runtime/extensions/views/CodeGroupView.vue +1 -0
- package/dist/runtime/extensions/views/CodePreviewView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/CodePreviewView.vue +48 -0
- package/dist/runtime/extensions/views/CodePreviewView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/CodeTreeView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/CodeTreeView.vue +88 -0
- package/dist/runtime/extensions/views/CodeTreeView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/CollapsibleView.vue +1 -0
- package/dist/runtime/extensions/views/DocEmbedView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/DocEmbedView.vue +198 -0
- package/dist/runtime/extensions/views/DocEmbedView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FieldGroupView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/FieldGroupView.vue +25 -0
- package/dist/runtime/extensions/views/FieldGroupView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FieldView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/FieldView.vue +53 -0
- package/dist/runtime/extensions/views/FieldView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FileNodeView.vue +2 -0
- package/dist/runtime/extensions/views/KbdView.vue +1 -0
- package/dist/runtime/extensions/views/MetaFieldView.vue +68 -2
- package/dist/runtime/extensions/views/ProseIconView.vue +1 -0
- package/dist/runtime/extensions/views/StepsView.vue +1 -0
- package/dist/runtime/extensions/views/TabsView.vue +1 -0
- package/dist/runtime/locale.d.ts +65 -0
- package/dist/runtime/locale.js +67 -2
- package/dist/runtime/middleware/abracadabra-auth.d.ts +1 -10
- package/dist/runtime/middleware/abracadabra-auth.js +2 -0
- package/dist/runtime/plugin-abracadabra.client.d.ts +1 -1
- package/dist/runtime/plugin-abracadabra.client.js +99 -53
- package/dist/runtime/plugin-abracadabra.server.d.ts +1 -1
- package/dist/runtime/plugin-abracadabra.server.js +2 -0
- package/dist/runtime/plugin-shared-globals.client.d.ts +1 -1
- package/dist/runtime/plugin-shared-globals.client.js +1 -0
- package/dist/runtime/plugins/core.plugin.js +40 -4
- package/dist/runtime/server/api/_abracadabra/render/[docId].get.d.ts +19 -17
- package/dist/runtime/server/api/_abracadabra/render/[docId].get.js +4 -0
- package/dist/runtime/server/api/_abracadabra/resolve/[...slug].get.d.ts +11 -1
- package/dist/runtime/server/api/_abracadabra/resolve/[...slug].get.js +1 -0
- package/dist/runtime/server/api/_abracadabra/slugs.get.js +1 -0
- package/dist/runtime/server/api/_abracadabra/spaces.get.d.ts +1 -10
- package/dist/runtime/server/api/_abracadabra/spaces.get.js +3 -0
- package/dist/runtime/server/plugins/abracadabra-service.js +24 -12
- package/dist/runtime/server/utils/docCache.d.ts +8 -6
- package/dist/runtime/server/utils/docCache.js +3 -3
- package/dist/runtime/server/utils/serverPluginLoader.d.ts +20 -0
- package/dist/runtime/server/utils/serverPluginLoader.js +42 -0
- package/dist/runtime/server/utils/serverRunner.d.ts +11 -2
- package/dist/runtime/server/utils/serverRunner.js +21 -10
- package/dist/runtime/server/utils/spaceManager.d.ts +25 -0
- package/dist/runtime/server/utils/spaceManager.js +188 -0
- package/dist/runtime/types.d.ts +128 -30
- package/dist/runtime/types.js +17 -17
- package/dist/runtime/utils/chatContent.d.ts +41 -0
- package/dist/runtime/utils/chatContent.js +65 -0
- package/dist/runtime/utils/colorPalettes.js +12 -6
- package/dist/runtime/utils/coverCache.d.ts +12 -0
- package/dist/runtime/utils/coverCache.js +14 -0
- package/dist/runtime/utils/docReferenceEdges.d.ts +26 -0
- package/dist/runtime/utils/docReferenceEdges.js +122 -0
- package/dist/runtime/utils/docTypes.d.ts +6 -1
- package/dist/runtime/utils/duplicateDocContent.d.ts +19 -0
- package/dist/runtime/utils/duplicateDocContent.js +68 -0
- package/dist/runtime/utils/extractFileMetadata.d.ts +13 -0
- package/dist/runtime/utils/extractFileMetadata.js +94 -0
- package/dist/runtime/utils/getMetaColor.d.ts +6 -0
- package/dist/runtime/utils/getMetaColor.js +12 -0
- package/dist/runtime/utils/htmlToYjs.d.ts +19 -0
- package/dist/runtime/utils/htmlToYjs.js +235 -0
- package/dist/runtime/utils/markdownToYjs.js +3 -3
- package/dist/runtime/utils/metaFieldDefinitions.js +9 -0
- package/dist/runtime/utils/notificationRenderers.d.ts +13 -0
- package/dist/runtime/utils/notificationRenderers.js +41 -0
- package/dist/runtime/utils/sdkRef.d.ts +12 -2
- package/dist/types.d.mts +12 -0
- package/package.json +26 -27
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { shallowRef, ref, computed, watch } from "vue";
|
|
2
|
+
import { defineNuxtPlugin, useRuntimeConfig, useAppConfig, navigateTo } from "#imports";
|
|
2
3
|
import * as Y from "yjs";
|
|
3
4
|
import { PluginRegistry } from "./plugin-registry.js";
|
|
4
5
|
import { corePlugin } from "./plugins/core.plugin.js";
|
|
@@ -14,6 +15,7 @@ import {
|
|
|
14
15
|
} from "./composables/useBackgroundSync.js";
|
|
15
16
|
import {
|
|
16
17
|
_initFileBlobStore,
|
|
18
|
+
_getFileBlobStore,
|
|
17
19
|
_destroyFileBlobStore
|
|
18
20
|
} from "./composables/useFileBlobStore.js";
|
|
19
21
|
import {
|
|
@@ -189,8 +191,9 @@ export default defineNuxtPlugin({
|
|
|
189
191
|
}
|
|
190
192
|
} catch (e) {
|
|
191
193
|
console.error(`[abracadabra] Failed to load plugin from ${entry.url}:`, e);
|
|
194
|
+
const errMsg = e instanceof Error ? e.message : String(e);
|
|
192
195
|
const updated = storedExternal.map(
|
|
193
|
-
(en) => en.url === entry.url ? { ...en, error:
|
|
196
|
+
(en) => en.url === entry.url ? { ...en, error: errMsg } : en
|
|
194
197
|
);
|
|
195
198
|
localStorage.setItem(STORAGE_KEY_EXTERNAL_PLUGINS, JSON.stringify(updated));
|
|
196
199
|
}
|
|
@@ -209,13 +212,18 @@ export default defineNuxtPlugin({
|
|
|
209
212
|
const isReady = ref(false);
|
|
210
213
|
const publicKeyB64 = ref("");
|
|
211
214
|
const connectionError = ref(null);
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
const
|
|
215
|
+
const identityState = ref("initializing");
|
|
216
|
+
let _identityStateBeforeBlock = "initializing";
|
|
217
|
+
const isClaimed = computed(() => identityState.value === "claimed");
|
|
218
|
+
const identityLost = computed(() => identityState.value === "identityLost");
|
|
219
|
+
const needsReauth = computed(() => identityState.value === "needsReauth");
|
|
220
|
+
const isConnectionBlocked = computed(() => identityState.value === "connectionBlocked");
|
|
215
221
|
const requirePasskeyOnLogin = ref(false);
|
|
216
|
-
const isConnectionBlocked = ref(false);
|
|
217
222
|
const userCount = ref(1);
|
|
218
223
|
const pendingInviteCode = ref(null);
|
|
224
|
+
const effectiveRole = ref(null);
|
|
225
|
+
const unsyncedChanges = ref(0);
|
|
226
|
+
const spaceDocId = ref(null);
|
|
219
227
|
const userName = ref(localStorage.getItem("abracadabra_username") || randomName(abraConfig));
|
|
220
228
|
const userColor = ref("hsl(217, 70%, 75%)");
|
|
221
229
|
const userColorName = ref("blue");
|
|
@@ -230,7 +238,10 @@ export default defineNuxtPlugin({
|
|
|
230
238
|
let lastClientIds = /* @__PURE__ */ new Set();
|
|
231
239
|
const clientNameCache = /* @__PURE__ */ new Map();
|
|
232
240
|
function addLog(message, type = "system") {
|
|
233
|
-
logs.value
|
|
241
|
+
logs.value.push({ time: ts(), message, type });
|
|
242
|
+
if (logs.value.length > 250) {
|
|
243
|
+
logs.value = logs.value.slice(-200);
|
|
244
|
+
}
|
|
234
245
|
}
|
|
235
246
|
function loadServers() {
|
|
236
247
|
if (_serversLoaded) return;
|
|
@@ -344,7 +355,9 @@ export default defineNuxtPlugin({
|
|
|
344
355
|
function reconnect() {
|
|
345
356
|
if (!_wsp) return;
|
|
346
357
|
authFailureCount = 0;
|
|
347
|
-
|
|
358
|
+
if (identityState.value === "connectionBlocked") {
|
|
359
|
+
identityState.value = _identityStateBeforeBlock;
|
|
360
|
+
}
|
|
348
361
|
connectionError.value = null;
|
|
349
362
|
_wsp.connect();
|
|
350
363
|
}
|
|
@@ -358,7 +371,6 @@ export default defineNuxtPlugin({
|
|
|
358
371
|
provider.value.destroy();
|
|
359
372
|
} catch {
|
|
360
373
|
}
|
|
361
|
-
;
|
|
362
374
|
provider.value = null;
|
|
363
375
|
}
|
|
364
376
|
client.value = null;
|
|
@@ -366,7 +378,9 @@ export default defineNuxtPlugin({
|
|
|
366
378
|
isReady.value = false;
|
|
367
379
|
synced.value = false;
|
|
368
380
|
status.value = "disconnected";
|
|
369
|
-
|
|
381
|
+
if (identityState.value === "connectionBlocked") {
|
|
382
|
+
identityState.value = _identityStateBeforeBlock;
|
|
383
|
+
}
|
|
370
384
|
connectionError.value = null;
|
|
371
385
|
authFailureCount = 0;
|
|
372
386
|
lastClientIds = /* @__PURE__ */ new Set();
|
|
@@ -394,9 +408,9 @@ export default defineNuxtPlugin({
|
|
|
394
408
|
_initPromise = init(url);
|
|
395
409
|
await _initPromise;
|
|
396
410
|
}
|
|
397
|
-
async function switchSpace(serverUrl,
|
|
411
|
+
async function switchSpace(serverUrl, spaceDocId2) {
|
|
398
412
|
if (serverUrl !== currentServerUrl.value) await switchServer(serverUrl);
|
|
399
|
-
await navigateTo(`${abraConfig.docBasePath ?? "/doc"}/${
|
|
413
|
+
await navigateTo(`${abraConfig.docBasePath ?? "/doc"}/${spaceDocId2}`);
|
|
400
414
|
}
|
|
401
415
|
async function claimAccount() {
|
|
402
416
|
if (!client.value || !keystore.value) {
|
|
@@ -416,15 +430,14 @@ export default defineNuxtPlugin({
|
|
|
416
430
|
deviceName: "Hardware Auth (" + (navigator.platform || "Device") + ")"
|
|
417
431
|
});
|
|
418
432
|
publicKeyB64.value = newPubKey;
|
|
419
|
-
|
|
420
|
-
identityLost.value = false;
|
|
433
|
+
identityState.value = "claimed";
|
|
421
434
|
localStorage.removeItem("abracadabra_privkey");
|
|
422
435
|
localStorage.setItem(CLAIMED_FLAG_KEY, "1");
|
|
423
436
|
localStorage.setItem(PUBKEY_KEY, newPubKey);
|
|
424
437
|
addLog("Account protected by hardware/biometrics", "auth");
|
|
425
438
|
return true;
|
|
426
439
|
} catch (e) {
|
|
427
|
-
addLog(`Claim failed: ${e.message}`, "auth");
|
|
440
|
+
addLog(`Claim failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
|
|
428
441
|
throw e;
|
|
429
442
|
}
|
|
430
443
|
}
|
|
@@ -446,9 +459,8 @@ export default defineNuxtPlugin({
|
|
|
446
459
|
pubKey = hasPk ? await keystore.value.getPublicKey() : null;
|
|
447
460
|
}
|
|
448
461
|
if (!hasPk || !pubKey) throw new Error("No passkey found on this device.");
|
|
449
|
-
if (
|
|
450
|
-
|
|
451
|
-
isClaimed.value = true;
|
|
462
|
+
if (identityState.value === "identityLost") {
|
|
463
|
+
identityState.value = "claimed";
|
|
452
464
|
localStorage.setItem(CLAIMED_FLAG_KEY, "1");
|
|
453
465
|
localStorage.setItem(PUBKEY_KEY, pubKey);
|
|
454
466
|
addLog("Identity recovered via hardware key \u2014 reinitializing", "auth");
|
|
@@ -462,8 +474,7 @@ export default defineNuxtPlugin({
|
|
|
462
474
|
const oldPubKey = publicKeyB64.value;
|
|
463
475
|
await client.value.loginWithKey(pubKey, (ch) => keystore.value.sign(ch));
|
|
464
476
|
publicKeyB64.value = pubKey;
|
|
465
|
-
|
|
466
|
-
needsReauth.value = false;
|
|
477
|
+
identityState.value = "claimed";
|
|
467
478
|
localStorage.setItem(CLAIMED_FLAG_KEY, "1");
|
|
468
479
|
localStorage.setItem(PUBKEY_KEY, pubKey);
|
|
469
480
|
addLog("Re-authenticated via hardware key", "auth");
|
|
@@ -478,7 +489,7 @@ export default defineNuxtPlugin({
|
|
|
478
489
|
}
|
|
479
490
|
return true;
|
|
480
491
|
} catch (e) {
|
|
481
|
-
addLog(`Hardware login failed: ${e.message}`, "auth");
|
|
492
|
+
addLog(`Hardware login failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
|
|
482
493
|
throw e;
|
|
483
494
|
}
|
|
484
495
|
}
|
|
@@ -532,6 +543,31 @@ export default defineNuxtPlugin({
|
|
|
532
543
|
if (!client.value) throw new Error("Not connected");
|
|
533
544
|
return client.value.revokeInvite(code);
|
|
534
545
|
}
|
|
546
|
+
async function recoverIdentity() {
|
|
547
|
+
if (identityState.value !== "identityLost" && identityState.value !== "needsReauth") {
|
|
548
|
+
return false;
|
|
549
|
+
}
|
|
550
|
+
if (keystore.value) {
|
|
551
|
+
try {
|
|
552
|
+
const hasPk = await keystore.value.hasIdentity();
|
|
553
|
+
if (hasPk) {
|
|
554
|
+
const result = await loginWithHardware();
|
|
555
|
+
return result;
|
|
556
|
+
}
|
|
557
|
+
} catch (e) {
|
|
558
|
+
addLog(`Silent passkey recovery failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
return false;
|
|
562
|
+
}
|
|
563
|
+
function unblockConnection() {
|
|
564
|
+
authFailureCount = 0;
|
|
565
|
+
if (identityState.value === "connectionBlocked") {
|
|
566
|
+
identityState.value = _identityStateBeforeBlock;
|
|
567
|
+
}
|
|
568
|
+
connectionError.value = null;
|
|
569
|
+
if (_wsp) _wsp.connect();
|
|
570
|
+
}
|
|
535
571
|
async function init(serverUrl) {
|
|
536
572
|
currentServerUrl.value = serverUrl;
|
|
537
573
|
addLog("Initializing Abracadabra...", "system");
|
|
@@ -555,7 +591,7 @@ export default defineNuxtPlugin({
|
|
|
555
591
|
import("@noble/hashes/sha512")
|
|
556
592
|
]);
|
|
557
593
|
setSdkModule(sdkModule);
|
|
558
|
-
const { AbracadabraClient, AbracadabraProvider,
|
|
594
|
+
const { AbracadabraClient, AbracadabraProvider, AbracadabraWS, CryptoIdentityKeystore } = sdkModule;
|
|
559
595
|
ed.hashes.sha512 = (m) => sha512(m);
|
|
560
596
|
const ks = new CryptoIdentityKeystore();
|
|
561
597
|
keystore.value = ks;
|
|
@@ -569,12 +605,10 @@ export default defineNuxtPlugin({
|
|
|
569
605
|
requirePasskeyOnLogin.value = localStorage.getItem(REQUIRE_PASSKEY_KEY) === "1";
|
|
570
606
|
if (wasPreviouslyClaimed && storedPubKey) {
|
|
571
607
|
pubKey = storedPubKey;
|
|
572
|
-
|
|
573
|
-
identityLost.value = false;
|
|
608
|
+
identityState.value = "claimed";
|
|
574
609
|
addLog("Restored claimed identity from cache", "auth");
|
|
575
610
|
} else if (wasPreviouslyClaimed && !storedPubKey) {
|
|
576
|
-
|
|
577
|
-
isClaimed.value = false;
|
|
611
|
+
identityState.value = "identityLost";
|
|
578
612
|
addLog("Previously claimed account \u2014 cached key missing, waiting for recovery", "auth");
|
|
579
613
|
publicKeyB64.value = "";
|
|
580
614
|
return;
|
|
@@ -584,12 +618,11 @@ export default defineNuxtPlugin({
|
|
|
584
618
|
privKey = fromBase64Url(storedPrivKey);
|
|
585
619
|
addLog("Using guest identity (soft key)", "auth");
|
|
586
620
|
} else {
|
|
587
|
-
privKey = ed.utils.
|
|
621
|
+
privKey = ed.utils.randomSecretKey();
|
|
588
622
|
localStorage.setItem("abracadabra_privkey", toBase64Url(privKey));
|
|
589
623
|
addLog("Created new guest identity (soft key)", "auth");
|
|
590
624
|
}
|
|
591
|
-
|
|
592
|
-
identityLost.value = false;
|
|
625
|
+
identityState.value = "guest";
|
|
593
626
|
const pubKeyBytes = ed.getPublicKey(privKey);
|
|
594
627
|
pubKey = toBase64Url(pubKeyBytes);
|
|
595
628
|
}
|
|
@@ -630,13 +663,12 @@ export default defineNuxtPlugin({
|
|
|
630
663
|
const _client = new AbracadabraClient({ url: serverUrl, persistAuth, storageKey: authStorageKey });
|
|
631
664
|
client.value = _client;
|
|
632
665
|
addLog(`Server: ${serverUrl}`, "connection");
|
|
633
|
-
if (_client.
|
|
666
|
+
if (_client.isTokenValid() && identityState.value === "claimed") {
|
|
634
667
|
addLog("Resumed session from persisted token", "auth");
|
|
635
|
-
} else if (
|
|
636
|
-
|
|
668
|
+
} else if (identityState.value === "claimed" && !requirePasskeyOnLogin.value) {
|
|
669
|
+
identityState.value = "needsReauth";
|
|
637
670
|
addLog("Session expired \u2014 passkey sign-in available", "auth");
|
|
638
671
|
} else {
|
|
639
|
-
needsReauth.value = false;
|
|
640
672
|
try {
|
|
641
673
|
await _client.registerWithKey({
|
|
642
674
|
publicKey: pubKey,
|
|
@@ -649,14 +681,15 @@ export default defineNuxtPlugin({
|
|
|
649
681
|
pendingInviteCode.value = null;
|
|
650
682
|
}
|
|
651
683
|
} catch (e) {
|
|
652
|
-
|
|
684
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
685
|
+
if (!msg.includes("already exists")) addLog(`Register: ${msg}`, "auth");
|
|
653
686
|
}
|
|
654
687
|
try {
|
|
655
688
|
const token = await _client.loginWithKey(pubKey, (ch) => signChallengeFn(ch));
|
|
656
689
|
addLog("Authenticated via Ed25519 challenge-response", "auth");
|
|
657
690
|
addLog(`JWT obtained (${token.slice(0, 12)}...)`, "auth");
|
|
658
691
|
} catch (e) {
|
|
659
|
-
addLog(`Login failed: ${e.message}`, "auth");
|
|
692
|
+
addLog(`Login failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
|
|
660
693
|
}
|
|
661
694
|
}
|
|
662
695
|
_client.updateMe({ displayName: userName.value }).catch(() => {
|
|
@@ -685,16 +718,17 @@ export default defineNuxtPlugin({
|
|
|
685
718
|
connectionError.value = "No entry document found. Configure entryDocId or ensure the server has spaces or an index document.";
|
|
686
719
|
addLog("No entry document \u2014 cannot connect", "system");
|
|
687
720
|
try {
|
|
688
|
-
const
|
|
689
|
-
useToast().add({ title: "Server not configured", description: "No entry document found. Set entryDocId in your abracadabra module config.", color: "error" });
|
|
721
|
+
const imports = await import("#imports");
|
|
722
|
+
imports.useToast().add({ title: "Server not configured", description: "No entry document found. Set entryDocId in your abracadabra module config.", color: "error" });
|
|
690
723
|
} catch {
|
|
691
724
|
}
|
|
692
725
|
return;
|
|
693
726
|
}
|
|
694
727
|
addLog(`Using document: ${docId}`, "data");
|
|
728
|
+
spaceDocId.value = docId;
|
|
695
729
|
const wsUrl = _client.wsUrl;
|
|
696
730
|
addLog(`WebSocket: ${wsUrl}`, "connection");
|
|
697
|
-
const wsp = new
|
|
731
|
+
const wsp = new AbracadabraWS({
|
|
698
732
|
url: wsUrl,
|
|
699
733
|
delay: 1e3,
|
|
700
734
|
minDelay: 1e3,
|
|
@@ -733,8 +767,8 @@ export default defineNuxtPlugin({
|
|
|
733
767
|
if (wasConnected && !wasSynced) {
|
|
734
768
|
addLog("Reconnected", "connection");
|
|
735
769
|
try {
|
|
736
|
-
import("#imports").then((
|
|
737
|
-
useToast().add({ title: "Reconnected", color: "success", duration: 2e3 });
|
|
770
|
+
import("#imports").then((imports) => {
|
|
771
|
+
imports.useToast().add({ title: "Reconnected", color: "success", duration: 2e3 });
|
|
738
772
|
}).catch(() => {
|
|
739
773
|
});
|
|
740
774
|
} catch {
|
|
@@ -744,8 +778,9 @@ export default defineNuxtPlugin({
|
|
|
744
778
|
if (!wasSynced && features.backgroundSync !== false) {
|
|
745
779
|
import("@abraca/dabra").then(({ BackgroundSyncManager }) => {
|
|
746
780
|
if (_client && _provider) {
|
|
747
|
-
const manager = new BackgroundSyncManager(_client,
|
|
781
|
+
const manager = new BackgroundSyncManager(_provider, _client, _getFileBlobStore());
|
|
748
782
|
_initBackgroundSync(manager);
|
|
783
|
+
manager.syncAll().catch(() => null);
|
|
749
784
|
if (features.search !== false) {
|
|
750
785
|
_initSearchIndex(serverUrl);
|
|
751
786
|
_initFileIndex();
|
|
@@ -778,11 +813,13 @@ export default defineNuxtPlugin({
|
|
|
778
813
|
const cutoff = Date.now() - purgeDays * 24 * 60 * 60 * 1e3;
|
|
779
814
|
const expired = [];
|
|
780
815
|
trashMap.forEach((val, key) => {
|
|
781
|
-
if (val
|
|
782
|
-
});
|
|
783
|
-
if (expired.length) _doc.transact(() => {
|
|
784
|
-
for (const id of expired) trashMap.delete(id);
|
|
816
|
+
if (val && typeof val === "object" && "deletedAt" in val && typeof val.deletedAt === "number" && val.deletedAt < cutoff) expired.push(key);
|
|
785
817
|
});
|
|
818
|
+
if (expired.length) {
|
|
819
|
+
_doc.transact(() => {
|
|
820
|
+
for (const id of expired) trashMap.delete(id);
|
|
821
|
+
});
|
|
822
|
+
}
|
|
786
823
|
}
|
|
787
824
|
} catch {
|
|
788
825
|
}
|
|
@@ -790,6 +827,7 @@ export default defineNuxtPlugin({
|
|
|
790
827
|
},
|
|
791
828
|
onAuthenticated({ scope }) {
|
|
792
829
|
addLog(`Scope: ${scope}`, "auth");
|
|
830
|
+
effectiveRole.value = scope;
|
|
793
831
|
connectionError.value = null;
|
|
794
832
|
authFailureCount = 0;
|
|
795
833
|
},
|
|
@@ -798,7 +836,8 @@ export default defineNuxtPlugin({
|
|
|
798
836
|
const msg = reason || "Authentication failed";
|
|
799
837
|
const isPermanent = /disabled|not allowed|forbidden|revoked/i.test(msg);
|
|
800
838
|
if (isPermanent || authFailureCount >= AUTH_FAILURE_LIMIT) {
|
|
801
|
-
|
|
839
|
+
_identityStateBeforeBlock = identityState.value;
|
|
840
|
+
identityState.value = "connectionBlocked";
|
|
802
841
|
connectionError.value = `${msg} \u2014 reconnection paused`;
|
|
803
842
|
addLog(`Auth denied \u2014 pausing reconnect: ${msg}`, "auth");
|
|
804
843
|
wsp.disconnect();
|
|
@@ -834,23 +873,24 @@ export default defineNuxtPlugin({
|
|
|
834
873
|
}
|
|
835
874
|
});
|
|
836
875
|
_provider.setAwarenessField("user", { name: userName.value, color: userColor.value, publicKey: publicKeyB64.value });
|
|
876
|
+
_provider.on("unsyncedChanges", ({ number }) => {
|
|
877
|
+
unsyncedChanges.value = number;
|
|
878
|
+
});
|
|
837
879
|
_provider.attach();
|
|
838
880
|
provider.value = _provider;
|
|
839
881
|
try {
|
|
840
882
|
const { FileBlobStore } = await import("@abraca/dabra");
|
|
841
|
-
const blobStore = new FileBlobStore(_client);
|
|
883
|
+
const blobStore = new FileBlobStore(serverUrl, _client);
|
|
842
884
|
_initFileBlobStore(blobStore);
|
|
843
885
|
} catch {
|
|
844
886
|
}
|
|
845
887
|
_initServerInfo(_client);
|
|
846
888
|
_initNotifications(publicKeyB64);
|
|
847
889
|
_initChat(publicKeyB64, userName);
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
};
|
|
853
|
-
}
|
|
890
|
+
_provider.on("stateless", ({ payload }) => {
|
|
891
|
+
_handleStatelessNotification(payload);
|
|
892
|
+
_handleStatelessChat(payload);
|
|
893
|
+
});
|
|
854
894
|
_provider.ready.then(() => {
|
|
855
895
|
isReady.value = true;
|
|
856
896
|
}, () => null);
|
|
@@ -863,12 +903,13 @@ export default defineNuxtPlugin({
|
|
|
863
903
|
);
|
|
864
904
|
addLog("Provider attached, connecting...", "connection");
|
|
865
905
|
} catch (e) {
|
|
866
|
-
addLog(`Error: ${e.message}`, "system");
|
|
906
|
+
addLog(`Error: ${e instanceof Error ? e.message : String(e)}`, "system");
|
|
867
907
|
console.error("[abracadabra] init error:", e);
|
|
868
908
|
}
|
|
869
909
|
}
|
|
870
910
|
const abra = {
|
|
871
911
|
doc,
|
|
912
|
+
spaceDocId,
|
|
872
913
|
provider,
|
|
873
914
|
client,
|
|
874
915
|
keystore,
|
|
@@ -883,9 +924,12 @@ export default defineNuxtPlugin({
|
|
|
883
924
|
userCount,
|
|
884
925
|
publicKeyB64,
|
|
885
926
|
connectionError,
|
|
927
|
+
identityState,
|
|
886
928
|
isClaimed,
|
|
887
929
|
identityLost,
|
|
888
930
|
needsReauth,
|
|
931
|
+
effectiveRole,
|
|
932
|
+
unsyncedChanges,
|
|
889
933
|
requirePasskeyOnLogin,
|
|
890
934
|
isConnectionBlocked,
|
|
891
935
|
currentServerUrl,
|
|
@@ -915,6 +959,8 @@ export default defineNuxtPlugin({
|
|
|
915
959
|
createInvite,
|
|
916
960
|
listInvites,
|
|
917
961
|
revokeInvite,
|
|
962
|
+
recoverIdentity,
|
|
963
|
+
unblockConnection,
|
|
918
964
|
broadcastSyncActive: useBroadcastSync().isActive,
|
|
919
965
|
init
|
|
920
966
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
|
|
2
2
|
export default _default;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { shallowRef, ref, computed } from "vue";
|
|
2
|
+
import { defineNuxtPlugin } from "#imports";
|
|
2
3
|
import { PluginRegistry } from "./plugin-registry.js";
|
|
3
4
|
export default defineNuxtPlugin({
|
|
4
5
|
name: "abracadabra:server-stub",
|
|
@@ -13,6 +14,7 @@ export default defineNuxtPlugin({
|
|
|
13
14
|
nuxtApp.provide("abracadabra", {
|
|
14
15
|
// CRDT objects — null on server
|
|
15
16
|
doc: shallowRef(null),
|
|
17
|
+
spaceDocId: ref(null),
|
|
16
18
|
provider: shallowRef(null),
|
|
17
19
|
client: shallowRef(null),
|
|
18
20
|
keystore: shallowRef(null),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
|
|
2
2
|
export default _default;
|
|
@@ -33,7 +33,14 @@ async function loadClientExtensions() {
|
|
|
33
33
|
{ Kbd },
|
|
34
34
|
{ ProseIcon },
|
|
35
35
|
{ FileBlock },
|
|
36
|
-
{ MetaField }
|
|
36
|
+
{ MetaField },
|
|
37
|
+
{ DocEmbed },
|
|
38
|
+
{ DocLinkDrop },
|
|
39
|
+
{ MentionDrop },
|
|
40
|
+
{ SelectionDrag },
|
|
41
|
+
{ Field, FieldGroup },
|
|
42
|
+
{ CodePreview },
|
|
43
|
+
{ CodeTree }
|
|
37
44
|
] = await Promise.all([
|
|
38
45
|
import("@tiptap/extension-task-list"),
|
|
39
46
|
import("@tiptap/extension-task-item"),
|
|
@@ -67,10 +74,17 @@ async function loadClientExtensions() {
|
|
|
67
74
|
import("../extensions/kbd.js"),
|
|
68
75
|
import("../extensions/prose-icon.js"),
|
|
69
76
|
import("../extensions/file-block.js"),
|
|
70
|
-
import("../extensions/meta-field.js")
|
|
77
|
+
import("../extensions/meta-field.js"),
|
|
78
|
+
import("../extensions/doc-embed.js"),
|
|
79
|
+
import("../extensions/doc-link-drop.js"),
|
|
80
|
+
import("../extensions/mention-drop.js"),
|
|
81
|
+
import("../extensions/selection-drag.js"),
|
|
82
|
+
import("../extensions/field.js"),
|
|
83
|
+
import("../extensions/code-preview.js"),
|
|
84
|
+
import("../extensions/code-tree.js")
|
|
71
85
|
]);
|
|
72
86
|
const lowlight = createLowlight(common);
|
|
73
|
-
|
|
87
|
+
const extensions = [
|
|
74
88
|
TaskList,
|
|
75
89
|
TaskItem.configure({ nested: true }),
|
|
76
90
|
Table.configure({ resizable: true }),
|
|
@@ -112,8 +126,29 @@ async function loadClientExtensions() {
|
|
|
112
126
|
// File block
|
|
113
127
|
FileBlock,
|
|
114
128
|
// Meta field chips (inline properties in documentMeta)
|
|
115
|
-
MetaField
|
|
129
|
+
MetaField,
|
|
130
|
+
// Document embeds & linking
|
|
131
|
+
DocEmbed,
|
|
132
|
+
DocLinkDrop,
|
|
133
|
+
MentionDrop,
|
|
134
|
+
SelectionDrag,
|
|
135
|
+
// Structured data fields
|
|
136
|
+
Field,
|
|
137
|
+
FieldGroup,
|
|
138
|
+
// Advanced code blocks
|
|
139
|
+
CodePreview,
|
|
140
|
+
CodeTree
|
|
116
141
|
];
|
|
142
|
+
try {
|
|
143
|
+
const emojiPkg = "@tiptap/extension-emoji";
|
|
144
|
+
const { Emoji } = await import(
|
|
145
|
+
/* @vite-ignore */
|
|
146
|
+
emojiPkg
|
|
147
|
+
);
|
|
148
|
+
if (Emoji) extensions.push(Emoji);
|
|
149
|
+
} catch {
|
|
150
|
+
}
|
|
151
|
+
return extensions;
|
|
117
152
|
}
|
|
118
153
|
async function loadServerExtensions() {
|
|
119
154
|
const [
|
|
@@ -136,6 +171,7 @@ async function loadServerExtensions() {
|
|
|
136
171
|
const lowlight = createLowlight(common);
|
|
137
172
|
return [
|
|
138
173
|
StarterKit.configure({
|
|
174
|
+
// @ts-expect-error StarterKit accepts history option at runtime
|
|
139
175
|
history: false,
|
|
140
176
|
codeBlock: false,
|
|
141
177
|
document: false
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
declare const _default: import("h3").EventHandler<Omit<import("h3").EventHandlerRequest, "body">, Promise<{
|
|
2
|
+
docId: string;
|
|
3
|
+
html: string;
|
|
4
|
+
title: any;
|
|
5
|
+
type: any;
|
|
6
|
+
meta: any;
|
|
7
|
+
description: any;
|
|
8
|
+
ogImage: any;
|
|
9
|
+
source: "crdt-cache";
|
|
10
|
+
} | {
|
|
11
|
+
docId: string;
|
|
12
|
+
html: string;
|
|
13
|
+
title: string;
|
|
14
|
+
type: string;
|
|
15
|
+
meta: Record<string, unknown>;
|
|
16
|
+
description: any;
|
|
17
|
+
ogImage: any;
|
|
18
|
+
source: "rest";
|
|
19
|
+
}>>;
|
|
18
20
|
export default _default;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { createError, getRouterParam, getHeader } from "h3";
|
|
2
|
+
import { defineCachedEventHandler } from "nitropack/runtime";
|
|
3
|
+
import { useRuntimeConfig } from "nitropack/runtime/config";
|
|
4
|
+
import { useStorage } from "nitropack/runtime/storage";
|
|
1
5
|
function extractFirstParagraph(html) {
|
|
2
6
|
if (!html) return "";
|
|
3
7
|
const pMatch = html.match(/<p[^>]*>(.*?)<\/p>/is);
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<{
|
|
2
|
+
docId: string;
|
|
3
|
+
slug: string;
|
|
4
|
+
html: string;
|
|
5
|
+
title: any;
|
|
6
|
+
type: any;
|
|
7
|
+
meta: any;
|
|
8
|
+
description: any;
|
|
9
|
+
ogImage: any;
|
|
10
|
+
source: "none" | "crdt-cache";
|
|
11
|
+
}>>;
|
|
2
12
|
export default _default;
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* GET /api/_abracadabra/spaces
|
|
3
|
-
*
|
|
4
|
-
* Proxies the Abracadabra REST space list endpoint.
|
|
5
|
-
* Enables app devs to server-side render space navigation.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* const { data } = await useFetch('/api/_abracadabra/spaces')
|
|
9
|
-
*/
|
|
10
|
-
declare const _default: any;
|
|
1
|
+
declare const _default: import("h3").EventHandler<Omit<import("h3").EventHandlerRequest, "body">, Promise<never[] | unknown[]>>;
|
|
11
2
|
export default _default;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { createError, getHeader } from "h3";
|
|
2
|
+
import { defineCachedEventHandler } from "nitropack/runtime";
|
|
3
|
+
import { useRuntimeConfig } from "nitropack/runtime/config";
|
|
1
4
|
export default defineCachedEventHandler(async (event) => {
|
|
2
5
|
const config = useRuntimeConfig();
|
|
3
6
|
const baseUrl = config.public?.abracadabra?.url;
|