synapse-react-client 4.0.36 → 4.0.37
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/SWC.index.js +1 -1
- package/dist/aridhia-queries/index.js +11 -11
- package/dist/aridhia-queries/useAridhiaQuery.d.ts +1 -0
- package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -1
- package/dist/aridhia-queries/useAridhiaQuery.js +24 -17
- package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js +15 -15
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.svg +13 -13
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +124 -117
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +33 -32
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js +39 -18
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts +32 -0
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js +285 -0
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts +4 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.js +17 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts +27 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.js +96 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts +28 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.js +128 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts +4 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.js +17 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts +13 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js +23 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +11 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +47 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts +16 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js +33 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts +32 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.js +44 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.js.map +1 -0
- package/dist/components/Aridhia/FairLabelField.d.ts +8 -0
- package/dist/components/Aridhia/FairLabelField.d.ts.map +1 -0
- package/dist/components/Aridhia/FairLabelField.js +13 -0
- package/dist/components/Aridhia/FairLabelField.js.map +1 -0
- package/dist/components/Aridhia/fairFormToRjsf.d.ts +36 -0
- package/dist/components/Aridhia/fairFormToRjsf.d.ts.map +1 -0
- package/dist/components/Aridhia/fairFormToRjsf.js +137 -0
- package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -0
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.d.ts.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +2 -2
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js +2 -2
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +3 -3
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js +2 -2
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +121 -117
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.d.ts +21 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js +73 -29
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.d.ts +31 -0
- package/dist/components/DataGrid/columns/NumberColumn.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/NumberColumn.js +27 -0
- package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsButton.js +17 -16
- package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts +2 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +104 -65
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +55 -51
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js +9 -8
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js.map +1 -1
- package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts +10 -5
- package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts.map +1 -1
- package/dist/components/DatasetHosting/DatasetDownloadButton.js +66 -74
- package/dist/components/DatasetHosting/DatasetDownloadButton.js.map +1 -1
- package/dist/components/DatasetHosting/DatasetHosting.d.ts +6 -0
- package/dist/components/DatasetHosting/DatasetHosting.d.ts.map +1 -1
- package/dist/components/DatasetHosting/DatasetHosting.js +6 -0
- package/dist/components/DatasetHosting/DatasetHosting.js.map +1 -1
- package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts +15 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts.map +1 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.js +23 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.js.map +1 -0
- package/dist/components/DatasetHosting/index.d.ts +2 -0
- package/dist/components/DatasetHosting/index.d.ts.map +1 -1
- package/dist/components/DatasetHosting/index.js +2 -1
- package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.d.ts.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.d.ts.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +176 -170
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/JsonSchemaForm/CustomFormContext.d.ts +9 -0
- package/dist/components/JsonSchemaForm/CustomFormContext.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js +2 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js +6 -6
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts +9 -0
- package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts.map +1 -0
- package/dist/components/JsonSchemaForm/widgets/DateWidget.js +23 -0
- package/dist/components/JsonSchemaForm/widgets/DateWidget.js.map +1 -0
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.css +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts +3 -2
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js +10 -12
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js +8 -7
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.scss +12 -2
- package/dist/components/Markdown/MarkdownEditor.js +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +46 -46
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.js +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +27 -25
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts +0 -9
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js +23 -31
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +5 -4
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js +6 -5
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +2 -0
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +18 -13
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/StatisticsPlot.d.ts.map +1 -1
- package/dist/components/StatisticsPlot.js +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.css +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js +9 -9
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.scss +14 -0
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts +4 -0
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +71 -69
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +4 -0
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js +14 -13
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js +4 -4
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.d.ts.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.d.ts.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +172 -63
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts +3 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js +2 -2
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js +10 -8
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +74 -43
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js +2 -2
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +5 -5
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js +2 -2
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/index.js +113 -112
- package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/menu/DropdownMenu.js +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.d.ts +8 -0
- package/dist/components/styled/LeftRightPanel.d.ts.map +1 -1
- package/dist/components/styled/LeftRightPanel.js +10 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/index.js +174 -173
- package/dist/index.js.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +73 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.js +119 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js +4 -4
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers.js +72 -69
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/style/components/_terms-and-conditions.scss +25 -3
- package/dist/style/main.css +1 -1
- package/dist/testutils/RjsfFormTestUtils.js +12 -0
- package/dist/testutils/RjsfFormTestUtils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +1 -0
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/queryUtils.js +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +22 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.js +31 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -0
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { HttpResponse as e, http as t } from "msw";
|
|
2
|
+
//#region src/mocks/msw/handlers/aridhiaHandlers.ts
|
|
3
|
+
var n = "https://mock-gateway.test", r = "sdtm_als1003", i = {
|
|
4
|
+
subject_token_type: "urn:ietf:params:oauth:token-type:access_token",
|
|
5
|
+
subject_token_issuer: "sage-prod"
|
|
6
|
+
}, a = {
|
|
7
|
+
access_token: "mock-aridhia-token",
|
|
8
|
+
expires_in: 300
|
|
9
|
+
}, o = [{
|
|
10
|
+
code: "dict_a",
|
|
11
|
+
name: "Dictionary A"
|
|
12
|
+
}, {
|
|
13
|
+
code: "dict_b",
|
|
14
|
+
name: "Dictionary B"
|
|
15
|
+
}], s = [{
|
|
16
|
+
value: "uksouth",
|
|
17
|
+
description: "UK South"
|
|
18
|
+
}], c = [{
|
|
19
|
+
uuid: "ws-uuid-1",
|
|
20
|
+
name: "My Workspace",
|
|
21
|
+
location: "uksouth",
|
|
22
|
+
url: "https://example.aridhia.com/workspaces/1"
|
|
23
|
+
}], l = {
|
|
24
|
+
title: "SDTM ALS Dataset",
|
|
25
|
+
publisher: { name: "C-Path" },
|
|
26
|
+
description: "A dataset"
|
|
27
|
+
}, u = [{
|
|
28
|
+
name: "name",
|
|
29
|
+
type: "string",
|
|
30
|
+
label: "Your name",
|
|
31
|
+
validation: { required: !0 }
|
|
32
|
+
}, {
|
|
33
|
+
name: "email",
|
|
34
|
+
type: "string",
|
|
35
|
+
label: "Email address",
|
|
36
|
+
validation: { required: !0 }
|
|
37
|
+
}], d = [{
|
|
38
|
+
name: "project_name",
|
|
39
|
+
type: "string",
|
|
40
|
+
label: "Project name",
|
|
41
|
+
validation: { required: !0 }
|
|
42
|
+
}], f = [{
|
|
43
|
+
name: "workspace_name",
|
|
44
|
+
type: "string",
|
|
45
|
+
label: "Workspace name",
|
|
46
|
+
validation: { required: !0 }
|
|
47
|
+
}];
|
|
48
|
+
function p(r = a, i = 200) {
|
|
49
|
+
return t.post(`${n}/authenticate`, () => e.json(r, { status: i }));
|
|
50
|
+
}
|
|
51
|
+
function m(r = []) {
|
|
52
|
+
return t.get(`${n}/fair/requests/`, () => e.json({
|
|
53
|
+
items: r,
|
|
54
|
+
paging: {
|
|
55
|
+
page: 1,
|
|
56
|
+
pageSize: 100,
|
|
57
|
+
total: r.length
|
|
58
|
+
}
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
function h(i = {}) {
|
|
62
|
+
return t.get(`${n}/fair/datasets/${r}/settings`, () => e.json({
|
|
63
|
+
workflow_key: "rdca_access_request",
|
|
64
|
+
allow_clear: !0,
|
|
65
|
+
allow_pseudonymised: !1,
|
|
66
|
+
allow_manual: !1,
|
|
67
|
+
...i
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
function g(r = {}) {
|
|
71
|
+
let { about: i = u, project: a = d } = r;
|
|
72
|
+
return t.get(`${n}/fair/workflows/rdca_access_request`, () => e.json({
|
|
73
|
+
code: "rdca_access_request",
|
|
74
|
+
fields: {
|
|
75
|
+
about: i,
|
|
76
|
+
project: a
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
function _(r = {
|
|
81
|
+
name: "Request a workspace",
|
|
82
|
+
sections: { workspace: {
|
|
83
|
+
label: "Workspace details",
|
|
84
|
+
fields: f
|
|
85
|
+
} }
|
|
86
|
+
}) {
|
|
87
|
+
return t.get(`${n}/fair/workspaces-forms/workspace_request`, () => e.json(r));
|
|
88
|
+
}
|
|
89
|
+
function v(i = o) {
|
|
90
|
+
return t.get(`${n}/fair/datasets/${r}/dictionaries/`, () => e.json({ items: i }));
|
|
91
|
+
}
|
|
92
|
+
function y(i = s) {
|
|
93
|
+
return t.get(`${n}/fair/datasets/${r}/workspaces-locations`, () => e.json({ items: i }));
|
|
94
|
+
}
|
|
95
|
+
function b(i = c) {
|
|
96
|
+
return t.get(`${n}/fair/datasets/${r}/workspaces`, () => e.json({ items: i }));
|
|
97
|
+
}
|
|
98
|
+
function x(i = l) {
|
|
99
|
+
return t.get(`${n}/fair/datasets/${r}/catalogue`, () => e.json(i));
|
|
100
|
+
}
|
|
101
|
+
function S(e) {
|
|
102
|
+
return t.post(`${n}/fair/requests/`, async ({ request: t }) => e(await t.json()));
|
|
103
|
+
}
|
|
104
|
+
function C() {
|
|
105
|
+
return [
|
|
106
|
+
p(),
|
|
107
|
+
h(),
|
|
108
|
+
g(),
|
|
109
|
+
_(),
|
|
110
|
+
v(),
|
|
111
|
+
y(),
|
|
112
|
+
b(),
|
|
113
|
+
x()
|
|
114
|
+
];
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { u as MOCK_ARIDHIA_ABOUT_FIELDS, a as MOCK_ARIDHIA_ACCESS_TOKEN_RESPONSE, i as MOCK_ARIDHIA_AUTHENTICATION_REQUEST, l as MOCK_ARIDHIA_CATALOGUE, r as MOCK_ARIDHIA_DATASET_CODE, o as MOCK_ARIDHIA_DICTIONARIES, n as MOCK_ARIDHIA_GATEWAY, d as MOCK_ARIDHIA_PROJECT_FIELDS, c as MOCK_ARIDHIA_WORKSPACES, f as MOCK_ARIDHIA_WORKSPACE_FORM_FIELDS, s as MOCK_ARIDHIA_WORKSPACE_LOCATIONS, p as getAridhiaAuthenticateHandler, x as getAridhiaCatalogueHandler, C as getAridhiaDarWizardHandlers, h as getAridhiaDatasetSettingsHandler, v as getAridhiaDictionariesHandler, m as getAridhiaRequestsHandler, S as getAridhiaSubmitRequestHandler, g as getAridhiaWorkflowHandler, y as getAridhiaWorkspaceLocationsHandler, _ as getAridhiaWorkspaceRequestFormHandler, b as getAridhiaWorkspacesHandler };
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=aridhiaHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aridhiaHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/aridhiaHandlers.ts"],"sourcesContent":["import { FairField } from '@/aridhia-queries/FairFormPayload'\nimport { http, HttpHandler, HttpResponse, JsonBodyType } from 'msw'\n\nexport const MOCK_ARIDHIA_GATEWAY = 'https://mock-gateway.test'\nexport const MOCK_ARIDHIA_DATASET_CODE = 'sdtm_als1003'\n\nexport const MOCK_ARIDHIA_AUTHENTICATION_REQUEST = {\n subject_token_type: 'urn:ietf:params:oauth:token-type:access_token',\n subject_token_issuer: 'sage-prod',\n}\n\nexport const MOCK_ARIDHIA_ACCESS_TOKEN_RESPONSE = {\n access_token: 'mock-aridhia-token',\n expires_in: 300,\n}\n\nexport const MOCK_ARIDHIA_DICTIONARIES = [\n { code: 'dict_a', name: 'Dictionary A' },\n { code: 'dict_b', name: 'Dictionary B' },\n]\n\nexport const MOCK_ARIDHIA_WORKSPACE_LOCATIONS = [\n { value: 'uksouth', description: 'UK South' },\n]\n\nexport const MOCK_ARIDHIA_WORKSPACES = [\n {\n uuid: 'ws-uuid-1',\n name: 'My Workspace',\n location: 'uksouth',\n url: 'https://example.aridhia.com/workspaces/1',\n },\n]\n\nexport const MOCK_ARIDHIA_CATALOGUE = {\n title: 'SDTM ALS Dataset',\n publisher: { name: 'C-Path' },\n description: 'A dataset',\n}\n\n/**\n * Every FAIR form field carries a `label`, as real gateway payloads do, so that UI built from\n * these fixtures is reachable by its accessible name.\n */\nexport const MOCK_ARIDHIA_ABOUT_FIELDS: FairField[] = [\n {\n name: 'name',\n type: 'string',\n label: 'Your name',\n validation: { required: true },\n },\n {\n name: 'email',\n type: 'string',\n label: 'Email address',\n validation: { required: true },\n },\n]\n\nexport const MOCK_ARIDHIA_PROJECT_FIELDS: FairField[] = [\n {\n name: 'project_name',\n type: 'string',\n label: 'Project name',\n validation: { required: true },\n },\n]\n\nexport const MOCK_ARIDHIA_WORKSPACE_FORM_FIELDS: FairField[] = [\n {\n name: 'workspace_name',\n type: 'string',\n label: 'Workspace name',\n validation: { required: true },\n },\n]\n\nexport function getAridhiaAuthenticateHandler(\n response: object = MOCK_ARIDHIA_ACCESS_TOKEN_RESPONSE,\n status = 200,\n): HttpHandler {\n return http.post(`${MOCK_ARIDHIA_GATEWAY}/authenticate`, () =>\n HttpResponse.json(response, { status }),\n )\n}\n\nexport function getAridhiaRequestsHandler(items: unknown[] = []): HttpHandler {\n return http.get(`${MOCK_ARIDHIA_GATEWAY}/fair/requests/`, () =>\n HttpResponse.json({\n items,\n paging: { page: 1, pageSize: 100, total: items.length },\n }),\n )\n}\n\nexport function getAridhiaDatasetSettingsHandler(\n overrides: Partial<{\n allow_clear: boolean\n allow_pseudonymised: boolean\n allow_manual: boolean\n }> = {},\n): HttpHandler {\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/datasets/${MOCK_ARIDHIA_DATASET_CODE}/settings`,\n () =>\n HttpResponse.json({\n workflow_key: 'rdca_access_request',\n allow_clear: true,\n allow_pseudonymised: false,\n allow_manual: false,\n ...overrides,\n }),\n )\n}\n\nexport function getAridhiaWorkflowHandler(\n fields: { about?: FairField[]; project?: FairField[] } = {},\n): HttpHandler {\n const {\n about = MOCK_ARIDHIA_ABOUT_FIELDS,\n project = MOCK_ARIDHIA_PROJECT_FIELDS,\n } = fields\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/workflows/rdca_access_request`,\n () =>\n HttpResponse.json({\n code: 'rdca_access_request',\n fields: { about, project },\n }),\n )\n}\n\n/**\n * `body` defaults to the shape confirmed against a real gateway capture: `GET\n * /workspaces-forms/{code}` returns the form object directly, not wrapped in the `items`\n * envelope its OpenAPI spec documents. See `useGetAridhiaWorkspaceRequestForm`. Pass a body to\n * exercise a different payload shape or field set.\n */\nexport function getAridhiaWorkspaceRequestFormHandler(\n body: JsonBodyType = {\n name: 'Request a workspace',\n sections: {\n workspace: {\n label: 'Workspace details',\n fields: MOCK_ARIDHIA_WORKSPACE_FORM_FIELDS,\n },\n },\n },\n): HttpHandler {\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/workspaces-forms/workspace_request`,\n () => HttpResponse.json(body),\n )\n}\n\nexport function getAridhiaDictionariesHandler(\n items: unknown[] = MOCK_ARIDHIA_DICTIONARIES,\n): HttpHandler {\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/datasets/${MOCK_ARIDHIA_DATASET_CODE}/dictionaries/`,\n () => HttpResponse.json({ items }),\n )\n}\n\nexport function getAridhiaWorkspaceLocationsHandler(\n items: unknown[] = MOCK_ARIDHIA_WORKSPACE_LOCATIONS,\n): HttpHandler {\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/datasets/${MOCK_ARIDHIA_DATASET_CODE}/workspaces-locations`,\n () => HttpResponse.json({ items }),\n )\n}\n\nexport function getAridhiaWorkspacesHandler(\n items: unknown[] = MOCK_ARIDHIA_WORKSPACES,\n): HttpHandler {\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/datasets/${MOCK_ARIDHIA_DATASET_CODE}/workspaces`,\n () => HttpResponse.json({ items }),\n )\n}\n\nexport function getAridhiaCatalogueHandler(\n body: JsonBodyType = MOCK_ARIDHIA_CATALOGUE,\n): HttpHandler {\n return http.get(\n `${MOCK_ARIDHIA_GATEWAY}/fair/datasets/${MOCK_ARIDHIA_DATASET_CODE}/catalogue`,\n () => HttpResponse.json(body),\n )\n}\n\n/**\n * `respond` receives the submitted body, so a test can both assert on it and choose the\n * response (success, or a failure to exercise the retry path).\n */\nexport function getAridhiaSubmitRequestHandler<TBody = unknown>(\n respond: (body: TBody) => Response,\n): HttpHandler {\n return http.post(\n `${MOCK_ARIDHIA_GATEWAY}/fair/requests/`,\n async ({ request }) => respond((await request.json()) as TBody),\n )\n}\n\n/**\n * Everything the DAR wizard fetches to reach its first step and run through to submission,\n * excluding the submission itself — see `getAridhiaSubmitRequestHandler`.\n */\nexport function getAridhiaDarWizardHandlers(): HttpHandler[] {\n return [\n getAridhiaAuthenticateHandler(),\n getAridhiaDatasetSettingsHandler(),\n getAridhiaWorkflowHandler(),\n getAridhiaWorkspaceRequestFormHandler(),\n getAridhiaDictionariesHandler(),\n getAridhiaWorkspaceLocationsHandler(),\n getAridhiaWorkspacesHandler(),\n getAridhiaCatalogueHandler(),\n ]\n}\n"],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ function g(s) {
|
|
|
19
19
|
return [
|
|
20
20
|
p.get(`${s}${e(":id")}`, ({ params: e }) => {
|
|
21
21
|
let t = h.getOneByField("accessRequirementId", e.id);
|
|
22
|
-
if (t
|
|
22
|
+
if (t?.requestId) {
|
|
23
23
|
let e = m.getOneById(t.requestId);
|
|
24
24
|
if (e) return f.json(e, { status: 200 });
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataAccessRequestHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"sourcesContent":["import {\n ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE,\n DATA_ACCESS_REQUEST,\n DATA_ACCESS_REQUEST_SIGNATURE,\n DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID,\n DATA_ACCESS_REQUEST_SIGNATURE_QUOTA,\n DATA_ACCESS_REQUEST_SIGNATURE_STATUS,\n DATA_ACCESS_REQUEST_SUBMISSION,\n} from '@/utils/APIConstants'\nimport { Renewal, Request } from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport {\n MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID,\n mockManagedACTAccessRequirement,\n} from '../../accessRequirement/mockAccessRequirements'\nimport {\n MOCK_DATA_ACCESS_RENEWAL,\n MOCK_DATA_ACCESS_REQUEST,\n} from '../../dataaccess/MockDataAccessRequest'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\nimport { EDucSignatureStatus } from '@sage-bionetworks/synapse-client'\n\nconst mockDataAccessRequestService = new BasicMockedCrudService<\n Request | Renewal,\n 'id'\n>({\n idField: 'id',\n autoGenerateId: true,\n initialData: [MOCK_DATA_ACCESS_REQUEST, MOCK_DATA_ACCESS_RENEWAL],\n})\n\nconst mockMapARToDataAccessRequestService = new BasicMockedCrudService<{\n accessRequirementId: string\n requestId: string\n}>({\n initialData: [\n {\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n requestId: MOCK_DATA_ACCESS_REQUEST.id,\n },\n {\n accessRequirementId: String(MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID),\n requestId: MOCK_DATA_ACCESS_RENEWAL.id,\n },\n ],\n})\n\nexport function getDataAccessRequestHandlers(backendOrigin: string) {\n return [\n http.get(\n `${backendOrigin}${ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE(\n ':id',\n )}`,\n ({ params }) => {\n const response = mockMapARToDataAccessRequestService.getOneByField(\n 'accessRequirementId',\n params.id as string,\n )\n if (response
|
|
1
|
+
{"version":3,"file":"dataAccessRequestHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"sourcesContent":["import {\n ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE,\n DATA_ACCESS_REQUEST,\n DATA_ACCESS_REQUEST_SIGNATURE,\n DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID,\n DATA_ACCESS_REQUEST_SIGNATURE_QUOTA,\n DATA_ACCESS_REQUEST_SIGNATURE_STATUS,\n DATA_ACCESS_REQUEST_SUBMISSION,\n} from '@/utils/APIConstants'\nimport { Renewal, Request } from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport {\n MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID,\n mockManagedACTAccessRequirement,\n} from '../../accessRequirement/mockAccessRequirements'\nimport {\n MOCK_DATA_ACCESS_RENEWAL,\n MOCK_DATA_ACCESS_REQUEST,\n} from '../../dataaccess/MockDataAccessRequest'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\nimport { EDucSignatureStatus } from '@sage-bionetworks/synapse-client'\n\nconst mockDataAccessRequestService = new BasicMockedCrudService<\n Request | Renewal,\n 'id'\n>({\n idField: 'id',\n autoGenerateId: true,\n initialData: [MOCK_DATA_ACCESS_REQUEST, MOCK_DATA_ACCESS_RENEWAL],\n})\n\nconst mockMapARToDataAccessRequestService = new BasicMockedCrudService<{\n accessRequirementId: string\n requestId: string\n}>({\n initialData: [\n {\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n requestId: MOCK_DATA_ACCESS_REQUEST.id,\n },\n {\n accessRequirementId: String(MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID),\n requestId: MOCK_DATA_ACCESS_RENEWAL.id,\n },\n ],\n})\n\nexport function getDataAccessRequestHandlers(backendOrigin: string) {\n return [\n http.get(\n `${backendOrigin}${ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE(\n ':id',\n )}`,\n ({ params }) => {\n const response = mockMapARToDataAccessRequestService.getOneByField(\n 'accessRequirementId',\n params.id as string,\n )\n if (response?.requestId) {\n const dataAccessRequest = mockDataAccessRequestService.getOneById(\n response.requestId,\n )\n if (dataAccessRequest) {\n return HttpResponse.json(dataAccessRequest, { status: 200 })\n }\n }\n return HttpResponse.json(\n {\n message: `MSW: Request or Renewal not found for access requirement ID: ${params.id}`,\n },\n { status: 404 },\n )\n },\n ),\n http.post<never, Request | Renewal>(\n `${backendOrigin}${DATA_ACCESS_REQUEST}`,\n async ({ request }) => {\n const resp = await request.json()\n const existingRequest = resp.id\n ? mockDataAccessRequestService.getOneById(resp.id)\n : null\n\n let updated\n if (existingRequest) {\n updated = mockDataAccessRequestService.update(resp.id, resp)\n } else {\n updated = mockDataAccessRequestService.create(resp)\n }\n\n return HttpResponse.json(updated, { status: 201 })\n },\n ),\n\n http.post(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SUBMISSION(':id')}`,\n () => {\n return HttpResponse.json({}, { status: 201 })\n },\n ),\n\n http.post(`${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE(':id')}`, () => {\n return HttpResponse.json({ quota: 5, remaining: 4 }, { status: 200 })\n }),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_STATUS(':id')}`,\n () => {\n return HttpResponse.json<EDucSignatureStatus>(\n {\n ducStatus: 'sent',\n includesRequestChanges: true,\n signerStatus: [\n { name: 'Alice Accessor', userId: '3388888', status: 'done' },\n {\n name: 'Bob Collaborator',\n userId: '3388889',\n status: 'pending',\n },\n { name: 'Cara Officer', status: 'pending' },\n ],\n },\n { status: 200 },\n )\n },\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID(':id')}`,\n () => {\n return HttpResponse.json(\n { fileHandleId: 'mock-signed-duc-file-handle' },\n { status: 200 },\n )\n },\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_QUOTA(':id')}`,\n () => {\n return HttpResponse.json({ quota: 5, remaining: 4 }, { status: 200 })\n },\n ),\n ]\n}\n"],"mappings":";;;;;;AAsBA,IAAM,IAA+B,IAAI,EAGvC;CACA,SAAS;CACT,gBAAgB;CAChB,aAAa,CAAC,GAA0B,CAAwB;AAClE,CAAC,GAEK,IAAsC,IAAI,EAG7C,EACD,aAAa,CACX;CACE,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,WAAW,EAAyB;AACtC,GACA;CACE,qBAAqB,OAAO,CAAsC;CAClE,WAAW,EAAyB;AACtC,CACF,EACF,CAAC;AAED,SAAgB,EAA6B,GAAuB;CAClE,OAAO;EACL,EAAK,IACH,GAAG,IAAgB,EACjB,KACF,MACC,EAAE,gBAAa;GACd,IAAM,IAAW,EAAoC,cACnD,uBACA,EAAO,EACT;GACA,IAAI,GAAU,WAAW;IACvB,IAAM,IAAoB,EAA6B,WACrD,EAAS,SACX;IACA,IAAI,GACF,OAAO,EAAa,KAAK,GAAmB,EAAE,QAAQ,IAAI,CAAC;GAE/D;GACA,OAAO,EAAa,KAClB,EACE,SAAS,gEAAgE,EAAO,KAClF,GACA,EAAE,QAAQ,IAAI,CAChB;EACF,CACF;EACA,EAAK,KACH,GAAG,IAAgB,KACnB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAO,MAAM,EAAQ,KAAK,GAC1B,IAAkB,EAAK,KACzB,EAA6B,WAAW,EAAK,EAAE,IAC/C,MAEA;GAOJ,OANA,AAGE,IAHE,IACQ,EAA6B,OAAO,EAAK,IAAI,CAAI,IAEjD,EAA6B,OAAO,CAAI,GAG7C,EAAa,KAAK,GAAS,EAAE,QAAQ,IAAI,CAAC;EACnD,CACF;EAEA,EAAK,KACH,GAAG,IAAgB,EAA+B,KAAK,WAE9C,EAAa,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAEhD;EAEA,EAAK,KAAK,GAAG,IAAgB,EAA8B,KAAK,WACvD,EAAa,KAAK;GAAE,OAAO;GAAG,WAAW;EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,CACrE;EAED,EAAK,IACH,GAAG,IAAgB,EAAqC,KAAK,WAEpD,EAAa,KAClB;GACE,WAAW;GACX,wBAAwB;GACxB,cAAc;IACZ;KAAE,MAAM;KAAkB,QAAQ;KAAW,QAAQ;IAAO;IAC5D;KACE,MAAM;KACN,QAAQ;KACR,QAAQ;IACV;IACA;KAAE,MAAM;KAAgB,QAAQ;IAAU;GAC5C;EACF,GACA,EAAE,QAAQ,IAAI,CAChB,CAEJ;EAEA,EAAK,IACH,GAAG,IAAgB,EAA4C,KAAK,WAE3D,EAAa,KAClB,EAAE,cAAc,8BAA8B,GAC9C,EAAE,QAAQ,IAAI,CAChB,CAEJ;EAEA,EAAK,IACH,GAAG,IAAgB,EAAoC,KAAK,WAEnD,EAAa,KAAK;GAAE,OAAO;GAAG,WAAW;EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,CAExE;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/entityHandlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,YAAY,EAEZ,UAAU,EAOX,MAAM,iCAAiC,CAAA;AA2BxC,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,6BAuB/B;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,6BAUjC;AAED,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,6BAiC/B;AAED,eAAO,MAAM,iBAAiB,GAAI,eAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"entityHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/entityHandlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,YAAY,EAEZ,UAAU,EAOX,MAAM,iCAAiC,CAAA;AA2BxC,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,6BAuB/B;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,6BAUjC;AAED,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,6BAiC/B;AAED,eAAO,MAAM,iBAAiB,GAAI,eAAe,MAAM,gCAoStD,CAAA"}
|
|
@@ -46,7 +46,7 @@ function x(e, n) {
|
|
|
46
46
|
let e = v(t);
|
|
47
47
|
if (e) {
|
|
48
48
|
let t = e.bundle;
|
|
49
|
-
a = e.versions
|
|
49
|
+
a = e.versions?.[r] ? {
|
|
50
50
|
...t,
|
|
51
51
|
entity: e.versions[r]
|
|
52
52
|
} : t, i = 200;
|
|
@@ -81,14 +81,14 @@ var S = (t) => [
|
|
|
81
81
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
82
82
|
reason: `Mock Service worker could not find mock entity versions for ID ${e.entityId}`
|
|
83
83
|
}, r = v(e.entityId);
|
|
84
|
-
return r
|
|
84
|
+
return r?.versionInfo && (n = { results: r.versionInfo }, t = 200), h.json(n, { status: t });
|
|
85
85
|
}),
|
|
86
86
|
g.get(`${t}${i(":entityId", ":versionNumber")}`, ({ params: e }) => {
|
|
87
87
|
let t = 404, n = e.entityId, r = e.versionNumber.toString(), i = parseInt(r), a = {
|
|
88
88
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
89
89
|
reason: `Mock Service worker could not find a mock versioned entity with ID ${n}.${r}`
|
|
90
90
|
}, o = v(e.entityId);
|
|
91
|
-
return o
|
|
91
|
+
return o?.versions?.[i] && (a = o.versions[i], t = 200), h.json(a, { status: t });
|
|
92
92
|
}),
|
|
93
93
|
y(t),
|
|
94
94
|
x(t),
|
|
@@ -118,7 +118,7 @@ var S = (t) => [
|
|
|
118
118
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
119
119
|
reason: `Mock Service worker could not find a mock entity path using ID ${e.entityId}`
|
|
120
120
|
}, r = v(e.entityId);
|
|
121
|
-
return r
|
|
121
|
+
return r?.path && (n = r.path, t = 200), h.json(n, { status: t });
|
|
122
122
|
}),
|
|
123
123
|
g.get(`${t}/file/v1/entity/:id/uploadDestination`, () => {
|
|
124
124
|
let e = f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/entityHandlers.ts"],"sourcesContent":["import {\n ENTITY,\n ENTITY_BUNDLE_V2,\n ENTITY_HEADERS,\n ENTITY_ID,\n ENTITY_ID_VERSION,\n ENTITY_ID_VERSIONS,\n ENTITY_JSON,\n ENTITY_SCHEMA_BINDING,\n} from '@/utils/APIConstants'\nimport { normalizeSynPrefix } from '@/utils/functions/EntityTypeUtils'\nimport {\n ErrorResponse,\n UploadDestination,\n} from '@sage-bionetworks/synapse-client'\nimport {\n AccessControlList,\n Entity,\n EntityBundle,\n EntityHeader,\n EntityJson,\n EntityPath,\n PaginatedResults,\n ProjectHeaderList,\n Reference,\n VersionableEntity,\n VersionInfo,\n} from '@sage-bionetworks/synapse-types'\nimport { uniqueId } from 'lodash-es'\nimport { http, HttpResponse } from 'msw'\nimport mockEntities, { mockProjectsEntityData } from '../../entity'\nimport { MOCK_INVALID_PROJECT_NAME } from '../../entity/mockEntity'\nimport { MockEntityData } from '../../entity/MockEntityData'\nimport {\n mockSynapseStorageUploadDestination,\n mockUploadDestinations,\n} from '../../mock_upload_destination'\nimport { mockSchemaBinding } from '../../mockSchema'\nimport { SynapseApiResponse } from '../handlers'\n\nfunction getMatchingMockEntities(entityIds: string[]): MockEntityData[] {\n const normalizedPassedIds = entityIds.map(normalizeSynPrefix)\n return mockEntities.filter(entity =>\n normalizedPassedIds.includes(normalizeSynPrefix(entity.id)),\n )\n}\nfunction getMatchingMockEntity(entityId: string): MockEntityData | undefined {\n const matches = getMatchingMockEntities([entityId])\n if (matches.length == 0) {\n return undefined\n }\n return matches[0]\n}\n\nexport function getEntityBundleHandler(\n backendOrigin: string,\n bundle?: Partial<EntityBundle>,\n) {\n return http.post(\n `${backendOrigin}${ENTITY_BUNDLE_V2(':entityId')}`,\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<EntityBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n if (bundle) {\n response = bundle as EntityBundle\n status = 200\n } else {\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData?.bundle) {\n response = entityData.bundle\n status = 200\n }\n }\n return HttpResponse.json(response, { status })\n },\n )\n}\n\nexport function getEntityJsonHandler(\n backendOrigin: string,\n entityJson?: Partial<EntityJson>,\n) {\n return http.get(\n `${backendOrigin}${ENTITY_JSON(':entityId')}`,\n\n () => {\n const response = entityJson\n return HttpResponse.json(response, { status: 200 })\n },\n )\n}\n\nexport function getVersionedEntityBundleHandler(\n backendOrigin: string,\n bundle?: Partial<EntityBundle>,\n) {\n return http.post(\n `${backendOrigin}${ENTITY_BUNDLE_V2(':entityId', ':versionNumber')}`,\n ({ params }) => {\n const entityId = params.entityId as string\n const versionNumber = parseInt(params.versionNumber as string)\n let status = 404\n let response: SynapseApiResponse<EntityBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${entityId}`,\n }\n if (bundle) {\n response = bundle as EntityBundle\n status = 200\n } else {\n const entityData = getMatchingMockEntity(entityId)\n if (entityData) {\n const bundle = entityData.bundle\n if (entityData.versions && entityData.versions[versionNumber]) {\n response = {\n ...bundle,\n entity: entityData.versions[versionNumber],\n } as EntityBundle\n } else {\n response = bundle as EntityBundle\n }\n status = 200\n }\n }\n return HttpResponse.json(response, { status })\n },\n )\n}\n\nexport const getEntityHandlers = (backendOrigin: string) => [\n /**\n * Create a new entity\n */\n http.post<never, Entity>(`${backendOrigin}${ENTITY}`, async ({ request }) => {\n let status = 200\n const requestBody = await request.json()\n let response: SynapseApiResponse<Entity> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: '...',\n }\n if (!requestBody) {\n status = 400\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock service worker received the following malformed body for PUT ${ENTITY} : ${JSON.stringify(\n requestBody,\n )}`,\n }\n } else {\n if (requestBody.name === MOCK_INVALID_PROJECT_NAME) {\n ;(response as ErrorResponse).reason = 'Invalid project name'\n status = 403\n } else {\n response = { id: uniqueId('syn'), ...requestBody }\n }\n }\n\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get entity by ID\n */\n http.get(`${backendOrigin}${ENTITY_ID(':entityId')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<Entity> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity with ID ${params.entityId}`,\n }\n\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData) {\n response = entityData.entity\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n http.get(\n `${backendOrigin}${ENTITY_ID_VERSIONS(':entityId')}`,\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<PaginatedResults<VersionInfo>> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find mock entity versions for ID ${params.entityId}`,\n }\n\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData && entityData.versionInfo) {\n response = { results: entityData.versionInfo }\n status = 200\n }\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get<{ entityId: string; versionNumber: string }>(\n `${backendOrigin}${ENTITY_ID_VERSION(':entityId', ':versionNumber')}`,\n ({ params }) => {\n let status = 404\n const entityId = params.entityId\n const versionNumber = params.versionNumber.toString()\n const requestedVersionNumber = parseInt(versionNumber)\n\n let response: SynapseApiResponse<VersionableEntity> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock versioned entity with ID ${entityId}.${versionNumber}`,\n }\n\n const entityData = getMatchingMockEntity(params.entityId)\n if (\n entityData &&\n entityData.versions &&\n entityData.versions[requestedVersionNumber]\n ) {\n response = entityData.versions[\n requestedVersionNumber\n ] as VersionableEntity\n status = 200\n }\n return HttpResponse.json(response, { status })\n },\n ),\n\n getEntityBundleHandler(backendOrigin),\n getVersionedEntityBundleHandler(backendOrigin),\n\n http.get(`${backendOrigin}${ENTITY_SCHEMA_BINDING(':entityId')}`, () => {\n return HttpResponse.json(mockSchemaBinding, { status: 200 })\n }),\n http.get(\n `${backendOrigin}${ENTITY_JSON(':entityId')}`,\n\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<EntityJson> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData?.json) {\n response = entityData.json\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.post<{ entityId: string }, { references: Reference[] }>(\n `${backendOrigin}${ENTITY_HEADERS}`,\n\n async ({ params, request }) => {\n let status = 404\n let response: SynapseApiResponse<PaginatedResults<EntityHeader>> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n\n const referenceList = await request.json()\n const entityData: EntityHeader[] = referenceList.references\n .map(ref => {\n const entityHeader = getMatchingMockEntity(ref.targetId)?.entityHeader\n if (entityHeader) {\n return {\n ...entityHeader,\n // ID should match what is passed in (i.e. may or may not have syn prefix)\n id: ref.targetId,\n }\n }\n return undefined\n })\n .filter((header): header is EntityHeader => !!header)\n\n if (entityData) {\n response = { results: entityData }\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get(\n `${backendOrigin}${ENTITY_ID(':entityId')}/path`,\n\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<EntityPath> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity path using ID ${params.entityId}`,\n }\n const entityData = getMatchingMockEntity(params.entityId as string)\n\n if (entityData && entityData.path) {\n response = entityData.path\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get(`${backendOrigin}/file/v1/entity/:id/uploadDestination`, () => {\n const response: UploadDestination = mockSynapseStorageUploadDestination\n return HttpResponse.json(response, { status: 200 })\n }),\n\n http.get(\n `${backendOrigin}/file/v1/entity/:id/uploadDestination/:storageLocationId`,\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UploadDestination> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find an uploadDestination using storageLocationId ${params.storageLocationId}`,\n }\n const uploadDestination = mockUploadDestinations.find(\n e => Number(params.storageLocationId) === e.storageLocationId,\n )\n\n if (uploadDestination) {\n response = uploadDestination\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get(`${backendOrigin}/repo/v1/projects`, () => {\n const response: ProjectHeaderList = {\n results: mockProjectsEntityData.map(p => ({\n name: p.name,\n id: p.id,\n lastActivity: '2024-01-04T21:11:59.000Z',\n modifiedBy: parseInt(p.entity.modifiedBy!),\n modifiedOn: p.entity.modifiedOn!,\n })),\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n\n http.post<{ entityId: string }, AccessControlList>(\n `${backendOrigin}${ENTITY_ID(':entityId')}/acl`,\n async ({ params, request }) => {\n const entityData = getMatchingMockEntity(params.entityId)\n let status: number\n let response: SynapseApiResponse<AccessControlList>\n if (!entityData) {\n status = 404\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n } else if (entityData.bundle?.accessControlList) {\n status = 403\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: 'Resource already has an ACL.',\n }\n } else {\n response = await request.json()\n status = 201\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.put<{ entityId: string }, AccessControlList>(\n `${backendOrigin}${ENTITY_ID(':entityId')}/acl`,\n async ({ params, request }) => {\n const entityData = getMatchingMockEntity(params.entityId)\n\n let status: number\n let response: SynapseApiResponse<AccessControlList>\n\n if (!entityData) {\n status = 404\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n } else if (!entityData?.bundle?.accessControlList) {\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason:\n 'Cannot update ACL for a resource which inherits its permissions.',\n }\n status = 403\n } else {\n response = await request.json()\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.delete(`${backendOrigin}${ENTITY_ID(':entityId')}/acl`, ({ params }) => {\n const entityData = getMatchingMockEntity(params.entityId as string)\n\n let status: number\n let response: SynapseApiResponse<''>\n\n if (!entityData) {\n status = 404\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n } else if (!entityData?.bundle?.accessControlList) {\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason:\n 'Cannot delete ACL for a resource which inherits its permissions.',\n }\n status = 403\n } else {\n response = ''\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n }),\n]\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entityHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/entityHandlers.ts"],"sourcesContent":["import {\n ENTITY,\n ENTITY_BUNDLE_V2,\n ENTITY_HEADERS,\n ENTITY_ID,\n ENTITY_ID_VERSION,\n ENTITY_ID_VERSIONS,\n ENTITY_JSON,\n ENTITY_SCHEMA_BINDING,\n} from '@/utils/APIConstants'\nimport { normalizeSynPrefix } from '@/utils/functions/EntityTypeUtils'\nimport {\n ErrorResponse,\n UploadDestination,\n} from '@sage-bionetworks/synapse-client'\nimport {\n AccessControlList,\n Entity,\n EntityBundle,\n EntityHeader,\n EntityJson,\n EntityPath,\n PaginatedResults,\n ProjectHeaderList,\n Reference,\n VersionableEntity,\n VersionInfo,\n} from '@sage-bionetworks/synapse-types'\nimport { uniqueId } from 'lodash-es'\nimport { http, HttpResponse } from 'msw'\nimport mockEntities, { mockProjectsEntityData } from '../../entity'\nimport { MOCK_INVALID_PROJECT_NAME } from '../../entity/mockEntity'\nimport { MockEntityData } from '../../entity/MockEntityData'\nimport {\n mockSynapseStorageUploadDestination,\n mockUploadDestinations,\n} from '../../mock_upload_destination'\nimport { mockSchemaBinding } from '../../mockSchema'\nimport { SynapseApiResponse } from '../handlers'\n\nfunction getMatchingMockEntities(entityIds: string[]): MockEntityData[] {\n const normalizedPassedIds = entityIds.map(normalizeSynPrefix)\n return mockEntities.filter(entity =>\n normalizedPassedIds.includes(normalizeSynPrefix(entity.id)),\n )\n}\nfunction getMatchingMockEntity(entityId: string): MockEntityData | undefined {\n const matches = getMatchingMockEntities([entityId])\n if (matches.length == 0) {\n return undefined\n }\n return matches[0]\n}\n\nexport function getEntityBundleHandler(\n backendOrigin: string,\n bundle?: Partial<EntityBundle>,\n) {\n return http.post(\n `${backendOrigin}${ENTITY_BUNDLE_V2(':entityId')}`,\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<EntityBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n if (bundle) {\n response = bundle as EntityBundle\n status = 200\n } else {\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData?.bundle) {\n response = entityData.bundle\n status = 200\n }\n }\n return HttpResponse.json(response, { status })\n },\n )\n}\n\nexport function getEntityJsonHandler(\n backendOrigin: string,\n entityJson?: Partial<EntityJson>,\n) {\n return http.get(\n `${backendOrigin}${ENTITY_JSON(':entityId')}`,\n\n () => {\n const response = entityJson\n return HttpResponse.json(response, { status: 200 })\n },\n )\n}\n\nexport function getVersionedEntityBundleHandler(\n backendOrigin: string,\n bundle?: Partial<EntityBundle>,\n) {\n return http.post(\n `${backendOrigin}${ENTITY_BUNDLE_V2(':entityId', ':versionNumber')}`,\n ({ params }) => {\n const entityId = params.entityId as string\n const versionNumber = parseInt(params.versionNumber as string)\n let status = 404\n let response: SynapseApiResponse<EntityBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${entityId}`,\n }\n if (bundle) {\n response = bundle as EntityBundle\n status = 200\n } else {\n const entityData = getMatchingMockEntity(entityId)\n if (entityData) {\n const bundle = entityData.bundle\n if (entityData.versions?.[versionNumber]) {\n response = {\n ...bundle,\n entity: entityData.versions[versionNumber],\n } as EntityBundle\n } else {\n response = bundle as EntityBundle\n }\n status = 200\n }\n }\n return HttpResponse.json(response, { status })\n },\n )\n}\n\nexport const getEntityHandlers = (backendOrigin: string) => [\n /**\n * Create a new entity\n */\n http.post<never, Entity>(`${backendOrigin}${ENTITY}`, async ({ request }) => {\n let status = 200\n const requestBody = await request.json()\n let response: SynapseApiResponse<Entity> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: '...',\n }\n if (!requestBody) {\n status = 400\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock service worker received the following malformed body for PUT ${ENTITY} : ${JSON.stringify(\n requestBody,\n )}`,\n }\n } else {\n if (requestBody.name === MOCK_INVALID_PROJECT_NAME) {\n ;(response as ErrorResponse).reason = 'Invalid project name'\n status = 403\n } else {\n response = { id: uniqueId('syn'), ...requestBody }\n }\n }\n\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get entity by ID\n */\n http.get(`${backendOrigin}${ENTITY_ID(':entityId')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<Entity> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity with ID ${params.entityId}`,\n }\n\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData) {\n response = entityData.entity\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n http.get(\n `${backendOrigin}${ENTITY_ID_VERSIONS(':entityId')}`,\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<PaginatedResults<VersionInfo>> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find mock entity versions for ID ${params.entityId}`,\n }\n\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData?.versionInfo) {\n response = { results: entityData.versionInfo }\n status = 200\n }\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get<{ entityId: string; versionNumber: string }>(\n `${backendOrigin}${ENTITY_ID_VERSION(':entityId', ':versionNumber')}`,\n ({ params }) => {\n let status = 404\n const entityId = params.entityId\n const versionNumber = params.versionNumber.toString()\n const requestedVersionNumber = parseInt(versionNumber)\n\n let response: SynapseApiResponse<VersionableEntity> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock versioned entity with ID ${entityId}.${versionNumber}`,\n }\n\n const entityData = getMatchingMockEntity(params.entityId)\n if (entityData?.versions?.[requestedVersionNumber]) {\n response = entityData.versions[\n requestedVersionNumber\n ] as VersionableEntity\n status = 200\n }\n return HttpResponse.json(response, { status })\n },\n ),\n\n getEntityBundleHandler(backendOrigin),\n getVersionedEntityBundleHandler(backendOrigin),\n\n http.get(`${backendOrigin}${ENTITY_SCHEMA_BINDING(':entityId')}`, () => {\n return HttpResponse.json(mockSchemaBinding, { status: 200 })\n }),\n http.get(\n `${backendOrigin}${ENTITY_JSON(':entityId')}`,\n\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<EntityJson> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n const entityData = getMatchingMockEntity(params.entityId as string)\n if (entityData?.json) {\n response = entityData.json\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.post<{ entityId: string }, { references: Reference[] }>(\n `${backendOrigin}${ENTITY_HEADERS}`,\n\n async ({ params, request }) => {\n let status = 404\n let response: SynapseApiResponse<PaginatedResults<EntityHeader>> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n\n const referenceList = await request.json()\n const entityData: EntityHeader[] = referenceList.references\n .map(ref => {\n const entityHeader = getMatchingMockEntity(ref.targetId)?.entityHeader\n if (entityHeader) {\n return {\n ...entityHeader,\n // ID should match what is passed in (i.e. may or may not have syn prefix)\n id: ref.targetId,\n }\n }\n return undefined\n })\n .filter((header): header is EntityHeader => !!header)\n\n if (entityData) {\n response = { results: entityData }\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get(\n `${backendOrigin}${ENTITY_ID(':entityId')}/path`,\n\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<EntityPath> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity path using ID ${params.entityId}`,\n }\n const entityData = getMatchingMockEntity(params.entityId as string)\n\n if (entityData?.path) {\n response = entityData.path\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get(`${backendOrigin}/file/v1/entity/:id/uploadDestination`, () => {\n const response: UploadDestination = mockSynapseStorageUploadDestination\n return HttpResponse.json(response, { status: 200 })\n }),\n\n http.get(\n `${backendOrigin}/file/v1/entity/:id/uploadDestination/:storageLocationId`,\n ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UploadDestination> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find an uploadDestination using storageLocationId ${params.storageLocationId}`,\n }\n const uploadDestination = mockUploadDestinations.find(\n e => Number(params.storageLocationId) === e.storageLocationId,\n )\n\n if (uploadDestination) {\n response = uploadDestination\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.get(`${backendOrigin}/repo/v1/projects`, () => {\n const response: ProjectHeaderList = {\n results: mockProjectsEntityData.map(p => ({\n name: p.name,\n id: p.id,\n lastActivity: '2024-01-04T21:11:59.000Z',\n modifiedBy: parseInt(p.entity.modifiedBy!),\n modifiedOn: p.entity.modifiedOn!,\n })),\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n\n http.post<{ entityId: string }, AccessControlList>(\n `${backendOrigin}${ENTITY_ID(':entityId')}/acl`,\n async ({ params, request }) => {\n const entityData = getMatchingMockEntity(params.entityId)\n let status: number\n let response: SynapseApiResponse<AccessControlList>\n if (!entityData) {\n status = 404\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n } else if (entityData.bundle?.accessControlList) {\n status = 403\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: 'Resource already has an ACL.',\n }\n } else {\n response = await request.json()\n status = 201\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.put<{ entityId: string }, AccessControlList>(\n `${backendOrigin}${ENTITY_ID(':entityId')}/acl`,\n async ({ params, request }) => {\n const entityData = getMatchingMockEntity(params.entityId)\n\n let status: number\n let response: SynapseApiResponse<AccessControlList>\n\n if (!entityData) {\n status = 404\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n } else if (!entityData?.bundle?.accessControlList) {\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason:\n 'Cannot update ACL for a resource which inherits its permissions.',\n }\n status = 403\n } else {\n response = await request.json()\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n },\n ),\n\n http.delete(`${backendOrigin}${ENTITY_ID(':entityId')}/acl`, ({ params }) => {\n const entityData = getMatchingMockEntity(params.entityId as string)\n\n let status: number\n let response: SynapseApiResponse<''>\n\n if (!entityData) {\n status = 404\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a mock entity bundle with ID ${params.entityId}`,\n }\n } else if (!entityData?.bundle?.accessControlList) {\n response = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason:\n 'Cannot delete ACL for a resource which inherits its permissions.',\n }\n status = 403\n } else {\n response = ''\n status = 200\n }\n\n return HttpResponse.json(response, { status })\n }),\n]\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ var v = (v) => [
|
|
|
11
11
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
12
12
|
reason: `Mock Service worker could not find a user profile with ID ${e.id}`
|
|
13
13
|
}, r = d.find((t) => t.id.toString() === e.id);
|
|
14
|
-
return r
|
|
14
|
+
return r?.userProfile && (n = r.userProfile, t = 200), g.json(n, { status: t });
|
|
15
15
|
}),
|
|
16
16
|
_.get(`${v}${s}`, () => {
|
|
17
17
|
let e = f;
|
|
@@ -26,7 +26,7 @@ var v = (v) => [
|
|
|
26
26
|
concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
|
|
27
27
|
reason: `Mock Service worker could not find a user bundle with ID ${e.id}`
|
|
28
28
|
}, r = d.find((t) => t.id.toString() === e.id);
|
|
29
|
-
return r
|
|
29
|
+
return r?.userBundle && (n = r.userBundle, t = 200), g.json(n, { status: t });
|
|
30
30
|
}),
|
|
31
31
|
_.get(`${v}${e}`, () => g.json(p, { status: 200 })),
|
|
32
32
|
_.get(`${v}${a}`, ({ request: e }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userProfileHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/userProfileHandlers.ts"],"sourcesContent":["import { UserProfileList } from '@/synapse-client/SynapseClient'\nimport {\n FAVORITES,\n NOTIFICATION_EMAIL,\n PROFILE_IMAGE_PREVIEW,\n USER_BUNDLE,\n USER_GROUP_HEADERS,\n USER_GROUP_HEADERS_BATCH,\n USER_ID_BUNDLE,\n USER_PROFILE,\n USER_PROFILE_ID,\n} from '@/utils/APIConstants'\nimport { IdList } from '@sage-bionetworks/synapse-client'\nimport {\n TwoFactorAuthStatus,\n TYPE_FILTER,\n UserBundle,\n UserGroupHeaderResponsePage,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport { mockPaginatedEntityHeaders } from '../../entity/mockEntity'\nimport {\n MOCK_USER_ID,\n MOCK_USER_PROFILE_IMAGE_URL,\n mockUserBundle,\n mockUserData,\n mockUserProfileData,\n} from '../../user/mock_user_profile'\nimport { mockUserGroupData } from '../../usergroup/mockUserGroup'\nimport { SynapseApiResponse } from '../handlers'\n\nexport const getUserProfileHandlers = (backendOrigin: string) => [\n /**\n * Get User Profile by ID\n */\n http.get(`${backendOrigin}${USER_PROFILE_ID(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserProfile> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user profile with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match && match.userProfile) {\n response = match.userProfile\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user profile\n */\n http.get(`${backendOrigin}${USER_PROFILE}`, () => {\n // default return a mock UserProfile.\n const response: UserProfile = mockUserProfileData\n const status = 200\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user bundle\n */\n http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const result: UserBundle = mockUserBundle\n return HttpResponse.json(result, { status: 200 })\n }),\n\n /**\n * Get a user bundle by ID\n */\n http.get(`${backendOrigin}${USER_ID_BUNDLE(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user bundle with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match && match.userBundle) {\n response = match.userBundle\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's favorites\n */\n http.get(`${backendOrigin}${FAVORITES}`, () => {\n return HttpResponse.json(mockPaginatedEntityHeaders, { status: 200 })\n }),\n\n /**\n * Get a batch of user group headers\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS_BATCH}`, ({ request }) => {\n const ids = new URL(request.url).searchParams.get('ids')!.split(',')\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => ids.includes(userData.id.toString()))\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Get a batch of user profiles\n */\n http.post<never, IdList>(\n `${backendOrigin}${USER_PROFILE}`,\n async ({ request }) => {\n const requestedList = ((await request.json()).list ?? []).map(String)\n const responsePage: UserProfileList = {\n list: mockUserData\n .filter(userData => requestedList.includes(userData.id.toString()))\n .map(userData => userData.userProfile)\n .filter(\n (userProfile): userProfile is UserProfile => userProfile != null,\n ),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n },\n ),\n\n /**\n * Get userGroupHeaders by prefix\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS}`, ({ request }) => {\n const prefix = (\n new URL(request.url).searchParams.get('prefix') ?? ''\n ).toLowerCase()\n const typeFilter = new URL(request.url).searchParams.get(\n 'typeFilter',\n ) as TYPE_FILTER\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => {\n if (!typeFilter || typeFilter === TYPE_FILTER.ALL) {\n return true\n } else if (typeFilter === TYPE_FILTER.USERS_ONLY) {\n return userData.userGroupHeader.isIndividual\n } else {\n return !userData.userGroupHeader.isIndividual\n }\n })\n .filter(\n userData =>\n userData.userGroupHeader.userName\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.firstName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.displayName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.lastName || '')\n .toLowerCase()\n .startsWith(prefix),\n )\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Return a presigned URL for the current mock user's profile image, and a 404 for every\n * other user (i.e. they have no profile image).\n */\n http.get(\n `${backendOrigin}${PROFILE_IMAGE_PREVIEW(':userId')}`,\n ({ params }) => {\n if (params.userId === String(MOCK_USER_ID)) {\n return HttpResponse.json(MOCK_USER_PROFILE_IMAGE_URL, { status: 200 })\n }\n return HttpResponse.json(\n { reason: 'Mock user has no profile image' },\n { status: 404 },\n )\n },\n ),\n\n /**\n * `MOCK_USER_PROFILE_IMAGE_URL` is a \"presigned URL\" pointing to a real external image, to\n * resemble a real Synapse presigned URL response. Intercept the actual fetch of that URL so\n * tests don't depend on a live network call to a third party, which is slow and flaky in CI.\n */\n http.get(MOCK_USER_PROFILE_IMAGE_URL, () => {\n // A minimal 1x1 transparent PNG\n const onePixelPngBase64 =\n 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='\n const bytes = Uint8Array.from(atob(onePixelPngBase64), c => c.charCodeAt(0))\n return HttpResponse.arrayBuffer(bytes.buffer, {\n headers: { 'Content-Type': 'image/png' },\n })\n }),\n\n http.get(`${backendOrigin}${NOTIFICATION_EMAIL}`, () => {\n return HttpResponse.json(\n { email: mockUserBundle.userProfile?.email },\n { status: 200 },\n )\n }),\n\n http.get(`${backendOrigin}/auth/v1/2fa`, () => {\n const response: TwoFactorAuthStatus = {\n status: 'ENABLED',\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n]\n\nexport function getCurrentUserCertifiedValidatedHandler(\n backendOrigin: string,\n isCertified: boolean,\n isValidated: boolean,\n) {\n return http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const status = 200\n const response: UserBundle = {\n ...mockUserBundle,\n isCertified: isCertified,\n isVerified: isValidated,\n }\n\n return HttpResponse.json(response, { status })\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"userProfileHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/userProfileHandlers.ts"],"sourcesContent":["import { UserProfileList } from '@/synapse-client/SynapseClient'\nimport {\n FAVORITES,\n NOTIFICATION_EMAIL,\n PROFILE_IMAGE_PREVIEW,\n USER_BUNDLE,\n USER_GROUP_HEADERS,\n USER_GROUP_HEADERS_BATCH,\n USER_ID_BUNDLE,\n USER_PROFILE,\n USER_PROFILE_ID,\n} from '@/utils/APIConstants'\nimport { IdList } from '@sage-bionetworks/synapse-client'\nimport {\n TwoFactorAuthStatus,\n TYPE_FILTER,\n UserBundle,\n UserGroupHeaderResponsePage,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport { mockPaginatedEntityHeaders } from '../../entity/mockEntity'\nimport {\n MOCK_USER_ID,\n MOCK_USER_PROFILE_IMAGE_URL,\n mockUserBundle,\n mockUserData,\n mockUserProfileData,\n} from '../../user/mock_user_profile'\nimport { mockUserGroupData } from '../../usergroup/mockUserGroup'\nimport { SynapseApiResponse } from '../handlers'\n\nexport const getUserProfileHandlers = (backendOrigin: string) => [\n /**\n * Get User Profile by ID\n */\n http.get(`${backendOrigin}${USER_PROFILE_ID(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserProfile> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user profile with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match?.userProfile) {\n response = match.userProfile\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user profile\n */\n http.get(`${backendOrigin}${USER_PROFILE}`, () => {\n // default return a mock UserProfile.\n const response: UserProfile = mockUserProfileData\n const status = 200\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user bundle\n */\n http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const result: UserBundle = mockUserBundle\n return HttpResponse.json(result, { status: 200 })\n }),\n\n /**\n * Get a user bundle by ID\n */\n http.get(`${backendOrigin}${USER_ID_BUNDLE(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user bundle with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match?.userBundle) {\n response = match.userBundle\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's favorites\n */\n http.get(`${backendOrigin}${FAVORITES}`, () => {\n return HttpResponse.json(mockPaginatedEntityHeaders, { status: 200 })\n }),\n\n /**\n * Get a batch of user group headers\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS_BATCH}`, ({ request }) => {\n const ids = new URL(request.url).searchParams.get('ids')!.split(',')\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => ids.includes(userData.id.toString()))\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Get a batch of user profiles\n */\n http.post<never, IdList>(\n `${backendOrigin}${USER_PROFILE}`,\n async ({ request }) => {\n const requestedList = ((await request.json()).list ?? []).map(String)\n const responsePage: UserProfileList = {\n list: mockUserData\n .filter(userData => requestedList.includes(userData.id.toString()))\n .map(userData => userData.userProfile)\n .filter(\n (userProfile): userProfile is UserProfile => userProfile != null,\n ),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n },\n ),\n\n /**\n * Get userGroupHeaders by prefix\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS}`, ({ request }) => {\n const prefix = (\n new URL(request.url).searchParams.get('prefix') ?? ''\n ).toLowerCase()\n const typeFilter = new URL(request.url).searchParams.get(\n 'typeFilter',\n ) as TYPE_FILTER\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => {\n if (!typeFilter || typeFilter === TYPE_FILTER.ALL) {\n return true\n } else if (typeFilter === TYPE_FILTER.USERS_ONLY) {\n return userData.userGroupHeader.isIndividual\n } else {\n return !userData.userGroupHeader.isIndividual\n }\n })\n .filter(\n userData =>\n userData.userGroupHeader.userName\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.firstName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.displayName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.lastName || '')\n .toLowerCase()\n .startsWith(prefix),\n )\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Return a presigned URL for the current mock user's profile image, and a 404 for every\n * other user (i.e. they have no profile image).\n */\n http.get(\n `${backendOrigin}${PROFILE_IMAGE_PREVIEW(':userId')}`,\n ({ params }) => {\n if (params.userId === String(MOCK_USER_ID)) {\n return HttpResponse.json(MOCK_USER_PROFILE_IMAGE_URL, { status: 200 })\n }\n return HttpResponse.json(\n { reason: 'Mock user has no profile image' },\n { status: 404 },\n )\n },\n ),\n\n /**\n * `MOCK_USER_PROFILE_IMAGE_URL` is a \"presigned URL\" pointing to a real external image, to\n * resemble a real Synapse presigned URL response. Intercept the actual fetch of that URL so\n * tests don't depend on a live network call to a third party, which is slow and flaky in CI.\n */\n http.get(MOCK_USER_PROFILE_IMAGE_URL, () => {\n // A minimal 1x1 transparent PNG\n const onePixelPngBase64 =\n 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='\n const bytes = Uint8Array.from(atob(onePixelPngBase64), c => c.charCodeAt(0))\n return HttpResponse.arrayBuffer(bytes.buffer, {\n headers: { 'Content-Type': 'image/png' },\n })\n }),\n\n http.get(`${backendOrigin}${NOTIFICATION_EMAIL}`, () => {\n return HttpResponse.json(\n { email: mockUserBundle.userProfile?.email },\n { status: 200 },\n )\n }),\n\n http.get(`${backendOrigin}/auth/v1/2fa`, () => {\n const response: TwoFactorAuthStatus = {\n status: 'ENABLED',\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n]\n\nexport function getCurrentUserCertifiedValidatedHandler(\n backendOrigin: string,\n isCertified: boolean,\n isValidated: boolean,\n) {\n return http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const status = 200\n const response: UserBundle = {\n ...mockUserBundle,\n isCertified: isCertified,\n isVerified: isValidated,\n }\n\n return HttpResponse.json(response, { status })\n })\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/mocks/msw/handlers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAQ,WAAW,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/mocks/msw/handlers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAQ,WAAW,EAAE,MAAM,KAAK,CAAA;AA0CvC,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,IAAI,KAAK,GAAG,MAAM,CAAA;AAE1E;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAoD/B;AAED,iBAAS,WAAW,CAClB,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,WAAW,EAAE,CAIf;AAED,QAAA,MAAM,QAAQ,eAGb,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,79 +1,82 @@
|
|
|
1
1
|
import { BackendDestinationEnum as e, getEndpoint as t } from "../../utils/functions/getEndpoint.js";
|
|
2
2
|
import { MOCK_ANNOTATION_COLUMN_RESPONSE as n } from "../mockAnnotationColumns.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import o from "./handlers/
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import
|
|
26
|
-
import {
|
|
27
|
-
import
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
3
|
+
import { termsOfServiceUpToDateStatus as r } from "../termsOfService/mockTermsOfService.js";
|
|
4
|
+
import { getValidationSchemaHandlers as i } from "./handlers/schemaHandlers.js";
|
|
5
|
+
import { getAllAccessRequirementAclHandlers as a } from "./handlers/accessRequirementAclHandlers.js";
|
|
6
|
+
import { getAllAccessRequirementHandlers as o } from "./handlers/accessRequirementHandlers.js";
|
|
7
|
+
import s from "./handlers/challengeHandlers.js";
|
|
8
|
+
import { getDataAccessRequestHandlers as c } from "./handlers/dataAccessRequestHandlers.js";
|
|
9
|
+
import { getDiscussionHandlers as l } from "./handlers/discussionHandlers.js";
|
|
10
|
+
import { getDoiHandler as u } from "./handlers/doiHandlers.js";
|
|
11
|
+
import { getEDucTemplateHandlers as d } from "./handlers/eDucTemplateHandlers.js";
|
|
12
|
+
import { getEntityHandlers as f } from "./handlers/entityHandlers.js";
|
|
13
|
+
import { getEvaluationHandlers as p } from "./handlers/evaluationHandlers.js";
|
|
14
|
+
import { getFeatureFlagsOverride as m } from "./handlers/featureFlagHandlers.js";
|
|
15
|
+
import { getFileHandlers as h } from "./handlers/fileHandlers.js";
|
|
16
|
+
import { getGridHandlers as g } from "./handlers/gridHandlers.js";
|
|
17
|
+
import { getJsonSchemaListingHandlers as _ } from "./handlers/jsonSchemaListingHandlers.js";
|
|
18
|
+
import { getMessageHandlers as v } from "./handlers/messageHandlers.js";
|
|
19
|
+
import { getPersonalAccessTokenHandlers as y } from "./handlers/personalAccessTokenHandlers.js";
|
|
20
|
+
import { getResearchProjectHandlers as b } from "./handlers/researchProjectHandlers.js";
|
|
21
|
+
import { getResetTwoFactorAuthHandlers as x } from "./handlers/resetTwoFactorAuthHandlers.js";
|
|
22
|
+
import { getRealmHandlers as S } from "./handlers/realmHandlers.js";
|
|
23
|
+
import { getShortIoHandlers as C } from "./handlers/shortIoHandlers.js";
|
|
24
|
+
import { getSubscriptionHandlers as w } from "./handlers/subscriptionHandlers.js";
|
|
25
|
+
import { getTermsOfServiceHandlers as T } from "./handlers/termsOfServiceHandlers.js";
|
|
26
|
+
import { getAnnotationColumnHandlers as E, getCreateColumnModelBatchHandler as D, getDefaultColumnHandlers as O, getHandlersForTableQuery as k } from "./handlers/tableQueryHandlers.js";
|
|
27
|
+
import A from "./handlers/teamHandlers.js";
|
|
28
|
+
import { getCurrentUserCertifiedValidatedHandler as j, getUserProfileHandlers as M } from "./handlers/userProfileHandlers.js";
|
|
29
|
+
import { getWebhookHandlers as N } from "./handlers/webhookHandlers.js";
|
|
30
|
+
import { getAllWikiHandlers as P } from "./handlers/wikiHandlers.js";
|
|
31
|
+
import { getDataciteHandler as F } from "./handlers/dataciteHandlers.js";
|
|
32
|
+
import { getAuthHandlers as I } from "./handlers/authHandlers.js";
|
|
33
|
+
import { getHandlersForSearchQuery as L } from "./handlers/searchQueryHandlers.js";
|
|
34
|
+
import { http as R } from "msw";
|
|
33
35
|
//#region src/mocks/msw/handlers.ts
|
|
34
|
-
function
|
|
36
|
+
function z(e, t) {
|
|
35
37
|
return {
|
|
36
|
-
base: [
|
|
37
|
-
auth:
|
|
38
|
-
entity:
|
|
39
|
-
userProfile:
|
|
40
|
-
certification: [
|
|
41
|
-
wiki:
|
|
42
|
-
accessRequirement:
|
|
43
|
-
accessRequirementAcl:
|
|
44
|
-
dataAccessRequest:
|
|
45
|
-
eDucTemplate:
|
|
46
|
-
researchProject:
|
|
47
|
-
file:
|
|
48
|
-
grid:
|
|
49
|
-
jsonSchemaListing: Object.values(
|
|
50
|
-
discussion:
|
|
51
|
-
subscription:
|
|
52
|
-
evaluation:
|
|
53
|
-
createColumnModelBatch: [
|
|
54
|
-
annotationColumn:
|
|
55
|
-
defaultColumn:
|
|
56
|
-
personalAccessToken:
|
|
57
|
-
team:
|
|
58
|
-
challenge:
|
|
59
|
-
resetTwoFactorAuth:
|
|
60
|
-
message:
|
|
61
|
-
realm:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
38
|
+
base: [R.options("*", () => new Response("", { status: 200 }))],
|
|
39
|
+
auth: I(e),
|
|
40
|
+
entity: f(e),
|
|
41
|
+
userProfile: M(e),
|
|
42
|
+
certification: [j(e, !0, !0)],
|
|
43
|
+
wiki: P(e),
|
|
44
|
+
accessRequirement: o(e),
|
|
45
|
+
accessRequirementAcl: a(e),
|
|
46
|
+
dataAccessRequest: c(e),
|
|
47
|
+
eDucTemplate: d(e),
|
|
48
|
+
researchProject: b(e),
|
|
49
|
+
file: h(e),
|
|
50
|
+
grid: g(e),
|
|
51
|
+
jsonSchemaListing: Object.values(_(e)).flat(),
|
|
52
|
+
discussion: l(e),
|
|
53
|
+
subscription: w(e),
|
|
54
|
+
evaluation: p(e),
|
|
55
|
+
createColumnModelBatch: [D(e)],
|
|
56
|
+
annotationColumn: E(n, e),
|
|
57
|
+
defaultColumn: O(e),
|
|
58
|
+
personalAccessToken: y(e),
|
|
59
|
+
team: A(e),
|
|
60
|
+
challenge: s(e),
|
|
61
|
+
resetTwoFactorAuth: x(e),
|
|
62
|
+
message: v(e),
|
|
63
|
+
realm: S(e),
|
|
64
|
+
termsOfService: T(e, r),
|
|
65
|
+
featureFlags: [m({ portalOrigin: t })],
|
|
66
|
+
tableQuery: k(e),
|
|
67
|
+
doi: u(e),
|
|
68
|
+
shortIo: C(),
|
|
69
|
+
search: L(e),
|
|
70
|
+
webhook: N(e),
|
|
71
|
+
validationSchema: i(e),
|
|
72
|
+
datacite: F()
|
|
70
73
|
};
|
|
71
74
|
}
|
|
72
|
-
function
|
|
73
|
-
return Object.values(
|
|
75
|
+
function B(e, t) {
|
|
76
|
+
return Object.values(z(e, t)).flat();
|
|
74
77
|
}
|
|
75
|
-
var
|
|
78
|
+
var V = B(t(e.REPO_ENDPOINT), t(e.PORTAL_ENDPOINT));
|
|
76
79
|
//#endregion
|
|
77
|
-
export {
|
|
80
|
+
export { B as getHandlers, z as getHandlersForStorybook, V as handlers };
|
|
78
81
|
|
|
79
82
|
//# sourceMappingURL=handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","names":[],"sources":["../../../src/mocks/msw/handlers.ts"],"sourcesContent":["import { getValidationSchemaHandlers } from '@/mocks/msw/handlers/schemaHandlers'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { BaseError } from '@sage-bionetworks/synapse-client'\nimport { http, HttpHandler } from 'msw'\nimport { MOCK_ANNOTATION_COLUMN_RESPONSE } from '../mockAnnotationColumns'\nimport { getAllAccessRequirementAclHandlers } from './handlers/accessRequirementAclHandlers'\nimport { getAllAccessRequirementHandlers } from './handlers/accessRequirementHandlers'\nimport getAllChallengeHandlers from './handlers/challengeHandlers'\nimport { getDataAccessRequestHandlers } from './handlers/dataAccessRequestHandlers'\nimport { getDiscussionHandlers } from './handlers/discussionHandlers'\nimport { getDoiHandler } from './handlers/doiHandlers'\nimport { getEDucTemplateHandlers } from './handlers/eDucTemplateHandlers'\nimport { getEntityHandlers } from './handlers/entityHandlers'\nimport { getEvaluationHandlers } from './handlers/evaluationHandlers'\nimport { getFeatureFlagsOverride } from './handlers/featureFlagHandlers'\nimport { getFileHandlers } from './handlers/fileHandlers'\nimport { getGridHandlers } from './handlers/gridHandlers'\nimport { getJsonSchemaListingHandlers } from './handlers/jsonSchemaListingHandlers'\nimport { getMessageHandlers } from './handlers/messageHandlers'\nimport { getPersonalAccessTokenHandlers } from './handlers/personalAccessTokenHandlers'\nimport { getResearchProjectHandlers } from './handlers/researchProjectHandlers'\nimport { getResetTwoFactorAuthHandlers } from './handlers/resetTwoFactorAuthHandlers'\nimport { getRealmHandlers } from './handlers/realmHandlers'\nimport { getShortIoHandlers } from './handlers/shortIoHandlers'\nimport { getSubscriptionHandlers } from './handlers/subscriptionHandlers'\nimport {\n getAnnotationColumnHandlers,\n getCreateColumnModelBatchHandler,\n getDefaultColumnHandlers,\n getHandlersForTableQuery,\n} from './handlers/tableQueryHandlers'\nimport getAllTeamHandlers from './handlers/teamHandlers'\nimport {\n getCurrentUserCertifiedValidatedHandler,\n getUserProfileHandlers,\n} from './handlers/userProfileHandlers'\nimport { getWebhookHandlers } from './handlers/webhookHandlers'\nimport { getAllWikiHandlers } from './handlers/wikiHandlers'\nimport { getDataciteHandler } from './handlers/dataciteHandlers'\nimport { getAuthHandlers } from './handlers/authHandlers'\nimport { getHandlersForSearchQuery } from './handlers/searchQueryHandlers'\n\n// Simple utility type that just indicates that the response body could be an error like the Synapse backend may send.\nexport type SynapseApiResponse<TData, TError = BaseError> = TData | TError\n\n/**\n * Storybook MSW plugin supports setting named groups of handlers to simplify handler reuse and specific story-level overrides.\n */\nexport function getHandlersForStorybook(\n backendOrigin: string,\n portalOrigin?: string,\n): Record<string, HttpHandler[]> {\n return {\n base: [\n http.options('*', () => {\n return new Response('', { status: 200 })\n }),\n ],\n auth: getAuthHandlers(backendOrigin),\n entity: getEntityHandlers(backendOrigin),\n userProfile: getUserProfileHandlers(backendOrigin),\n certification: [\n getCurrentUserCertifiedValidatedHandler(backendOrigin, true, true),\n ],\n wiki: getAllWikiHandlers(backendOrigin),\n accessRequirement: getAllAccessRequirementHandlers(backendOrigin),\n accessRequirementAcl: getAllAccessRequirementAclHandlers(backendOrigin),\n dataAccessRequest: getDataAccessRequestHandlers(backendOrigin),\n eDucTemplate: getEDucTemplateHandlers(backendOrigin),\n researchProject: getResearchProjectHandlers(backendOrigin),\n file: getFileHandlers(backendOrigin),\n grid: getGridHandlers(backendOrigin),\n jsonSchemaListing: Object.values(\n getJsonSchemaListingHandlers(backendOrigin),\n ).flat(),\n discussion: getDiscussionHandlers(backendOrigin),\n subscription: getSubscriptionHandlers(backendOrigin),\n evaluation: getEvaluationHandlers(backendOrigin),\n createColumnModelBatch: [getCreateColumnModelBatchHandler(backendOrigin)],\n annotationColumn: getAnnotationColumnHandlers(\n MOCK_ANNOTATION_COLUMN_RESPONSE,\n backendOrigin,\n ),\n defaultColumn: getDefaultColumnHandlers(backendOrigin),\n personalAccessToken: getPersonalAccessTokenHandlers(backendOrigin),\n team: getAllTeamHandlers(backendOrigin),\n challenge: getAllChallengeHandlers(backendOrigin),\n resetTwoFactorAuth: getResetTwoFactorAuthHandlers(backendOrigin),\n message: getMessageHandlers(backendOrigin),\n realm: getRealmHandlers(backendOrigin),\n featureFlags: [getFeatureFlagsOverride({ portalOrigin })],\n tableQuery: getHandlersForTableQuery(backendOrigin),\n doi: getDoiHandler(backendOrigin),\n shortIo: getShortIoHandlers(),\n search: getHandlersForSearchQuery(backendOrigin),\n webhook: getWebhookHandlers(backendOrigin),\n validationSchema: getValidationSchemaHandlers(backendOrigin),\n datacite: getDataciteHandler(),\n }\n}\n\nfunction getHandlers(\n backendOrigin: string,\n portalOrigin?: string,\n): HttpHandler[] {\n return Object.values(\n getHandlersForStorybook(backendOrigin, portalOrigin),\n ).flat()\n}\n\nconst handlers = getHandlers(\n getEndpoint(BackendDestinationEnum.REPO_ENDPOINT),\n getEndpoint(BackendDestinationEnum.PORTAL_ENDPOINT),\n)\n\nexport { handlers, getHandlers }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlers.js","names":[],"sources":["../../../src/mocks/msw/handlers.ts"],"sourcesContent":["import { getValidationSchemaHandlers } from '@/mocks/msw/handlers/schemaHandlers'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { BaseError } from '@sage-bionetworks/synapse-client'\nimport { http, HttpHandler } from 'msw'\nimport { MOCK_ANNOTATION_COLUMN_RESPONSE } from '../mockAnnotationColumns'\nimport { getAllAccessRequirementAclHandlers } from './handlers/accessRequirementAclHandlers'\nimport { getAllAccessRequirementHandlers } from './handlers/accessRequirementHandlers'\nimport getAllChallengeHandlers from './handlers/challengeHandlers'\nimport { getDataAccessRequestHandlers } from './handlers/dataAccessRequestHandlers'\nimport { getDiscussionHandlers } from './handlers/discussionHandlers'\nimport { getDoiHandler } from './handlers/doiHandlers'\nimport { getEDucTemplateHandlers } from './handlers/eDucTemplateHandlers'\nimport { getEntityHandlers } from './handlers/entityHandlers'\nimport { getEvaluationHandlers } from './handlers/evaluationHandlers'\nimport { getFeatureFlagsOverride } from './handlers/featureFlagHandlers'\nimport { getFileHandlers } from './handlers/fileHandlers'\nimport { getGridHandlers } from './handlers/gridHandlers'\nimport { getJsonSchemaListingHandlers } from './handlers/jsonSchemaListingHandlers'\nimport { getMessageHandlers } from './handlers/messageHandlers'\nimport { getPersonalAccessTokenHandlers } from './handlers/personalAccessTokenHandlers'\nimport { getResearchProjectHandlers } from './handlers/researchProjectHandlers'\nimport { getResetTwoFactorAuthHandlers } from './handlers/resetTwoFactorAuthHandlers'\nimport { getRealmHandlers } from './handlers/realmHandlers'\nimport { getShortIoHandlers } from './handlers/shortIoHandlers'\nimport { getSubscriptionHandlers } from './handlers/subscriptionHandlers'\nimport { getTermsOfServiceHandlers } from './handlers/termsOfServiceHandlers'\nimport { termsOfServiceUpToDateStatus } from '../termsOfService/mockTermsOfService'\nimport {\n getAnnotationColumnHandlers,\n getCreateColumnModelBatchHandler,\n getDefaultColumnHandlers,\n getHandlersForTableQuery,\n} from './handlers/tableQueryHandlers'\nimport getAllTeamHandlers from './handlers/teamHandlers'\nimport {\n getCurrentUserCertifiedValidatedHandler,\n getUserProfileHandlers,\n} from './handlers/userProfileHandlers'\nimport { getWebhookHandlers } from './handlers/webhookHandlers'\nimport { getAllWikiHandlers } from './handlers/wikiHandlers'\nimport { getDataciteHandler } from './handlers/dataciteHandlers'\nimport { getAuthHandlers } from './handlers/authHandlers'\nimport { getHandlersForSearchQuery } from './handlers/searchQueryHandlers'\n\n// Simple utility type that just indicates that the response body could be an error like the Synapse backend may send.\nexport type SynapseApiResponse<TData, TError = BaseError> = TData | TError\n\n/**\n * Storybook MSW plugin supports setting named groups of handlers to simplify handler reuse and specific story-level overrides.\n */\nexport function getHandlersForStorybook(\n backendOrigin: string,\n portalOrigin?: string,\n): Record<string, HttpHandler[]> {\n return {\n base: [\n http.options('*', () => {\n return new Response('', { status: 200 })\n }),\n ],\n auth: getAuthHandlers(backendOrigin),\n entity: getEntityHandlers(backendOrigin),\n userProfile: getUserProfileHandlers(backendOrigin),\n certification: [\n getCurrentUserCertifiedValidatedHandler(backendOrigin, true, true),\n ],\n wiki: getAllWikiHandlers(backendOrigin),\n accessRequirement: getAllAccessRequirementHandlers(backendOrigin),\n accessRequirementAcl: getAllAccessRequirementAclHandlers(backendOrigin),\n dataAccessRequest: getDataAccessRequestHandlers(backendOrigin),\n eDucTemplate: getEDucTemplateHandlers(backendOrigin),\n researchProject: getResearchProjectHandlers(backendOrigin),\n file: getFileHandlers(backendOrigin),\n grid: getGridHandlers(backendOrigin),\n jsonSchemaListing: Object.values(\n getJsonSchemaListingHandlers(backendOrigin),\n ).flat(),\n discussion: getDiscussionHandlers(backendOrigin),\n subscription: getSubscriptionHandlers(backendOrigin),\n evaluation: getEvaluationHandlers(backendOrigin),\n createColumnModelBatch: [getCreateColumnModelBatchHandler(backendOrigin)],\n annotationColumn: getAnnotationColumnHandlers(\n MOCK_ANNOTATION_COLUMN_RESPONSE,\n backendOrigin,\n ),\n defaultColumn: getDefaultColumnHandlers(backendOrigin),\n personalAccessToken: getPersonalAccessTokenHandlers(backendOrigin),\n team: getAllTeamHandlers(backendOrigin),\n challenge: getAllChallengeHandlers(backendOrigin),\n resetTwoFactorAuth: getResetTwoFactorAuthHandlers(backendOrigin),\n message: getMessageHandlers(backendOrigin),\n realm: getRealmHandlers(backendOrigin),\n termsOfService: getTermsOfServiceHandlers(\n backendOrigin,\n termsOfServiceUpToDateStatus,\n ),\n featureFlags: [getFeatureFlagsOverride({ portalOrigin })],\n tableQuery: getHandlersForTableQuery(backendOrigin),\n doi: getDoiHandler(backendOrigin),\n shortIo: getShortIoHandlers(),\n search: getHandlersForSearchQuery(backendOrigin),\n webhook: getWebhookHandlers(backendOrigin),\n validationSchema: getValidationSchemaHandlers(backendOrigin),\n datacite: getDataciteHandler(),\n }\n}\n\nfunction getHandlers(\n backendOrigin: string,\n portalOrigin?: string,\n): HttpHandler[] {\n return Object.values(\n getHandlersForStorybook(backendOrigin, portalOrigin),\n ).flat()\n}\n\nconst handlers = getHandlers(\n getEndpoint(BackendDestinationEnum.REPO_ENDPOINT),\n getEndpoint(BackendDestinationEnum.PORTAL_ENDPOINT),\n)\n\nexport { handlers, getHandlers }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,SAAgB,EACd,GACA,GAC+B;CAC/B,OAAO;EACL,MAAM,CACJ,EAAK,QAAQ,WACJ,IAAI,SAAS,IAAI,EAAE,QAAQ,IAAI,CAAC,CACxC,CACH;EACA,MAAM,EAAgB,CAAa;EACnC,QAAQ,EAAkB,CAAa;EACvC,aAAa,EAAuB,CAAa;EACjD,eAAe,CACb,EAAwC,GAAe,IAAM,EAAI,CACnE;EACA,MAAM,EAAmB,CAAa;EACtC,mBAAmB,EAAgC,CAAa;EAChE,sBAAsB,EAAmC,CAAa;EACtE,mBAAmB,EAA6B,CAAa;EAC7D,cAAc,EAAwB,CAAa;EACnD,iBAAiB,EAA2B,CAAa;EACzD,MAAM,EAAgB,CAAa;EACnC,MAAM,EAAgB,CAAa;EACnC,mBAAmB,OAAO,OACxB,EAA6B,CAAa,CAC5C,EAAE,KAAK;EACP,YAAY,EAAsB,CAAa;EAC/C,cAAc,EAAwB,CAAa;EACnD,YAAY,EAAsB,CAAa;EAC/C,wBAAwB,CAAC,EAAiC,CAAa,CAAC;EACxE,kBAAkB,EAChB,GACA,CACF;EACA,eAAe,EAAyB,CAAa;EACrD,qBAAqB,EAA+B,CAAa;EACjE,MAAM,EAAmB,CAAa;EACtC,WAAW,EAAwB,CAAa;EAChD,oBAAoB,EAA8B,CAAa;EAC/D,SAAS,EAAmB,CAAa;EACzC,OAAO,EAAiB,CAAa;EACrC,gBAAgB,EACd,GACA,CACF;EACA,cAAc,CAAC,EAAwB,EAAE,gBAAa,CAAC,CAAC;EACxD,YAAY,EAAyB,CAAa;EAClD,KAAK,EAAc,CAAa;EAChC,SAAS,EAAmB;EAC5B,QAAQ,EAA0B,CAAa;EAC/C,SAAS,EAAmB,CAAa;EACzC,kBAAkB,EAA4B,CAAa;EAC3D,UAAU,EAAmB;CAC/B;AACF;AAEA,SAAS,EACP,GACA,GACe;CACf,OAAO,OAAO,OACZ,EAAwB,GAAe,CAAY,CACrD,EAAE,KAAK;AACT;AAEA,IAAM,IAAW,EACf,EAAY,EAAuB,aAAa,GAChD,EAAY,EAAuB,eAAe,CACpD"}
|