@shivaedev/work-board 0.12.0 → 0.13.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/CHANGELOG.md +36 -0
- package/README.md +11 -11
- package/assets/agent.js +27 -31
- package/assets/native.js +34 -69
- package/assets/react.css +1 -1
- package/assets/react.js +39 -34
- package/dist/browser/diagnostics/schema.d.ts +49 -0
- package/dist/browser/diagnostics/schema.d.ts.map +1 -0
- package/dist/browser/diagnostics/schema.js +11 -0
- package/dist/browser/diagnostics/schema.js.map +1 -0
- package/dist/browser/views/ResultProjection.d.ts +245 -0
- package/dist/browser/views/ResultProjection.d.ts.map +1 -0
- package/dist/browser/views/ResultProjection.js +32 -0
- package/dist/browser/views/ResultProjection.js.map +1 -0
- package/dist/browser/views/remaining.d.ts +345 -0
- package/dist/browser/views/remaining.d.ts.map +1 -0
- package/dist/browser/views/remaining.js +21 -0
- package/dist/browser/views/remaining.js.map +1 -0
- package/dist/browser/views/schema.d.ts +715 -0
- package/dist/browser/views/schema.d.ts.map +1 -0
- package/dist/browser/views/schema.js +60 -0
- package/dist/browser/views/schema.js.map +1 -0
- package/dist/browser/views/state.d.ts +15 -0
- package/dist/browser/views/state.d.ts.map +1 -0
- package/dist/browser/views/state.js +45 -0
- package/dist/browser/views/state.js.map +1 -0
- package/dist/client/client.d.ts +5 -5
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +4 -4
- package/dist/client/client.js.map +1 -1
- package/dist/client/document/Mermaid.d.ts.map +1 -1
- package/dist/client/document/Mermaid.js +39 -10
- package/dist/client/document/Mermaid.js.map +1 -1
- package/dist/client/document/View.d.ts +5 -1
- package/dist/client/document/View.d.ts.map +1 -1
- package/dist/client/document/View.js +13 -1
- package/dist/client/document/View.js.map +1 -1
- package/dist/client/document/boardLayout.d.ts +6 -0
- package/dist/client/document/boardLayout.d.ts.map +1 -0
- package/dist/client/document/boardLayout.js +69 -0
- package/dist/client/document/boardLayout.js.map +1 -0
- package/dist/client/entry.d.ts +0 -12
- package/dist/client/entry.d.ts.map +1 -1
- package/dist/client/entry.js +0 -18
- package/dist/client/entry.js.map +1 -1
- package/dist/client/formDraft.d.ts +3 -0
- package/dist/client/formDraft.d.ts.map +1 -0
- package/dist/client/formDraft.js +8 -0
- package/dist/client/formDraft.js.map +1 -0
- package/dist/client/formFocus.d.ts.map +1 -1
- package/dist/client/formFocus.js +5 -0
- package/dist/client/formFocus.js.map +1 -1
- package/dist/client/handoffs/failureStatus.d.ts +2 -0
- package/dist/client/handoffs/failureStatus.d.ts.map +1 -0
- package/dist/client/handoffs/failureStatus.js +7 -0
- package/dist/client/handoffs/failureStatus.js.map +1 -0
- package/dist/client/page/routeQuery.d.ts +2 -7
- package/dist/client/page/routeQuery.d.ts.map +1 -1
- package/dist/client/page/routeQuery.js +0 -3
- package/dist/client/page/routeQuery.js.map +1 -1
- package/dist/client/react/Age.d.ts +9 -0
- package/dist/client/react/Age.d.ts.map +1 -0
- package/dist/client/react/Age.js +32 -0
- package/dist/client/react/Age.js.map +1 -0
- package/dist/client/react/AnswerForm.d.ts +5 -3
- package/dist/client/react/AnswerForm.d.ts.map +1 -1
- package/dist/client/react/AnswerForm.js +21 -11
- package/dist/client/react/AnswerForm.js.map +1 -1
- package/dist/client/react/AnswerPrompts.d.ts +10 -2
- package/dist/client/react/AnswerPrompts.d.ts.map +1 -1
- package/dist/client/react/AnswerPrompts.js +28 -12
- package/dist/client/react/AnswerPrompts.js.map +1 -1
- package/dist/client/react/BoardMain.d.ts +10 -0
- package/dist/client/react/BoardMain.d.ts.map +1 -0
- package/dist/client/react/BoardMain.js +19 -0
- package/dist/client/react/BoardMain.js.map +1 -0
- package/dist/client/react/BoardShell.d.ts +6 -1
- package/dist/client/react/BoardShell.d.ts.map +1 -1
- package/dist/client/react/BoardShell.js +34 -12
- package/dist/client/react/BoardShell.js.map +1 -1
- package/dist/client/react/ChangesMain.d.ts +8 -0
- package/dist/client/react/ChangesMain.d.ts.map +1 -0
- package/dist/client/react/ChangesMain.js +24 -0
- package/dist/client/react/ChangesMain.js.map +1 -0
- package/dist/client/react/DiagnosticsFleet.d.ts +6 -0
- package/dist/client/react/DiagnosticsFleet.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsFleet.js +16 -0
- package/dist/client/react/DiagnosticsFleet.js.map +1 -0
- package/dist/client/react/DiagnosticsMain.d.ts +8 -0
- package/dist/client/react/DiagnosticsMain.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsMain.js +11 -0
- package/dist/client/react/DiagnosticsMain.js.map +1 -0
- package/dist/client/react/DiagnosticsPage.d.ts +5 -0
- package/dist/client/react/DiagnosticsPage.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsPage.js +23 -0
- package/dist/client/react/DiagnosticsPage.js.map +1 -0
- package/dist/client/react/DocumentContext.d.ts.map +1 -1
- package/dist/client/react/DocumentContext.js +23 -3
- package/dist/client/react/DocumentContext.js.map +1 -1
- package/dist/client/react/DocumentMain.d.ts +2 -3
- package/dist/client/react/DocumentMain.d.ts.map +1 -1
- package/dist/client/react/DocumentMain.js +8 -4
- package/dist/client/react/DocumentMain.js.map +1 -1
- package/dist/client/react/Favorite.d.ts +5 -0
- package/dist/client/react/Favorite.d.ts.map +1 -0
- package/dist/client/react/Favorite.js +10 -0
- package/dist/client/react/Favorite.js.map +1 -0
- package/dist/client/react/FormField.d.ts +13 -0
- package/dist/client/react/FormField.d.ts.map +1 -0
- package/dist/client/react/FormField.js +39 -0
- package/dist/client/react/FormField.js.map +1 -0
- package/dist/client/react/HandoffForm.d.ts +5 -0
- package/dist/client/react/HandoffForm.d.ts.map +1 -0
- package/dist/client/react/HandoffForm.js +27 -0
- package/dist/client/react/HandoffForm.js.map +1 -0
- package/dist/client/react/HandoffPage.d.ts +5 -0
- package/dist/client/react/HandoffPage.d.ts.map +1 -0
- package/dist/client/react/HandoffPage.js +15 -0
- package/dist/client/react/HandoffPage.js.map +1 -0
- package/dist/client/react/HandoffPrompt.d.ts +6 -0
- package/dist/client/react/HandoffPrompt.d.ts.map +1 -0
- package/dist/client/react/HandoffPrompt.js +21 -0
- package/dist/client/react/HandoffPrompt.js.map +1 -0
- package/dist/client/react/Header.d.ts +11 -2
- package/dist/client/react/Header.d.ts.map +1 -1
- package/dist/client/react/Header.js +2 -2
- package/dist/client/react/Header.js.map +1 -1
- package/dist/client/react/HistoryComparison.d.ts +5 -0
- package/dist/client/react/HistoryComparison.d.ts.map +1 -0
- package/dist/client/react/HistoryComparison.js +14 -0
- package/dist/client/react/HistoryComparison.js.map +1 -0
- package/dist/client/react/HistoryRetention.d.ts +5 -0
- package/dist/client/react/HistoryRetention.d.ts.map +1 -0
- package/dist/client/react/HistoryRetention.js +28 -0
- package/dist/client/react/HistoryRetention.js.map +1 -0
- package/dist/client/react/HomeBoard.d.ts +5 -0
- package/dist/client/react/HomeBoard.d.ts.map +1 -0
- package/dist/client/react/HomeBoard.js +8 -0
- package/dist/client/react/HomeBoard.js.map +1 -0
- package/dist/client/react/InboxPage.d.ts +5 -0
- package/dist/client/react/InboxPage.d.ts.map +1 -0
- package/dist/client/react/InboxPage.js +18 -0
- package/dist/client/react/InboxPage.js.map +1 -0
- package/dist/client/react/LiveControls.d.ts +8 -0
- package/dist/client/react/LiveControls.d.ts.map +1 -0
- package/dist/client/react/LiveControls.js +51 -0
- package/dist/client/react/LiveControls.js.map +1 -0
- package/dist/client/react/Modal.d.ts +12 -0
- package/dist/client/react/Modal.d.ts.map +1 -0
- package/dist/client/react/Modal.js +62 -0
- package/dist/client/react/Modal.js.map +1 -0
- package/dist/client/react/NavigationTree.d.ts.map +1 -1
- package/dist/client/react/NavigationTree.js +2 -1
- package/dist/client/react/NavigationTree.js.map +1 -1
- package/dist/client/react/OverviewGroups.d.ts +5 -0
- package/dist/client/react/OverviewGroups.d.ts.map +1 -0
- package/dist/client/react/OverviewGroups.js +18 -0
- package/dist/client/react/OverviewGroups.js.map +1 -0
- package/dist/client/react/OverviewPage.d.ts +5 -0
- package/dist/client/react/OverviewPage.d.ts.map +1 -0
- package/dist/client/react/OverviewPage.js +16 -0
- package/dist/client/react/OverviewPage.js.map +1 -0
- package/dist/client/react/ProjectionFrame.d.ts +19 -0
- package/dist/client/react/ProjectionFrame.d.ts.map +1 -0
- package/dist/client/react/ProjectionFrame.js +85 -0
- package/dist/client/react/ProjectionFrame.js.map +1 -0
- package/dist/client/react/ProjectionMain.d.ts +10 -0
- package/dist/client/react/ProjectionMain.d.ts.map +1 -0
- package/dist/client/react/ProjectionMain.js +22 -0
- package/dist/client/react/ProjectionMain.js.map +1 -0
- package/dist/client/react/PromptOption.d.ts +12 -0
- package/dist/client/react/PromptOption.d.ts.map +1 -0
- package/dist/client/react/PromptOption.js +9 -0
- package/dist/client/react/PromptOption.js.map +1 -0
- package/dist/client/react/ReadingLibrary.d.ts +9 -0
- package/dist/client/react/ReadingLibrary.d.ts.map +1 -0
- package/dist/client/react/ReadingLibrary.js +78 -0
- package/dist/client/react/ReadingLibrary.js.map +1 -0
- package/dist/client/react/RemainingMain.d.ts +10 -0
- package/dist/client/react/RemainingMain.d.ts.map +1 -0
- package/dist/client/react/RemainingMain.js +27 -0
- package/dist/client/react/RemainingMain.js.map +1 -0
- package/dist/client/react/RespondPage.d.ts +5 -0
- package/dist/client/react/RespondPage.d.ts.map +1 -0
- package/dist/client/react/RespondPage.js +16 -0
- package/dist/client/react/RespondPage.js.map +1 -0
- package/dist/client/react/ResponseMarkdown.d.ts.map +1 -1
- package/dist/client/react/ResponseMarkdown.js +16 -2
- package/dist/client/react/ResponseMarkdown.js.map +1 -1
- package/dist/client/react/ResultCriteria.d.ts +5 -0
- package/dist/client/react/ResultCriteria.d.ts.map +1 -0
- package/dist/client/react/ResultCriteria.js +33 -0
- package/dist/client/react/ResultCriteria.js.map +1 -0
- package/dist/client/react/ResultFeedback.d.ts +5 -0
- package/dist/client/react/ResultFeedback.d.ts.map +1 -0
- package/dist/client/react/ResultFeedback.js +12 -0
- package/dist/client/react/ResultFeedback.js.map +1 -0
- package/dist/client/react/ResultPage.d.ts +5 -0
- package/dist/client/react/ResultPage.d.ts.map +1 -0
- package/dist/client/react/ResultPage.js +15 -0
- package/dist/client/react/ResultPage.js.map +1 -0
- package/dist/client/react/SavedViews.d.ts +4 -0
- package/dist/client/react/SavedViews.d.ts.map +1 -0
- package/dist/client/react/SavedViews.js +16 -0
- package/dist/client/react/SavedViews.js.map +1 -0
- package/dist/client/react/SearchDialog.d.ts +11 -0
- package/dist/client/react/SearchDialog.d.ts.map +1 -0
- package/dist/client/react/SearchDialog.js +67 -0
- package/dist/client/react/SearchDialog.js.map +1 -0
- package/dist/client/react/SearchResults.d.ts +7 -0
- package/dist/client/react/SearchResults.d.ts.map +1 -0
- package/dist/client/react/SearchResults.js +19 -0
- package/dist/client/react/SearchResults.js.map +1 -0
- package/dist/client/react/ShellApi.d.ts +11 -1
- package/dist/client/react/ShellApi.d.ts.map +1 -1
- package/dist/client/react/Sidebar.d.ts +5 -2
- package/dist/client/react/Sidebar.d.ts.map +1 -1
- package/dist/client/react/Sidebar.js +37 -2
- package/dist/client/react/Sidebar.js.map +1 -1
- package/dist/client/react/StartPage.d.ts +5 -0
- package/dist/client/react/StartPage.d.ts.map +1 -0
- package/dist/client/react/StartPage.js +5 -0
- package/dist/client/react/StartPage.js.map +1 -0
- package/dist/client/react/UpdatesToggle.d.ts +5 -0
- package/dist/client/react/UpdatesToggle.d.ts.map +1 -0
- package/dist/client/react/UpdatesToggle.js +9 -0
- package/dist/client/react/UpdatesToggle.js.map +1 -0
- package/dist/client/react/VisualControls.d.ts +17 -0
- package/dist/client/react/VisualControls.d.ts.map +1 -0
- package/dist/client/react/VisualControls.js +6 -0
- package/dist/client/react/VisualControls.js.map +1 -0
- package/dist/client/react/VisualInspection.d.ts +2 -0
- package/dist/client/react/VisualInspection.d.ts.map +1 -0
- package/dist/client/react/VisualInspection.js +26 -0
- package/dist/client/react/VisualInspection.js.map +1 -0
- package/dist/client/react/VisualViewer.d.ts +6 -0
- package/dist/client/react/VisualViewer.d.ts.map +1 -0
- package/dist/client/react/VisualViewer.js +106 -0
- package/dist/client/react/VisualViewer.js.map +1 -0
- package/dist/client/react/WorkCards.d.ts +5 -0
- package/dist/client/react/WorkCards.d.ts.map +1 -0
- package/dist/client/react/WorkCards.js +13 -0
- package/dist/client/react/WorkCards.js.map +1 -0
- package/dist/client/react/WorkControls.d.ts +5 -0
- package/dist/client/react/WorkControls.d.ts.map +1 -0
- package/dist/client/react/WorkControls.js +18 -0
- package/dist/client/react/WorkControls.js.map +1 -0
- package/dist/client/react/WorkDetail.d.ts +5 -0
- package/dist/client/react/WorkDetail.d.ts.map +1 -0
- package/dist/client/react/WorkDetail.js +12 -0
- package/dist/client/react/WorkDetail.js.map +1 -0
- package/dist/client/react/WorkItemTitle.d.ts +7 -0
- package/dist/client/react/WorkItemTitle.d.ts.map +1 -0
- package/dist/client/react/WorkItemTitle.js +6 -0
- package/dist/client/react/WorkItemTitle.js.map +1 -0
- package/dist/client/react/WorkPage.d.ts +5 -0
- package/dist/client/react/WorkPage.d.ts.map +1 -0
- package/dist/client/react/WorkPage.js +17 -0
- package/dist/client/react/WorkPage.js.map +1 -0
- package/dist/client/react/WorkResults.d.ts +5 -0
- package/dist/client/react/WorkResults.d.ts.map +1 -0
- package/dist/client/react/WorkResults.js +10 -0
- package/dist/client/react/WorkResults.js.map +1 -0
- package/dist/client/react/WorkTable.d.ts +5 -0
- package/dist/client/react/WorkTable.d.ts.map +1 -0
- package/dist/client/react/WorkTable.js +10 -0
- package/dist/client/react/WorkTable.js.map +1 -0
- package/dist/client/react/WorkTools.d.ts +5 -0
- package/dist/client/react/WorkTools.d.ts.map +1 -0
- package/dist/client/react/WorkTools.js +7 -0
- package/dist/client/react/WorkTools.js.map +1 -0
- package/dist/client/react/activeRead.d.ts +7 -0
- package/dist/client/react/activeRead.d.ts.map +1 -0
- package/dist/client/react/activeRead.js +13 -0
- package/dist/client/react/activeRead.js.map +1 -0
- package/dist/client/react/createResponse.d.ts +26 -0
- package/dist/client/react/createResponse.d.ts.map +1 -0
- package/dist/client/react/createResponse.js +29 -0
- package/dist/client/react/createResponse.js.map +1 -0
- package/dist/client/react/diagnosticsValues.d.ts +13 -0
- package/dist/client/react/diagnosticsValues.d.ts.map +1 -0
- package/dist/client/react/diagnosticsValues.js +49 -0
- package/dist/client/react/diagnosticsValues.js.map +1 -0
- package/dist/client/react/entry.js +6 -18
- package/dist/client/react/entry.js.map +1 -1
- package/dist/client/react/historyStore.d.ts +7 -0
- package/dist/client/react/historyStore.d.ts.map +1 -0
- package/dist/client/react/historyStore.js +61 -0
- package/dist/client/react/historyStore.js.map +1 -0
- package/dist/client/react/liveStatus.d.ts +16 -0
- package/dist/client/react/liveStatus.d.ts.map +1 -0
- package/dist/client/react/liveStatus.js +43 -0
- package/dist/client/react/liveStatus.js.map +1 -0
- package/dist/client/react/loadBoardPage.d.ts +1 -1
- package/dist/client/react/loadBoardPage.d.ts.map +1 -1
- package/dist/client/react/loadBoardPage.js +14 -4
- package/dist/client/react/loadBoardPage.js.map +1 -1
- package/dist/client/react/loadProjection.d.ts +674 -0
- package/dist/client/react/loadProjection.d.ts.map +1 -0
- package/dist/client/react/loadProjection.js +15 -0
- package/dist/client/react/loadProjection.js.map +1 -0
- package/dist/client/react/loadRemaining.d.ts +577 -0
- package/dist/client/react/loadRemaining.d.ts.map +1 -0
- package/dist/client/react/loadRemaining.js +19 -0
- package/dist/client/react/loadRemaining.js.map +1 -0
- package/dist/client/react/mainLocation.d.ts +6 -0
- package/dist/client/react/mainLocation.d.ts.map +1 -0
- package/dist/client/react/mainLocation.js +9 -0
- package/dist/client/react/mainLocation.js.map +1 -0
- package/dist/client/react/navigationLocation.d.ts +33 -0
- package/dist/client/react/navigationLocation.d.ts.map +1 -0
- package/dist/client/react/navigationLocation.js +22 -0
- package/dist/client/react/navigationLocation.js.map +1 -0
- package/dist/client/react/pageQuery.d.ts +5 -0
- package/dist/client/react/pageQuery.d.ts.map +1 -0
- package/dist/client/react/pageQuery.js +35 -0
- package/dist/client/react/pageQuery.js.map +1 -0
- package/dist/client/react/projectionChanges.d.ts +6 -0
- package/dist/client/react/projectionChanges.d.ts.map +1 -0
- package/dist/client/react/projectionChanges.js +16 -0
- package/dist/client/react/projectionChanges.js.map +1 -0
- package/dist/client/react/projectionRoute.d.ts +4 -0
- package/dist/client/react/projectionRoute.d.ts.map +1 -0
- package/dist/client/react/projectionRoute.js +18 -0
- package/dist/client/react/projectionRoute.js.map +1 -0
- package/dist/client/react/readerLink.d.ts +2 -0
- package/dist/client/react/readerLink.d.ts.map +1 -0
- package/dist/client/react/readerLink.js +8 -0
- package/dist/client/react/readerLink.js.map +1 -0
- package/dist/client/react/readingHistory.d.ts +38 -0
- package/dist/client/react/readingHistory.d.ts.map +1 -0
- package/dist/client/react/readingHistory.js +33 -0
- package/dist/client/react/readingHistory.js.map +1 -0
- package/dist/client/react/readingLibrary.d.ts +24 -0
- package/dist/client/react/readingLibrary.d.ts.map +1 -0
- package/dist/client/react/readingLibrary.js +18 -0
- package/dist/client/react/readingLibrary.js.map +1 -0
- package/dist/client/react/readingState.d.ts +20 -0
- package/dist/client/react/readingState.d.ts.map +1 -0
- package/dist/client/react/readingState.js +133 -0
- package/dist/client/react/readingState.js.map +1 -0
- package/dist/client/react/remainingRoute.d.ts +3 -0
- package/dist/client/react/remainingRoute.d.ts.map +1 -0
- package/dist/client/react/remainingRoute.js +19 -0
- package/dist/client/react/remainingRoute.js.map +1 -0
- package/dist/client/react/savedViews.d.ts +14 -0
- package/dist/client/react/savedViews.d.ts.map +1 -0
- package/dist/client/react/savedViews.js +87 -0
- package/dist/client/react/savedViews.js.map +1 -0
- package/dist/client/react/scheduleReading.d.ts +3 -0
- package/dist/client/react/scheduleReading.d.ts.map +1 -0
- package/dist/client/react/scheduleReading.js +36 -0
- package/dist/client/react/scheduleReading.js.map +1 -0
- package/dist/client/react/searchCommands.d.ts +11 -0
- package/dist/client/react/searchCommands.d.ts.map +1 -0
- package/dist/client/react/searchCommands.js +7 -0
- package/dist/client/react/searchCommands.js.map +1 -0
- package/dist/client/react/searchStatus.d.ts +6 -0
- package/dist/client/react/searchStatus.d.ts.map +1 -0
- package/dist/client/react/searchStatus.js +20 -0
- package/dist/client/react/searchStatus.js.map +1 -0
- package/dist/client/react/shellIds.d.ts +59 -0
- package/dist/client/react/shellIds.d.ts.map +1 -1
- package/dist/client/react/shellIds.js +59 -0
- package/dist/client/react/shellIds.js.map +1 -1
- package/dist/client/react/useAppearance.d.ts +14 -0
- package/dist/client/react/useAppearance.d.ts.map +1 -0
- package/dist/client/react/useAppearance.js +55 -0
- package/dist/client/react/useAppearance.js.map +1 -0
- package/dist/client/react/useBoardNavigation.d.ts +3 -0
- package/dist/client/react/useBoardNavigation.d.ts.map +1 -0
- package/dist/client/react/useBoardNavigation.js +129 -0
- package/dist/client/react/useBoardNavigation.js.map +1 -0
- package/dist/client/react/useDiagnosticsPolling.d.ts +3 -0
- package/dist/client/react/useDiagnosticsPolling.d.ts.map +1 -0
- package/dist/client/react/useDiagnosticsPolling.js +23 -0
- package/dist/client/react/useDiagnosticsPolling.js.map +1 -0
- package/dist/client/react/useDocumentPage.d.ts +1 -1
- package/dist/client/react/useDocumentPage.d.ts.map +1 -1
- package/dist/client/react/useFormFocus.d.ts +5 -0
- package/dist/client/react/useFormFocus.d.ts.map +1 -0
- package/dist/client/react/useFormFocus.js +46 -0
- package/dist/client/react/useFormFocus.js.map +1 -0
- package/dist/client/react/useHandoffForm.d.ts +69 -0
- package/dist/client/react/useHandoffForm.d.ts.map +1 -0
- package/dist/client/react/useHandoffForm.js +102 -0
- package/dist/client/react/useHandoffForm.js.map +1 -0
- package/dist/client/react/useHistoryComparison.d.ts +33 -0
- package/dist/client/react/useHistoryComparison.d.ts.map +1 -0
- package/dist/client/react/useHistoryComparison.js +146 -0
- package/dist/client/react/useHistoryComparison.js.map +1 -0
- package/dist/client/react/useMedia.d.ts +2 -0
- package/dist/client/react/useMedia.d.ts.map +1 -0
- package/dist/client/react/useMedia.js +19 -0
- package/dist/client/react/useMedia.js.map +1 -0
- package/dist/client/react/useResponseForm.d.ts +107 -0
- package/dist/client/react/useResponseForm.d.ts.map +1 -0
- package/dist/client/react/useResponseForm.js +138 -0
- package/dist/client/react/useResponseForm.js.map +1 -0
- package/dist/client/react/useSearchDialog.d.ts +7 -0
- package/dist/client/react/useSearchDialog.d.ts.map +1 -0
- package/dist/client/react/useSearchDialog.js +26 -0
- package/dist/client/react/useSearchDialog.js.map +1 -0
- package/dist/client/react/useSidebar.d.ts +9 -0
- package/dist/client/react/useSidebar.d.ts.map +1 -0
- package/dist/client/react/useSidebar.js +77 -0
- package/dist/client/react/useSidebar.js.map +1 -0
- package/dist/client/react/visualDimensions.d.ts +3 -0
- package/dist/client/react/visualDimensions.d.ts.map +1 -0
- package/dist/client/react/visualDimensions.js +21 -0
- package/dist/client/react/visualDimensions.js.map +1 -0
- package/dist/client/react/visualSources.d.ts +13 -0
- package/dist/client/react/visualSources.d.ts.map +1 -0
- package/dist/client/react/visualSources.js +92 -0
- package/dist/client/react/visualSources.js.map +1 -0
- package/dist/client/reconcile/normalized.d.ts +3 -0
- package/dist/client/reconcile/normalized.d.ts.map +1 -0
- package/dist/client/reconcile/{signature.js → normalized.js} +1 -37
- package/dist/client/reconcile/normalized.js.map +1 -0
- package/dist/client/responses/answerRecovery.d.ts +14 -0
- package/dist/client/responses/answerRecovery.d.ts.map +1 -0
- package/dist/client/responses/answerRecovery.js +33 -0
- package/dist/client/responses/answerRecovery.js.map +1 -0
- package/dist/client/responses/authorLabel.d.ts +1 -1
- package/dist/client/responses/authorLabel.d.ts.map +1 -1
- package/dist/client/responses/authorLabel.js +2 -2
- package/dist/client/responses/authorLabel.js.map +1 -1
- package/dist/client/responses/failure.d.ts +5 -0
- package/dist/client/responses/failure.d.ts.map +1 -0
- package/dist/client/responses/failure.js +13 -0
- package/dist/client/responses/failure.js.map +1 -0
- package/dist/client/responses/formSchema.d.ts +9 -0
- package/dist/client/responses/formSchema.d.ts.map +1 -1
- package/dist/client/responses/formSchema.js +3 -0
- package/dist/client/responses/formSchema.js.map +1 -1
- package/dist/client/responses/preview.d.ts +2 -2
- package/dist/client/responses/preview.d.ts.map +1 -1
- package/dist/client/responses/preview.js.map +1 -1
- package/dist/client/responses/retainContext.d.ts +6 -0
- package/dist/client/responses/retainContext.d.ts.map +1 -0
- package/dist/client/responses/retainContext.js +12 -0
- package/dist/client/responses/retainContext.js.map +1 -0
- package/dist/client/responses/summary.d.ts +6 -0
- package/dist/client/responses/summary.d.ts.map +1 -0
- package/dist/client/responses/summary.js +21 -0
- package/dist/client/responses/summary.js.map +1 -0
- package/dist/client/sourceChanged.d.ts +2 -0
- package/dist/client/sourceChanged.d.ts.map +1 -0
- package/dist/client/sourceChanged.js +4 -0
- package/dist/client/sourceChanged.js.map +1 -0
- package/dist/diagnostics/daemonContract.d.ts +1 -1
- package/dist/diagnostics/daemonContract.js +1 -1
- package/dist/diagnostics/daemonContract.js.map +1 -1
- package/dist/diagnostics/source.d.ts +14 -24
- package/dist/diagnostics/source.d.ts.map +1 -1
- package/dist/diagnostics/source.js +2 -9
- package/dist/diagnostics/source.js.map +1 -1
- package/dist/history/schema.d.ts +33 -0
- package/dist/history/schema.d.ts.map +1 -1
- package/dist/history/schema.js +12 -0
- package/dist/history/schema.js.map +1 -1
- package/dist/rpc/contract.d.ts +4235 -298
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/rpc/contract.js +57 -3
- package/dist/rpc/contract.js.map +1 -1
- package/dist/rpc/handoffContract.d.ts +3 -3
- package/dist/rpc/responseContract.d.ts +5 -5
- package/dist/server/board.d.ts +4 -4
- package/dist/server/board.d.ts.map +1 -1
- package/dist/server/board.js +18 -95
- package/dist/server/board.js.map +1 -1
- package/dist/server/boardRuntime.d.ts +12 -0
- package/dist/server/boardRuntime.d.ts.map +1 -0
- package/dist/server/boardRuntime.js +37 -0
- package/dist/server/boardRuntime.js.map +1 -0
- package/dist/server/diagnostics/daemon.js +3 -3
- package/dist/server/diagnostics/daemon.js.map +1 -1
- package/dist/server/history/html.d.ts +0 -1
- package/dist/server/history/html.d.ts.map +1 -1
- package/dist/server/history/html.js +0 -3
- package/dist/server/history/html.js.map +1 -1
- package/dist/server/history/response.d.ts.map +1 -1
- package/dist/server/history/response.js +14 -1
- package/dist/server/history/response.js.map +1 -1
- package/dist/server/http/assets.d.ts +4 -4
- package/dist/server/http/assets.d.ts.map +1 -1
- package/dist/server/http/assets.js +1 -35
- package/dist/server/http/assets.js.map +1 -1
- package/dist/server/http/attachment.d.ts +2 -2
- package/dist/server/http/attachment.d.ts.map +1 -1
- package/dist/server/http/boardRoutes.d.ts +6 -0
- package/dist/server/http/boardRoutes.d.ts.map +1 -0
- package/dist/server/http/boardRoutes.js +45 -0
- package/dist/server/http/boardRoutes.js.map +1 -0
- package/dist/server/http/identity.d.ts +2 -2
- package/dist/server/http/identity.d.ts.map +1 -1
- package/dist/server/http/inbox.d.ts +1 -1
- package/dist/server/http/inbox.d.ts.map +1 -1
- package/dist/server/http/overview.d.ts +1 -1
- package/dist/server/http/overview.d.ts.map +1 -1
- package/dist/server/http/page.d.ts +2 -2
- package/dist/server/http/page.d.ts.map +1 -1
- package/dist/server/http/page.js +1 -2
- package/dist/server/http/page.js.map +1 -1
- package/dist/server/http/respond.d.ts +1 -1
- package/dist/server/http/respond.d.ts.map +1 -1
- package/dist/server/http/respond.js +1 -1
- package/dist/server/http/respond.js.map +1 -1
- package/dist/server/http/rpcPolicy.d.ts +4 -0
- package/dist/server/http/rpcPolicy.d.ts.map +1 -0
- package/dist/server/http/rpcPolicy.js +11 -0
- package/dist/server/http/rpcPolicy.js.map +1 -0
- package/dist/server/http/work.d.ts +2 -2
- package/dist/server/http/work.d.ts.map +1 -1
- package/dist/server/integration/diagnostics.d.ts +1 -1
- package/dist/server/responses/agent.d.ts +1 -1
- package/dist/server/responses/agent.d.ts.map +1 -1
- package/dist/server/responses/agent.js +2 -2
- package/dist/server/responses/agent.js.map +1 -1
- package/dist/server/responses/composerHtml.js +1 -1
- package/dist/server/responses/composerHtml.js.map +1 -1
- package/dist/server/responses/waitFor.d.ts +1 -1
- package/dist/server/responses/waitFor.d.ts.map +1 -1
- package/dist/server/rpc/HandlerOptions.d.ts +12 -0
- package/dist/server/rpc/HandlerOptions.d.ts.map +1 -0
- package/dist/server/rpc/HandlerOptions.js +2 -0
- package/dist/server/rpc/HandlerOptions.js.map +1 -0
- package/dist/server/rpc/handlers.d.ts +2 -2
- package/dist/server/rpc/handlers.d.ts.map +1 -1
- package/dist/server/rpc/handlers.js +17 -10
- package/dist/server/rpc/handlers.js.map +1 -1
- package/dist/server/serve-cli.js +8 -8
- package/dist/server/serve-cli.js.map +1 -1
- package/dist/server/serve.d.ts +2 -3
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/serve.js +20 -9
- package/dist/server/serve.js.map +1 -1
- package/dist/server/views/projectionQueries.d.ts +681 -0
- package/dist/server/views/projectionQueries.d.ts.map +1 -0
- package/dist/server/views/projectionQueries.js +70 -0
- package/dist/server/views/projectionQueries.js.map +1 -0
- package/dist/server/views/remainingQueries.d.ts +679 -0
- package/dist/server/views/remainingQueries.d.ts.map +1 -0
- package/dist/server/views/remainingQueries.js +58 -0
- package/dist/server/views/remainingQueries.js.map +1 -0
- package/dist/server/views/resultProjection.d.ts +420 -0
- package/dist/server/views/resultProjection.d.ts.map +1 -0
- package/dist/server/views/resultProjection.js +35 -0
- package/dist/server/views/resultProjection.js.map +1 -0
- package/dist/server/views/resultTargets.d.ts +6 -0
- package/dist/server/views/resultTargets.d.ts.map +1 -0
- package/dist/server/views/resultTargets.js +31 -0
- package/dist/server/views/resultTargets.js.map +1 -0
- package/dist/server/views/state.d.ts +8 -9
- package/dist/server/views/state.d.ts.map +1 -1
- package/dist/server/views/state.js +5 -38
- package/dist/server/views/state.js.map +1 -1
- package/dist/server/views/workStyle.d.ts.map +1 -1
- package/dist/server/views/workStyle.js +1 -0
- package/dist/server/views/workStyle.js.map +1 -1
- package/docs/delivery/decision-write-examples.md +1 -1
- package/docs/delivery/handoff-examples.md +1 -1
- package/docs/delivery/response-write-examples.md +1 -1
- package/docs/delivery/result-review-examples.md +1 -1
- package/docs/roadmap.md +7 -7
- package/package.json +52 -139
- package/src/browser/diagnostics/schema.ts +18 -0
- package/src/browser/views/ResultProjection.ts +37 -0
- package/src/browser/views/remaining.ts +26 -0
- package/src/browser/views/schema.ts +68 -0
- package/src/browser/views/state.ts +47 -0
- package/src/client/client.ts +8 -8
- package/src/client/document/Mermaid.ts +49 -9
- package/src/client/document/View.ts +14 -1
- package/src/client/document/boardLayout.ts +80 -0
- package/src/client/entry.ts +0 -24
- package/src/client/formDraft.ts +9 -0
- package/src/client/formFocus.ts +5 -0
- package/src/client/handoffs/failureStatus.ts +6 -0
- package/src/client/page/routeQuery.ts +0 -5
- package/src/client/react/Age.tsx +35 -0
- package/src/client/react/AnswerForm.tsx +88 -82
- package/src/client/react/AnswerPrompts.tsx +67 -54
- package/src/client/react/BoardMain.tsx +30 -0
- package/src/client/react/BoardShell.tsx +89 -27
- package/src/client/react/ChangesMain.tsx +68 -0
- package/src/client/react/DiagnosticsFleet.tsx +64 -0
- package/src/client/react/DiagnosticsMain.tsx +29 -0
- package/src/client/react/DiagnosticsPage.tsx +77 -0
- package/src/client/react/DocumentContext.tsx +25 -9
- package/src/client/react/DocumentMain.tsx +8 -6
- package/src/client/react/Favorite.tsx +17 -0
- package/src/client/react/FormField.tsx +68 -0
- package/src/client/react/HandoffForm.tsx +78 -0
- package/src/client/react/HandoffPage.tsx +78 -0
- package/src/client/react/HandoffPrompt.tsx +33 -0
- package/src/client/react/Header.tsx +34 -13
- package/src/client/react/HistoryComparison.tsx +60 -0
- package/src/client/react/HistoryRetention.tsx +29 -0
- package/src/client/react/HomeBoard.tsx +15 -0
- package/src/client/react/InboxPage.tsx +51 -0
- package/src/client/react/LiveControls.tsx +78 -0
- package/src/client/react/Modal.tsx +92 -0
- package/src/client/react/NavigationTree.tsx +2 -1
- package/src/client/react/OverviewGroups.tsx +61 -0
- package/src/client/react/OverviewPage.tsx +68 -0
- package/src/client/react/ProjectionFrame.tsx +140 -0
- package/src/client/react/ProjectionMain.tsx +63 -0
- package/src/client/react/PromptOption.tsx +56 -0
- package/src/client/react/ReadingLibrary.tsx +147 -0
- package/src/client/react/RemainingMain.tsx +66 -0
- package/src/client/react/RespondPage.tsx +41 -0
- package/src/client/react/ResponseMarkdown.tsx +32 -2
- package/src/client/react/ResultCriteria.tsx +78 -0
- package/src/client/react/ResultFeedback.tsx +67 -0
- package/src/client/react/ResultPage.tsx +50 -0
- package/src/client/react/SavedViews.tsx +61 -0
- package/src/client/react/SearchDialog.tsx +136 -0
- package/src/client/react/SearchResults.tsx +48 -0
- package/src/client/react/ShellApi.ts +11 -1
- package/src/client/react/Sidebar.tsx +57 -4
- package/src/client/react/StartPage.tsx +41 -0
- package/src/client/react/UpdatesToggle.tsx +13 -0
- package/src/client/react/VisualControls.tsx +59 -0
- package/src/client/react/VisualInspection.tsx +35 -0
- package/src/client/react/VisualViewer.tsx +147 -0
- package/src/client/react/WorkCards.tsx +39 -0
- package/src/client/react/WorkControls.tsx +73 -0
- package/src/client/react/WorkDetail.tsx +35 -0
- package/src/client/react/WorkItemTitle.tsx +9 -0
- package/src/client/react/WorkPage.tsx +59 -0
- package/src/client/react/WorkResults.tsx +9 -0
- package/src/client/react/WorkTable.tsx +39 -0
- package/src/client/react/WorkTools.tsx +17 -0
- package/src/client/react/activeRead.ts +15 -0
- package/src/client/react/createResponse.ts +40 -0
- package/src/client/react/diagnosticsValues.tsx +103 -0
- package/src/client/react/entry.css +20 -0
- package/src/client/react/entry.tsx +6 -19
- package/src/client/react/historyStore.ts +56 -0
- package/src/client/react/liveStatus.ts +52 -0
- package/src/client/react/loadBoardPage.ts +15 -5
- package/src/client/react/loadProjection.ts +23 -0
- package/src/client/react/loadRemaining.ts +27 -0
- package/src/client/react/mainLocation.ts +12 -0
- package/src/client/react/navigationLocation.ts +27 -0
- package/src/client/react/pageQuery.ts +38 -0
- package/src/client/react/projectionChanges.ts +21 -0
- package/src/client/react/projectionRoute.ts +21 -0
- package/src/client/react/readerLink.ts +9 -0
- package/src/client/react/readingHistory.ts +31 -0
- package/src/client/react/readingLibrary.ts +22 -0
- package/src/client/react/readingState.ts +133 -0
- package/src/client/react/remainingRoute.ts +19 -0
- package/src/client/react/savedViews.ts +84 -0
- package/src/client/react/scheduleReading.ts +41 -0
- package/src/client/react/searchCommands.ts +15 -0
- package/src/client/react/searchStatus.ts +30 -0
- package/src/client/react/shellIds.ts +59 -0
- package/src/client/react/useAppearance.ts +54 -0
- package/src/client/react/useBoardNavigation.ts +139 -0
- package/src/client/react/useDiagnosticsPolling.ts +24 -0
- package/src/client/react/useDocumentPage.ts +1 -1
- package/src/client/react/useFormFocus.ts +46 -0
- package/src/client/react/useHandoffForm.ts +105 -0
- package/src/client/react/useHistoryComparison.ts +142 -0
- package/src/client/react/useMedia.ts +19 -0
- package/src/client/react/useResponseForm.ts +147 -0
- package/src/client/react/useSearchDialog.ts +25 -0
- package/src/client/react/useSidebar.ts +81 -0
- package/src/client/react/visualDimensions.ts +20 -0
- package/src/client/react/visualSources.ts +105 -0
- package/src/client/reconcile/{signature.ts → normalized.ts} +0 -37
- package/src/client/responses/answerRecovery.ts +37 -0
- package/src/client/responses/authorLabel.ts +3 -3
- package/src/client/responses/failure.ts +13 -0
- package/src/client/responses/formSchema.ts +4 -0
- package/src/client/responses/preview.ts +2 -2
- package/src/client/responses/retainContext.ts +15 -0
- package/src/client/responses/summary.ts +25 -0
- package/src/client/sourceChanged.ts +3 -0
- package/src/diagnostics/daemonContract.ts +1 -1
- package/src/diagnostics/source.ts +5 -14
- package/src/history/schema.ts +15 -0
- package/src/rpc/contract.ts +57 -3
- package/src/server/board.ts +24 -126
- package/src/server/boardRuntime.ts +54 -0
- package/src/server/diagnostics/daemon.ts +3 -3
- package/src/server/history/html.ts +0 -3
- package/src/server/history/response.ts +15 -1
- package/src/server/http/assets.ts +2 -36
- package/src/server/http/attachment.ts +1 -1
- package/src/server/http/boardRoutes.ts +62 -0
- package/src/server/http/identity.ts +1 -1
- package/src/server/http/page.ts +2 -3
- package/src/server/http/respond.ts +1 -1
- package/src/server/http/rpcPolicy.ts +16 -0
- package/src/server/http/work.ts +1 -1
- package/src/server/responses/agent.ts +2 -2
- package/src/server/responses/composerHtml.ts +1 -1
- package/src/server/responses/waitFor.ts +1 -1
- package/src/server/rpc/HandlerOptions.ts +12 -0
- package/src/server/rpc/handlers.ts +18 -15
- package/src/server/serve-cli.ts +8 -8
- package/src/server/serve.ts +23 -10
- package/src/server/views/projectionQueries.ts +78 -0
- package/src/server/views/remainingQueries.ts +74 -0
- package/src/server/views/resultProjection.ts +45 -0
- package/src/server/views/resultTargets.ts +34 -0
- package/src/server/views/state.ts +5 -40
- package/src/server/views/workStyle.ts +1 -0
- package/dist/client/diagnostics/script.d.ts +0 -2
- package/dist/client/diagnostics/script.d.ts.map +0 -1
- package/dist/client/diagnostics/script.js +0 -31
- package/dist/client/diagnostics/script.js.map +0 -1
- package/dist/client/fieldFeedback.d.ts +0 -17
- package/dist/client/fieldFeedback.d.ts.map +0 -1
- package/dist/client/fieldFeedback.js +0 -38
- package/dist/client/fieldFeedback.js.map +0 -1
- package/dist/client/handoffs/copy.d.ts +0 -3
- package/dist/client/handoffs/copy.d.ts.map +0 -1
- package/dist/client/handoffs/copy.js +0 -47
- package/dist/client/handoffs/copy.js.map +0 -1
- package/dist/client/handoffs/fields.d.ts +0 -9
- package/dist/client/handoffs/fields.d.ts.map +0 -1
- package/dist/client/handoffs/fields.js +0 -34
- package/dist/client/handoffs/fields.js.map +0 -1
- package/dist/client/handoffs/form.d.ts +0 -36
- package/dist/client/handoffs/form.d.ts.map +0 -1
- package/dist/client/handoffs/form.js +0 -33
- package/dist/client/handoffs/form.js.map +0 -1
- package/dist/client/handoffs/setup.d.ts +0 -2
- package/dist/client/handoffs/setup.d.ts.map +0 -1
- package/dist/client/handoffs/setup.js +0 -125
- package/dist/client/handoffs/setup.js.map +0 -1
- package/dist/client/history/script.d.ts +0 -2
- package/dist/client/history/script.d.ts.map +0 -1
- package/dist/client/history/script.js +0 -128
- package/dist/client/history/script.js.map +0 -1
- package/dist/client/legacyRuntime.d.ts +0 -9
- package/dist/client/legacyRuntime.d.ts.map +0 -1
- package/dist/client/legacyRuntime.js +0 -15
- package/dist/client/legacyRuntime.js.map +0 -1
- package/dist/client/page/ageScript.d.ts +0 -2
- package/dist/client/page/ageScript.d.ts.map +0 -1
- package/dist/client/page/ageScript.js +0 -23
- package/dist/client/page/ageScript.js.map +0 -1
- package/dist/client/page/formReadingScript.d.ts +0 -2
- package/dist/client/page/formReadingScript.d.ts.map +0 -1
- package/dist/client/page/formReadingScript.js +0 -26
- package/dist/client/page/formReadingScript.js.map +0 -1
- package/dist/client/page/itemContextScript.d.ts +0 -2
- package/dist/client/page/itemContextScript.d.ts.map +0 -1
- package/dist/client/page/itemContextScript.js +0 -21
- package/dist/client/page/itemContextScript.js.map +0 -1
- package/dist/client/page/libraryScript.d.ts +0 -2
- package/dist/client/page/libraryScript.d.ts.map +0 -1
- package/dist/client/page/libraryScript.js +0 -85
- package/dist/client/page/libraryScript.js.map +0 -1
- package/dist/client/page/navigationHistoryScript.d.ts +0 -2
- package/dist/client/page/navigationHistoryScript.d.ts.map +0 -1
- package/dist/client/page/navigationHistoryScript.js +0 -47
- package/dist/client/page/navigationHistoryScript.js.map +0 -1
- package/dist/client/page/navigationScript.d.ts +0 -2
- package/dist/client/page/navigationScript.d.ts.map +0 -1
- package/dist/client/page/navigationScript.js +0 -113
- package/dist/client/page/navigationScript.js.map +0 -1
- package/dist/client/page/preferencesScript.d.ts +0 -2
- package/dist/client/page/preferencesScript.d.ts.map +0 -1
- package/dist/client/page/preferencesScript.js +0 -46
- package/dist/client/page/preferencesScript.js.map +0 -1
- package/dist/client/page/reactNavigationScript.d.ts +0 -2
- package/dist/client/page/reactNavigationScript.d.ts.map +0 -1
- package/dist/client/page/reactNavigationScript.js +0 -31
- package/dist/client/page/reactNavigationScript.js.map +0 -1
- package/dist/client/page/readingStateScript.d.ts +0 -2
- package/dist/client/page/readingStateScript.d.ts.map +0 -1
- package/dist/client/page/readingStateScript.js +0 -65
- package/dist/client/page/readingStateScript.js.map +0 -1
- package/dist/client/page/runtime.d.ts +0 -3
- package/dist/client/page/runtime.d.ts.map +0 -1
- package/dist/client/page/runtime.js +0 -111
- package/dist/client/page/runtime.js.map +0 -1
- package/dist/client/page/scripts.d.ts +0 -3
- package/dist/client/page/scripts.d.ts.map +0 -1
- package/dist/client/page/scripts.js +0 -91
- package/dist/client/page/scripts.js.map +0 -1
- package/dist/client/page/searchResultsScript.d.ts +0 -2
- package/dist/client/page/searchResultsScript.d.ts.map +0 -1
- package/dist/client/page/searchResultsScript.js +0 -64
- package/dist/client/page/searchResultsScript.js.map +0 -1
- package/dist/client/page/searchScript.d.ts +0 -2
- package/dist/client/page/searchScript.d.ts.map +0 -1
- package/dist/client/page/searchScript.js +0 -75
- package/dist/client/page/searchScript.js.map +0 -1
- package/dist/client/page/sidebarScript.d.ts +0 -2
- package/dist/client/page/sidebarScript.d.ts.map +0 -1
- package/dist/client/page/sidebarScript.js +0 -87
- package/dist/client/page/sidebarScript.js.map +0 -1
- package/dist/client/page/stateScript.d.ts +0 -2
- package/dist/client/page/stateScript.d.ts.map +0 -1
- package/dist/client/page/stateScript.js +0 -95
- package/dist/client/page/stateScript.js.map +0 -1
- package/dist/client/page/visualScript.d.ts +0 -2
- package/dist/client/page/visualScript.d.ts.map +0 -1
- package/dist/client/page/visualScript.js +0 -42
- package/dist/client/page/visualScript.js.map +0 -1
- package/dist/client/page/visualViewport.d.ts +0 -2
- package/dist/client/page/visualViewport.d.ts.map +0 -1
- package/dist/client/page/visualViewport.js +0 -87
- package/dist/client/page/visualViewport.js.map +0 -1
- package/dist/client/react/AnswerFocus.d.ts +0 -6
- package/dist/client/react/AnswerFocus.d.ts.map +0 -1
- package/dist/client/react/AnswerFocus.js +0 -12
- package/dist/client/react/AnswerFocus.js.map +0 -1
- package/dist/client/react/LegacyMain.d.ts +0 -9
- package/dist/client/react/LegacyMain.d.ts.map +0 -1
- package/dist/client/react/LegacyMain.js +0 -32
- package/dist/client/react/LegacyMain.js.map +0 -1
- package/dist/client/react/legacyPage.d.ts +0 -7
- package/dist/client/react/legacyPage.d.ts.map +0 -1
- package/dist/client/react/legacyPage.js +0 -63
- package/dist/client/react/legacyPage.js.map +0 -1
- package/dist/client/reconcile/patch.d.ts +0 -2
- package/dist/client/reconcile/patch.d.ts.map +0 -1
- package/dist/client/reconcile/patch.js +0 -64
- package/dist/client/reconcile/patch.js.map +0 -1
- package/dist/client/reconcile/signature.d.ts +0 -8
- package/dist/client/reconcile/signature.d.ts.map +0 -1
- package/dist/client/reconcile/signature.js.map +0 -1
- package/dist/client/reconcile/swap.d.ts +0 -2
- package/dist/client/reconcile/swap.d.ts.map +0 -1
- package/dist/client/reconcile/swap.js +0 -36
- package/dist/client/reconcile/swap.js.map +0 -1
- package/dist/client/responses/attach.d.ts +0 -2
- package/dist/client/responses/attach.d.ts.map +0 -1
- package/dist/client/responses/attach.js +0 -133
- package/dist/client/responses/attach.js.map +0 -1
- package/dist/client/responses/binding.d.ts +0 -3
- package/dist/client/responses/binding.d.ts.map +0 -1
- package/dist/client/responses/binding.js +0 -16
- package/dist/client/responses/binding.js.map +0 -1
- package/dist/client/responses/draft.d.ts +0 -13
- package/dist/client/responses/draft.d.ts.map +0 -1
- package/dist/client/responses/draft.js +0 -15
- package/dist/client/responses/draft.js.map +0 -1
- package/dist/client/responses/draftSession.d.ts +0 -8
- package/dist/client/responses/draftSession.d.ts.map +0 -1
- package/dist/client/responses/draftSession.js +0 -105
- package/dist/client/responses/draftSession.js.map +0 -1
- package/dist/client/responses/drafts.d.ts +0 -21
- package/dist/client/responses/drafts.d.ts.map +0 -1
- package/dist/client/responses/drafts.js +0 -68
- package/dist/client/responses/drafts.js.map +0 -1
- package/dist/client/responses/feedback.d.ts +0 -6
- package/dist/client/responses/feedback.d.ts.map +0 -1
- package/dist/client/responses/feedback.js +0 -77
- package/dist/client/responses/feedback.js.map +0 -1
- package/dist/client/responses/fields.d.ts +0 -12
- package/dist/client/responses/fields.d.ts.map +0 -1
- package/dist/client/responses/fields.js +0 -23
- package/dist/client/responses/fields.js.map +0 -1
- package/dist/client/responses/form.d.ts +0 -37
- package/dist/client/responses/form.d.ts.map +0 -1
- package/dist/client/responses/form.js +0 -43
- package/dist/client/responses/form.js.map +0 -1
- package/dist/client/responses/questionnaireControls.d.ts +0 -9
- package/dist/client/responses/questionnaireControls.d.ts.map +0 -1
- package/dist/client/responses/questionnaireControls.js +0 -82
- package/dist/client/responses/questionnaireControls.js.map +0 -1
- package/dist/client/responses/setup.d.ts +0 -2
- package/dist/client/responses/setup.d.ts.map +0 -1
- package/dist/client/responses/setup.js +0 -7
- package/dist/client/responses/setup.js.map +0 -1
- package/dist/client/responses/submit.d.ts +0 -5
- package/dist/client/responses/submit.d.ts.map +0 -1
- package/dist/client/responses/submit.js +0 -33
- package/dist/client/responses/submit.js.map +0 -1
- package/dist/client/views/savedScript.d.ts +0 -2
- package/dist/client/views/savedScript.d.ts.map +0 -1
- package/dist/client/views/savedScript.js +0 -89
- package/dist/client/views/savedScript.js.map +0 -1
- package/dist/server/diagnostics/html.d.ts +0 -8
- package/dist/server/diagnostics/html.d.ts.map +0 -1
- package/dist/server/diagnostics/html.js +0 -79
- package/dist/server/diagnostics/html.js.map +0 -1
- package/dist/server/diagnostics/page.d.ts +0 -55
- package/dist/server/diagnostics/page.d.ts.map +0 -1
- package/dist/server/diagnostics/page.js +0 -11
- package/dist/server/diagnostics/page.js.map +0 -1
- package/dist/server/handoffs/html.d.ts +0 -36
- package/dist/server/handoffs/html.d.ts.map +0 -1
- package/dist/server/handoffs/html.js +0 -31
- package/dist/server/handoffs/html.js.map +0 -1
- package/dist/server/handoffs/page.d.ts +0 -6
- package/dist/server/handoffs/page.d.ts.map +0 -1
- package/dist/server/handoffs/page.js +0 -34
- package/dist/server/handoffs/page.js.map +0 -1
- package/dist/server/http/changesPage.d.ts +0 -5
- package/dist/server/http/changesPage.d.ts.map +0 -1
- package/dist/server/http/changesPage.js +0 -13
- package/dist/server/http/changesPage.js.map +0 -1
- package/dist/server/http/readPage.d.ts +0 -4
- package/dist/server/http/readPage.d.ts.map +0 -1
- package/dist/server/http/readPage.js +0 -9
- package/dist/server/http/readPage.js.map +0 -1
- package/dist/server/http/start.d.ts +0 -5
- package/dist/server/http/start.d.ts.map +0 -1
- package/dist/server/http/start.js +0 -13
- package/dist/server/http/start.js.map +0 -1
- package/dist/server/page/startHtml.d.ts +0 -2
- package/dist/server/page/startHtml.d.ts.map +0 -1
- package/dist/server/page/startHtml.js +0 -10
- package/dist/server/page/startHtml.js.map +0 -1
- package/dist/server/responses/page.d.ts +0 -6
- package/dist/server/responses/page.d.ts.map +0 -1
- package/dist/server/responses/page.js +0 -25
- package/dist/server/responses/page.js.map +0 -1
- package/dist/server/results/criteria.d.ts +0 -3
- package/dist/server/results/criteria.d.ts.map +0 -1
- package/dist/server/results/criteria.js +0 -34
- package/dist/server/results/criteria.js.map +0 -1
- package/dist/server/results/feedback.d.ts +0 -6
- package/dist/server/results/feedback.d.ts.map +0 -1
- package/dist/server/results/feedback.js +0 -32
- package/dist/server/results/feedback.js.map +0 -1
- package/dist/server/results/page.d.ts +0 -6
- package/dist/server/results/page.d.ts.map +0 -1
- package/dist/server/results/page.js +0 -41
- package/dist/server/results/page.js.map +0 -1
- package/dist/server/rpc/transport.d.ts +0 -14
- package/dist/server/rpc/transport.d.ts.map +0 -1
- package/dist/server/rpc/transport.js +0 -15
- package/dist/server/rpc/transport.js.map +0 -1
- package/src/client/diagnostics/script.ts +0 -31
- package/src/client/fieldFeedback.ts +0 -53
- package/src/client/handoffs/copy.ts +0 -45
- package/src/client/handoffs/fields.ts +0 -38
- package/src/client/handoffs/form.ts +0 -41
- package/src/client/handoffs/setup.ts +0 -142
- package/src/client/history/script.ts +0 -127
- package/src/client/legacyRuntime.ts +0 -11
- package/src/client/page/ageScript.ts +0 -22
- package/src/client/page/formReadingScript.ts +0 -25
- package/src/client/page/itemContextScript.ts +0 -20
- package/src/client/page/libraryScript.ts +0 -84
- package/src/client/page/navigationHistoryScript.ts +0 -46
- package/src/client/page/navigationScript.ts +0 -113
- package/src/client/page/preferencesScript.ts +0 -45
- package/src/client/page/reactNavigationScript.ts +0 -30
- package/src/client/page/readingStateScript.ts +0 -64
- package/src/client/page/runtime.ts +0 -111
- package/src/client/page/scripts.ts +0 -91
- package/src/client/page/searchResultsScript.ts +0 -63
- package/src/client/page/searchScript.ts +0 -74
- package/src/client/page/sidebarScript.ts +0 -86
- package/src/client/page/stateScript.ts +0 -95
- package/src/client/page/visualScript.ts +0 -41
- package/src/client/page/visualViewport.ts +0 -86
- package/src/client/react/AnswerFocus.tsx +0 -10
- package/src/client/react/LegacyMain.tsx +0 -46
- package/src/client/react/legacyPage.ts +0 -69
- package/src/client/reconcile/patch.ts +0 -71
- package/src/client/reconcile/swap.ts +0 -37
- package/src/client/responses/attach.ts +0 -150
- package/src/client/responses/binding.ts +0 -16
- package/src/client/responses/draft.ts +0 -20
- package/src/client/responses/draftSession.ts +0 -108
- package/src/client/responses/drafts.ts +0 -82
- package/src/client/responses/feedback.ts +0 -81
- package/src/client/responses/fields.ts +0 -26
- package/src/client/responses/form.ts +0 -58
- package/src/client/responses/questionnaireControls.ts +0 -94
- package/src/client/responses/setup.ts +0 -6
- package/src/client/responses/submit.ts +0 -44
- package/src/client/views/savedScript.ts +0 -88
- package/src/server/diagnostics/html.ts +0 -93
- package/src/server/diagnostics/page.ts +0 -31
- package/src/server/handoffs/html.ts +0 -42
- package/src/server/handoffs/page.ts +0 -51
- package/src/server/http/changesPage.ts +0 -15
- package/src/server/http/readPage.ts +0 -13
- package/src/server/http/start.ts +0 -27
- package/src/server/page/startHtml.ts +0 -10
- package/src/server/responses/page.ts +0 -37
- package/src/server/results/criteria.ts +0 -37
- package/src/server/results/feedback.ts +0 -44
- package/src/server/results/page.ts +0 -63
- package/src/server/rpc/transport.ts +0 -34
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Clock, Effect } from "effect";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
|
|
4
|
+
export interface VisualSource {
|
|
5
|
+
readonly alt: string;
|
|
6
|
+
readonly local: string;
|
|
7
|
+
readonly src: string;
|
|
8
|
+
}
|
|
9
|
+
export interface VisualSelection {
|
|
10
|
+
readonly drawing?: SVGSVGElement;
|
|
11
|
+
readonly images: readonly VisualSource[];
|
|
12
|
+
readonly origin: HTMLElement;
|
|
13
|
+
readonly selected: number;
|
|
14
|
+
}
|
|
15
|
+
export function useVisualSources(inspect: (selection: VisualSelection) => void) {
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
let revision = 0;
|
|
18
|
+
function refresh() {
|
|
19
|
+
revision += 1;
|
|
20
|
+
for (const graphic of document.querySelectorAll<HTMLImageElement>("#doc img[data-local-image]")) {
|
|
21
|
+
graphic.tabIndex = 0;
|
|
22
|
+
graphic.setAttribute("role", "button");
|
|
23
|
+
graphic.setAttribute("aria-label", `Inspect image: ${graphic.alt || "Local image"}`);
|
|
24
|
+
const url = new URL(graphic.dataset.localImage ?? graphic.src, location.href);
|
|
25
|
+
url.searchParams.set("_wb", `${Effect.runSync(Clock.currentTimeMillis)}-${revision}`);
|
|
26
|
+
graphic.src = url.href;
|
|
27
|
+
graphic.onerror = () => {
|
|
28
|
+
if (!graphic.isConnected || graphic.nextElementSibling?.hasAttribute("data-image-error")) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const error = document.createElement("span");
|
|
32
|
+
error.setAttribute("data-image-error", "");
|
|
33
|
+
error.setAttribute("role", "status");
|
|
34
|
+
error.textContent = "Image unavailable. Check the local path, supported type, workspace boundary and 16 MiB limit.";
|
|
35
|
+
graphic.after(error);
|
|
36
|
+
};
|
|
37
|
+
graphic.onload = () => {
|
|
38
|
+
if (graphic.nextElementSibling?.hasAttribute("data-image-error")) {
|
|
39
|
+
graphic.nextElementSibling.remove();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function image(source: HTMLImageElement) {
|
|
45
|
+
const images = [...document.querySelectorAll<HTMLImageElement>("#doc img[data-local-image]")];
|
|
46
|
+
inspect({
|
|
47
|
+
images: images.map((entry) => ({ alt: entry.alt, local: entry.dataset.localImage ?? entry.src, src: entry.src })),
|
|
48
|
+
origin: source,
|
|
49
|
+
selected: images.indexOf(source),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function click(event: MouseEvent) {
|
|
53
|
+
if (
|
|
54
|
+
event.defaultPrevented
|
|
55
|
+
|| event.button !== 0
|
|
56
|
+
|| event.ctrlKey
|
|
57
|
+
|| event.metaKey
|
|
58
|
+
|| event.shiftKey
|
|
59
|
+
|| event.altKey
|
|
60
|
+
|| !(event.target instanceof Element)
|
|
61
|
+
) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
inspectTarget(event, event.target);
|
|
65
|
+
}
|
|
66
|
+
function inspectTarget(event: MouseEvent, target: Element) {
|
|
67
|
+
const trigger = target.closest<HTMLButtonElement>("#doc [data-inspect-diagram]");
|
|
68
|
+
const drawing = trigger?.closest("figure")?.querySelector("svg");
|
|
69
|
+
if (trigger && !trigger.disabled && drawing) {
|
|
70
|
+
inspect({ drawing, images: [], origin: trigger, selected: -1 });
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const link = target.closest<HTMLAnchorElement>('#doc a[href^="/_board/attachment/"]');
|
|
74
|
+
if (link && !link.hasAttribute("download") && (!link.target || link.target === "_self")) {
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
inspect({
|
|
77
|
+
images: [{ alt: link.textContent ?? "", local: link.getAttribute("href") ?? link.href, src: link.href }],
|
|
78
|
+
origin: link,
|
|
79
|
+
selected: 0,
|
|
80
|
+
});
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const source = target.closest<HTMLImageElement>("#doc img[data-local-image]");
|
|
84
|
+
if (source) {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
image(source);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function key(event: KeyboardEvent) {
|
|
90
|
+
if (["Enter", " "].includes(event.key) && event.target instanceof HTMLImageElement && event.target.matches("#doc img[data-local-image]")) {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
image(event.target);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
document.addEventListener("click", click);
|
|
96
|
+
document.addEventListener("keydown", key);
|
|
97
|
+
document.addEventListener("board-page", refresh);
|
|
98
|
+
refresh();
|
|
99
|
+
return () => {
|
|
100
|
+
document.removeEventListener("click", click);
|
|
101
|
+
document.removeEventListener("keydown", key);
|
|
102
|
+
document.removeEventListener("board-page", refresh);
|
|
103
|
+
};
|
|
104
|
+
}, [inspect]);
|
|
105
|
+
}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
const containers = new Set(["DIV", "SECTION", "ARTICLE", "HEADER", "FOOTER", "MAIN", "NAV", "FORM", "SELECT", "LABEL", "ASIDE", "DETAILS"]);
|
|
2
|
-
const pristine = new WeakMap<Element, string>();
|
|
3
|
-
export function structural(element: Element) {
|
|
4
|
-
return [...element.childNodes].every((node) => node.nodeType === 1 || node.textContent?.trim() === "");
|
|
5
|
-
}
|
|
6
1
|
export function flash(element: Element) {
|
|
7
2
|
if (element.matches("[data-modified]") || !element.matches("p, li, pre, blockquote, h1, h2, h3, h4, h5, h6, .item, .notes, .metadata-panel")) {
|
|
8
3
|
return;
|
|
@@ -29,38 +24,6 @@ export function normalized(element: Element) {
|
|
|
29
24
|
}
|
|
30
25
|
return copy.outerHTML;
|
|
31
26
|
}
|
|
32
|
-
export function remember(element: Element) {
|
|
33
|
-
pristine.set(element, normalized(element));
|
|
34
|
-
if (containers.has(element.tagName)) {
|
|
35
|
-
for (const child of element.children) {
|
|
36
|
-
remember(child);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
export function signature(element: Element) {
|
|
41
|
-
if (!pristine.has(element)) {
|
|
42
|
-
pristine.set(element, normalized(element));
|
|
43
|
-
}
|
|
44
|
-
return pristine.get(element);
|
|
45
|
-
}
|
|
46
|
-
export function record(element: Element, value: string) {
|
|
47
|
-
pristine.set(element, value);
|
|
48
|
-
}
|
|
49
|
-
function normalizedShell(element: Element) {
|
|
50
|
-
const copy = element.cloneNode(false);
|
|
51
|
-
if (!(copy instanceof Element)) {
|
|
52
|
-
throw new Error("Expected an element");
|
|
53
|
-
}
|
|
54
|
-
copy.removeAttribute("data-live-change");
|
|
55
|
-
if (copy.tagName === "DETAILS") {
|
|
56
|
-
copy.removeAttribute("open");
|
|
57
|
-
}
|
|
58
|
-
return copy.outerHTML;
|
|
59
|
-
}
|
|
60
|
-
export function sameShell(old: Element, next: Element) {
|
|
61
|
-
return old.tagName === next.tagName && containers.has(old.tagName) && normalizedShell(old) === normalizedShell(next);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
27
|
function normalizeNode(node: Element) {
|
|
65
28
|
node.removeAttribute("data-live-change");
|
|
66
29
|
if (node.tagName === "DETAILS") {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import type { ResponseInput } from "./formSchema.ts";
|
|
3
|
+
|
|
4
|
+
export const AnswerRecovery = Schema.Union([
|
|
5
|
+
Schema.String,
|
|
6
|
+
Schema.Struct({
|
|
7
|
+
contexts: Schema.Array(Schema.Struct({ context: Schema.String, text: Schema.String })),
|
|
8
|
+
legacy: Schema.optionalKey(Schema.String),
|
|
9
|
+
}),
|
|
10
|
+
Schema.Undefined,
|
|
11
|
+
]);
|
|
12
|
+
type Recovery = typeof AnswerRecovery.Encoded;
|
|
13
|
+
const HEADING = "Earlier template answers (selections cleared; review before choosing again):";
|
|
14
|
+
|
|
15
|
+
export function answerRecovery(draft: Pick<ResponseInput, "answers" | "question" | "revision" | "recovery">, same: boolean): Recovery {
|
|
16
|
+
if (same || !draft.answers?.some((answer) => answer.selected.length > 0 || answer.text.length > 0)) {
|
|
17
|
+
return draft.recovery;
|
|
18
|
+
}
|
|
19
|
+
const context = JSON.stringify([draft.question, draft.revision]);
|
|
20
|
+
const text = JSON.stringify(draft.answers, null, 2);
|
|
21
|
+
const recovered = typeof draft.recovery === "string" ? { contexts: [], legacy: draft.recovery } : (draft.recovery ?? { contexts: [] });
|
|
22
|
+
const existing = recovered.contexts.some((entry) => entry.context === context);
|
|
23
|
+
const contexts = existing
|
|
24
|
+
? recovered.contexts.map((entry) => (entry.context === context ? { context, text } : entry))
|
|
25
|
+
: [...recovered.contexts, { context, text }];
|
|
26
|
+
const legacy = recovered.legacy?.replaceAll(`${HEADING}\n${text}\n`, "");
|
|
27
|
+
return { contexts, ...(legacy ? { legacy } : {}) };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function recoveryText(recovery: Recovery): string {
|
|
31
|
+
if (typeof recovery === "string") {
|
|
32
|
+
return recovery;
|
|
33
|
+
}
|
|
34
|
+
return [...(recovery?.contexts ?? []).map((entry) => `${HEADING}\nReviewed context: ${entry.context}\n${entry.text}`), recovery?.legacy ?? ""]
|
|
35
|
+
.filter(Boolean)
|
|
36
|
+
.join("\n");
|
|
37
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export function authorLabel(storage:
|
|
1
|
+
export function authorLabel(storage: () => Storage, workspace: string | undefined) {
|
|
2
2
|
const key = `work-board:author:${workspace ?? ""}`;
|
|
3
3
|
function read(draft: string) {
|
|
4
4
|
if (draft) {
|
|
5
5
|
return draft;
|
|
6
6
|
}
|
|
7
7
|
try {
|
|
8
|
-
return storage
|
|
8
|
+
return storage().getItem(key)?.slice(0, 200) ?? "";
|
|
9
9
|
} catch {
|
|
10
10
|
return "";
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
function save(value: string) {
|
|
14
14
|
try {
|
|
15
|
-
storage
|
|
15
|
+
storage().setItem(key, value.slice(0, 200));
|
|
16
16
|
return true;
|
|
17
17
|
} catch {
|
|
18
18
|
return false;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { InternalServerError } from "@shivaedev/platform/errors/taxonomy.ts";
|
|
3
|
+
import { PublicationUncertain, ResponseRejection } from "#rpc/rejections.ts";
|
|
4
|
+
export function responseFailure(error: unknown) {
|
|
5
|
+
const outcome =
|
|
6
|
+
Schema.is(ResponseRejection)(error) && !(error instanceof PublicationUncertain) && !(error instanceof InternalServerError)
|
|
7
|
+
? "rejected"
|
|
8
|
+
: "uncertain";
|
|
9
|
+
return {
|
|
10
|
+
outcome,
|
|
11
|
+
text: `${outcome === "rejected" ? "Rejected" : "Uncertain"}: ${String(error)}. Draft retained. Preview and retry with the same identity; saved content will be reconciled.`,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
import { DraftInput, ResponseKind, Revision } from "#browser/responses/schema.ts";
|
|
3
|
+
import { AnswerRecovery } from "./answerRecovery.ts";
|
|
3
4
|
|
|
4
5
|
export function responseFormSchema(hasPrompts: boolean) {
|
|
5
6
|
return Schema.Struct({
|
|
6
7
|
...DraftInput.fields,
|
|
8
|
+
answerContext: Schema.optional(Schema.String),
|
|
7
9
|
body: hasPrompts ? DraftInput.fields.body : DraftInput.fields.body.check(Schema.isMinLength(1)),
|
|
10
|
+
recovery: Schema.optionalKey(AnswerRecovery),
|
|
8
11
|
revision: Revision,
|
|
9
12
|
type: Schema.String.pipe(Schema.decodeTo(ResponseKind)),
|
|
10
13
|
}).check(
|
|
@@ -21,3 +24,4 @@ export function responseFormSchema(hasPrompts: boolean) {
|
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
export type ResponseSubmission = ReturnType<typeof responseFormSchema>["Type"];
|
|
27
|
+
export type ResponseInput = ReturnType<typeof responseFormSchema>["Encoded"];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { answerBody } from "#browser/responses/answerBody.ts";
|
|
2
2
|
import type { Prompt } from "#browser/responses/Prompt.ts";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ResponseInput } from "./formSchema.ts";
|
|
4
4
|
|
|
5
|
-
export function responsePreview(draft:
|
|
5
|
+
export function responsePreview(draft: ResponseInput, question: string, prompts: readonly Prompt[] = []): string {
|
|
6
6
|
return `New file: responses/${draft.id}.md\nRegistration (if needed): responses/${question}.md\nRecorded time is assigned by the server when saving.\n\n---\n${JSON.stringify({ id: draft.id, kind: "response", response: { answers: draft.answers, author: draft.author, question, reviewedRevision: draft.revision, supersedes: draft.supersedes, type: draft.type } }, null, 2)}\n---\n${draft.answers ? answerBody(prompts, draft.answers, draft.body) : draft.body}`;
|
|
7
7
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Form } from "@shivaedev/effect-form/shape.ts";
|
|
2
|
+
import type { ResponseSubmission, responseFormSchema } from "./formSchema.ts";
|
|
3
|
+
|
|
4
|
+
type ResponseForm = Form<ReturnType<typeof responseFormSchema>["fields"], ResponseSubmission, unknown, never>;
|
|
5
|
+
export function retainContext(form: ResponseForm, saved: ResponseSubmission) {
|
|
6
|
+
if (form.values.value.id) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
form.change("id", `response.${crypto.randomUUID()}`);
|
|
10
|
+
form.change("question", saved.question);
|
|
11
|
+
form.change("revision", saved.revision);
|
|
12
|
+
if (!form.values.value.answerContext) {
|
|
13
|
+
form.change("answerContext", saved.answerContext);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Prompt } from "#browser/responses/Prompt.ts";
|
|
2
|
+
import type { PromptAnswer } from "#browser/responses/schema.ts";
|
|
3
|
+
import type { ResponseInput } from "./formSchema.ts";
|
|
4
|
+
export function responseSummary(values: ResponseInput, prompts: readonly Prompt[], answers: readonly PromptAnswer[] | undefined) {
|
|
5
|
+
const missing =
|
|
6
|
+
values.type === "answer"
|
|
7
|
+
? prompts.filter((prompt) => {
|
|
8
|
+
const answer = answers?.find((entry) => entry.prompt === prompt.id);
|
|
9
|
+
return !(answer?.text.trim() || answer?.selected.length);
|
|
10
|
+
})
|
|
11
|
+
: [];
|
|
12
|
+
return [
|
|
13
|
+
values.author.trim() ? "" : "Add your local author label.",
|
|
14
|
+
missing.length > 0 ? `Unanswered prompts: ${missing.map((prompt) => `Question ${prompts.indexOf(prompt) + 1} · ${prompt.id}`).join("; ")}.` : "",
|
|
15
|
+
]
|
|
16
|
+
.filter(Boolean)
|
|
17
|
+
.join(" ");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function responseReadiness(valid: boolean, previewed: boolean) {
|
|
21
|
+
if (!valid) {
|
|
22
|
+
return "This draft is invalid. Review the response fields before recording.";
|
|
23
|
+
}
|
|
24
|
+
return previewed ? "Preview ready. Record this response when you are ready." : "Draft ready. Preview the Markdown before recording it.";
|
|
25
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
import { contract } from "@shivaedev/effect-contract/contract.ts";
|
|
3
3
|
import { query } from "@shivaedev/effect-contract/operation.ts";
|
|
4
|
+
import { CodexLimits, GithubLimits } from "#browser/diagnostics/schema.ts";
|
|
4
5
|
import { FleetHealth } from "./health.ts";
|
|
5
|
-
import { CodexLimits, GithubLimits } from "./source.ts";
|
|
6
6
|
|
|
7
7
|
const Timestamp = Schema.Number.check(Schema.isFinite(), Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(8_640_000_000_000_000));
|
|
8
8
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Clock, Context, Effect, Schema } from "effect";
|
|
2
2
|
import { defineService } from "@shivaedev/effect-service/define-service.ts";
|
|
3
|
+
import * as limits from "#browser/diagnostics/schema.ts";
|
|
3
4
|
import type { FleetHealth } from "./health.ts";
|
|
4
5
|
|
|
5
6
|
export class SourceFailure extends Schema.TaggedError<SourceFailure>()("SourceFailure", {
|
|
@@ -7,19 +8,11 @@ export class SourceFailure extends Schema.TaggedError<SourceFailure>()("SourceFa
|
|
|
7
8
|
message: Schema.String,
|
|
8
9
|
}) {}
|
|
9
10
|
|
|
10
|
-
export const UsageWindow =
|
|
11
|
-
resetsAt: Schema.NullOr(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(8_640_000_000_000))),
|
|
12
|
-
usedPercent: Schema.Number.check(Schema.isFinite(), Schema.isGreaterThanOrEqualTo(0)),
|
|
13
|
-
windowDurationMins: Schema.NullOr(Schema.Int.check(Schema.isGreaterThan(0))),
|
|
14
|
-
});
|
|
15
|
-
export type UsageWindow = typeof UsageWindow.Type;
|
|
16
|
-
export const CodexLimits = Schema.Struct({ primary: Schema.NullOr(UsageWindow), secondary: Schema.NullOr(UsageWindow) });
|
|
11
|
+
export const { CodexLimits, GithubLimits, GithubWindow, UsageWindow } = limits;
|
|
17
12
|
export type CodexLimits = typeof CodexLimits.Type;
|
|
18
|
-
const Count = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
|
|
19
|
-
export const GithubWindow = Schema.Struct({ limit: Count, remaining: Count, reset: Count.check(Schema.isLessThanOrEqualTo(8_640_000_000_000)) });
|
|
20
|
-
export type GithubWindow = typeof GithubWindow.Type;
|
|
21
|
-
export const GithubLimits = Schema.Struct({ core: GithubWindow, graphql: GithubWindow });
|
|
22
13
|
export type GithubLimits = typeof GithubLimits.Type;
|
|
14
|
+
export type GithubWindow = typeof GithubWindow.Type;
|
|
15
|
+
export type UsageWindow = typeof UsageWindow.Type;
|
|
23
16
|
export type Source<A> = Effect.Effect<A, SourceFailure>;
|
|
24
17
|
export interface Sources {
|
|
25
18
|
readonly codex: Source<CodexLimits>;
|
|
@@ -28,9 +21,7 @@ export interface Sources {
|
|
|
28
21
|
}
|
|
29
22
|
export class DiagnosticsSources extends Context.Service<DiagnosticsSources, Sources>()("WorkBoard/DiagnosticsSources") {}
|
|
30
23
|
|
|
31
|
-
export type Observation<A> =
|
|
32
|
-
| { readonly state: "ready"; readonly observedAt: number; readonly value: A }
|
|
33
|
-
| { readonly state: "not-configured" | "error"; readonly observedAt: number; readonly cause: string };
|
|
24
|
+
export type Observation<A> = limits.Observation<A>;
|
|
34
25
|
|
|
35
26
|
export const observe = Effect.fn("WorkBoard.observe")(function* <A>(source: Source<A>): Generator<Effect.Effect<unknown>, Observation<A>, never> {
|
|
36
27
|
const result = yield* Effect.result(source);
|
package/src/history/schema.ts
CHANGED
|
@@ -27,7 +27,22 @@ export const Baseline = Schema.Struct({
|
|
|
27
27
|
export type Baseline = typeof Baseline.Type;
|
|
28
28
|
|
|
29
29
|
export const HistoryInput = Schema.Struct({ action: Schema.Literals(["check", "compare", "observe"]), baseline: Schema.NullOr(Schema.String) });
|
|
30
|
+
const Source = Schema.Struct({ file: Schema.String, source: Schema.String });
|
|
31
|
+
export const HistoryComparison = Schema.Struct({
|
|
32
|
+
changes: Schema.Array(
|
|
33
|
+
Schema.Struct({
|
|
34
|
+
after: Schema.optional(Source),
|
|
35
|
+
before: Schema.optional(Source),
|
|
36
|
+
kind: Schema.Literals(["added", "removed", "changed"]),
|
|
37
|
+
reasons: Schema.Array(Schema.String),
|
|
38
|
+
}),
|
|
39
|
+
),
|
|
40
|
+
issues: Schema.Array(Schema.String),
|
|
41
|
+
recordedAt: Schema.String,
|
|
42
|
+
});
|
|
43
|
+
export type HistoryComparison = typeof HistoryComparison.Type;
|
|
30
44
|
export const HistoryOutput = Schema.Struct({
|
|
45
|
+
comparison: Schema.optional(HistoryComparison),
|
|
31
46
|
discardBaseline: Schema.Boolean,
|
|
32
47
|
html: Schema.String,
|
|
33
48
|
reason: Schema.String,
|
package/src/rpc/contract.ts
CHANGED
|
@@ -6,6 +6,9 @@ import { InternalServerError } from "@shivaedev/platform/errors/taxonomy.ts";
|
|
|
6
6
|
import { RequestTracing } from "@shivaedev/platform/rpc/middleware.ts";
|
|
7
7
|
import { Document } from "#browser/document/schema.ts";
|
|
8
8
|
import { Navigation } from "#browser/navigation/schema.ts";
|
|
9
|
+
import { ResultProjection } from "#browser/views/ResultProjection.ts";
|
|
10
|
+
import { DiagnosticsProjection, HandoffProjection, RespondProjection, StartProjection } from "#browser/views/remaining.ts";
|
|
11
|
+
import { BoardProjection, InboxProjection, OverviewProjection, WorkProjection } from "#browser/views/schema.ts";
|
|
9
12
|
import { HistoryInput, HistoryOutput } from "#history/schema.ts";
|
|
10
13
|
import { handoffContract } from "#rpc/handoffContract.ts";
|
|
11
14
|
import { responseContract } from "#rpc/responseContract.ts";
|
|
@@ -43,7 +46,6 @@ const PageUrl = Schema.String.check(
|
|
|
43
46
|
}
|
|
44
47
|
}),
|
|
45
48
|
);
|
|
46
|
-
const Page = Schema.Struct({ html: Schema.String, status: Schema.Number });
|
|
47
49
|
const Entry = Schema.Struct({
|
|
48
50
|
file: Schema.String,
|
|
49
51
|
href: Schema.String,
|
|
@@ -53,13 +55,50 @@ const Entry = Schema.Struct({
|
|
|
53
55
|
text: Schema.String,
|
|
54
56
|
title: Schema.String,
|
|
55
57
|
});
|
|
56
|
-
const ReadPage = query("page", { payload: { url: PageUrl }, reads: ({ url }) => pageKeys(url), rejections: { InternalServerError }, success: Page });
|
|
57
58
|
const ReadDocument = query("document", {
|
|
58
59
|
payload: { url: PageUrl },
|
|
59
60
|
reads: ({ url }) => [...pageKeys(url), index.list],
|
|
60
61
|
rejections: documentRejections,
|
|
61
62
|
success: Document,
|
|
62
63
|
});
|
|
64
|
+
const ReadBoard = query("board", {
|
|
65
|
+
payload: { url: PageUrl },
|
|
66
|
+
reads: ({ url }) => pageKeys(url),
|
|
67
|
+
rejections: documentRejections,
|
|
68
|
+
success: BoardProjection,
|
|
69
|
+
});
|
|
70
|
+
const ReadWork = query("work", {
|
|
71
|
+
payload: { url: PageUrl },
|
|
72
|
+
reads: () => [workspace.list, index.list],
|
|
73
|
+
rejections: documentRejections,
|
|
74
|
+
success: WorkProjection,
|
|
75
|
+
});
|
|
76
|
+
const ReadOverview = query("overview", {
|
|
77
|
+
reads: () => [workspace.list, index.list],
|
|
78
|
+
rejections: { InternalServerError },
|
|
79
|
+
success: OverviewProjection,
|
|
80
|
+
});
|
|
81
|
+
const ReadInbox = query("inbox", { reads: () => [workspace.list, index.list], rejections: { InternalServerError }, success: InboxProjection });
|
|
82
|
+
const ReadDiagnostics = query("diagnostics", { reads: () => [workspace.list], rejections: { InternalServerError }, success: DiagnosticsProjection });
|
|
83
|
+
const ReadStart = query("start", { reads: () => [workspace.list, index.list], rejections: { InternalServerError }, success: StartProjection });
|
|
84
|
+
const ReadRespond = query("respond", {
|
|
85
|
+
payload: { url: PageUrl },
|
|
86
|
+
reads: ({ url }) => [...pageKeys(url), index.list],
|
|
87
|
+
rejections: documentRejections,
|
|
88
|
+
success: RespondProjection,
|
|
89
|
+
});
|
|
90
|
+
const ReadHandoff = query("handoff", {
|
|
91
|
+
payload: { url: PageUrl },
|
|
92
|
+
reads: () => [workspace.list, index.list],
|
|
93
|
+
rejections: documentRejections,
|
|
94
|
+
success: HandoffProjection,
|
|
95
|
+
});
|
|
96
|
+
const ReadResult = query("result", {
|
|
97
|
+
payload: { url: PageUrl },
|
|
98
|
+
reads: () => [workspace.list, index.list],
|
|
99
|
+
rejections: documentRejections,
|
|
100
|
+
success: ResultProjection,
|
|
101
|
+
});
|
|
63
102
|
const ReadNavigation = query("navigation", {
|
|
64
103
|
payload: { current: Schema.String.check(Schema.isMaxLength(8192)) },
|
|
65
104
|
reads: () => [workspace.list, navigation.list],
|
|
@@ -85,7 +124,22 @@ const ReadWatcher = query("watcher", {
|
|
|
85
124
|
});
|
|
86
125
|
export const Subscribe = stream("subscribe", { reads: () => [workspace.list], rejections: { InternalServerError }, success: LiveHint });
|
|
87
126
|
export const workContract = contract("work-board", {
|
|
88
|
-
queries: [
|
|
127
|
+
queries: [
|
|
128
|
+
ReadDocument,
|
|
129
|
+
ReadBoard,
|
|
130
|
+
ReadWork,
|
|
131
|
+
ReadOverview,
|
|
132
|
+
ReadInbox,
|
|
133
|
+
ReadDiagnostics,
|
|
134
|
+
ReadStart,
|
|
135
|
+
ReadRespond,
|
|
136
|
+
ReadHandoff,
|
|
137
|
+
ReadResult,
|
|
138
|
+
ReadNavigation,
|
|
139
|
+
ReadSearch,
|
|
140
|
+
ReadHistory,
|
|
141
|
+
ReadWatcher,
|
|
142
|
+
],
|
|
89
143
|
streams: [Subscribe],
|
|
90
144
|
}).middleware(RequestTracing);
|
|
91
145
|
export const workRpcs = workContract.merge(responseContract).merge(handoffContract);
|
package/src/server/board.ts
CHANGED
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HttpRouter
|
|
1
|
+
import { Effect, type FileSystem, Layer, type Path, type PlatformError } from "effect";
|
|
2
|
+
import { HttpRouter } from "effect/http";
|
|
3
|
+
import { RpcSerialization, RpcServer } from "effect/rpc";
|
|
3
4
|
import type { InternalServerError } from "@shivaedev/platform/errors/taxonomy.ts";
|
|
4
|
-
import {
|
|
5
|
-
import { Diagnostics, DiagnosticsSources } from "#diagnostics/source.ts";
|
|
5
|
+
import { localRpcGuard } from "@shivaedev/platform/rpc-server/local.ts";
|
|
6
6
|
import type { RenderFailed } from "#render/failed.ts";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { handoffPage } from "#server/handoffs/page.ts";
|
|
14
|
-
import type { HandoffsService } from "#server/handoffs/Service.ts";
|
|
15
|
-
import { ASSET_HANDLERS, checkBrowserAssets, MERMAID_ROUTE, type MermaidMissing, mermaidFile, mermaidRoot } from "#server/http/assets.ts";
|
|
16
|
-
import { attachment } from "#server/http/attachment.ts";
|
|
17
|
-
import { changesPage } from "#server/http/changesPage.ts";
|
|
18
|
-
import { identity } from "#server/http/identity.ts";
|
|
19
|
-
import { inbox } from "#server/http/inbox.ts";
|
|
20
|
-
import { overview } from "#server/http/overview.ts";
|
|
21
|
-
import { page } from "#server/http/page.ts";
|
|
22
|
-
import { readPage } from "#server/http/readPage.ts";
|
|
23
|
-
import { start } from "#server/http/start.ts";
|
|
24
|
-
import { work } from "#server/http/work.ts";
|
|
7
|
+
import { workRpcs } from "#rpc/contract.ts";
|
|
8
|
+
import { boardRuntime } from "#server/boardRuntime.ts";
|
|
9
|
+
import type { HomeMissing } from "#server/files/home.ts";
|
|
10
|
+
import type { MermaidMissing } from "#server/http/assets.ts";
|
|
11
|
+
import { boardRoutes } from "#server/http/boardRoutes.ts";
|
|
12
|
+
import { RPC_PATH, rpcPolicy } from "#server/http/rpcPolicy.ts";
|
|
25
13
|
import { Highlighter } from "#server/render/Highlighter.ts";
|
|
26
|
-
import { responsePage } from "#server/responses/page.ts";
|
|
27
|
-
import type { Responses } from "#server/responses/service.ts";
|
|
28
|
-
import { resultPage } from "#server/results/page.ts";
|
|
29
|
-
import { server } from "#server/rpc/transport.ts";
|
|
30
|
-
import { searchSnapshot } from "#server/search/snapshot.ts";
|
|
31
14
|
|
|
32
15
|
export interface BoardOptions {
|
|
33
16
|
readonly fleetPort?: number;
|
|
@@ -37,104 +20,6 @@ export interface BoardOptions {
|
|
|
37
20
|
readonly root: string;
|
|
38
21
|
}
|
|
39
22
|
|
|
40
|
-
type Services = Highlighter | Responses | HandoffsService | Diagnostics | FileSystem.FileSystem | Path.Path;
|
|
41
|
-
type Handler<E> = (request: HttpServerRequest.HttpServerRequest) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, Services | Scope.Scope>;
|
|
42
|
-
|
|
43
|
-
function routes(options: BoardOptions) {
|
|
44
|
-
return HttpRouter.use((router) =>
|
|
45
|
-
Effect.gen(function* () {
|
|
46
|
-
const home = yield* homeIn(options.root, options.home);
|
|
47
|
-
const mermaid = yield* mermaidRoot();
|
|
48
|
-
yield* checkBrowserAssets();
|
|
49
|
-
const changes = yield* watchChanges(options.root);
|
|
50
|
-
const platform = (yield* Effect.context<Highlighter | FileSystem.FileSystem | Path.Path>()).pipe(
|
|
51
|
-
Context.pick(Highlighter, FileSystem.FileSystem, Path.Path),
|
|
52
|
-
);
|
|
53
|
-
const index = yield* searchSnapshot(options.root, home, changes, options.maintainer);
|
|
54
|
-
const provided = yield* Effect.serviceOption(DiagnosticsSources);
|
|
55
|
-
const services = yield* Layer.build(
|
|
56
|
-
boardServices(
|
|
57
|
-
{ changes, enabled: options.responses === true, index: Effect.provideContext(index, platform), root: options.root },
|
|
58
|
-
provided._tag === "Some" ? { _tag: "Sources", sources: provided.value } : { _tag: "Read", read: daemonDiagnostics(options.fleetPort) },
|
|
59
|
-
),
|
|
60
|
-
);
|
|
61
|
-
const context = Context.merge(platform, services);
|
|
62
|
-
function serve<E>(route: HttpRouter.PathInput, handler: Handler<E>, method: "GET" | "POST" = "GET") {
|
|
63
|
-
return router.add(
|
|
64
|
-
method,
|
|
65
|
-
route,
|
|
66
|
-
loopbackOnly((request) => Effect.provideContext(handler(request), context)),
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
yield* serve("/_board/attachment/*", attachment(options.root, changes.realRoot));
|
|
70
|
-
const healthPage = diagnosticsPage(
|
|
71
|
-
Effect.flatMap(Diagnostics, (service) => service.read()).pipe(Effect.provideContext(context)),
|
|
72
|
-
changes,
|
|
73
|
-
home,
|
|
74
|
-
index,
|
|
75
|
-
);
|
|
76
|
-
yield* serve("/_board/diagnostics", () => healthPage);
|
|
77
|
-
const inboxPage = inbox(index, changes, home);
|
|
78
|
-
yield* serve("/_board/inbox", inboxPage);
|
|
79
|
-
const startPage = start(changes, home, index);
|
|
80
|
-
yield* serve("/_board/start", startPage);
|
|
81
|
-
const workPage = work(index, changes, home);
|
|
82
|
-
const result = resultPage(index, changes, home);
|
|
83
|
-
yield* serve("/_board/result", result);
|
|
84
|
-
const overviewPage = overview(index, changes, home);
|
|
85
|
-
const historyPage = changesPage(changes, home, index);
|
|
86
|
-
yield* serve("/_board/work", workPage);
|
|
87
|
-
yield* serve("/_board/overview", overviewPage);
|
|
88
|
-
yield* serve("/_board/changes", historyPage);
|
|
89
|
-
for (const [route, asset] of ASSET_HANDLERS) {
|
|
90
|
-
yield* serve(route, asset);
|
|
91
|
-
}
|
|
92
|
-
yield* serve(MERMAID_ROUTE, mermaidFile(mermaid));
|
|
93
|
-
const replyPage = responsePage(changes, home, options.responses === true, index);
|
|
94
|
-
yield* serve("/_board/respond", replyPage);
|
|
95
|
-
const handoff = handoffPage(changes, home, options.responses === true, index);
|
|
96
|
-
yield* serve("/_board/handoff", handoff);
|
|
97
|
-
const pages = page({ home, root: options.root, writable: options.responses === true }, changes, index);
|
|
98
|
-
const items = identity(index, pages, changes, home);
|
|
99
|
-
yield* serve("/_board/item/*", items);
|
|
100
|
-
const reading = readPage<PlatformError.PlatformError, Services>(
|
|
101
|
-
{
|
|
102
|
-
"/_board/changes": () => historyPage(),
|
|
103
|
-
"/_board/diagnostics": () => healthPage,
|
|
104
|
-
"/_board/handoff": handoff,
|
|
105
|
-
"/_board/inbox": () => inboxPage(),
|
|
106
|
-
"/_board/overview": () => overviewPage(),
|
|
107
|
-
"/_board/respond": replyPage,
|
|
108
|
-
"/_board/result": result,
|
|
109
|
-
"/_board/start": () => startPage(),
|
|
110
|
-
"/_board/work": workPage,
|
|
111
|
-
},
|
|
112
|
-
(request) => (new URL(request.url, "http://127.0.0.1").pathname.startsWith("/_board/item/") ? items(request) : pages(request)),
|
|
113
|
-
);
|
|
114
|
-
const rpc = yield* server({
|
|
115
|
-
changes,
|
|
116
|
-
document: (url) =>
|
|
117
|
-
Effect.provideContext(
|
|
118
|
-
readDocument({
|
|
119
|
-
changes,
|
|
120
|
-
home,
|
|
121
|
-
index: Effect.provideContext(index, context),
|
|
122
|
-
root: options.root,
|
|
123
|
-
writable: options.responses === true,
|
|
124
|
-
})(url),
|
|
125
|
-
context,
|
|
126
|
-
),
|
|
127
|
-
home,
|
|
128
|
-
index: Effect.provideContext(index, context),
|
|
129
|
-
page: (url) => Effect.provideContext(reading(url), context),
|
|
130
|
-
}).pipe(Effect.provideContext(context));
|
|
131
|
-
yield* serve("/_board/rpc", (request) => rpc.pipe(Effect.provideService(HttpServerRequest.HttpServerRequest, request)), "POST");
|
|
132
|
-
yield* serve("/", pages);
|
|
133
|
-
yield* serve("/*", pages);
|
|
134
|
-
}),
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
23
|
type BoardError = InternalServerError | HomeMissing | MermaidMissing | PlatformError.PlatformError | RenderFailed;
|
|
139
24
|
type BoardServices =
|
|
140
25
|
| FileSystem.FileSystem
|
|
@@ -143,5 +28,18 @@ type BoardServices =
|
|
|
143
28
|
| HttpRouter.Request<"Error", InternalServerError | PlatformError.PlatformError>;
|
|
144
29
|
|
|
145
30
|
export function boardLayer(options: BoardOptions): Layer.Layer<never, BoardError, BoardServices> {
|
|
146
|
-
return
|
|
31
|
+
return Layer.unwrap(
|
|
32
|
+
Effect.gen(function* () {
|
|
33
|
+
const runtime = yield* boardRuntime(options);
|
|
34
|
+
const rpc = RpcServer.layerHttp({ group: workRpcs, path: RPC_PATH, protocol: "http" }).pipe(
|
|
35
|
+
Layer.provide([
|
|
36
|
+
runtime.rpcHandlers,
|
|
37
|
+
RpcSerialization.layerNdjson,
|
|
38
|
+
HttpRouter.middleware((http) => localRpcGuard(http).pipe(Effect.provideService(RpcSerialization.RpcSerialization, RpcSerialization.ndjson)))
|
|
39
|
+
.layer,
|
|
40
|
+
]),
|
|
41
|
+
);
|
|
42
|
+
return Layer.mergeAll(boardRoutes(options, runtime), rpc, rpcPolicy);
|
|
43
|
+
}),
|
|
44
|
+
).pipe(Layer.provide(Highlighter.layer));
|
|
147
45
|
}
|