synapse-react-client 4.0.45 → 4.0.47
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/AridhiaKeyFactory.d.ts +1 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
- package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
- package/dist/aridhia-queries/index.d.ts +1 -0
- package/dist/aridhia-queries/index.d.ts.map +1 -1
- package/dist/aridhia-queries/index.js +11 -10
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
- package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
- package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
- package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
- package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js +3 -3
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
- package/dist/components/Authentication/TOTPForm.js +3 -3
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/index.d.ts +6 -6
- package/dist/components/Authentication/index.d.ts.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +7 -7
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
- package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
- package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
- package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
- package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
- package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
- package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
- package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.d.ts.map +1 -1
- package/dist/components/ComponentCollapse.js +2 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +231 -219
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
- package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
- package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js +3 -3
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js +14 -12
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
- package/dist/components/DataGrid/hooks/useStack.js +2 -2
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +47 -42
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js +22 -13
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +3 -2
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +4 -4
- package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
- package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
- package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
- package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
- package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/StepCard.js +15 -10
- package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
- package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
- package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +46 -46
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
- package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
- package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +38 -38
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +1 -1
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.d.ts +3 -1
- package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid/HexGrid.js +14 -13
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
- package/dist/components/IconSvg/IconSvg.js +154 -47
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvg/index.d.ts +1 -1
- package/dist/components/IconSvg/index.d.ts.map +1 -1
- package/dist/components/IconSvg/index.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
- package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js +3 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/widget/index.d.ts +1 -1
- package/dist/components/Markdown/widget/index.d.ts.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js +2 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/Plot/BarPlot.js +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
- package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
- package/dist/components/PortalList/PortalCard.js +6 -5
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js +4 -4
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.js +31 -30
- package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
- package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
- package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
- package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
- package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
- package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
- package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
- package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
- package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
- package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js +5 -5
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
- package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
- package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
- package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js +26 -21
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
- package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
- package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
- package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js +25 -8
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
- package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
- package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
- package/dist/components/SynapseTable/SqlEditor.js +7 -7
- package/dist/components/SynapseTable/SynapseTable.js +8 -8
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +6 -6
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +2 -2
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +59 -59
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TotalQueryResults.js +14 -14
- package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js +3 -3
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
- package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
- package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
- package/dist/components/dataaccess/FormTemplateTable.js +6 -6
- package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
- package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
- package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
- package/dist/components/download_list/DownloadDetails.js +12 -10
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/error/ErrorBanner.d.ts.map +1 -1
- package/dist/components/error/ErrorBanner.js +49 -46
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.d.ts.map +1 -1
- package/dist/components/error/ErrorChip.js +2 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
- package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
- package/dist/components/row_renderers/Dataset.js +6 -6
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
- package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js +22 -14
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
- package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
- package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +17 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.js +62 -42
- package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.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/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js +4 -2
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
- package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
- package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
- package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
- package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
- package/dist/stories/ColorPaletteInspector.js +2 -2
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-queries/auth/useOIDC.js +2 -2
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js +2 -2
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js +8 -8
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
- package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
- package/dist/synapse-queries/download/index.js +2 -2
- package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
- package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js +14 -13
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js +20 -20
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js +6 -6
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js +14 -14
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js +4 -4
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/index.js +177 -176
- package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js +7 -7
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js +4 -4
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js +2 -2
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js +3 -3
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js +8 -8
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js +4 -4
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js +4 -4
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js +10 -10
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/theme/DefaultTheme.d.ts.map +1 -1
- package/dist/theme/DefaultTheme.js +4 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +1 -1
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js +4 -4
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js +3 -3
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js +2 -2
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/StringUtils.d.ts.map +1 -1
- package/dist/utils/functions/StringUtils.js +1 -2
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js +2 -2
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/enumerationFacet.d.ts +26 -0
- package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
- package/dist/utils/functions/enumerationFacet.js +27 -0
- package/dist/utils/functions/enumerationFacet.js.map +1 -0
- package/dist/utils/functions/facetCountUtils.d.ts +12 -0
- package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
- package/dist/utils/functions/facetCountUtils.js +9 -0
- package/dist/utils/functions/facetCountUtils.js.map +1 -0
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getUserData.js +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.d.ts +1 -1
- package/dist/utils/functions/queryUtils.d.ts.map +1 -1
- package/dist/utils/functions/queryUtils.js +26 -22
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js +17 -26
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts.map +1 -1
- package/dist/utils/hooks/useLogin.js +5 -5
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
- package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/submissionContext.js +2 -2
- package/dist/utils/jsonschema/submissionContext.js.map +1 -1
- package/package.json +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIConstants.d.ts","sourceRoot":"","sources":["../../src/utils/APIConstants.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"APIConstants.d.ts","sourceRoot":"","sources":["../../src/utils/APIConstants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIConstants.js","names":[],"sources":["../../src/utils/APIConstants.ts"],"sourcesContent":["/**\n * Separating API endpoints into their own constants file\n */\n\nimport { ObjectType } from '@sage-bionetworks/synapse-types'\nimport { getEndpoint, BackendDestinationEnum } from './functions/getEndpoint'\n\nexport const BACKEND_ENDPOINT = `${getEndpoint(\n BackendDestinationEnum.REPO_ENDPOINT,\n)}`\n\nexport const REPO = `/repo/v1`\nexport const AUTH = `/auth/v1`\nexport const FILE = `/file/v1`\n\nconst ASYNC_START = '/async/start'\nconst ASYNC_GET = '/async/get'\n\nexport const OAUTH_ID = (id: string | number) => `${AUTH}/oauth2/client/${id}`\nexport const OAUTH_CLIENT_ACL = (id: string | number) => `${OAUTH_ID(id)}/acl`\n\nexport const ENTITY = `${REPO}/entity`\nexport const ENTITY_ALIAS = (alias: string) => `${REPO}/entity/alias/${alias}`\nexport const ENTITY_ID = (id: string | number) => `${REPO}/entity/${id}`\n/**\n * Some services allow (but do not require) you to specify the version in the path.\n */\nexport const ENTITY_ID_VERSION = (\n id: string | number,\n version?: string | number,\n) => `${REPO}/entity/${id}${version ? `/version/${version}` : ''}`\nexport const ENTITY_ID_VERSIONS = (id: string | number) =>\n `${REPO}/entity/${id}/version`\nexport const ENTITY_BUNDLE_V2 = (\n id: string | number,\n version?: string | number,\n) => `${ENTITY_ID_VERSION(id, version)}/bundle2`\nexport const ENTITY_ACCESS = (id: string | number) =>\n `${REPO}/entity/${id}/access`\nexport const ENTITY_ACL = (id: string | number) => `${ENTITY_ID(id)}/acl`\nexport const ENTITY_EVALUATION = (id: string | number) =>\n `${ENTITY_ID(id)}/evaluation`\nexport const ENTITY_PATH = (id: string | number) => `${ENTITY_ID(id)}/path`\nexport const ENTITY_PERMISSIONS = (id: string | number) =>\n `${ENTITY_ID(id)}/permissions`\nexport const ENTITY_HEADER_BY_ID = (id: string | number) =>\n `${ENTITY_ID(id)}/type`\nexport const ENTITY_HEADERS = `${REPO}/entity/header`\n\nexport const ENTITY_JSON = (id: string | number) => `${REPO}/entity/${id}/json`\nexport const ENTITY_VERSION_JSON = (\n id: string | number,\n versionNumber: number,\n) => `${REPO}/entity/${id}/version/${versionNumber}/json`\n\nexport const ENTITY_SCHEMA = (id: string | number) =>\n `${REPO}/entity/${id}/schema`\nexport const ENTITY_SCHEMA_BINDING = (id: string | number) =>\n `${ENTITY_SCHEMA(id)}/binding`\nexport const ENTITY_SCHEMA_VALIDATION = (id: string | number) =>\n `${ENTITY_SCHEMA(id)}/validation`\n\nexport const ENTITY_ACCESS_REQUIREMENTS = (entityId: string | number) =>\n `${ENTITY_ID(entityId)}/accessRequirement`\n\nexport const TABLE_QUERY_ASYNC_START = (id: string | number) =>\n `${ENTITY_ID(id)}/table/query/async/start`\n\nexport const TABLE_QUERY_ASYNC_GET = (\n entityId: string | number,\n asyncJobToken: string,\n) => `${ENTITY_ID(entityId)}/table/query/async/get/${asyncJobToken}`\n\nexport const ASYNCHRONOUS_JOB = `${REPO}/asynchronous/job`\nexport const ASYNCHRONOUS_JOB_TOKEN = (asyncJobToken: string) =>\n `${ASYNCHRONOUS_JOB}/${asyncJobToken}`\n\nexport const SEARCH_QUERY_ASYNC_START = `${REPO}/search/query/async/start`\nexport const SEARCH_QUERY_ASYNC_GET = (asyncJobToken: string) =>\n `${REPO}/search/query/async/get/${asyncJobToken}`\n\nexport const USER_PROFILE_ENDPOINT = `${REPO}/userProfile`\n\nexport const SCHEMA = `${REPO}/schema`\nexport const REGISTERED_SCHEMA = `${REPO}/schema/type/registered`\nexport const REGISTERED_SCHEMA_ID = (schema$id: string | number) =>\n `${REPO}/schema/type/registered/${schema$id}`\nexport const SCHEMA_VALIDATION_START = `${SCHEMA}/type/validation${ASYNC_START}`\nexport const SCHEMA_VALIDATION_GET = (asyncJobId: string | number) =>\n `${SCHEMA}/type/validation${ASYNC_GET}/${asyncJobId}`\n\nexport const USER = `${REPO}/user`\nexport const USER_BUNDLE = `${USER}/bundle`\nexport const USER_ID = (id: string | number) => `${USER}/${id}`\nexport const USER_ID_BUNDLE = (id: string | number) => `${USER_ID(id)}/bundle`\n\nexport const USER_PROFILE = `${REPO}/userProfile`\nexport const USER_PROFILE_ID = (id: string | number) => `${USER_PROFILE}/${id}`\n\nexport const NOTIFICATION_EMAIL = `${REPO}/notificationEmail`\nexport const ALIAS_AVAILABLE = `${REPO}/principal/available`\nexport const REGISTER_ACCOUNT_STEP_1 = (portalEndpoint: string) =>\n `${REPO}/account/emailValidation?portalEndpoint=${portalEndpoint}`\nexport const REGISTER_ACCOUNT_STEP_2 = `${REPO}/account2`\nexport const TERMS_OF_USE = `${AUTH}/termsOfUse2`\nexport const TERMS_OF_USE_INFO = `${TERMS_OF_USE}/info`\nexport const TERMS_OF_USE_STATUS = `${TERMS_OF_USE}/status`\nconst PROJECT = (projectId: string) => `${REPO}/project/${projectId}`\nexport const PROJECT_STORAGE_USAGE = (projectId: string) =>\n `${PROJECT(projectId)}/storage/usage`\nexport const VERIFICATION_SUBMISSION = `${REPO}/verificationSubmission`\nexport const VERIFICATION_SUBMISSION_STATE = (id: string) =>\n `${VERIFICATION_SUBMISSION}/${id}/state`\nexport const CHANGE_PASSWORD = `${AUTH}/user/changePassword`\n\nexport const ACCESS_REQUIREMENT = `${REPO}/accessRequirement`\nexport const ACCESS_REQUIREMENT_SEARCH = `${ACCESS_REQUIREMENT}/search`\nexport const ACCESS_REQUEST_SUBMISSION_SEARCH = `${REPO}/dataAccessSubmission/search`\n\nexport const ACCESS_REQUIREMENT_BY_ID = (id: string | number) =>\n `${ACCESS_REQUIREMENT}/${id}`\n\nexport const ACCESS_REQUIREMENT_ACL = (id: string | number) =>\n ACCESS_REQUIREMENT_BY_ID(id) + '/acl'\n\nexport const ACCESS_REQUIREMENT_STATUS = (id: string | number) =>\n ACCESS_REQUIREMENT_BY_ID(id) + '/status'\n\nexport const ACCESS_REQUIREMENT_WIKI_PAGE_KEY = (id: string | number) =>\n // Note that this is `access_requirement` not `accessRequirement`!\n `${REPO}/access_requirement/${id}/wikikey`\n\nexport const FAVORITES = `${REPO}/favorite`\n\nexport const USER_GROUP_HEADERS = `${REPO}/userGroupHeaders`\nexport const USER_GROUP_HEADERS_BATCH = `${REPO}/userGroupHeaders/batch`\n\nexport const DATA_ACCESS_SUBMISSION_BY_ID = (id: string | number) =>\n `${REPO}/dataAccessSubmission/${id}`\n\nexport const PROFILE_IMAGE_PREVIEW = (userId: string) =>\n `${REPO}/userProfile/${userId}/image/preview`\n\nexport const APPROVED_SUBMISSION_INFO = (\n accessRequirementId: string | number,\n) => ACCESS_REQUIREMENT_BY_ID(accessRequirementId) + `/approvedSubmissionInfo`\n\nexport const EVALUATION = `${REPO}/evaluation`\nexport const EVALUATION_BY_ID = (id: string | number) => EVALUATION + `/${id}`\n\nexport const ACTIVITY_FOR_ENTITY = (entityId: string, versionNumber?: string) =>\n versionNumber\n ? `${REPO}/entity/${entityId}/version/${versionNumber}/generatedBy`\n : `${REPO}/entity/${entityId}/generatedBy`\nexport const TRASHCAN = `${REPO}/trashcan`\nexport const TRASHCAN_VIEW = `${TRASHCAN}/view`\nexport const TRASHCAN_RESTORE = (id: string) => `${TRASHCAN}/restore/${id}`\nexport const TRASHCAN_PURGE = (id: string) => `${TRASHCAN}/purge/${id}`\n\nexport const TEAM = (teamId: string | number) => `${REPO}/team/${teamId}`\nexport const TEAM_ID_MEMBER_ID = (\n teamId: string | number,\n memberId: string | number,\n) => TEAM(teamId) + `/member/${memberId}`\nexport const TEAM_MEMBERS = (teamId: string | number) =>\n `${REPO}/teamMembers/${teamId}`\n\nconst notificationUnsubscribeEndpoint = 'https://www.synapse.org/SignedToken:'\nconst teamEndpoint = 'https://www.synapse.org/Team:'\n\nexport const TEAM_MEMBER = `${REPO}/teamMember/?teamEndpoint=${teamEndpoint}¬ificationUnsubscribeEndpoint=${notificationUnsubscribeEndpoint}`\nexport const TEAM_ID_MEMBER_ID_WITH_NOTIFICATION = (\n teamId: string | number,\n memberId: string | number,\n) =>\n TEAM_ID_MEMBER_ID(teamId, memberId) +\n `?teamEndpoint=${teamEndpoint}¬ificationUnsubscribeEndpoint=${notificationUnsubscribeEndpoint}`\nexport const MEMBERSHIP_INVITATION = (id: string) =>\n `${REPO}/membershipInvitation/${id}`\nexport const INVITEE_VERIFICATION_SIGNED_TOKEN = (id: string) =>\n `${REPO}/membershipInvitation/${id}/inviteeVerificationSignedToken`\nexport const BIND_INVITATION_TO_AUTHENTICATED_USER = (id: string) =>\n `${REPO}/membershipInvitation/${id}/inviteeId`\n\nexport const FORUM = `${REPO}/forum`\nexport const FORUM_THREAD = (id: string) => `${FORUM}/${id}/threads`\n\nexport const THREAD = `${REPO}/thread`\nexport const THREAD_ID = (id: string) => `${THREAD}/${id}`\nexport const THREAD_FOR_SUBMISSION = (submissionId: string | number) =>\n `${THREAD}/submission/${submissionId}`\nexport const THREAD_REPLIES = (id: string) => `${THREAD_ID(id)}/replies`\n\nexport const AGENT = `${REPO}/agent`\nexport const AGENT_SESSION = `${AGENT}/session`\nexport const UPDATE_AGENT_SESSION = (sessionId?: string) =>\n `${AGENT_SESSION}/${sessionId}`\nexport const LIST_AGENT_SESSIONS = `${AGENT_SESSION}s/list`\nexport const AGENT_SESSION_HISTORY = (sessionId?: string) =>\n `${AGENT_SESSION}/history/${sessionId}`\nexport const START_CHAT_ASYNC = `${AGENT}/chat/async/start`\nexport const GET_CHAT_ASYNC = (jobId: string | number) =>\n `${AGENT}/chat/async/get/${jobId}`\n\nexport const AGENT_CHAT_TRACE = (jobId: string | number) =>\n `${AGENT}/chat/trace/${jobId}`\n\nexport const DOI = `${REPO}/doi`\nexport const DOI_ASSOCIATION = `${DOI}/association`\n\nexport const ACCESS_APPROVAL = `${REPO}/accessApproval`\nexport const ACCESS_APPROVAL_BY_ID = (id: string | number) =>\n `${ACCESS_APPROVAL}/${id}`\n\nexport const DATA_ACCESS_REQUEST = `${REPO}/dataAccessRequest`\nexport const DATA_ACCESS_REQUEST_LIST = `${DATA_ACCESS_REQUEST}/list`\nexport const DATA_ACCESS_REQUEST_PREVIEW = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/preview`\nexport const DATA_ACCESS_REQUEST_SUBMISSION = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/submission`\nexport const DATA_ACCESS_REQUEST_SIGNATURE = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_STATUS = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature/status`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID = (\n id: string | number,\n) => `${DATA_ACCESS_REQUEST}/${id}/signature/filehandleId`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_QUOTA = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature/quota`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_PRECHECK = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature/precheck`\nexport const ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE = (\n accessRequirementId: string | number,\n) =>\n `${ACCESS_REQUIREMENT_BY_ID(accessRequirementId)}/dataAccessRequestForUpdate`\n\nexport const EDUC_TEMPLATE = `${REPO}/eDuc/template`\nexport const EDUC_TEMPLATE_VALIDATION = (templateId: string) =>\n `${EDUC_TEMPLATE}/${templateId}/validation`\n\nexport const RESEARCH_PROJECT = `${REPO}/researchProject`\nexport const ACCESS_REQUIREMENT_RESEARCH_PROJECT_FOR_UPDATE = (\n accessRequirementId: string | number,\n) => `${ACCESS_REQUIREMENT_BY_ID(accessRequirementId)}/researchProjectForUpdate`\n\nexport const FILE_HANDLE = `${FILE}/fileHandle`\nexport const FILE_HANDLE_BATCH = `${FILE_HANDLE}/batch`\n\nexport const PROJECTS = `${REPO}/projects`\nexport const ENTITY_ACTIONS_REQUIRED = (entityId: string) =>\n `${REPO}/entity/${entityId}/actions/download`\n\nexport const WIKI_OBJECT_TYPE = (objectType: ObjectType) => {\n return `${REPO}/${ObjectType[objectType].toLowerCase()}`\n}\n\nexport const WIKI_PAGE = (\n ownerObjectType: ObjectType,\n ownerObjectId: string,\n) => {\n return `${WIKI_OBJECT_TYPE(ownerObjectType)}/${ownerObjectId}/wiki`\n}\nexport const WIKI_PAGE_ID = (\n ownerObjectType: ObjectType,\n ownerObjectId: string,\n wikiPageId: string | undefined,\n) => {\n return `${WIKI_PAGE(ownerObjectType, ownerObjectId)}/${wikiPageId ?? ''}`\n}\n\nexport const SESSION_ACCESS_TOKEN = `${AUTH}/sessionAccessToken`\nexport const ALL_USER_SESSION_TOKENS = (targetUserId: string | number) =>\n `${AUTH}/user/${targetUserId}/sessionAccessToken/all`\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"APIConstants.js","names":[],"sources":["../../src/utils/APIConstants.ts"],"sourcesContent":["/**\n * Separating API endpoints into their own constants file\n */\n\nimport { ObjectType } from '@sage-bionetworks/synapse-types'\nimport { getEndpoint, BackendDestinationEnum } from './functions/getEndpoint'\n\nexport const BACKEND_ENDPOINT = `${getEndpoint(\n BackendDestinationEnum.REPO_ENDPOINT,\n)}`\n\nexport const REPO = `/repo/v1`\nexport const AUTH = `/auth/v1`\nexport const FILE = `/file/v1`\n\nconst ASYNC_START = '/async/start'\nconst ASYNC_GET = '/async/get'\n\nexport const OAUTH_ID = (id: string | number) => `${AUTH}/oauth2/client/${id}`\nexport const OAUTH_CLIENT_ACL = (id: string | number) => `${OAUTH_ID(id)}/acl`\n\nexport const ENTITY = `${REPO}/entity`\nexport const ENTITY_ALIAS = (alias: string) => `${REPO}/entity/alias/${alias}`\nexport const ENTITY_ID = (id: string | number) => `${REPO}/entity/${id}`\n/**\n * Some services allow (but do not require) you to specify the version in the path.\n */\nexport const ENTITY_ID_VERSION = (\n id: string | number,\n version?: string | number,\n) => `${REPO}/entity/${id}${version ? `/version/${version}` : ''}`\nexport const ENTITY_ID_VERSIONS = (id: string | number) =>\n `${REPO}/entity/${id}/version`\nexport const ENTITY_BUNDLE_V2 = (\n id: string | number,\n version?: string | number,\n) => `${ENTITY_ID_VERSION(id, version)}/bundle2`\nexport const ENTITY_ACCESS = (id: string | number) =>\n `${REPO}/entity/${id}/access`\nexport const ENTITY_ACL = (id: string | number) => `${ENTITY_ID(id)}/acl`\nexport const ENTITY_EVALUATION = (id: string | number) =>\n `${ENTITY_ID(id)}/evaluation`\nexport const ENTITY_PATH = (id: string | number) => `${ENTITY_ID(id)}/path`\nexport const ENTITY_PERMISSIONS = (id: string | number) =>\n `${ENTITY_ID(id)}/permissions`\nexport const ENTITY_HEADER_BY_ID = (id: string | number) =>\n `${ENTITY_ID(id)}/type`\nexport const ENTITY_HEADERS = `${REPO}/entity/header`\n\nexport const ENTITY_JSON = (id: string | number) => `${REPO}/entity/${id}/json`\nexport const ENTITY_VERSION_JSON = (\n id: string | number,\n versionNumber: number,\n) => `${REPO}/entity/${id}/version/${versionNumber}/json`\n\nexport const ENTITY_SCHEMA = (id: string | number) =>\n `${REPO}/entity/${id}/schema`\nexport const ENTITY_SCHEMA_BINDING = (id: string | number) =>\n `${ENTITY_SCHEMA(id)}/binding`\nexport const ENTITY_SCHEMA_VALIDATION = (id: string | number) =>\n `${ENTITY_SCHEMA(id)}/validation`\n\nexport const ENTITY_ACCESS_REQUIREMENTS = (entityId: string | number) =>\n `${ENTITY_ID(entityId)}/accessRequirement`\n\nexport const TABLE_QUERY_ASYNC_START = (id: string | number) =>\n `${ENTITY_ID(id)}/table/query/async/start`\n\nexport const TABLE_QUERY_ASYNC_GET = (\n entityId: string | number,\n asyncJobToken: string,\n) => `${ENTITY_ID(entityId)}/table/query/async/get/${asyncJobToken}`\n\nexport const ASYNCHRONOUS_JOB = `${REPO}/asynchronous/job`\nexport const ASYNCHRONOUS_JOB_TOKEN = (asyncJobToken: string) =>\n `${ASYNCHRONOUS_JOB}/${asyncJobToken}`\n\nexport const SEARCH_QUERY_ASYNC_START = `${REPO}/search/query/async/start`\nexport const SEARCH_QUERY_ASYNC_GET = (asyncJobToken: string) =>\n `${REPO}/search/query/async/get/${asyncJobToken}`\n\nexport const USER_PROFILE_ENDPOINT = `${REPO}/userProfile`\n\nexport const SCHEMA = `${REPO}/schema`\nexport const REGISTERED_SCHEMA = `${REPO}/schema/type/registered`\nexport const REGISTERED_SCHEMA_ID = (schema$id: string | number) =>\n `${REPO}/schema/type/registered/${schema$id}`\nexport const SCHEMA_VALIDATION_START = `${SCHEMA}/type/validation${ASYNC_START}`\nexport const SCHEMA_VALIDATION_GET = (asyncJobId: string | number) =>\n `${SCHEMA}/type/validation${ASYNC_GET}/${asyncJobId}`\n\nexport const USER = `${REPO}/user`\nexport const USER_BUNDLE = `${USER}/bundle`\nexport const USER_ID = (id: string | number) => `${USER}/${id}`\nexport const USER_ID_BUNDLE = (id: string | number) => `${USER_ID(id)}/bundle`\n\nexport const USER_PROFILE = `${REPO}/userProfile`\nexport const USER_PROFILE_ID = (id: string | number) => `${USER_PROFILE}/${id}`\n\nexport const NOTIFICATION_EMAIL = `${REPO}/notificationEmail`\nexport const ALIAS_AVAILABLE = `${REPO}/principal/available`\nexport const REGISTER_ACCOUNT_STEP_1 = (portalEndpoint: string) =>\n `${REPO}/account/emailValidation?portalEndpoint=${portalEndpoint}`\nexport const REGISTER_ACCOUNT_STEP_2 = `${REPO}/account2`\nexport const TERMS_OF_USE = `${AUTH}/termsOfUse2`\nexport const TERMS_OF_USE_INFO = `${TERMS_OF_USE}/info`\nexport const TERMS_OF_USE_STATUS = `${TERMS_OF_USE}/status`\nconst PROJECT = (projectId: string) => `${REPO}/project/${projectId}`\nexport const PROJECT_STORAGE_USAGE = (projectId: string) =>\n `${PROJECT(projectId)}/storage/usage`\nexport const VERIFICATION_SUBMISSION = `${REPO}/verificationSubmission`\nexport const VERIFICATION_SUBMISSION_STATE = (id: string) =>\n `${VERIFICATION_SUBMISSION}/${id}/state`\nexport const CHANGE_PASSWORD = `${AUTH}/user/changePassword`\n\nexport const ACCESS_REQUIREMENT = `${REPO}/accessRequirement`\nexport const ACCESS_REQUIREMENT_SEARCH = `${ACCESS_REQUIREMENT}/search`\nexport const ACCESS_REQUEST_SUBMISSION_SEARCH = `${REPO}/dataAccessSubmission/search`\n\nexport const ACCESS_REQUIREMENT_BY_ID = (id: string | number) =>\n `${ACCESS_REQUIREMENT}/${id}`\n\nexport const ACCESS_REQUIREMENT_ACL = (id: string | number) =>\n ACCESS_REQUIREMENT_BY_ID(id) + '/acl'\n\nexport const ACCESS_REQUIREMENT_STATUS = (id: string | number) =>\n ACCESS_REQUIREMENT_BY_ID(id) + '/status'\n\nexport const ACCESS_REQUIREMENT_WIKI_PAGE_KEY = (id: string | number) =>\n // Note that this is `access_requirement` not `accessRequirement`!\n `${REPO}/access_requirement/${id}/wikikey`\n\nexport const FAVORITES = `${REPO}/favorite`\n\nexport const USER_GROUP_HEADERS = `${REPO}/userGroupHeaders`\nexport const USER_GROUP_HEADERS_BATCH = `${REPO}/userGroupHeaders/batch`\n\nexport const DATA_ACCESS_SUBMISSION_BY_ID = (id: string | number) =>\n `${REPO}/dataAccessSubmission/${id}`\n\nexport const PROFILE_IMAGE_PREVIEW = (userId: string) =>\n `${REPO}/userProfile/${userId}/image/preview`\n\nexport const APPROVED_SUBMISSION_INFO = (\n accessRequirementId: string | number,\n) => ACCESS_REQUIREMENT_BY_ID(accessRequirementId) + `/approvedSubmissionInfo`\n\nexport const EVALUATION = `${REPO}/evaluation`\nexport const EVALUATION_BY_ID = (id: string | number) => EVALUATION + `/${id}`\n\nexport const ACTIVITY_FOR_ENTITY = (\n entityId: string,\n versionNumber?: string,\n) =>\n versionNumber\n ? `${REPO}/entity/${entityId}/version/${versionNumber}/generatedBy`\n : `${REPO}/entity/${entityId}/generatedBy`\nexport const TRASHCAN = `${REPO}/trashcan`\nexport const TRASHCAN_VIEW = `${TRASHCAN}/view`\nexport const TRASHCAN_RESTORE = (id: string) => `${TRASHCAN}/restore/${id}`\nexport const TRASHCAN_PURGE = (id: string) => `${TRASHCAN}/purge/${id}`\n\nexport const TEAM = (teamId: string | number) => `${REPO}/team/${teamId}`\nexport const TEAM_ID_MEMBER_ID = (\n teamId: string | number,\n memberId: string | number,\n) => TEAM(teamId) + `/member/${memberId}`\nexport const TEAM_MEMBERS = (teamId: string | number) =>\n `${REPO}/teamMembers/${teamId}`\n\nconst notificationUnsubscribeEndpoint = 'https://www.synapse.org/SignedToken:'\nconst teamEndpoint = 'https://www.synapse.org/Team:'\n\nexport const TEAM_MEMBER = `${REPO}/teamMember/?teamEndpoint=${teamEndpoint}¬ificationUnsubscribeEndpoint=${notificationUnsubscribeEndpoint}`\nexport const TEAM_ID_MEMBER_ID_WITH_NOTIFICATION = (\n teamId: string | number,\n memberId: string | number,\n) =>\n TEAM_ID_MEMBER_ID(teamId, memberId) +\n `?teamEndpoint=${teamEndpoint}¬ificationUnsubscribeEndpoint=${notificationUnsubscribeEndpoint}`\nexport const MEMBERSHIP_INVITATION = (id: string) =>\n `${REPO}/membershipInvitation/${id}`\nexport const INVITEE_VERIFICATION_SIGNED_TOKEN = (id: string) =>\n `${REPO}/membershipInvitation/${id}/inviteeVerificationSignedToken`\nexport const BIND_INVITATION_TO_AUTHENTICATED_USER = (id: string) =>\n `${REPO}/membershipInvitation/${id}/inviteeId`\n\nexport const FORUM = `${REPO}/forum`\nexport const FORUM_THREAD = (id: string) => `${FORUM}/${id}/threads`\n\nexport const THREAD = `${REPO}/thread`\nexport const THREAD_ID = (id: string) => `${THREAD}/${id}`\nexport const THREAD_FOR_SUBMISSION = (submissionId: string | number) =>\n `${THREAD}/submission/${submissionId}`\nexport const THREAD_REPLIES = (id: string) => `${THREAD_ID(id)}/replies`\n\nexport const AGENT = `${REPO}/agent`\nexport const AGENT_SESSION = `${AGENT}/session`\nexport const UPDATE_AGENT_SESSION = (sessionId?: string) =>\n `${AGENT_SESSION}/${sessionId}`\nexport const LIST_AGENT_SESSIONS = `${AGENT_SESSION}s/list`\nexport const AGENT_SESSION_HISTORY = (sessionId?: string) =>\n `${AGENT_SESSION}/history/${sessionId}`\nexport const START_CHAT_ASYNC = `${AGENT}/chat/async/start`\nexport const GET_CHAT_ASYNC = (jobId: string | number) =>\n `${AGENT}/chat/async/get/${jobId}`\n\nexport const AGENT_CHAT_TRACE = (jobId: string | number) =>\n `${AGENT}/chat/trace/${jobId}`\n\nexport const DOI = `${REPO}/doi`\nexport const DOI_ASSOCIATION = `${DOI}/association`\n\nexport const ACCESS_APPROVAL = `${REPO}/accessApproval`\nexport const ACCESS_APPROVAL_BY_ID = (id: string | number) =>\n `${ACCESS_APPROVAL}/${id}`\n\nexport const DATA_ACCESS_REQUEST = `${REPO}/dataAccessRequest`\nexport const DATA_ACCESS_REQUEST_LIST = `${DATA_ACCESS_REQUEST}/list`\nexport const DATA_ACCESS_REQUEST_PREVIEW = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/preview`\nexport const DATA_ACCESS_REQUEST_SUBMISSION = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/submission`\nexport const DATA_ACCESS_REQUEST_SIGNATURE = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_STATUS = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature/status`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID = (\n id: string | number,\n) => `${DATA_ACCESS_REQUEST}/${id}/signature/filehandleId`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_QUOTA = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature/quota`\nexport const DATA_ACCESS_REQUEST_SIGNATURE_PRECHECK = (id: string | number) =>\n `${DATA_ACCESS_REQUEST}/${id}/signature/precheck`\nexport const ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE = (\n accessRequirementId: string | number,\n) =>\n `${ACCESS_REQUIREMENT_BY_ID(accessRequirementId)}/dataAccessRequestForUpdate`\n\nexport const EDUC_TEMPLATE = `${REPO}/eDuc/template`\nexport const EDUC_TEMPLATE_VALIDATION = (templateId: string) =>\n `${EDUC_TEMPLATE}/${templateId}/validation`\n\nexport const RESEARCH_PROJECT = `${REPO}/researchProject`\nexport const ACCESS_REQUIREMENT_RESEARCH_PROJECT_FOR_UPDATE = (\n accessRequirementId: string | number,\n) => `${ACCESS_REQUIREMENT_BY_ID(accessRequirementId)}/researchProjectForUpdate`\n\nexport const FILE_HANDLE = `${FILE}/fileHandle`\nexport const FILE_HANDLE_BATCH = `${FILE_HANDLE}/batch`\n\nexport const PROJECTS = `${REPO}/projects`\nexport const ENTITY_ACTIONS_REQUIRED = (entityId: string) =>\n `${REPO}/entity/${entityId}/actions/download`\n\nexport const WIKI_OBJECT_TYPE = (objectType: ObjectType) => {\n return `${REPO}/${ObjectType[objectType].toLowerCase()}`\n}\n\nexport const WIKI_PAGE = (\n ownerObjectType: ObjectType,\n ownerObjectId: string,\n) => {\n return `${WIKI_OBJECT_TYPE(ownerObjectType)}/${ownerObjectId}/wiki`\n}\nexport const WIKI_PAGE_ID = (\n ownerObjectType: ObjectType,\n ownerObjectId: string,\n wikiPageId: string | undefined,\n) => {\n return `${WIKI_PAGE(ownerObjectType, ownerObjectId)}/${wikiPageId ?? ''}`\n}\n\nexport const SESSION_ACCESS_TOKEN = `${AUTH}/sessionAccessToken`\nexport const ALL_USER_SESSION_TOKENS = (targetUserId: string | number) =>\n `${AUTH}/user/${targetUserId}/sessionAccessToken/all`\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ var o = "org.sagebionetworks.cookies.redirect-after-login", s = () => {
|
|
|
11
11
|
};
|
|
12
12
|
function c(e) {
|
|
13
13
|
let t = /* @__PURE__ */ new Date();
|
|
14
|
-
t.setTime(t.getTime() +
|
|
14
|
+
t.setTime(t.getTime() + 7200 * 1e3), i.set(o, window.location.href, {
|
|
15
15
|
path: "/",
|
|
16
16
|
domain: s(),
|
|
17
17
|
expires: t
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppUtils.js","names":[],"sources":["../../../src/utils/AppUtils/AppUtils.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { NavigateFunction } from 'react-router'\nimport {\n ACCOUNT_SITE_PROMPTED_FOR_LOGIN_COOKIE_KEY,\n LAST_PLACE_LOCALSTORAGE_KEY,\n} from '../SynapseConstants'\nimport Cookies from 'js-cookie'\n\nexport function storeLastPlace() {\n // save current route (so that we can go back here after SSO)\n localStorage.setItem(LAST_PLACE_LOCALSTORAGE_KEY, window.location.href)\n}\n\nexport const ONE_SAGE_REDIRECT_COOKIE_KEY =\n 'org.sagebionetworks.cookies.redirect-after-login'\n\nexport const getCookieDomain = () => {\n if (window.location.hostname.toLowerCase().endsWith('.synapse.org')) {\n return '.synapse.org'\n }\n if (window.location.hostname.toLowerCase().endsWith('.dev.sagebase.org')) {\n return '.dev.sagebase.org'\n }\n return undefined\n}\n\nexport function storeRedirectURLForOneSageLoginAndGotoURL(href: string) {\n // save current URL in a cookie that One Sage will use to send you back to the correct page\n const twoHoursFromNow = new Date()\n twoHoursFromNow.setTime(twoHoursFromNow.getTime() + 60 * 60 * 1000)\n\n Cookies.set(ONE_SAGE_REDIRECT_COOKIE_KEY, window.location.href, {\n path: '/',\n domain: getCookieDomain(),\n expires: twoHoursFromNow,\n })\n setTimeout(() => {\n window.location.assign(href)\n }, 10)\n}\n\nexport function processRedirectURLInOneSage() {\n // PORTALS-3299 : Indicate that we have completed the login workflow (cookie expires in a minute) to break out of a cycle\n const expireDate = new Date()\n expireDate.setMinutes(expireDate.getMinutes() + 1)\n Cookies.set(ACCOUNT_SITE_PROMPTED_FOR_LOGIN_COOKIE_KEY, 'true', {\n path: '/',\n expires: expireDate,\n domain: getCookieDomain(),\n })\n\n if (Cookies.get(ONE_SAGE_REDIRECT_COOKIE_KEY)) {\n const href = Cookies.get(ONE_SAGE_REDIRECT_COOKIE_KEY)\n // instead of removing, set the expiration to 10 seconds to avoid race condition with SageAccountWeb LoggedInRedirector\n const tenSecondsFromNow = new Date()\n tenSecondsFromNow.setTime(tenSecondsFromNow.getTime() + 10 * 1000)\n Cookies.set(ONE_SAGE_REDIRECT_COOKIE_KEY, href!, {\n path: '/',\n domain: getCookieDomain(),\n expires: tenSecondsFromNow,\n })\n\n window.location.replace(href!)\n return true\n }\n //else\n return false\n}\n\n/**\n * Returns to the route in localStorage saved when `storeLastPlace` was called,\n * typically before jumping from an app to OneSage for authentication, or before\n * jumping from OneSage to an external IdP (e.g. Google) for authentication.\n *\n * @return boolean indicating if a redirect occurred\n */\nexport function restoreLastPlace(\n navigate?: NavigateFunction,\n fallbackRedirectUrl?: string,\n): boolean {\n // go back to original route after successful SSO login\n const originalUrl = localStorage.getItem(LAST_PLACE_LOCALSTORAGE_KEY)\n localStorage.removeItem(LAST_PLACE_LOCALSTORAGE_KEY)\n const redirectUrl = originalUrl ?? fallbackRedirectUrl\n if (\n redirectUrl &&\n window.location.href != redirectUrl &&\n window.location.href.substring(window.location.origin.length) != redirectUrl\n ) {\n if (navigate) {\n if (redirectUrl.startsWith(window.location.origin)) {\n navigate(redirectUrl.substring(window.location.origin.length), {\n replace: true,\n })\n } else {\n navigate(redirectUrl, { replace: true })\n }\n } else {\n window.location.replace(redirectUrl)\n }\n return true\n }\n return false\n}\n\n/**\n * Hook to detect if the current page is framed (i.e. in an iframe). If so, it will attempt to break out of the frame.\n * See SWC-6294\n * @returns true if the page is framed and not sandboxed\n */\nexport function useFramebuster(): boolean {\n const [isFramed, setIsFramed] = useState(false)\n useEffect(() => {\n // SWC-6294: on mount, detect and attempt a client-side framebuster (mitigation only, easily bypassed by attacker)\n if (window.top && window.top !== window) {\n // If not sandboxed, make sure not to show any portal content (in case they block window unload via onbeforeunload)\n setIsFramed(true)\n // If sandboxed, this call will cause an uncaught js exception and portal will not load.\n window.top.location.href = window.location.toString()\n }\n }, [])\n return isFramed\n}\n"],"mappings":";;;;AAQA,SAAgB,IAAiB;CAE/B,aAAa,QAAQ,GAA6B,OAAO,SAAS,IAAI;AACxE;AAEA,IAAa,IACX,oDAEW,UAAwB;CACnC,IAAI,OAAO,SAAS,SAAS,YAAY,EAAE,SAAS,cAAc,GAChE,OAAO;CAET,IAAI,OAAO,SAAS,SAAS,YAAY,EAAE,SAAS,mBAAmB,GACrE,OAAO;AAGX;AAEA,SAAgB,EAA0C,GAAc;CAEtE,IAAM,oBAAkB,IAAI,KAAK;CAQjC,AAPA,EAAgB,QAAQ,EAAgB,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"AppUtils.js","names":[],"sources":["../../../src/utils/AppUtils/AppUtils.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport { NavigateFunction } from 'react-router'\nimport {\n ACCOUNT_SITE_PROMPTED_FOR_LOGIN_COOKIE_KEY,\n LAST_PLACE_LOCALSTORAGE_KEY,\n} from '../SynapseConstants'\nimport Cookies from 'js-cookie'\n\nexport function storeLastPlace() {\n // save current route (so that we can go back here after SSO)\n localStorage.setItem(LAST_PLACE_LOCALSTORAGE_KEY, window.location.href)\n}\n\nexport const ONE_SAGE_REDIRECT_COOKIE_KEY =\n 'org.sagebionetworks.cookies.redirect-after-login'\n\nexport const getCookieDomain = () => {\n if (window.location.hostname.toLowerCase().endsWith('.synapse.org')) {\n return '.synapse.org'\n }\n if (window.location.hostname.toLowerCase().endsWith('.dev.sagebase.org')) {\n return '.dev.sagebase.org'\n }\n return undefined\n}\n\nexport function storeRedirectURLForOneSageLoginAndGotoURL(href: string) {\n // save current URL in a cookie that One Sage will use to send you back to the correct page\n const twoHoursFromNow = new Date()\n twoHoursFromNow.setTime(twoHoursFromNow.getTime() + 2 * 60 * 60 * 1000)\n\n Cookies.set(ONE_SAGE_REDIRECT_COOKIE_KEY, window.location.href, {\n path: '/',\n domain: getCookieDomain(),\n expires: twoHoursFromNow,\n })\n setTimeout(() => {\n window.location.assign(href)\n }, 10)\n}\n\nexport function processRedirectURLInOneSage() {\n // PORTALS-3299 : Indicate that we have completed the login workflow (cookie expires in a minute) to break out of a cycle\n const expireDate = new Date()\n expireDate.setMinutes(expireDate.getMinutes() + 1)\n Cookies.set(ACCOUNT_SITE_PROMPTED_FOR_LOGIN_COOKIE_KEY, 'true', {\n path: '/',\n expires: expireDate,\n domain: getCookieDomain(),\n })\n\n if (Cookies.get(ONE_SAGE_REDIRECT_COOKIE_KEY)) {\n const href = Cookies.get(ONE_SAGE_REDIRECT_COOKIE_KEY)\n // instead of removing, set the expiration to 10 seconds to avoid race condition with SageAccountWeb LoggedInRedirector\n const tenSecondsFromNow = new Date()\n tenSecondsFromNow.setTime(tenSecondsFromNow.getTime() + 10 * 1000)\n Cookies.set(ONE_SAGE_REDIRECT_COOKIE_KEY, href!, {\n path: '/',\n domain: getCookieDomain(),\n expires: tenSecondsFromNow,\n })\n\n window.location.replace(href!)\n return true\n }\n //else\n return false\n}\n\n/**\n * Returns to the route in localStorage saved when `storeLastPlace` was called,\n * typically before jumping from an app to OneSage for authentication, or before\n * jumping from OneSage to an external IdP (e.g. Google) for authentication.\n *\n * @return boolean indicating if a redirect occurred\n */\nexport function restoreLastPlace(\n navigate?: NavigateFunction,\n fallbackRedirectUrl?: string,\n): boolean {\n // go back to original route after successful SSO login\n const originalUrl = localStorage.getItem(LAST_PLACE_LOCALSTORAGE_KEY)\n localStorage.removeItem(LAST_PLACE_LOCALSTORAGE_KEY)\n const redirectUrl = originalUrl ?? fallbackRedirectUrl\n if (\n redirectUrl &&\n window.location.href != redirectUrl &&\n window.location.href.substring(window.location.origin.length) != redirectUrl\n ) {\n if (navigate) {\n if (redirectUrl.startsWith(window.location.origin)) {\n navigate(redirectUrl.substring(window.location.origin.length), {\n replace: true,\n })\n } else {\n navigate(redirectUrl, { replace: true })\n }\n } else {\n window.location.replace(redirectUrl)\n }\n return true\n }\n return false\n}\n\n/**\n * Hook to detect if the current page is framed (i.e. in an iframe). If so, it will attempt to break out of the frame.\n * See SWC-6294\n * @returns true if the page is framed and not sandboxed\n */\nexport function useFramebuster(): boolean {\n const [isFramed, setIsFramed] = useState(false)\n useEffect(() => {\n // SWC-6294: on mount, detect and attempt a client-side framebuster (mitigation only, easily bypassed by attacker)\n if (window.top && window.top !== window) {\n // If not sandboxed, make sure not to show any portal content (in case they block window unload via onbeforeunload)\n setIsFramed(true)\n // If sandboxed, this call will cause an uncaught js exception and portal will not load.\n window.top.location.href = window.location.toString()\n }\n }, [])\n return isFramed\n}\n"],"mappings":";;;;AAQA,SAAgB,IAAiB;CAE/B,aAAa,QAAQ,GAA6B,OAAO,SAAS,IAAI;AACxE;AAEA,IAAa,IACX,oDAEW,UAAwB;CACnC,IAAI,OAAO,SAAS,SAAS,YAAY,EAAE,SAAS,cAAc,GAChE,OAAO;CAET,IAAI,OAAO,SAAS,SAAS,YAAY,EAAE,SAAS,mBAAmB,GACrE,OAAO;AAGX;AAEA,SAAgB,EAA0C,GAAc;CAEtE,IAAM,oBAAkB,IAAI,KAAK;CAQjC,AAPA,EAAgB,QAAQ,EAAgB,QAAQ,IAAI,OAAc,GAAI,GAEtE,EAAQ,IAAI,GAA8B,OAAO,SAAS,MAAM;EAC9D,MAAM;EACN,QAAQ,EAAgB;EACxB,SAAS;CACX,CAAC,GACD,iBAAiB;EACf,OAAO,SAAS,OAAO,CAAI;CAC7B,GAAG,EAAE;AACP;AAEA,SAAgB,IAA8B;CAE5C,IAAM,oBAAa,IAAI,KAAK;CAQ5B,IAPA,EAAW,WAAW,EAAW,WAAW,IAAI,CAAC,GACjD,EAAQ,IAAI,GAA4C,QAAQ;EAC9D,MAAM;EACN,SAAS;EACT,QAAQ,EAAgB;CAC1B,CAAC,GAEG,EAAQ,IAAA,kDAAgC,GAAG;EAC7C,IAAM,IAAO,EAAQ,IAAI,CAA4B,GAE/C,oBAAoB,IAAI,KAAK;EASnC,OARA,EAAkB,QAAQ,EAAkB,QAAQ,IAAI,KAAK,GAAI,GACjE,EAAQ,IAAI,GAA8B,GAAO;GAC/C,MAAM;GACN,QAAQ,EAAgB;GACxB,SAAS;EACX,CAAC,GAED,OAAO,SAAS,QAAQ,CAAK,GACtB;CACT;CAEA,OAAO;AACT;AASA,SAAgB,EACd,GACA,GACS;CAET,IAAM,IAAc,aAAa,QAAQ,CAA2B;CACpE,aAAa,WAAW,CAA2B;CACnD,IAAM,IAAc,KAAe;CAmBnC,OAjBE,KACA,OAAO,SAAS,QAAQ,KACxB,OAAO,SAAS,KAAK,UAAU,OAAO,SAAS,OAAO,MAAM,KAAK,KAE7D,IACE,EAAY,WAAW,OAAO,SAAS,MAAM,IAC/C,EAAS,EAAY,UAAU,OAAO,SAAS,OAAO,MAAM,GAAG,EAC7D,SAAS,GACX,CAAC,IAED,EAAS,GAAa,EAAE,SAAS,GAAK,CAAC,IAGzC,OAAO,SAAS,QAAQ,CAAW,GAE9B,MAEF;AACT;AAOA,SAAgB,IAA0B;CACxC,IAAM,CAAC,GAAU,KAAe,EAAS,EAAK;CAU9C,OATA,QAAgB;EAEd,AAAI,OAAO,OAAO,OAAO,QAAQ,WAE/B,EAAY,EAAI,GAEhB,OAAO,IAAI,SAAS,OAAO,OAAO,SAAS,SAAS;CAExD,GAAG,CAAC,CAAC,GACE;AACT"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
//#region src/utils/ContentTypeUtils.ts
|
|
2
|
-
var e = /* @__PURE__ */ ".awk,.bat,.btm,.c,.cmd,.cpp,.cxx,.def,.dlg,.dpc,.dpj,.dtd,.h,.hdl,.hpp,.hrc,.html,.hxx,.inc,.ini,.inl,.ins,.ipy,.java,.js,.jsp,.l,.lgt,.ll,.par,.pl,.py,.r,.rc,.rdb,.res,.s,.sbl,.scp,.sh,.sql,.src,.srs,.xml,.xrb,.y,.yaml,.yxx".split(","), t = "text/plain", n = "text/csv", r = "text/tab-separated-values", i = "application/octet-stream", a = [
|
|
2
|
+
var e = new Set(/* @__PURE__ */ ".awk,.bat,.btm,.c,.cmd,.cpp,.cxx,.def,.dlg,.dpc,.dpj,.dtd,.h,.hdl,.hpp,.hrc,.html,.hxx,.inc,.ini,.inl,.ins,.ipy,.java,.js,.jsp,.l,.lgt,.ll,.par,.pl,.py,.r,.rc,.rdb,.res,.s,.sbl,.scp,.sh,.sql,.src,.srs,.xml,.xrb,.y,.yaml,.yxx".split(",")), t = "text/plain", n = "text/csv", r = "text/tab-separated-values", i = "application/octet-stream", a = new Set([
|
|
3
3
|
".cwl",
|
|
4
4
|
".wdl",
|
|
5
5
|
".json"
|
|
6
|
-
];
|
|
6
|
+
]);
|
|
7
7
|
function o(t) {
|
|
8
8
|
let n = !1;
|
|
9
9
|
if (t != null) {
|
|
10
10
|
let r = t.lastIndexOf(".");
|
|
11
11
|
if (r > -1) {
|
|
12
12
|
let i = t.substring(r).toLowerCase();
|
|
13
|
-
n = e.
|
|
13
|
+
n = e.has(i);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
return n;
|
|
@@ -24,7 +24,7 @@ function s(e) {
|
|
|
24
24
|
}
|
|
25
25
|
function c(e) {
|
|
26
26
|
let t = !1, n = s(e);
|
|
27
|
-
return n != null && (t = a.
|
|
27
|
+
return n != null && (t = a.has("." + n)), t;
|
|
28
28
|
}
|
|
29
29
|
function l(e, a) {
|
|
30
30
|
let s = e, l = a.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentTypeUtils.js","names":[],"sources":["../../src/utils/ContentTypeUtils.ts"],"sourcesContent":["// Copied from lib-shared-models ContentTypeUtils.class\n\nconst CODE_EXTENSIONS = [\n '.awk',\n '.bat',\n '.btm',\n '.c',\n '.cmd',\n '.cpp',\n '.cxx',\n '.def',\n '.dlg',\n '.dpc',\n '.dpj',\n '.dtd',\n '.h',\n '.hdl',\n '.hpp',\n '.hrc',\n '.html',\n '.hxx',\n '.inc',\n '.ini',\n '.inl',\n '.ins',\n '.ipy',\n '.java',\n '.js',\n '.jsp',\n '.l',\n '.lgt',\n '.ll',\n '.par',\n '.pl',\n '.py',\n '.r',\n '.rc',\n '.rdb',\n '.res',\n '.s',\n '.sbl',\n '.scp',\n '.sh',\n '.sql',\n '.src',\n '.srs',\n '.xml',\n '.xrb',\n '.y',\n '.yaml',\n '.yxx',\n]\n\nexport const PLAIN_TEXT = 'text/plain'\nexport const TEXT_COMMA_SEPARATED_VALUES = 'text/csv'\nexport const TEXT_TAB_SEPARATED_VALUES = 'text/tab-separated-values'\nexport const APPLICATION_OCTET_STREAM = 'application/octet-stream'\n\nconst WEB_CODE_EXTENSIONS = ['.cwl', '.wdl', '.json']\n\nexport function isRecognizedCodeFileName(fileName: string): boolean {\n let isCodeFile = false\n if (fileName != null) {\n const lastDot = fileName.lastIndexOf('.')\n if (lastDot > -1) {\n const extension = fileName.substring(lastDot).toLowerCase()\n isCodeFile = CODE_EXTENSIONS.
|
|
1
|
+
{"version":3,"file":"ContentTypeUtils.js","names":[],"sources":["../../src/utils/ContentTypeUtils.ts"],"sourcesContent":["// Copied from lib-shared-models ContentTypeUtils.class\n\nconst CODE_EXTENSIONS = new Set([\n '.awk',\n '.bat',\n '.btm',\n '.c',\n '.cmd',\n '.cpp',\n '.cxx',\n '.def',\n '.dlg',\n '.dpc',\n '.dpj',\n '.dtd',\n '.h',\n '.hdl',\n '.hpp',\n '.hrc',\n '.html',\n '.hxx',\n '.inc',\n '.ini',\n '.inl',\n '.ins',\n '.ipy',\n '.java',\n '.js',\n '.jsp',\n '.l',\n '.lgt',\n '.ll',\n '.par',\n '.pl',\n '.py',\n '.r',\n '.rc',\n '.rdb',\n '.res',\n '.s',\n '.sbl',\n '.scp',\n '.sh',\n '.sql',\n '.src',\n '.srs',\n '.xml',\n '.xrb',\n '.y',\n '.yaml',\n '.yxx',\n])\n\nexport const PLAIN_TEXT = 'text/plain'\nexport const TEXT_COMMA_SEPARATED_VALUES = 'text/csv'\nexport const TEXT_TAB_SEPARATED_VALUES = 'text/tab-separated-values'\nexport const APPLICATION_OCTET_STREAM = 'application/octet-stream'\n\nconst WEB_CODE_EXTENSIONS = new Set(['.cwl', '.wdl', '.json'])\n\nexport function isRecognizedCodeFileName(fileName: string): boolean {\n let isCodeFile = false\n if (fileName != null) {\n const lastDot = fileName.lastIndexOf('.')\n if (lastDot > -1) {\n const extension = fileName.substring(lastDot).toLowerCase()\n isCodeFile = CODE_EXTENSIONS.has(extension)\n }\n }\n\n return isCodeFile\n}\n\nfunction getExtension(fileName: string): string | null {\n if (fileName != null) {\n const lastDot = fileName.lastIndexOf('.')\n if (lastDot > -1) {\n return fileName.substring(lastDot + 1).toLowerCase()\n }\n }\n return null\n}\n\nfunction isWebRecognizedCodeFileName(fileName: string): boolean {\n let isPlainText = false\n const extension = getExtension(fileName)\n if (extension != null) {\n isPlainText = WEB_CODE_EXTENSIONS.has('.' + extension)\n }\n return isPlainText\n}\n\n/**\n * Given an initial Content Type and a file name, returns an appropriate Content\n * Type if the initial value is null or empty. Otherwise, the original Content\n * Type is returned.\n * @param type\n * @param fileName\n */\nexport function fixDefaultContentType(\n type: string | null,\n fileName: string,\n): string {\n let contentType = type\n const lowercaseFilename = fileName.toLowerCase()\n if (type == null || type.trim().length == 0) {\n if (\n isRecognizedCodeFileName(fileName) ||\n isWebRecognizedCodeFileName(fileName) ||\n lowercaseFilename.endsWith('.txt')\n ) {\n contentType = PLAIN_TEXT\n } else if (\n lowercaseFilename.endsWith('.tsv') ||\n lowercaseFilename.endsWith('.tab')\n ) {\n contentType = TEXT_TAB_SEPARATED_VALUES\n } else if (lowercaseFilename.endsWith('.csv')) {\n contentType = TEXT_COMMA_SEPARATED_VALUES\n } else {\n // fall back to the least specific official MIME type...\n contentType = APPLICATION_OCTET_STREAM\n }\n }\n return contentType!\n}\n"],"mappings":";AAEA,IAAM,IAAkB,IAAI,IAAI,4PAiDhC,CAAC,GAEY,IAAa,cACb,IAA8B,YAC9B,IAA4B,6BAC5B,IAA2B,4BAElC,IAAsB,IAAI,IAAI;CAAC;CAAQ;CAAQ;AAAO,CAAC;AAE7D,SAAgB,EAAyB,GAA2B;CAClE,IAAI,IAAa;CACjB,IAAI,KAAY,MAAM;EACpB,IAAM,IAAU,EAAS,YAAY,GAAG;EACxC,IAAI,IAAU,IAAI;GAChB,IAAM,IAAY,EAAS,UAAU,CAAO,EAAE,YAAY;GAC1D,IAAa,EAAgB,IAAI,CAAS;EAC5C;CACF;CAEA,OAAO;AACT;AAEA,SAAS,EAAa,GAAiC;CACrD,IAAI,KAAY,MAAM;EACpB,IAAM,IAAU,EAAS,YAAY,GAAG;EACxC,IAAI,IAAU,IACZ,OAAO,EAAS,UAAU,IAAU,CAAC,EAAE,YAAY;CAEvD;CACA,OAAO;AACT;AAEA,SAAS,EAA4B,GAA2B;CAC9D,IAAI,IAAc,IACZ,IAAY,EAAa,CAAQ;CAIvC,OAHI,KAAa,SACf,IAAc,EAAoB,IAAI,MAAM,CAAS,IAEhD;AACT;AASA,SAAgB,EACd,GACA,GACQ;CACR,IAAI,IAAc,GACZ,IAAoB,EAAS,YAAY;CAoB/C,QAnBI,KAAQ,QAAQ,EAAK,KAAK,EAAE,UAAU,OACxC,AAeE,IAdA,EAAyB,CAAQ,KACjC,EAA4B,CAAQ,KACpC,EAAkB,SAAS,MAAM,IAEnB,IAEd,EAAkB,SAAS,MAAM,KACjC,EAAkB,SAAS,MAAM,IAEnB,IACL,EAAkB,SAAS,MAAM,IAC5B,IAGA,IAGX;AACT"}
|
|
@@ -47,7 +47,7 @@ var n = /* @__PURE__ */ e({
|
|
|
47
47
|
t.READ,
|
|
48
48
|
t.DELETE
|
|
49
49
|
]
|
|
50
|
-
}, i = (e) => JSON.stringify(e.
|
|
50
|
+
}, i = (e) => JSON.stringify(e.toSorted()), a = (e) => {
|
|
51
51
|
let t = i(e);
|
|
52
52
|
return Object.keys(r).find((e) => t === i(r[e]));
|
|
53
53
|
}, o = (e) => r[e], s = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionLevelToAccessType.js","names":[],"sources":["../../src/utils/PermissionLevelToAccessType.ts"],"sourcesContent":["import { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\n\nconst entityPermissionLevels = [\n 'CAN_VIEW',\n 'CAN_DOWNLOAD',\n 'CAN_EDIT',\n 'CAN_EDIT_DELETE',\n 'CAN_ADMINISTER',\n] as const\nexport type EntityPermissionsLevel = (typeof entityPermissionLevels)[number]\n\nconst accessRequirementPermissionLevels = [\n 'CAN_REVIEW_SUBMISSIONS',\n 'IS_EXEMPTION_ELIGIBLE',\n 'CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE',\n] as const\n\nexport type AccessRequirementPermissionsLevel =\n (typeof accessRequirementPermissionLevels)[number]\n\nconst oauthClientPermissionLevels = ['CAN_ADMINISTER_OAUTH_CLIENT'] as const\n\nexport type OAuthClientPermissionsLevel =\n (typeof oauthClientPermissionLevels)[number]\n\nconst portalClientPermissionLevels = ['CAN_ADMINISTER_PORTAL'] as const\n\nexport type PortalClientPermissionsLevel =\n (typeof portalClientPermissionLevels)[number]\n\nexport type PermissionLevel =\n | EntityPermissionsLevel\n | AccessRequirementPermissionsLevel\n | OAuthClientPermissionsLevel\n | PortalClientPermissionsLevel\n\nconst permissionLevelToAccessType: Record<PermissionLevel, ACCESS_TYPE[]> = {\n // Entity\n CAN_VIEW: [ACCESS_TYPE.READ],\n CAN_DOWNLOAD: [ACCESS_TYPE.READ, ACCESS_TYPE.DOWNLOAD],\n CAN_EDIT: [\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DOWNLOAD,\n ACCESS_TYPE.UPDATE,\n ],\n CAN_EDIT_DELETE: [\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DOWNLOAD,\n ACCESS_TYPE.UPDATE,\n ACCESS_TYPE.DELETE,\n ],\n CAN_ADMINISTER: [\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DOWNLOAD,\n ACCESS_TYPE.UPDATE,\n ACCESS_TYPE.DELETE,\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.CHANGE_PERMISSIONS,\n ACCESS_TYPE.CHANGE_SETTINGS,\n ACCESS_TYPE.MODERATE,\n ],\n\n // Access Requirements\n CAN_REVIEW_SUBMISSIONS: [ACCESS_TYPE.REVIEW_SUBMISSIONS],\n IS_EXEMPTION_ELIGIBLE: [ACCESS_TYPE.EXEMPTION_ELIGIBLE],\n CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE: [\n ACCESS_TYPE.EXEMPTION_ELIGIBLE,\n ACCESS_TYPE.REVIEW_SUBMISSIONS,\n ],\n CAN_ADMINISTER_OAUTH_CLIENT: [\n ACCESS_TYPE.READ,\n ACCESS_TYPE.CHANGE_PERMISSIONS,\n ACCESS_TYPE.DELETE,\n ACCESS_TYPE.UPDATE,\n ],\n CAN_ADMINISTER_PORTAL: [\n ACCESS_TYPE.CHANGE_PERMISSIONS,\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.UPDATE,\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DELETE,\n ],\n}\n\nconst prepAccessTypeForComparison = (accessType: ACCESS_TYPE[]) => {\n return JSON.stringify(accessType.
|
|
1
|
+
{"version":3,"file":"PermissionLevelToAccessType.js","names":[],"sources":["../../src/utils/PermissionLevelToAccessType.ts"],"sourcesContent":["import { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\n\nconst entityPermissionLevels = [\n 'CAN_VIEW',\n 'CAN_DOWNLOAD',\n 'CAN_EDIT',\n 'CAN_EDIT_DELETE',\n 'CAN_ADMINISTER',\n] as const\nexport type EntityPermissionsLevel = (typeof entityPermissionLevels)[number]\n\nconst accessRequirementPermissionLevels = [\n 'CAN_REVIEW_SUBMISSIONS',\n 'IS_EXEMPTION_ELIGIBLE',\n 'CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE',\n] as const\n\nexport type AccessRequirementPermissionsLevel =\n (typeof accessRequirementPermissionLevels)[number]\n\nconst oauthClientPermissionLevels = ['CAN_ADMINISTER_OAUTH_CLIENT'] as const\n\nexport type OAuthClientPermissionsLevel =\n (typeof oauthClientPermissionLevels)[number]\n\nconst portalClientPermissionLevels = ['CAN_ADMINISTER_PORTAL'] as const\n\nexport type PortalClientPermissionsLevel =\n (typeof portalClientPermissionLevels)[number]\n\nexport type PermissionLevel =\n | EntityPermissionsLevel\n | AccessRequirementPermissionsLevel\n | OAuthClientPermissionsLevel\n | PortalClientPermissionsLevel\n\nconst permissionLevelToAccessType: Record<PermissionLevel, ACCESS_TYPE[]> = {\n // Entity\n CAN_VIEW: [ACCESS_TYPE.READ],\n CAN_DOWNLOAD: [ACCESS_TYPE.READ, ACCESS_TYPE.DOWNLOAD],\n CAN_EDIT: [\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DOWNLOAD,\n ACCESS_TYPE.UPDATE,\n ],\n CAN_EDIT_DELETE: [\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DOWNLOAD,\n ACCESS_TYPE.UPDATE,\n ACCESS_TYPE.DELETE,\n ],\n CAN_ADMINISTER: [\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DOWNLOAD,\n ACCESS_TYPE.UPDATE,\n ACCESS_TYPE.DELETE,\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.CHANGE_PERMISSIONS,\n ACCESS_TYPE.CHANGE_SETTINGS,\n ACCESS_TYPE.MODERATE,\n ],\n\n // Access Requirements\n CAN_REVIEW_SUBMISSIONS: [ACCESS_TYPE.REVIEW_SUBMISSIONS],\n IS_EXEMPTION_ELIGIBLE: [ACCESS_TYPE.EXEMPTION_ELIGIBLE],\n CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE: [\n ACCESS_TYPE.EXEMPTION_ELIGIBLE,\n ACCESS_TYPE.REVIEW_SUBMISSIONS,\n ],\n CAN_ADMINISTER_OAUTH_CLIENT: [\n ACCESS_TYPE.READ,\n ACCESS_TYPE.CHANGE_PERMISSIONS,\n ACCESS_TYPE.DELETE,\n ACCESS_TYPE.UPDATE,\n ],\n CAN_ADMINISTER_PORTAL: [\n ACCESS_TYPE.CHANGE_PERMISSIONS,\n ACCESS_TYPE.CREATE,\n ACCESS_TYPE.UPDATE,\n ACCESS_TYPE.READ,\n ACCESS_TYPE.DELETE,\n ],\n}\n\nconst prepAccessTypeForComparison = (accessType: ACCESS_TYPE[]) => {\n return JSON.stringify(accessType.toSorted())\n}\n\nexport const getPermissionLevelFromAccessType = (accessType: ACCESS_TYPE[]) => {\n const lookupValue = prepAccessTypeForComparison(accessType)\n const permissionLevel = Object.keys(permissionLevelToAccessType).find(key => {\n return (\n lookupValue ===\n prepAccessTypeForComparison(\n permissionLevelToAccessType[key as PermissionLevel],\n )\n )\n })\n\n return permissionLevel as PermissionLevel\n}\n\nexport const getAccessTypeFromPermissionLevel = (\n permissionLevel: PermissionLevel,\n) => {\n return permissionLevelToAccessType[permissionLevel]\n}\n\nexport const permissionLevelToLabel: Record<PermissionLevel, string> = {\n // Entity\n CAN_VIEW: 'Can view',\n CAN_DOWNLOAD: 'Can download',\n CAN_EDIT: 'Can edit',\n CAN_EDIT_DELETE: 'Can edit & delete',\n CAN_ADMINISTER: 'Administrator',\n\n // Access requirement\n CAN_REVIEW_SUBMISSIONS: 'Can Review',\n IS_EXEMPTION_ELIGIBLE: 'Exempt Eligible',\n CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE:\n 'Can Review & Exempt Eligible',\n\n // OAuth Client\n CAN_ADMINISTER_OAUTH_CLIENT: 'Administrator',\n\n // Portal\n CAN_ADMINISTER_PORTAL: 'Administrator',\n}\n"],"mappings":";;;;;;;IAoCM,IAAsE;CAE1E,UAAU,CAAC,EAAY,IAAI;CAC3B,cAAc,CAAC,EAAY,MAAM,EAAY,QAAQ;CACrD,UAAU;EACR,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;CACd;CACA,iBAAiB;EACf,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;CACd;CACA,gBAAgB;EACd,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;CACd;CAGA,wBAAwB,CAAC,EAAY,kBAAkB;CACvD,uBAAuB,CAAC,EAAY,kBAAkB;CACtD,kDAAkD,CAChD,EAAY,oBACZ,EAAY,kBACd;CACA,6BAA6B;EAC3B,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;CACd;CACA,uBAAuB;EACrB,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;EACZ,EAAY;CACd;AACF,GAEM,KAA+B,MAC5B,KAAK,UAAU,EAAW,SAAS,CAAC,GAGhC,KAAoC,MAA8B;CAC7E,IAAM,IAAc,EAA4B,CAAU;CAU1D,OATwB,OAAO,KAAK,CAA2B,EAAE,MAAK,MAElE,MACA,EACE,EAA4B,EAC9B,CAIG;AACT,GAEa,KACX,MAEO,EAA4B,IAGxB,IAA0D;CAErE,UAAU;CACV,cAAc;CACd,UAAU;CACV,iBAAiB;CACjB,gBAAgB;CAGhB,wBAAwB;CACxB,uBAAuB;CACvB,kDACE;CAGF,6BAA6B;CAG7B,uBAAuB;AACzB"}
|
|
@@ -6,7 +6,7 @@ var n = !1, r = (r = "GTM-KPW4KS62") => {
|
|
|
6
6
|
return t(() => {
|
|
7
7
|
if (i(window.location.hostname, a) && !n) {
|
|
8
8
|
window.dataLayer = window.dataLayer || [], window.dataLayer.push({
|
|
9
|
-
"gtm.start":
|
|
9
|
+
"gtm.start": Date.now(),
|
|
10
10
|
event: "gtm.js"
|
|
11
11
|
});
|
|
12
12
|
let e = document.getElementsByTagName("script")[0], t = document.createElement("script");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGoogleAnalytics.js","names":[],"sources":["../../../src/utils/analytics/useGoogleAnalytics.ts"],"sourcesContent":["import './AnalyticsTypes'\nimport { useEffect } from 'react'\nimport {\n CookiePreference,\n useCookiePreferences,\n} from '../hooks/useCookiePreferences'\n\n// This hook code is globally executed once\nlet isExecuted = false\n\nexport const useGoogleAnalytics = (measurementId: string = 'GTM-KPW4KS62') => {\n const [cookiePreferences] = useCookiePreferences()\n\n useEffect(() => {\n if (\n shouldEnableGoogleAnalytics(\n window.location.hostname,\n cookiePreferences,\n ) &&\n !isExecuted\n ) {\n window.dataLayer = window.dataLayer || []\n\n window.dataLayer.push({\n 'gtm.start':
|
|
1
|
+
{"version":3,"file":"useGoogleAnalytics.js","names":[],"sources":["../../../src/utils/analytics/useGoogleAnalytics.ts"],"sourcesContent":["import './AnalyticsTypes'\nimport { useEffect } from 'react'\nimport {\n CookiePreference,\n useCookiePreferences,\n} from '../hooks/useCookiePreferences'\n\n// This hook code is globally executed once\nlet isExecuted = false\n\nexport const useGoogleAnalytics = (measurementId: string = 'GTM-KPW4KS62') => {\n const [cookiePreferences] = useCookiePreferences()\n\n useEffect(() => {\n if (\n shouldEnableGoogleAnalytics(\n window.location.hostname,\n cookiePreferences,\n ) &&\n !isExecuted\n ) {\n window.dataLayer = window.dataLayer || []\n\n window.dataLayer.push({\n 'gtm.start': Date.now(),\n event: 'gtm.js',\n })\n const firstScriptElement = document.getElementsByTagName('script')[0]\n const gtmScript = document.createElement('script')\n const dl = `&l=dataLayer`\n gtmScript.async = true\n gtmScript.src =\n 'https://www.googletagmanager.com/gtm.js?id=' + measurementId + dl\n firstScriptElement.parentNode?.insertBefore(gtmScript, firstScriptElement)\n\n isExecuted = true\n }\n }, [cookiePreferences, measurementId])\n\n return isExecuted\n}\n\nexport function shouldEnableGoogleAnalytics(\n hostname: string,\n cookiePreferences: CookiePreference,\n) {\n const isAnalyticsAllowed = cookiePreferences.analyticsAllowed\n\n const isOnSynapseDomain = hostname.endsWith('.synapse.org')\n const isOnTestDomain =\n hostname.includes('localhost.') ||\n hostname.includes('staging.') ||\n hostname.includes('dev.')\n\n return isAnalyticsAllowed && isOnSynapseDomain && !isOnTestDomain\n}\n\nexport default useGoogleAnalytics\n"],"mappings":";;;AAQA,IAAI,IAAa,IAEJ,KAAsB,IAAwB,mBAAmB;CAC5E,IAAM,CAAC,KAAqB,EAAqB;CA4BjD,OA1BA,QAAgB;EACd,IACE,EACE,OAAO,SAAS,UAChB,CACF,KACA,CAAC,GACD;GAGA,AAFA,OAAO,YAAY,OAAO,aAAa,CAAC,GAExC,OAAO,UAAU,KAAK;IACpB,aAAa,KAAK,IAAI;IACtB,OAAO;GACT,CAAC;GACD,IAAM,IAAqB,SAAS,qBAAqB,QAAQ,EAAE,IAC7D,IAAY,SAAS,cAAc,QAAQ;GAOjD,AALA,EAAU,QAAQ,IAClB,EAAU,MACR,gDAAgD,IAAgB,gBAClE,EAAmB,YAAY,aAAa,GAAW,CAAkB,GAEzE,IAAa;EACf;CACF,GAAG,CAAC,GAAmB,CAAa,CAAC,GAE9B;AACT;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAqB,EAAkB,kBAEvC,IAAoB,EAAS,SAAS,cAAc,GACpD,IACJ,EAAS,SAAS,YAAY,KAC9B,EAAS,SAAS,UAAU,KAC5B,EAAS,SAAS,MAAM;CAE1B,OAAO,KAAsB,KAAqB,CAAC;AACrD"}
|
|
@@ -4,7 +4,7 @@ import s from "lodash-es/noop";
|
|
|
4
4
|
//#region src/utils/context/DocumentMetadataContext.tsx
|
|
5
5
|
var c = e(void 0);
|
|
6
6
|
function l(e) {
|
|
7
|
-
let { children: n, defaultTitle: s, defaultDescription: l } = e, [u, d] = a([]), f = i(() => [...u].
|
|
7
|
+
let { children: n, defaultTitle: s, defaultDescription: l } = e, [u, d] = a([]), f = i(() => [...u].toSorted((e, t) => t.priority - e.priority), [u]), p = t((e) => {
|
|
8
8
|
let t = {
|
|
9
9
|
id: Symbol("DocumentMetadataEntry"),
|
|
10
10
|
title: e.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentMetadataContext.js","names":[],"sources":["../../../src/utils/context/DocumentMetadataContext.tsx"],"sourcesContent":["import {\n PropsWithChildren,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport noop from 'lodash-es/noop'\n\nexport type DocumentMetadataRegistration = {\n title?: string\n description?: string\n priority?: number\n}\n\ntype DocumentMetadataContextValue = {\n register: (registration: DocumentMetadataRegistration) => () => void\n}\n\ntype DocumentMetadataProviderProps = PropsWithChildren<{\n defaultTitle?: string\n defaultDescription?: string\n}>\n\ntype MetadataEntry = {\n id: symbol\n title?: string\n description?: string\n priority: number\n}\n\nconst DocumentMetadataContext = createContext<\n DocumentMetadataContextValue | undefined\n>(undefined)\n\nexport function DocumentMetadataProvider(props: DocumentMetadataProviderProps) {\n // Centralizes document.title/meta description writes so consumers can register values\n // with priorities; highest priority wins, then portal defaults\n const { children, defaultTitle, defaultDescription } = props\n const [entries, setEntries] = useState<MetadataEntry[]>([])\n\n // Keep registrations stable between renders and automatically clean up on unmount.\n const sortedEntries = useMemo(\n () => [...entries].
|
|
1
|
+
{"version":3,"file":"DocumentMetadataContext.js","names":[],"sources":["../../../src/utils/context/DocumentMetadataContext.tsx"],"sourcesContent":["import {\n PropsWithChildren,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport noop from 'lodash-es/noop'\n\nexport type DocumentMetadataRegistration = {\n title?: string\n description?: string\n priority?: number\n}\n\ntype DocumentMetadataContextValue = {\n register: (registration: DocumentMetadataRegistration) => () => void\n}\n\ntype DocumentMetadataProviderProps = PropsWithChildren<{\n defaultTitle?: string\n defaultDescription?: string\n}>\n\ntype MetadataEntry = {\n id: symbol\n title?: string\n description?: string\n priority: number\n}\n\nconst DocumentMetadataContext = createContext<\n DocumentMetadataContextValue | undefined\n>(undefined)\n\nexport function DocumentMetadataProvider(props: DocumentMetadataProviderProps) {\n // Centralizes document.title/meta description writes so consumers can register values\n // with priorities; highest priority wins, then portal defaults\n const { children, defaultTitle, defaultDescription } = props\n const [entries, setEntries] = useState<MetadataEntry[]>([])\n\n // Keep registrations stable between renders and automatically clean up on unmount.\n const sortedEntries = useMemo(\n () => [...entries].toSorted((a, b) => b.priority - a.priority),\n [entries],\n )\n\n const register = useCallback(\n (registration: DocumentMetadataRegistration) => {\n const entry: MetadataEntry = {\n id: Symbol('DocumentMetadataEntry'),\n title: registration.title,\n description: registration.description,\n priority: registration.priority ?? 0,\n }\n setEntries(current => [...current, entry])\n return () => {\n setEntries(current => current.filter(item => item.id !== entry.id))\n }\n },\n [setEntries],\n )\n\n const contextValue = useMemo<DocumentMetadataContextValue>(\n () => ({ register }),\n [register],\n )\n\n useEffect(() => {\n // Resolve the highest-priority title/description and push them to the DOM.\n const resolvedTitle =\n sortedEntries.find(entry => entry.title !== undefined)?.title ??\n defaultTitle\n\n if (resolvedTitle !== undefined && document.title !== resolvedTitle) {\n document.title = resolvedTitle\n }\n\n const descriptionElement = document.querySelector(\n 'meta[name=\"description\"]',\n )\n if (descriptionElement) {\n const resolvedDescription =\n sortedEntries.find(entry => entry.description !== undefined)\n ?.description ?? defaultDescription\n\n if (\n typeof resolvedDescription === 'string' &&\n descriptionElement.getAttribute('content') !== resolvedDescription\n ) {\n descriptionElement.setAttribute('content', resolvedDescription)\n }\n }\n }, [defaultTitle, defaultDescription, sortedEntries])\n\n return (\n <DocumentMetadataContext.Provider value={contextValue}>\n {children}\n </DocumentMetadataContext.Provider>\n )\n}\n\nexport function useDocumentMetadata(\n registration: DocumentMetadataRegistration,\n) {\n const context = useContext(DocumentMetadataContext)\n const { title, description, priority } = registration\n\n useEffect(() => {\n if (context) {\n return context.register({ title, description, priority })\n }\n return noop\n }, [context, title, description, priority])\n}\n"],"mappings":";;;;AAiCA,IAAM,IAA0B,EAE9B,KAAA,CAAS;AAEX,SAAgB,EAAyB,GAAsC;CAG7E,IAAM,EAAE,aAAU,iBAAc,0BAAuB,GACjD,CAAC,GAAS,KAAc,EAA0B,CAAC,CAAC,GAGpD,IAAgB,QACd,CAAC,GAAG,CAAO,EAAE,UAAU,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ,GAC7D,CAAC,CAAO,CACV,GAEM,IAAW,GACd,MAA+C;EAC9C,IAAM,IAAuB;GAC3B,IAAI,OAAO,uBAAuB;GAClC,OAAO,EAAa;GACpB,aAAa,EAAa;GAC1B,UAAU,EAAa,YAAY;EACrC;EAEA,OADA,GAAW,MAAW,CAAC,GAAG,GAAS,CAAK,CAAC,SAC5B;GACX,GAAW,MAAW,EAAQ,QAAO,MAAQ,EAAK,OAAO,EAAM,EAAE,CAAC;EACpE;CACF,GACA,CAAC,CAAU,CACb,GAEM,IAAe,SACZ,EAAE,YAAS,IAClB,CAAC,CAAQ,CACX;CA6BA,OA3BA,QAAgB;EAEd,IAAM,IACJ,EAAc,MAAK,MAAS,EAAM,UAAU,KAAA,CAAS,GAAG,SACxD;EAEF,AAAI,MAAkB,KAAA,KAAa,SAAS,UAAU,MACpD,SAAS,QAAQ;EAGnB,IAAM,IAAqB,SAAS,cAClC,4BACF;EACA,IAAI,GAAoB;GACtB,IAAM,IACJ,EAAc,MAAK,MAAS,EAAM,gBAAgB,KAAA,CAAS,GACvD,eAAe;GAErB,AACE,OAAO,KAAwB,YAC/B,EAAmB,aAAa,SAAS,MAAM,KAE/C,EAAmB,aAAa,WAAW,CAAmB;EAElE;CACF,GAAG;EAAC;EAAc;EAAoB;CAAa,CAAC,GAGlD,kBAAC,EAAwB,UAAzB;EAAkC,OAAO;EACtC;CAC+B,CAAA;AAEtC;AAEA,SAAgB,EACd,GACA;CACA,IAAM,IAAU,EAAW,CAAuB,GAC5C,EAAE,UAAO,gBAAa,gBAAa;CAEzC,QACM,IACK,EAAQ,SAAS;EAAE;EAAO;EAAa;CAAS,CAAC,IAEnD,GACN;EAAC;EAAS;EAAO;EAAa;CAAQ,CAAC;AAC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlListUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/functions/AccessControlListUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,IAAI,2BAA2B,EAC9C,MAAM,kCAAkC,CAAA;AAazC;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,cAAc,EAAE,EACnB,CAAC,EAAE,cAAc,EAAE,WAMpB;AAED,qHAAqH;AACrH,wBAAgB,6BAA6B,CAC3C,iBAAiB,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,GACnD,cAAc,EAAE,CAOlB;AAED,6HAA6H;AAC7H,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACzC,kBAAkB,EAAE,cAAc,EAAE,GACnC,iBAAiB,CASnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,cAAc,EAAE,EAChC,eAAe,EAAE;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GACA,OAAO,
|
|
1
|
+
{"version":3,"file":"AccessControlListUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/functions/AccessControlListUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,IAAI,2BAA2B,EAC9C,MAAM,kCAAkC,CAAA;AAazC;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,cAAc,EAAE,EACnB,CAAC,EAAE,cAAc,EAAE,WAMpB;AAED,qHAAqH;AACrH,wBAAgB,6BAA6B,CAC3C,iBAAiB,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,GACnD,cAAc,EAAE,CAOlB;AAED,6HAA6H;AAC7H,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACzC,kBAAkB,EAAE,cAAc,EAAE,GACnC,iBAAiB,CASnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,cAAc,EAAE,EAChC,eAAe,EAAE;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GACA,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,cAAc,EAAE,GACrB,cAAc,EAAE,CAgBlB"}
|
|
@@ -21,12 +21,12 @@ function a(e, t) {
|
|
|
21
21
|
}))), n;
|
|
22
22
|
}
|
|
23
23
|
function o(e, t) {
|
|
24
|
-
let n = [
|
|
24
|
+
let n = new Set([
|
|
25
25
|
t.authenticatedUsers,
|
|
26
26
|
t.publicGroup,
|
|
27
27
|
t.anonymousUser
|
|
28
|
-
].filter((e) => e !== void 0);
|
|
29
|
-
return e.some((e) => n.
|
|
28
|
+
].filter((e) => e !== void 0));
|
|
29
|
+
return e.some((e) => n.has(String(e.principalId)));
|
|
30
30
|
}
|
|
31
31
|
function s(e) {
|
|
32
32
|
let t = /* @__PURE__ */ new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlListUtils.js","names":[],"sources":["../../../src/utils/functions/AccessControlListUtils.ts"],"sourcesContent":["import { cloneDeep, isEqual } from 'lodash-es'\nimport { ACCESS_TYPE, ResourceAccess } from '@sage-bionetworks/synapse-types'\nimport {\n AccessControlList,\n ResourceAccess as SynapseClientResourceAccess,\n} from '@sage-bionetworks/synapse-client'\n\nfunction sortResourceAccessList(\n resourceAccessList: ResourceAccess[],\n): ResourceAccess[] {\n const clone = cloneDeep(resourceAccessList)\n // Sort the resource access list by principal ID\n clone.sort((a, b) => b.principalId - a.principalId)\n // In each resource access, sort the access type set\n clone.forEach(ra => ra.accessType.sort())\n return clone\n}\n\n/**\n * Compares two objects for equality, ignoring the order of elements in arrays.\n * @param a\n * @param b\n */\nexport function resourceAccessListIsEqual(\n a: ResourceAccess[],\n b: ResourceAccess[],\n) {\n const aSorted = sortResourceAccessList(a)\n const bSorted = sortResourceAccessList(b)\n\n return isEqual(aSorted, bSorted)\n}\n\n/** Conversion utility to go from synapse-client ResourceAccess Set to the SRC SynapseClient ResourceAccess[] type */\nexport function convertResourceAccessSetToSRC(\n resourceAccessSet?: Set<SynapseClientResourceAccess>,\n): ResourceAccess[] {\n return Array.from(resourceAccessSet ?? []).map(item => ({\n principalId: item.principalId ?? -1,\n accessType: Array.isArray(item.accessType)\n ? (item.accessType as ACCESS_TYPE[])\n : (Array.from(item.accessType ?? []) as ACCESS_TYPE[]),\n }))\n}\n\n/** Conversion utility to go from synapse-react-client ResourceAccess[] to the synapse-client ResourceAccess Set in an ACL */\nexport function updateACLWithSRCResourceAccessList(\n acl: AccessControlList | null | undefined,\n resourceAccessList: ResourceAccess[],\n): AccessControlList {\n const newAcl = { ...acl }\n newAcl.resourceAccess = new Set(\n resourceAccessList.map(ra => ({\n principalId: ra.principalId,\n accessType: new Set(ra.accessType),\n })),\n )\n return newAcl\n}\n\n/**\n * Determines if an entity is publicly accessible by checking if any public principals\n * (authenticated users, public group, or anonymous user) have access in the resource access list.\n *\n * @param resourceAccess - The list of resource access entries to check\n * @param realmPrincipals - An object containing the principal IDs for public groups\n * @param realmPrincipals.authenticatedUsers - The principal ID for authenticated users\n * @param realmPrincipals.publicGroup - The principal ID for the public group\n * @param realmPrincipals.anonymousUser - The principal ID for anonymous users\n * @returns true if any public principal has access, false otherwise\n */\nexport function isEntityPublic(\n resourceAccess: ResourceAccess[],\n realmPrincipals: {\n authenticatedUsers?: string\n publicGroup?: string\n anonymousUser?: string\n },\n): boolean {\n const publicPrincipalIds = [\n
|
|
1
|
+
{"version":3,"file":"AccessControlListUtils.js","names":[],"sources":["../../../src/utils/functions/AccessControlListUtils.ts"],"sourcesContent":["import { cloneDeep, isEqual } from 'lodash-es'\nimport { ACCESS_TYPE, ResourceAccess } from '@sage-bionetworks/synapse-types'\nimport {\n AccessControlList,\n ResourceAccess as SynapseClientResourceAccess,\n} from '@sage-bionetworks/synapse-client'\n\nfunction sortResourceAccessList(\n resourceAccessList: ResourceAccess[],\n): ResourceAccess[] {\n const clone = cloneDeep(resourceAccessList)\n // Sort the resource access list by principal ID\n clone.sort((a, b) => b.principalId - a.principalId)\n // In each resource access, sort the access type set\n clone.forEach(ra => ra.accessType.sort())\n return clone\n}\n\n/**\n * Compares two objects for equality, ignoring the order of elements in arrays.\n * @param a\n * @param b\n */\nexport function resourceAccessListIsEqual(\n a: ResourceAccess[],\n b: ResourceAccess[],\n) {\n const aSorted = sortResourceAccessList(a)\n const bSorted = sortResourceAccessList(b)\n\n return isEqual(aSorted, bSorted)\n}\n\n/** Conversion utility to go from synapse-client ResourceAccess Set to the SRC SynapseClient ResourceAccess[] type */\nexport function convertResourceAccessSetToSRC(\n resourceAccessSet?: Set<SynapseClientResourceAccess>,\n): ResourceAccess[] {\n return Array.from(resourceAccessSet ?? []).map(item => ({\n principalId: item.principalId ?? -1,\n accessType: Array.isArray(item.accessType)\n ? (item.accessType as ACCESS_TYPE[])\n : (Array.from(item.accessType ?? []) as ACCESS_TYPE[]),\n }))\n}\n\n/** Conversion utility to go from synapse-react-client ResourceAccess[] to the synapse-client ResourceAccess Set in an ACL */\nexport function updateACLWithSRCResourceAccessList(\n acl: AccessControlList | null | undefined,\n resourceAccessList: ResourceAccess[],\n): AccessControlList {\n const newAcl = { ...acl }\n newAcl.resourceAccess = new Set(\n resourceAccessList.map(ra => ({\n principalId: ra.principalId,\n accessType: new Set(ra.accessType),\n })),\n )\n return newAcl\n}\n\n/**\n * Determines if an entity is publicly accessible by checking if any public principals\n * (authenticated users, public group, or anonymous user) have access in the resource access list.\n *\n * @param resourceAccess - The list of resource access entries to check\n * @param realmPrincipals - An object containing the principal IDs for public groups\n * @param realmPrincipals.authenticatedUsers - The principal ID for authenticated users\n * @param realmPrincipals.publicGroup - The principal ID for the public group\n * @param realmPrincipals.anonymousUser - The principal ID for anonymous users\n * @returns true if any public principal has access, false otherwise\n */\nexport function isEntityPublic(\n resourceAccess: ResourceAccess[],\n realmPrincipals: {\n authenticatedUsers?: string\n publicGroup?: string\n anonymousUser?: string\n },\n): boolean {\n const publicPrincipalIds = new Set(\n [\n realmPrincipals.authenticatedUsers,\n realmPrincipals.publicGroup,\n realmPrincipals.anonymousUser,\n ].filter((id): id is string => id !== undefined),\n )\n\n return resourceAccess.some(ra =>\n publicPrincipalIds.has(String(ra.principalId)),\n )\n}\n\n/**\n * Consolidate access types for duplicate entries for the same principal into a single entry with the union of all access types.\n */\nexport function consolidateResourceAccessList(\n list: ResourceAccess[],\n): ResourceAccess[] {\n const permissionsMap = new Map<number, Set<ACCESS_TYPE>>()\n for (const item of list) {\n const permissions = permissionsMap.get(item.principalId)\n\n if (permissions) {\n item.accessType.forEach(type => permissions.add(type))\n } else {\n permissionsMap.set(item.principalId, new Set(item.accessType))\n }\n }\n\n return Array.from(permissionsMap, ([principalId, accessTypeSet]) => ({\n principalId,\n accessType: Array.from(accessTypeSet),\n }))\n}\n"],"mappings":";;AAOA,SAAS,EACP,GACkB;CAClB,IAAM,IAAQ,EAAU,CAAkB;CAK1C,OAHA,EAAM,MAAM,GAAG,MAAM,EAAE,cAAc,EAAE,WAAW,GAElD,EAAM,SAAQ,MAAM,EAAG,WAAW,KAAK,CAAC,GACjC;AACT;AAOA,SAAgB,EACd,GACA,GACA;CAIA,OAAO,EAHS,EAAuB,CAGxB,GAFC,EAAuB,CAEf,CAAO;AACjC;AAGA,SAAgB,EACd,GACkB;CAClB,OAAO,MAAM,KAAK,KAAqB,CAAC,CAAC,EAAE,KAAI,OAAS;EACtD,aAAa,EAAK,eAAe;EACjC,YAAY,MAAM,QAAQ,EAAK,UAAU,IACpC,EAAK,aACL,MAAM,KAAK,EAAK,cAAc,CAAC,CAAC;CACvC,EAAE;AACJ;AAGA,SAAgB,EACd,GACA,GACmB;CACnB,IAAM,IAAS,EAAE,GAAG,EAAI;CAOxB,OANA,EAAO,iBAAiB,IAAI,IAC1B,EAAmB,KAAI,OAAO;EAC5B,aAAa,EAAG;EAChB,YAAY,IAAI,IAAI,EAAG,UAAU;CACnC,EAAE,CACJ,GACO;AACT;AAaA,SAAgB,EACd,GACA,GAKS;CACT,IAAM,IAAqB,IAAI,IAC7B;EACE,EAAgB;EAChB,EAAgB;EAChB,EAAgB;CAClB,EAAE,QAAQ,MAAqB,MAAO,KAAA,CAAS,CACjD;CAEA,OAAO,EAAe,MAAK,MACzB,EAAmB,IAAI,OAAO,EAAG,WAAW,CAAC,CAC/C;AACF;AAKA,SAAgB,EACd,GACkB;CAClB,IAAM,oBAAiB,IAAI,IAA8B;CACzD,KAAK,IAAM,KAAQ,GAAM;EACvB,IAAM,IAAc,EAAe,IAAI,EAAK,WAAW;EAEvD,AAAI,IACF,EAAK,WAAW,SAAQ,MAAQ,EAAY,IAAI,CAAI,CAAC,IAErD,EAAe,IAAI,EAAK,aAAa,IAAI,IAAI,EAAK,UAAU,CAAC;CAEjE;CAEA,OAAO,MAAM,KAAK,IAAiB,CAAC,GAAa,QAAoB;EACnE;EACA,YAAY,MAAM,KAAK,CAAa;CACtC,EAAE;AACJ"}
|
|
@@ -4,8 +4,8 @@ import n from "lodash-es/isEqual";
|
|
|
4
4
|
import r from "lodash-es/xorWith";
|
|
5
5
|
//#region src/utils/functions/ArrayUtils.ts
|
|
6
6
|
function i(n) {
|
|
7
|
-
let r = [...n], i = r
|
|
8
|
-
for (; r.length > 0 && (i === void 0 || typeof i == "object" && t(e(i)));) r.pop(), i = r
|
|
7
|
+
let r = [...n], i = r.at(-1);
|
|
8
|
+
for (; r.length > 0 && (i === void 0 || typeof i == "object" && t(e(i)));) r.pop(), i = r.at(-1);
|
|
9
9
|
return r;
|
|
10
10
|
}
|
|
11
11
|
function a(e, t, i = n) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayUtils.js","names":[],"sources":["../../../src/utils/functions/ArrayUtils.ts"],"sourcesContent":["import isEmpty from 'lodash-es/isEmpty'\nimport isEqual from 'lodash-es/isEqual'\nimport xorWith from 'lodash-es/xorWith'\nimport { removeUndefined } from './ObjectUtils'\n\n/**\n * Removes trailing undefined elements from an array. Also removes trailing objects that are empty or only keys with\n * undefined values are present.\n */\nexport function removeTrailingUndefinedElements(params: unknown[]): unknown[] {\n const result = [...params]\n let lastElement = result
|
|
1
|
+
{"version":3,"file":"ArrayUtils.js","names":[],"sources":["../../../src/utils/functions/ArrayUtils.ts"],"sourcesContent":["import isEmpty from 'lodash-es/isEmpty'\nimport isEqual from 'lodash-es/isEqual'\nimport xorWith from 'lodash-es/xorWith'\nimport { removeUndefined } from './ObjectUtils'\n\n/**\n * Removes trailing undefined elements from an array. Also removes trailing objects that are empty or only keys with\n * undefined values are present.\n */\nexport function removeTrailingUndefinedElements(params: unknown[]): unknown[] {\n const result = [...params]\n let lastElement = result.at(-1)\n while (\n result.length > 0 &&\n (lastElement === undefined ||\n // Also remove empty objects or objects where only keys with undefined values are present\n (typeof lastElement === 'object' &&\n isEmpty(removeUndefined(lastElement as Record<string, unknown>))))\n ) {\n result.pop()\n lastElement = result.at(-1)\n }\n return result\n}\n\n/**\n * Returns true if an item exists in one array that does not exist in another, using deep comparison by default.\n */\nexport function hasDifference(\n x: Array<unknown>,\n y: Array<unknown>,\n comparator = isEqual,\n): boolean {\n return xorWith(x, y, comparator).length > 0\n}\n\n/** Move the item at `idx` by `direction` (-1 or 1). Returns the same array reference if the move\n * would go out of bounds; otherwise a new array with the item relocated. */\nexport function moveItem<T>(arr: T[], idx: number, direction: -1 | 1): T[] {\n const newIdx = idx + direction\n if (newIdx < 0 || newIdx >= arr.length) return arr\n const next = [...arr]\n const [item] = next.splice(idx, 1)\n next.splice(newIdx, 0, item)\n return next\n}\n"],"mappings":";;;;;AASA,SAAgB,EAAgC,GAA8B;CAC5E,IAAM,IAAS,CAAC,GAAG,CAAM,GACrB,IAAc,EAAO,GAAG,EAAE;CAC9B,OACE,EAAO,SAAS,MACf,MAAgB,KAAA,KAEd,OAAO,KAAgB,YACtB,EAAQ,EAAgB,CAAsC,CAAC,KAGnE,AADA,EAAO,IAAI,GACX,IAAc,EAAO,GAAG,EAAE;CAE5B,OAAO;AACT;AAKA,SAAgB,EACd,GACA,GACA,IAAa,GACJ;CACT,OAAO,EAAQ,GAAG,GAAG,CAAU,EAAE,SAAS;AAC5C;AAIA,SAAgB,EAAY,GAAU,GAAa,GAAwB;CACzE,IAAM,IAAS,IAAM;CACrB,IAAI,IAAS,KAAK,KAAU,EAAI,QAAQ,OAAO;CAC/C,IAAM,IAAO,CAAC,GAAG,CAAG,GACd,CAAC,KAAQ,EAAK,OAAO,GAAK,CAAC;CAEjC,OADA,EAAK,OAAO,GAAQ,GAAG,CAAI,GACpB;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTypeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/functions/EntityTypeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EACL,OAAO,EAGP,iBAAiB,EAEjB,MAAM,EACN,MAAM,IAAI,cAAc,EACxB,oBAAoB,EAIpB,YAAY,EACZ,UAAU,EAGV,GAAG,EAGH,gBAAgB,EAEhB,aAAa,EAEb,cAAc,EACd,KAAK,EAGL,WAAW,EACX,iBAAiB,EACjB,IAAI,EAGL,MAAM,iCAAiC,CAAA;AAExC,wBAAgB,uBAAuB,CACrC,MAAM,EACF,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,GAC1C,YAAY,GACZ,aAAa,GACb,GAAG,GACN,UAAU,CASZ;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBrD;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAkCvE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,UAAU,GACrD,UAAU,CAoCZ;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,UAAU,GACf,cAAc,CAAC,cAAc,CAAC,CAiChC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBjE;AAED,eAAO,MAAM,OAAO,qCAEnB,CAAA;AAED,eAAO,MAAM,MAAM,oCAElB,CAAA;AAED,eAAO,MAAM,aAAa,2CAEzB,CAAA;AAED,eAAO,MAAM,gBAAgB,8CAGS,CAAA;AAEtC,eAAO,MAAM,kBAAkB,gDAGS,CAAA;AAExC,eAAO,MAAM,SAAS,uCAErB,CAAA;AACD,eAAO,MAAM,mBAAmB,iDAGS,CAAA;AAEzC,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,KACb,MAAM,IAAI,OAAO,GAAG,iBAC2B,CAAA;AAElD,eAAO,MAAM,YAAY,0CAExB,CAAA;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,WAEpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,WAKhD;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,iBAAiB,CAE7B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBxD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,UAKlD;AAiCD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"EntityTypeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/functions/EntityTypeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EACL,OAAO,EAGP,iBAAiB,EAEjB,MAAM,EACN,MAAM,IAAI,cAAc,EACxB,oBAAoB,EAIpB,YAAY,EACZ,UAAU,EAGV,GAAG,EAGH,gBAAgB,EAEhB,aAAa,EAEb,cAAc,EACd,KAAK,EAGL,WAAW,EACX,iBAAiB,EACjB,IAAI,EAGL,MAAM,iCAAiC,CAAA;AAExC,wBAAgB,uBAAuB,CACrC,MAAM,EACF,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,GAC1C,YAAY,GACZ,aAAa,GACb,GAAG,GACN,UAAU,CASZ;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBrD;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAkCvE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,UAAU,GACrD,UAAU,CAoCZ;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,UAAU,GACf,cAAc,CAAC,cAAc,CAAC,CAiChC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBjE;AAED,eAAO,MAAM,OAAO,qCAEnB,CAAA;AAED,eAAO,MAAM,MAAM,oCAElB,CAAA;AAED,eAAO,MAAM,aAAa,2CAEzB,CAAA;AAED,eAAO,MAAM,gBAAgB,8CAGS,CAAA;AAEtC,eAAO,MAAM,kBAAkB,gDAGS,CAAA;AAExC,eAAO,MAAM,SAAS,uCAErB,CAAA;AACD,eAAO,MAAM,mBAAmB,iDAGS,CAAA;AAEzC,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,KACb,MAAM,IAAI,OAAO,GAAG,iBAC2B,CAAA;AAElD,eAAO,MAAM,YAAY,0CAExB,CAAA;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,WAEpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,WAKhD;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,iBAAiB,CAE7B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBxD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,UAKlD;AAiCD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,CA2CjE,CAAA;AAED,KAAK,kBAAkB,GAAG,YAAY,GAAG,WAAW,CAAA;AAEpD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAWpE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTypeUtils.js","names":[],"sources":["../../../src/utils/functions/EntityTypeUtils.ts"],"sourcesContent":["import { isTypeViaConcreteTypeFactory } from '@/utils/types/IsType'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n Dataset,\n DATASET_COLLECTION_CONCRETE_TYPE_VALUE,\n DATASET_CONCRETE_TYPE_VALUE,\n DatasetCollection,\n DOCKER_REPOSITORY_CONCRETE_TYPE_VALUE,\n Entity,\n Entity as Entity_OpenAPI,\n ENTITY_CONCRETE_TYPE,\n ENTITY_VIEW_CONCRETE_TYPE_VALUE,\n ENTITY_VIEW_TYPE_MASK_FILE,\n ENTITY_VIEW_TYPE_MASK_RECORDSET,\n EntityHeader,\n EntityView,\n FILE_ENTITY_CONCRETE_TYPE_VALUE,\n FOLDER_CONCRETE_TYPE_VALUE,\n Hit,\n LINK_CONCRETE_TYPE_VALUE,\n MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE,\n MaterializedView,\n PROJECT_CONCRETE_TYPE_VALUE,\n ProjectHeader,\n SUBMISSION_VIEW_CONCRETE_TYPE_VALUE,\n SubmissionView,\n Table,\n TABLE_CONCRETE_TYPE_VALUES,\n TABLE_ENTITY_CONCRETE_TYPE_VALUE,\n TableEntity,\n VersionableEntity,\n View,\n VIEW_CONCRETE_TYPE_VALUES,\n VIRTUAL_TABLE_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\n\nexport function getEntityTypeFromHeader(\n header:\n | Pick<EntityHeader, 'name' | 'id' | 'type'>\n | EntityHeader\n | ProjectHeader\n | Hit,\n): EntityType {\n // Hit has the `node_type` field which is what we already want.\n if ((header as Hit).node_type) {\n return (header as Hit).node_type\n }\n // ProjectHeader doesn't have the `type` field, so we can just check that to determine if it's a ProjectHeader\n return (header as EntityHeader).type === undefined\n ? EntityType.project\n : convertToEntityType((header as EntityHeader).type)\n}\n\nexport function isContainerType(type: EntityType): boolean {\n switch (type) {\n case EntityType.project:\n case EntityType.folder:\n return true\n case EntityType.link:\n case EntityType.dockerrepo:\n case EntityType.file:\n case EntityType.recordset:\n case EntityType.table:\n case EntityType.submissionview:\n case EntityType.entityview:\n case EntityType.dataset:\n case EntityType.datasetcollection:\n case EntityType.materializedview:\n case EntityType.virtualtable:\n case EntityType.searchindex:\n return false\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\nexport function isTableType(type: EntityType): boolean {\n switch (type) {\n case EntityType.project:\n case EntityType.folder:\n case EntityType.link:\n case EntityType.dockerrepo:\n case EntityType.file:\n case EntityType.recordset:\n case EntityType.searchindex:\n return false\n case EntityType.table:\n case EntityType.submissionview:\n case EntityType.entityview:\n case EntityType.dataset:\n case EntityType.datasetcollection:\n case EntityType.materializedview:\n case EntityType.virtualtable:\n return true\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\nexport function entityTypeToFriendlyName(entityType: EntityType): string {\n switch (entityType) {\n case EntityType.project:\n return 'Project'\n case EntityType.folder:\n return 'Folder'\n case EntityType.file:\n return 'File'\n case EntityType.table:\n return 'Table'\n case EntityType.link:\n return 'Link'\n case EntityType.entityview:\n return 'View'\n case EntityType.dockerrepo:\n return 'Docker Repository'\n case EntityType.submissionview:\n return 'Submission View'\n case EntityType.dataset:\n return 'Dataset'\n case EntityType.datasetcollection:\n return 'Dataset Collection'\n case EntityType.materializedview:\n return 'Materialized View'\n case EntityType.virtualtable:\n return 'Virtual Table'\n case EntityType.recordset:\n return 'Record Set'\n case EntityType.searchindex:\n return 'Search Index'\n default:\n console.warn('Entity type could not be mapped to name:', entityType)\n return ''\n }\n}\n\nexport function convertToEntityType(\n typeString: string | ENTITY_CONCRETE_TYPE | EntityType,\n): EntityType {\n if (Object.values(EntityType).includes(typeString as EntityType)) {\n return typeString as EntityType\n }\n switch (typeString) {\n case 'org.sagebionetworks.repo.model.Project':\n return EntityType.project\n case 'org.sagebionetworks.repo.model.Folder':\n return EntityType.folder\n case FILE_ENTITY_CONCRETE_TYPE_VALUE:\n return EntityType.file\n case 'org.sagebionetworks.repo.model.Link':\n return EntityType.link\n case 'org.sagebionetworks.repo.model.docker.DockerRepository':\n return EntityType.dockerrepo\n case TABLE_ENTITY_CONCRETE_TYPE_VALUE:\n return EntityType.table\n case 'org.sagebionetworks.repo.model.table.SubmissionView':\n return EntityType.submissionview\n case ENTITY_VIEW_CONCRETE_TYPE_VALUE:\n return EntityType.entityview\n case DATASET_CONCRETE_TYPE_VALUE:\n return EntityType.dataset\n case DATASET_COLLECTION_CONCRETE_TYPE_VALUE:\n return EntityType.datasetcollection\n case MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE:\n return EntityType.materializedview\n case VIRTUAL_TABLE_CONCRETE_TYPE_VALUE:\n return EntityType.virtualtable\n case 'org.sagebionetworks.repo.model.RecordSet':\n return EntityType.recordset\n case 'org.sagebionetworks.repo.model.search.table.SearchIndex':\n return EntityType.searchindex\n default:\n throw new Error(`Unknown entity type: ${typeString}`)\n }\n}\n\nexport function convertToConcreteEntityType(\n type: EntityType,\n): Entity_OpenAPI['concreteType'] {\n switch (type) {\n case EntityType.project:\n return 'org.sagebionetworks.repo.model.Project'\n case EntityType.folder:\n return 'org.sagebionetworks.repo.model.Folder'\n case EntityType.file:\n return 'org.sagebionetworks.repo.model.FileEntity'\n case EntityType.link:\n return 'org.sagebionetworks.repo.model.Link'\n case EntityType.dockerrepo:\n return 'org.sagebionetworks.repo.model.docker.DockerRepository'\n case EntityType.table:\n return 'org.sagebionetworks.repo.model.table.TableEntity'\n case EntityType.submissionview:\n return 'org.sagebionetworks.repo.model.table.SubmissionView'\n case EntityType.entityview:\n return 'org.sagebionetworks.repo.model.table.EntityView'\n case EntityType.dataset:\n return 'org.sagebionetworks.repo.model.table.Dataset'\n case EntityType.datasetcollection:\n return 'org.sagebionetworks.repo.model.table.DatasetCollection'\n case EntityType.materializedview:\n return 'org.sagebionetworks.repo.model.table.MaterializedView'\n case EntityType.virtualtable:\n return 'org.sagebionetworks.repo.model.table.VirtualTable'\n case EntityType.recordset:\n return 'org.sagebionetworks.repo.model.RecordSet'\n case EntityType.searchindex:\n return 'org.sagebionetworks.repo.model.search.table.SearchIndex'\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\n/**\n * https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/VersionableEntity.html\n * @param type\n * @returns\n */\nexport function isVersionableEntityType(type: EntityType): boolean {\n switch (type) {\n case EntityType.project:\n case EntityType.folder:\n case EntityType.link:\n case EntityType.dockerrepo:\n case EntityType.submissionview: // SubmissionView implements VersionableEntity, but versions aren't supported\n case EntityType.materializedview: // MaterializedView implements VersionableEntity, but versions aren't supported.\n case EntityType.virtualtable: // VirtualTable implements VersionableEntity, but versions aren't supported.\n case EntityType.searchindex:\n return false\n case EntityType.file:\n case EntityType.recordset:\n case EntityType.table:\n case EntityType.entityview:\n case EntityType.dataset:\n case EntityType.datasetcollection:\n return true\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\nexport const isTable = isTypeViaConcreteTypeFactory<Table, Entity>(\n ...TABLE_CONCRETE_TYPE_VALUES,\n)\n\nexport const isView = isTypeViaConcreteTypeFactory<View, Entity>(\n ...VIEW_CONCRETE_TYPE_VALUES,\n)\n\nexport const isTableEntity = isTypeViaConcreteTypeFactory<TableEntity, Entity>(\n TABLE_ENTITY_CONCRETE_TYPE_VALUE,\n)\n\nexport const isSubmissionView = isTypeViaConcreteTypeFactory<\n SubmissionView,\n Entity\n>(SUBMISSION_VIEW_CONCRETE_TYPE_VALUE)\n\nexport const isMaterializedView = isTypeViaConcreteTypeFactory<\n MaterializedView,\n Entity\n>(MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE)\n\nexport const isDataset = isTypeViaConcreteTypeFactory<Dataset, Entity>(\n DATASET_CONCRETE_TYPE_VALUE,\n)\nexport const isDatasetCollection = isTypeViaConcreteTypeFactory<\n DatasetCollection,\n Entity\n>(DATASET_COLLECTION_CONCRETE_TYPE_VALUE)\n\nexport const isEntityRefCollectionView = (\n entity: Entity,\n): entity is Dataset | DatasetCollection =>\n isDataset(entity) || isDatasetCollection(entity)\n\nexport const isEntityView = isTypeViaConcreteTypeFactory<EntityView, Entity>(\n ENTITY_VIEW_CONCRETE_TYPE_VALUE,\n)\n\n// RecordSets are backed by a data file, so they are treated like files in a view.\nconst FILE_BACKED_VIEW_TYPE_MASK =\n ENTITY_VIEW_TYPE_MASK_FILE | ENTITY_VIEW_TYPE_MASK_RECORDSET\n\n/**\n * @param entityView\n * @returns true iff the viewTypeMask allows files (or file-backed RecordSets) to appear in the view\n */\nexport function hasFilesInView(entityView: EntityView) {\n return (entityView.viewTypeMask & FILE_BACKED_VIEW_TYPE_MASK) != 0\n}\n\n/**\n * @param entityView\n * @returns true iff the viewTypeMask allows only files (or file-backed RecordSets) to appear in the view\n */\nexport function isFileView(entityView: EntityView) {\n return (\n hasFilesInView(entityView) &&\n (entityView.viewTypeMask & ~FILE_BACKED_VIEW_TYPE_MASK) === 0\n )\n}\n\nexport function isVersionableEntity(\n entity: Entity,\n): entity is VersionableEntity {\n return isVersionableEntityType(convertToEntityType(entity.concreteType))\n}\n\nexport function getVersionDisplay(entity: Entity): string {\n if (!isVersionableEntity(entity)) {\n console.warn(\"Entity isn't versionable:\", entity)\n return ''\n }\n\n if (entity.isLatestVersion) {\n if (!isTable(entity)) {\n // e.g. Files. Always show the version number\n return `${entity.versionNumber!.toString()} (Current)`\n } else if (isDataset(entity)) {\n return 'Draft'\n } else {\n return 'Current'\n }\n } else {\n return entity.versionNumber!.toString()\n }\n}\n\n/**\n * Given an entityId, returns the entity ID with the `syn` prefix.\n * If the entity already has the `syn` prefix, the entityId will not be changed\n * @param entityId\n */\nexport function normalizeSynPrefix(entityId: string) {\n if (entityId.toLowerCase().startsWith('syn')) {\n return entityId.toLowerCase()\n }\n return `syn${entityId}`\n}\n\n// implemented by https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/Entity.html\nconst allEntityKeys: string[] = [\n 'name',\n 'description',\n 'id',\n 'etag',\n 'createdOn',\n 'modifiedOn',\n 'createdBy',\n 'modifiedBy',\n 'parentId',\n 'concreteType',\n]\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/VersionableEntity.html\nconst versionableKeys: string[] = [\n ...allEntityKeys,\n 'versionNumber',\n 'versionLabel',\n 'versionComment',\n 'isLatestVersion',\n]\n\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Table.html\nconst tableKeys: string[] = [...versionableKeys, 'columnIds', 'isSearchEnabled']\n\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/View.html\nconst viewKeys: string[] = [...tableKeys]\n\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/EntityRefCollectionView.html\nconst entityRefCollectionViewKeys: string[] = [...viewKeys, 'items']\n\n/**\n * A string array of all possible keys used by Synapse in Entity objects (objects that inherit this interface: https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/Entity.html).\n * This object is used to determine which fields are standard and which are annotations,\n * so it's important that this object contains all keys in the objects that implement the linked interface above.\n */\nexport const entityJsonKeys: Record<ENTITY_CONCRETE_TYPE, string[]> = {\n [LINK_CONCRETE_TYPE_VALUE]: [...allEntityKeys, 'linksTo', 'linksToClassName'],\n [DOCKER_REPOSITORY_CONCRETE_TYPE_VALUE]: [\n ...allEntityKeys,\n 'repositoryName',\n 'isManaged',\n ],\n [FILE_ENTITY_CONCRETE_TYPE_VALUE]: [\n ...versionableKeys,\n 'dataFileHandleId',\n 'fileNameOverride',\n ],\n [SUBMISSION_VIEW_CONCRETE_TYPE_VALUE]: [...viewKeys, 'scopeIds'],\n [DATASET_CONCRETE_TYPE_VALUE]: [\n ...entityRefCollectionViewKeys,\n 'size',\n 'checksum',\n 'count',\n ],\n [DATASET_COLLECTION_CONCRETE_TYPE_VALUE]: [...entityRefCollectionViewKeys],\n [ENTITY_VIEW_CONCRETE_TYPE_VALUE]: [\n ...viewKeys,\n 'scopeIds',\n 'viewTypeMask',\n 'type',\n ],\n [TABLE_ENTITY_CONCRETE_TYPE_VALUE]: tableKeys,\n [MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE]: [...tableKeys, 'definingSQL'],\n [VIRTUAL_TABLE_CONCRETE_TYPE_VALUE]: [...tableKeys, 'definingSQL'],\n [FOLDER_CONCRETE_TYPE_VALUE]: allEntityKeys,\n [PROJECT_CONCRETE_TYPE_VALUE]: [...allEntityKeys, 'alias'],\n ['org.sagebionetworks.repo.model.RecordSet']: [\n ...versionableKeys,\n 'upsertKey',\n 'csvDescriptor',\n ],\n 'org.sagebionetworks.repo.model.Preview': [\n /* unused */\n ],\n 'org.sagebionetworks.repo.model.ExampleEntity': [\n /* unused */\n ],\n 'org.sagebionetworks.repo.model.search.table.SearchIndex': [\n ...allEntityKeys,\n 'definingSQL',\n 'searchConfigurationId',\n ],\n}\n\ntype EntityTypeGroupKey = 'ALL_TABLES' | 'CONTAINER'\n\nexport const EntityTypeGroup: Record<EntityTypeGroupKey, EntityType[]> = {\n ['ALL_TABLES']: [\n EntityType.table,\n EntityType.entityview,\n EntityType.submissionview,\n EntityType.dataset,\n EntityType.datasetcollection,\n EntityType.materializedview,\n EntityType.virtualtable,\n ],\n ['CONTAINER']: [EntityType.project, EntityType.folder],\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityTypeUtils.js","names":[],"sources":["../../../src/utils/functions/EntityTypeUtils.ts"],"sourcesContent":["import { isTypeViaConcreteTypeFactory } from '@/utils/types/IsType'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n Dataset,\n DATASET_COLLECTION_CONCRETE_TYPE_VALUE,\n DATASET_CONCRETE_TYPE_VALUE,\n DatasetCollection,\n DOCKER_REPOSITORY_CONCRETE_TYPE_VALUE,\n Entity,\n Entity as Entity_OpenAPI,\n ENTITY_CONCRETE_TYPE,\n ENTITY_VIEW_CONCRETE_TYPE_VALUE,\n ENTITY_VIEW_TYPE_MASK_FILE,\n ENTITY_VIEW_TYPE_MASK_RECORDSET,\n EntityHeader,\n EntityView,\n FILE_ENTITY_CONCRETE_TYPE_VALUE,\n FOLDER_CONCRETE_TYPE_VALUE,\n Hit,\n LINK_CONCRETE_TYPE_VALUE,\n MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE,\n MaterializedView,\n PROJECT_CONCRETE_TYPE_VALUE,\n ProjectHeader,\n SUBMISSION_VIEW_CONCRETE_TYPE_VALUE,\n SubmissionView,\n Table,\n TABLE_CONCRETE_TYPE_VALUES,\n TABLE_ENTITY_CONCRETE_TYPE_VALUE,\n TableEntity,\n VersionableEntity,\n View,\n VIEW_CONCRETE_TYPE_VALUES,\n VIRTUAL_TABLE_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\n\nexport function getEntityTypeFromHeader(\n header:\n | Pick<EntityHeader, 'name' | 'id' | 'type'>\n | EntityHeader\n | ProjectHeader\n | Hit,\n): EntityType {\n // Hit has the `node_type` field which is what we already want.\n if ((header as Hit).node_type) {\n return (header as Hit).node_type\n }\n // ProjectHeader doesn't have the `type` field, so we can just check that to determine if it's a ProjectHeader\n return (header as EntityHeader).type === undefined\n ? EntityType.project\n : convertToEntityType((header as EntityHeader).type)\n}\n\nexport function isContainerType(type: EntityType): boolean {\n switch (type) {\n case EntityType.project:\n case EntityType.folder:\n return true\n case EntityType.link:\n case EntityType.dockerrepo:\n case EntityType.file:\n case EntityType.recordset:\n case EntityType.table:\n case EntityType.submissionview:\n case EntityType.entityview:\n case EntityType.dataset:\n case EntityType.datasetcollection:\n case EntityType.materializedview:\n case EntityType.virtualtable:\n case EntityType.searchindex:\n return false\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\nexport function isTableType(type: EntityType): boolean {\n switch (type) {\n case EntityType.project:\n case EntityType.folder:\n case EntityType.link:\n case EntityType.dockerrepo:\n case EntityType.file:\n case EntityType.recordset:\n case EntityType.searchindex:\n return false\n case EntityType.table:\n case EntityType.submissionview:\n case EntityType.entityview:\n case EntityType.dataset:\n case EntityType.datasetcollection:\n case EntityType.materializedview:\n case EntityType.virtualtable:\n return true\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\nexport function entityTypeToFriendlyName(entityType: EntityType): string {\n switch (entityType) {\n case EntityType.project:\n return 'Project'\n case EntityType.folder:\n return 'Folder'\n case EntityType.file:\n return 'File'\n case EntityType.table:\n return 'Table'\n case EntityType.link:\n return 'Link'\n case EntityType.entityview:\n return 'View'\n case EntityType.dockerrepo:\n return 'Docker Repository'\n case EntityType.submissionview:\n return 'Submission View'\n case EntityType.dataset:\n return 'Dataset'\n case EntityType.datasetcollection:\n return 'Dataset Collection'\n case EntityType.materializedview:\n return 'Materialized View'\n case EntityType.virtualtable:\n return 'Virtual Table'\n case EntityType.recordset:\n return 'Record Set'\n case EntityType.searchindex:\n return 'Search Index'\n default:\n console.warn('Entity type could not be mapped to name:', entityType)\n return ''\n }\n}\n\nexport function convertToEntityType(\n typeString: string | ENTITY_CONCRETE_TYPE | EntityType,\n): EntityType {\n if (Object.values(EntityType).includes(typeString as EntityType)) {\n return typeString as EntityType\n }\n switch (typeString) {\n case 'org.sagebionetworks.repo.model.Project':\n return EntityType.project\n case 'org.sagebionetworks.repo.model.Folder':\n return EntityType.folder\n case FILE_ENTITY_CONCRETE_TYPE_VALUE:\n return EntityType.file\n case 'org.sagebionetworks.repo.model.Link':\n return EntityType.link\n case 'org.sagebionetworks.repo.model.docker.DockerRepository':\n return EntityType.dockerrepo\n case TABLE_ENTITY_CONCRETE_TYPE_VALUE:\n return EntityType.table\n case 'org.sagebionetworks.repo.model.table.SubmissionView':\n return EntityType.submissionview\n case ENTITY_VIEW_CONCRETE_TYPE_VALUE:\n return EntityType.entityview\n case DATASET_CONCRETE_TYPE_VALUE:\n return EntityType.dataset\n case DATASET_COLLECTION_CONCRETE_TYPE_VALUE:\n return EntityType.datasetcollection\n case MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE:\n return EntityType.materializedview\n case VIRTUAL_TABLE_CONCRETE_TYPE_VALUE:\n return EntityType.virtualtable\n case 'org.sagebionetworks.repo.model.RecordSet':\n return EntityType.recordset\n case 'org.sagebionetworks.repo.model.search.table.SearchIndex':\n return EntityType.searchindex\n default:\n throw new Error(`Unknown entity type: ${typeString}`)\n }\n}\n\nexport function convertToConcreteEntityType(\n type: EntityType,\n): Entity_OpenAPI['concreteType'] {\n switch (type) {\n case EntityType.project:\n return 'org.sagebionetworks.repo.model.Project'\n case EntityType.folder:\n return 'org.sagebionetworks.repo.model.Folder'\n case EntityType.file:\n return 'org.sagebionetworks.repo.model.FileEntity'\n case EntityType.link:\n return 'org.sagebionetworks.repo.model.Link'\n case EntityType.dockerrepo:\n return 'org.sagebionetworks.repo.model.docker.DockerRepository'\n case EntityType.table:\n return 'org.sagebionetworks.repo.model.table.TableEntity'\n case EntityType.submissionview:\n return 'org.sagebionetworks.repo.model.table.SubmissionView'\n case EntityType.entityview:\n return 'org.sagebionetworks.repo.model.table.EntityView'\n case EntityType.dataset:\n return 'org.sagebionetworks.repo.model.table.Dataset'\n case EntityType.datasetcollection:\n return 'org.sagebionetworks.repo.model.table.DatasetCollection'\n case EntityType.materializedview:\n return 'org.sagebionetworks.repo.model.table.MaterializedView'\n case EntityType.virtualtable:\n return 'org.sagebionetworks.repo.model.table.VirtualTable'\n case EntityType.recordset:\n return 'org.sagebionetworks.repo.model.RecordSet'\n case EntityType.searchindex:\n return 'org.sagebionetworks.repo.model.search.table.SearchIndex'\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\n/**\n * https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/VersionableEntity.html\n * @param type\n * @returns\n */\nexport function isVersionableEntityType(type: EntityType): boolean {\n switch (type) {\n case EntityType.project:\n case EntityType.folder:\n case EntityType.link:\n case EntityType.dockerrepo:\n case EntityType.submissionview: // SubmissionView implements VersionableEntity, but versions aren't supported\n case EntityType.materializedview: // MaterializedView implements VersionableEntity, but versions aren't supported.\n case EntityType.virtualtable: // VirtualTable implements VersionableEntity, but versions aren't supported.\n case EntityType.searchindex:\n return false\n case EntityType.file:\n case EntityType.recordset:\n case EntityType.table:\n case EntityType.entityview:\n case EntityType.dataset:\n case EntityType.datasetcollection:\n return true\n default:\n throw new Error(`Unknown entity type: ${type}`)\n }\n}\n\nexport const isTable = isTypeViaConcreteTypeFactory<Table, Entity>(\n ...TABLE_CONCRETE_TYPE_VALUES,\n)\n\nexport const isView = isTypeViaConcreteTypeFactory<View, Entity>(\n ...VIEW_CONCRETE_TYPE_VALUES,\n)\n\nexport const isTableEntity = isTypeViaConcreteTypeFactory<TableEntity, Entity>(\n TABLE_ENTITY_CONCRETE_TYPE_VALUE,\n)\n\nexport const isSubmissionView = isTypeViaConcreteTypeFactory<\n SubmissionView,\n Entity\n>(SUBMISSION_VIEW_CONCRETE_TYPE_VALUE)\n\nexport const isMaterializedView = isTypeViaConcreteTypeFactory<\n MaterializedView,\n Entity\n>(MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE)\n\nexport const isDataset = isTypeViaConcreteTypeFactory<Dataset, Entity>(\n DATASET_CONCRETE_TYPE_VALUE,\n)\nexport const isDatasetCollection = isTypeViaConcreteTypeFactory<\n DatasetCollection,\n Entity\n>(DATASET_COLLECTION_CONCRETE_TYPE_VALUE)\n\nexport const isEntityRefCollectionView = (\n entity: Entity,\n): entity is Dataset | DatasetCollection =>\n isDataset(entity) || isDatasetCollection(entity)\n\nexport const isEntityView = isTypeViaConcreteTypeFactory<EntityView, Entity>(\n ENTITY_VIEW_CONCRETE_TYPE_VALUE,\n)\n\n// RecordSets are backed by a data file, so they are treated like files in a view.\nconst FILE_BACKED_VIEW_TYPE_MASK =\n ENTITY_VIEW_TYPE_MASK_FILE | ENTITY_VIEW_TYPE_MASK_RECORDSET\n\n/**\n * @param entityView\n * @returns true iff the viewTypeMask allows files (or file-backed RecordSets) to appear in the view\n */\nexport function hasFilesInView(entityView: EntityView) {\n return (entityView.viewTypeMask & FILE_BACKED_VIEW_TYPE_MASK) != 0\n}\n\n/**\n * @param entityView\n * @returns true iff the viewTypeMask allows only files (or file-backed RecordSets) to appear in the view\n */\nexport function isFileView(entityView: EntityView) {\n return (\n hasFilesInView(entityView) &&\n (entityView.viewTypeMask & ~FILE_BACKED_VIEW_TYPE_MASK) === 0\n )\n}\n\nexport function isVersionableEntity(\n entity: Entity,\n): entity is VersionableEntity {\n return isVersionableEntityType(convertToEntityType(entity.concreteType))\n}\n\nexport function getVersionDisplay(entity: Entity): string {\n if (!isVersionableEntity(entity)) {\n console.warn(\"Entity isn't versionable:\", entity)\n return ''\n }\n\n if (entity.isLatestVersion) {\n if (!isTable(entity)) {\n // e.g. Files. Always show the version number\n return `${entity.versionNumber!.toString()} (Current)`\n } else if (isDataset(entity)) {\n return 'Draft'\n } else {\n return 'Current'\n }\n } else {\n return entity.versionNumber!.toString()\n }\n}\n\n/**\n * Given an entityId, returns the entity ID with the `syn` prefix.\n * If the entity already has the `syn` prefix, the entityId will not be changed\n * @param entityId\n */\nexport function normalizeSynPrefix(entityId: string) {\n if (entityId.toLowerCase().startsWith('syn')) {\n return entityId.toLowerCase()\n }\n return `syn${entityId}`\n}\n\n// implemented by https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/Entity.html\nconst allEntityKeys: string[] = [\n 'name',\n 'description',\n 'id',\n 'etag',\n 'createdOn',\n 'modifiedOn',\n 'createdBy',\n 'modifiedBy',\n 'parentId',\n 'concreteType',\n]\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/VersionableEntity.html\nconst versionableKeys: string[] = [\n ...allEntityKeys,\n 'versionNumber',\n 'versionLabel',\n 'versionComment',\n 'isLatestVersion',\n]\n\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Table.html\nconst tableKeys: string[] = [...versionableKeys, 'columnIds', 'isSearchEnabled']\n\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/View.html\nconst viewKeys: string[] = [...tableKeys]\n\n// https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/EntityRefCollectionView.html\nconst entityRefCollectionViewKeys: string[] = [...viewKeys, 'items']\n\n/**\n * A string array of all possible keys used by Synapse in Entity objects (objects that inherit this interface: https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/Entity.html).\n * This object is used to determine which fields are standard and which are annotations,\n * so it's important that this object contains all keys in the objects that implement the linked interface above.\n */\nexport const entityJsonKeys: Record<ENTITY_CONCRETE_TYPE, string[]> = {\n [LINK_CONCRETE_TYPE_VALUE]: [...allEntityKeys, 'linksTo', 'linksToClassName'],\n [DOCKER_REPOSITORY_CONCRETE_TYPE_VALUE]: [\n ...allEntityKeys,\n 'repositoryName',\n 'isManaged',\n ],\n [FILE_ENTITY_CONCRETE_TYPE_VALUE]: [\n ...versionableKeys,\n 'dataFileHandleId',\n 'fileNameOverride',\n ],\n [SUBMISSION_VIEW_CONCRETE_TYPE_VALUE]: [...viewKeys, 'scopeIds'],\n [DATASET_CONCRETE_TYPE_VALUE]: [\n ...entityRefCollectionViewKeys,\n 'size',\n 'checksum',\n 'count',\n ],\n [DATASET_COLLECTION_CONCRETE_TYPE_VALUE]: [...entityRefCollectionViewKeys],\n [ENTITY_VIEW_CONCRETE_TYPE_VALUE]: [\n ...viewKeys,\n 'scopeIds',\n 'viewTypeMask',\n 'type',\n ],\n [TABLE_ENTITY_CONCRETE_TYPE_VALUE]: tableKeys,\n [MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE]: [...tableKeys, 'definingSQL'],\n [VIRTUAL_TABLE_CONCRETE_TYPE_VALUE]: [...tableKeys, 'definingSQL'],\n [FOLDER_CONCRETE_TYPE_VALUE]: allEntityKeys,\n [PROJECT_CONCRETE_TYPE_VALUE]: [...allEntityKeys, 'alias'],\n ['org.sagebionetworks.repo.model.RecordSet']: [\n ...versionableKeys,\n 'upsertKey',\n 'csvDescriptor',\n ],\n 'org.sagebionetworks.repo.model.Preview': [/* unused */],\n 'org.sagebionetworks.repo.model.ExampleEntity': [/* unused */],\n 'org.sagebionetworks.repo.model.search.table.SearchIndex': [\n ...allEntityKeys,\n 'definingSQL',\n 'searchConfigurationId',\n ],\n}\n\ntype EntityTypeGroupKey = 'ALL_TABLES' | 'CONTAINER'\n\nexport const EntityTypeGroup: Record<EntityTypeGroupKey, EntityType[]> = {\n ['ALL_TABLES']: [\n EntityType.table,\n EntityType.entityview,\n EntityType.submissionview,\n EntityType.dataset,\n EntityType.datasetcollection,\n EntityType.materializedview,\n EntityType.virtualtable,\n ],\n ['CONTAINER']: [EntityType.project, EntityType.folder],\n}\n"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ function l(a, o) {
|
|
|
28
28
|
}
|
|
29
29
|
function u(e) {
|
|
30
30
|
let t;
|
|
31
|
-
return e.entityType === o.file && (t = e.fileHandles.
|
|
31
|
+
return e.entityType === o.file && (t = e.fileHandles.find((t) => t.id === e.entity.dataFileHandleId)), t;
|
|
32
32
|
}
|
|
33
33
|
function d(e) {
|
|
34
34
|
let t = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileHandleUtils.js","names":[],"sources":["../../../src/utils/functions/FileHandleUtils.ts"],"sourcesContent":["import { EntityType, UploadDestination } from '@sage-bionetworks/synapse-client'\nimport {\n CloudProviderFileHandleInterface,\n EntityBundle,\n EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n ExternalFileHandle,\n ExternalGoogleCloudUploadDestination,\n ExternalObjectStoreFileHandle,\n ExternalObjectStoreUploadDestination,\n ExternalS3UploadDestination,\n ExternalUploadDestination,\n FileEntity,\n FileHandle,\n GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n ProxyFileHandle,\n S3_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n UploadType,\n} from '@sage-bionetworks/synapse-types'\n\nconst SYNAPSE_STORAGE = 'Synapse Storage'\n\ntype FileHandleStorageInfo =\n | {\n endpoint: string\n bucket: string\n fileKey: string\n }\n | { url: string }\n | { location: string }\n\n/**\n * Returns storage location information for a particular file handle, where the format of the information depends on the type of file handle.\n * @param fileHandle\n */\nexport function getFileHandleStorageInfo(\n fileHandle: FileHandle,\n storageLocationUploadDestination: UploadDestination | undefined,\n): FileHandleStorageInfo {\n switch (fileHandle.concreteType) {\n case EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return {\n endpoint: (fileHandle as ExternalObjectStoreFileHandle).endpointUrl,\n bucket: (fileHandle as ExternalObjectStoreFileHandle).bucket,\n fileKey: (fileHandle as ExternalObjectStoreFileHandle).fileKey,\n }\n case PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return {\n url: getStorageLocationName(\n fileHandle,\n storageLocationUploadDestination,\n ),\n }\n case S3_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return {\n location: getStorageLocationName(\n fileHandle,\n storageLocationUploadDestination,\n ),\n }\n default:\n throw new Error(\n `Couldn't determine location name for file handle: ${JSON.stringify(\n fileHandle,\n )}`,\n )\n }\n}\n\n/**\n * Gets the friendly name of a bucket/storage location using the file handle.\n *\n * @param fileHandle\n * @returns\n */\nexport function getStorageLocationName(\n fileHandle: FileHandle,\n storageLocationUploadDestination: UploadDestination | undefined,\n) {\n switch (fileHandle.concreteType) {\n case PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return (fileHandle as ProxyFileHandle).filePath\n case EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case S3_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n if (storageLocationUploadDestination) {\n return getUploadDestinationString(storageLocationUploadDestination)\n }\n return fileHandle.concreteType ===\n EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE\n ? (fileHandle as ExternalObjectStoreFileHandle).bucket\n : (fileHandle as CloudProviderFileHandleInterface).bucketName\n case EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return (fileHandle as ExternalFileHandle).externalURL\n default:\n throw new Error(\n `Couldn't determine location name for file handle: ${JSON.stringify(\n fileHandle,\n )}`,\n )\n }\n}\n\n/**\n * Gets the data file handle from an entity bundle.\n * Returns undefined if the entity does not have a data file handle that is visible to the caller.\n * @param entityBundle\n */\nexport function getDataFileHandle(\n entityBundle: EntityBundle,\n): FileHandle | undefined {\n let dataFileHandle: FileHandle | undefined = undefined\n if (entityBundle.entityType === EntityType.file) {\n dataFileHandle = entityBundle.fileHandles.
|
|
1
|
+
{"version":3,"file":"FileHandleUtils.js","names":[],"sources":["../../../src/utils/functions/FileHandleUtils.ts"],"sourcesContent":["import { EntityType, UploadDestination } from '@sage-bionetworks/synapse-client'\nimport {\n CloudProviderFileHandleInterface,\n EntityBundle,\n EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n ExternalFileHandle,\n ExternalGoogleCloudUploadDestination,\n ExternalObjectStoreFileHandle,\n ExternalObjectStoreUploadDestination,\n ExternalS3UploadDestination,\n ExternalUploadDestination,\n FileEntity,\n FileHandle,\n GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n ProxyFileHandle,\n S3_FILE_HANDLE_CONCRETE_TYPE_VALUE,\n UploadType,\n} from '@sage-bionetworks/synapse-types'\n\nconst SYNAPSE_STORAGE = 'Synapse Storage'\n\ntype FileHandleStorageInfo =\n | {\n endpoint: string\n bucket: string\n fileKey: string\n }\n | { url: string }\n | { location: string }\n\n/**\n * Returns storage location information for a particular file handle, where the format of the information depends on the type of file handle.\n * @param fileHandle\n */\nexport function getFileHandleStorageInfo(\n fileHandle: FileHandle,\n storageLocationUploadDestination: UploadDestination | undefined,\n): FileHandleStorageInfo {\n switch (fileHandle.concreteType) {\n case EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return {\n endpoint: (fileHandle as ExternalObjectStoreFileHandle).endpointUrl,\n bucket: (fileHandle as ExternalObjectStoreFileHandle).bucket,\n fileKey: (fileHandle as ExternalObjectStoreFileHandle).fileKey,\n }\n case PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return {\n url: getStorageLocationName(\n fileHandle,\n storageLocationUploadDestination,\n ),\n }\n case S3_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return {\n location: getStorageLocationName(\n fileHandle,\n storageLocationUploadDestination,\n ),\n }\n default:\n throw new Error(\n `Couldn't determine location name for file handle: ${JSON.stringify(\n fileHandle,\n )}`,\n )\n }\n}\n\n/**\n * Gets the friendly name of a bucket/storage location using the file handle.\n *\n * @param fileHandle\n * @returns\n */\nexport function getStorageLocationName(\n fileHandle: FileHandle,\n storageLocationUploadDestination: UploadDestination | undefined,\n) {\n switch (fileHandle.concreteType) {\n case PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return (fileHandle as ProxyFileHandle).filePath\n case EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case S3_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n case GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n if (storageLocationUploadDestination) {\n return getUploadDestinationString(storageLocationUploadDestination)\n }\n return fileHandle.concreteType ===\n EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE\n ? (fileHandle as ExternalObjectStoreFileHandle).bucket\n : (fileHandle as CloudProviderFileHandleInterface).bucketName\n case EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE:\n return (fileHandle as ExternalFileHandle).externalURL\n default:\n throw new Error(\n `Couldn't determine location name for file handle: ${JSON.stringify(\n fileHandle,\n )}`,\n )\n }\n}\n\n/**\n * Gets the data file handle from an entity bundle.\n * Returns undefined if the entity does not have a data file handle that is visible to the caller.\n * @param entityBundle\n */\nexport function getDataFileHandle(\n entityBundle: EntityBundle,\n): FileHandle | undefined {\n let dataFileHandle: FileHandle | undefined = undefined\n if (entityBundle.entityType === EntityType.file) {\n dataFileHandle = entityBundle.fileHandles.find(\n fh => fh.id === (entityBundle.entity as FileEntity).dataFileHandleId,\n )\n }\n return dataFileHandle\n}\n\nexport function getUploadDestinationString(\n uploadDestination: UploadDestination,\n) {\n let uploadDestinationString = ''\n if (uploadDestination) {\n switch (uploadDestination.concreteType) {\n case 'org.sagebionetworks.repo.model.file.S3UploadDestination':\n uploadDestinationString = SYNAPSE_STORAGE\n break\n case 'org.sagebionetworks.repo.model.file.ExternalUploadDestination':\n uploadDestinationString = (\n uploadDestination as ExternalUploadDestination\n ).url\n if (uploadDestination.uploadType === UploadType.SFTP) {\n const indexOfLastSlash = uploadDestinationString.lastIndexOf('/')\n if (indexOfLastSlash) {\n uploadDestinationString = uploadDestinationString.substring(\n 0,\n indexOfLastSlash,\n )\n }\n }\n break\n case 'org.sagebionetworks.repo.model.file.ExternalS3UploadDestination':\n uploadDestinationString =\n 's3://' +\n (uploadDestination as ExternalS3UploadDestination).bucket +\n '/'\n if (\n (uploadDestination as ExternalS3UploadDestination).baseKey != null\n ) {\n uploadDestinationString += (\n uploadDestination as ExternalS3UploadDestination\n ).baseKey\n }\n break\n case 'org.sagebionetworks.repo.model.file.ExternalGoogleCloudUploadDestination':\n uploadDestinationString =\n 'gs://' +\n (uploadDestination as ExternalGoogleCloudUploadDestination).bucket +\n '/'\n if (\n (uploadDestination as ExternalGoogleCloudUploadDestination).baseKey !=\n null\n ) {\n uploadDestinationString += (\n uploadDestination as ExternalGoogleCloudUploadDestination\n ).baseKey\n }\n break\n case 'org.sagebionetworks.repo.model.file.ExternalObjectStoreUploadDestination':\n uploadDestinationString =\n (uploadDestination as ExternalObjectStoreUploadDestination)\n .endpointUrl +\n '/' +\n (uploadDestination as ExternalObjectStoreUploadDestination).bucket\n break\n }\n }\n return uploadDestinationString\n}\n"],"mappings":";;;AAqBA,IAAM,IAAkB;AAexB,SAAgB,EACd,GACA,GACuB;CACvB,QAAQ,EAAW,cAAnB;EACE,KAAK,GACH,OAAO;GACL,UAAW,EAA6C;GACxD,QAAS,EAA6C;GACtD,SAAU,EAA6C;EACzD;EACF,KAAK;EACL,KAAK,GACH,OAAO,EACL,KAAK,EACH,GACA,CACF,EACF;EACF,KAAK;EACL,KAAK,GACH,OAAO,EACL,UAAU,EACR,GACA,CACF,EACF;EACF,SACE,MAAU,MACR,qDAAqD,KAAK,UACxD,CACF,GACF;CACJ;AACF;AAQA,SAAgB,EACd,GACA,GACA;CACA,QAAQ,EAAW,cAAnB;EACE,KAAK,GACH,OAAQ,EAA+B;EACzC,KAAK;EACL,KAAK;EACL,KAAK,GAIH,OAHI,IACK,EAA2B,CAAgC,IAE7D,EAAW,iBAChB,IACG,EAA6C,SAC7C,EAAgD;EACvD,KAAK,GACH,OAAQ,EAAkC;EAC5C,SACE,MAAU,MACR,qDAAqD,KAAK,UACxD,CACF,GACF;CACJ;AACF;AAOA,SAAgB,EACd,GACwB;CACxB,IAAI;CAMJ,OALI,EAAa,eAAe,EAAW,SACzC,IAAiB,EAAa,YAAY,MACxC,MAAM,EAAG,OAAQ,EAAa,OAAsB,gBACtD,IAEK;AACT;AAEA,SAAgB,EACd,GACA;CACA,IAAI,IAA0B;CAC9B,IAAI,GACF,QAAQ,EAAkB,cAA1B;EACE,KAAK;GACH,IAA0B;GAC1B;EACF,KAAK;GAIH,IAHA,IACE,EACA,KACE,EAAkB,eAAe,EAAW,MAAM;IACpD,IAAM,IAAmB,EAAwB,YAAY,GAAG;IAChE,AAAI,MACF,IAA0B,EAAwB,UAChD,GACA,CACF;GAEJ;GACA;EACF,KAAK;GAKH,AAJA,IACE,UACC,EAAkD,SACnD,KAEC,EAAkD,WAAW,SAE9D,KACE,EACA;GAEJ;EACF,KAAK;GAKH,AAJA,IACE,UACC,EAA2D,SAC5D,KAEC,EAA2D,WAC5D,SAEA,KACE,EACA;GAEJ;EACF,KAAK;GACH,IACG,EACE,cACH,MACC,EAA2D;GAC9D;CACJ;CAEF,OAAO;AACT"}
|
|
@@ -23,7 +23,7 @@ function s(e) {
|
|
|
23
23
|
}
|
|
24
24
|
var c = /\]\(([^)]+)\)/;
|
|
25
25
|
function l(e) {
|
|
26
|
-
return
|
|
26
|
+
return c.exec(e)?.[1] ?? e;
|
|
27
27
|
}
|
|
28
28
|
//#endregion
|
|
29
29
|
export { r as DOI_REGEX, c as MARKDOWN_LINK_HREF_REGEX, n as RegularExpressions_exports, a as SYNAPSE_ENTITY_ID_REGEX, o as SYNAPSE_ENTITY_ID_TOKEN_REGEX, i as convertDoiToLink, l as extractMarkdownLinkHref, s as parseSynId };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegularExpressions.js","names":[],"sources":["../../../src/utils/functions/RegularExpressions.ts"],"sourcesContent":["import { Reference } from '@sage-bionetworks/synapse-types'\nimport { normalizeSynPrefix } from './EntityTypeUtils'\n\n// doi regex here - https://www.crossref.org/blog/dois-and-matching-regular-expressions/\n// note - had to add an escape character for the second and third forward slash in the regex above\nexport const DOI_REGEX = /^10.\\d{4,9}\\/[-._;()/:a-z0-9]+$/i\n\nexport function convertDoiToLink(doi: string) {\n doi = doi.trim()\n if (DOI_REGEX.test(doi)) {\n return `https://dx.doi.org/${doi}`\n }\n return ''\n}\n\n/**\n * Checks for a Synapse ID, with or without a version number.\n * Captures the synId and version number into capture groups.\n *\n * Usage examples:\n * > const result = 'syn123.9'.match(SYNAPSE_ENTITY_ID_REGEX)\n * > result[0]\n * 'syn123.9'\n * > result[1]\n * 'syn123'\n * > result[2]\n * '9'\n */\nexport const SYNAPSE_ENTITY_ID_REGEX = /^(syn\\d+)(?:\\.(\\d+))?$/i\n\n/**\n * Detects a Synapse entity ID token (e.g. `syn12345` or `syn12345.4`) embedded\n * anywhere in a larger string, using word boundaries so ordinary words like\n * `synapse` or `synonyms` don't match. Use `SYNAPSE_ENTITY_ID_REGEX` when\n * validating a whole string, and this pattern when scanning free text.\n */\nexport const SYNAPSE_ENTITY_ID_TOKEN_REGEX = /\\bsyn\\d+(?:\\.\\d+)?\\b/iu\n\n/**\n * Given a Synapse Entity ID of the form `syn123` or `syn123.4`, returns the\n * Reference object containing the entity ID and optional version number.\n * If the ID is not a valid Synapse Entity ID, returns null.\n * @param synId\n */\nexport function parseSynId(synId: string): Reference | null {\n const synIdMatch = SYNAPSE_ENTITY_ID_REGEX.exec(synId)\n if (synIdMatch) {\n return {\n targetId: normalizeSynPrefix(synIdMatch[1]),\n targetVersionNumber: synIdMatch[2] ? parseInt(synIdMatch[2]) : undefined,\n }\n } else {\n return synIdMatch\n }\n}\n\n/**\n * Matches the href portion of a markdown link, e.g. `[label](https://example.com)`\n * captures `https://example.com`.\n */\nexport const MARKDOWN_LINK_HREF_REGEX = /\\]\\(([^)]+)\\)/\n\n/**\n * Given a string that may be a markdown link (e.g. `[label](https://example.com)`),\n * returns the extracted href. If the string is not a markdown link, returns it unchanged.\n */\nexport function extractMarkdownLinkHref(value: string): string {\n return
|
|
1
|
+
{"version":3,"file":"RegularExpressions.js","names":[],"sources":["../../../src/utils/functions/RegularExpressions.ts"],"sourcesContent":["import { Reference } from '@sage-bionetworks/synapse-types'\nimport { normalizeSynPrefix } from './EntityTypeUtils'\n\n// doi regex here - https://www.crossref.org/blog/dois-and-matching-regular-expressions/\n// note - had to add an escape character for the second and third forward slash in the regex above\nexport const DOI_REGEX = /^10.\\d{4,9}\\/[-._;()/:a-z0-9]+$/i\n\nexport function convertDoiToLink(doi: string) {\n doi = doi.trim()\n if (DOI_REGEX.test(doi)) {\n return `https://dx.doi.org/${doi}`\n }\n return ''\n}\n\n/**\n * Checks for a Synapse ID, with or without a version number.\n * Captures the synId and version number into capture groups.\n *\n * Usage examples:\n * > const result = 'syn123.9'.match(SYNAPSE_ENTITY_ID_REGEX)\n * > result[0]\n * 'syn123.9'\n * > result[1]\n * 'syn123'\n * > result[2]\n * '9'\n */\nexport const SYNAPSE_ENTITY_ID_REGEX = /^(syn\\d+)(?:\\.(\\d+))?$/i\n\n/**\n * Detects a Synapse entity ID token (e.g. `syn12345` or `syn12345.4`) embedded\n * anywhere in a larger string, using word boundaries so ordinary words like\n * `synapse` or `synonyms` don't match. Use `SYNAPSE_ENTITY_ID_REGEX` when\n * validating a whole string, and this pattern when scanning free text.\n */\nexport const SYNAPSE_ENTITY_ID_TOKEN_REGEX = /\\bsyn\\d+(?:\\.\\d+)?\\b/iu\n\n/**\n * Given a Synapse Entity ID of the form `syn123` or `syn123.4`, returns the\n * Reference object containing the entity ID and optional version number.\n * If the ID is not a valid Synapse Entity ID, returns null.\n * @param synId\n */\nexport function parseSynId(synId: string): Reference | null {\n const synIdMatch = SYNAPSE_ENTITY_ID_REGEX.exec(synId)\n if (synIdMatch) {\n return {\n targetId: normalizeSynPrefix(synIdMatch[1]),\n targetVersionNumber: synIdMatch[2] ? parseInt(synIdMatch[2]) : undefined,\n }\n } else {\n return synIdMatch\n }\n}\n\n/**\n * Matches the href portion of a markdown link, e.g. `[label](https://example.com)`\n * captures `https://example.com`.\n */\nexport const MARKDOWN_LINK_HREF_REGEX = /\\]\\(([^)]+)\\)/\n\n/**\n * Given a string that may be a markdown link (e.g. `[label](https://example.com)`),\n * returns the extracted href. If the string is not a markdown link, returns it unchanged.\n */\nexport function extractMarkdownLinkHref(value: string): string {\n return MARKDOWN_LINK_HREF_REGEX.exec(value)?.[1] ?? value\n}\n"],"mappings":";;;;;;;;;;;IAKa,IAAY;AAEzB,SAAgB,EAAiB,GAAa;CAK5C,OAJA,IAAM,EAAI,KAAK,GACX,EAAU,KAAK,CAAG,IACb,sBAAsB,MAExB;AACT;AAeA,IAAa,IAA0B,2BAQ1B,IAAgC;AAQ7C,SAAgB,EAAW,GAAiC;CAC1D,IAAM,IAAa,EAAwB,KAAK,CAAK;CAOnD,OANE,KACK;EACL,UAAU,EAAmB,EAAW,EAAE;EAC1C,qBAAqB,EAAW,KAAK,SAAS,EAAW,EAAE,IAAI,KAAA;CACjE;AAIJ;AAMA,IAAa,IAA2B;AAMxC,SAAgB,EAAwB,GAAuB;CAC7D,OAAO,EAAyB,KAAK,CAAK,IAAI,MAAM;AACtD"}
|