synapse-react-client 4.0.41 → 4.0.42

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.
Files changed (313) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.d.ts +7 -0
  3. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.d.ts.map +1 -0
  4. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +30 -0
  5. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -0
  6. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
  7. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +138 -244
  8. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  9. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.d.ts +13 -0
  10. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.d.ts.map +1 -0
  11. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.js +60 -0
  12. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.js.map +1 -0
  13. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts +8 -2
  14. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  15. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +179 -63
  16. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  17. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts +2 -0
  18. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts.map +1 -1
  19. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +13 -13
  20. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  21. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.d.ts +3 -2
  22. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.d.ts.map +1 -1
  23. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  24. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts +3 -2
  25. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.d.ts +12 -0
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.d.ts.map +1 -0
  29. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.js +50 -0
  30. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.js.map +1 -0
  31. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
  32. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +112 -143
  33. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  34. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts +4 -2
  35. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts.map +1 -1
  36. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js +8 -7
  37. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js.map +1 -1
  38. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts +3 -2
  39. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  40. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +79 -47
  41. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  42. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.d.ts +12 -0
  43. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.d.ts.map +1 -0
  44. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.js +51 -0
  45. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.js.map +1 -0
  46. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.d.ts +12 -0
  47. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.d.ts.map +1 -0
  48. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.js +24 -0
  49. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.js.map +1 -0
  50. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +11 -0
  51. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -0
  52. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.js +0 -0
  53. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.d.ts +22 -0
  54. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.d.ts.map +1 -0
  55. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.js +32 -0
  56. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.js.map +1 -0
  57. package/dist/components/AclEditor/AclEditor.js +20 -20
  58. package/dist/components/Authentication/TwoFactorBackupCodes.js +1 -1
  59. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  60. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  61. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +79 -69
  62. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  63. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  64. package/dist/components/DataGrid/SynapseGrid.js +244 -246
  65. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  66. package/dist/components/DataGrid/components/GridLoadingState.d.ts +23 -0
  67. package/dist/components/DataGrid/components/GridLoadingState.d.ts.map +1 -0
  68. package/dist/components/DataGrid/components/GridLoadingState.js +64 -0
  69. package/dist/components/DataGrid/components/GridLoadingState.js.map +1 -0
  70. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  71. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +30 -29
  72. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  73. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +60 -6
  74. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  75. package/dist/components/DataGrid/useDataGridWebsocket.js +71 -60
  76. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  77. package/dist/components/DataGrid/utils/getNamedColumnIndices.d.ts +11 -0
  78. package/dist/components/DataGrid/utils/getNamedColumnIndices.d.ts.map +1 -0
  79. package/dist/components/DataGrid/utils/getNamedColumnIndices.js +8 -0
  80. package/dist/components/DataGrid/utils/getNamedColumnIndices.js.map +1 -0
  81. package/dist/components/FilePreview/FileHandleContentRenderer.d.ts +6 -2
  82. package/dist/components/FilePreview/FileHandleContentRenderer.d.ts.map +1 -1
  83. package/dist/components/FilePreview/FileHandleContentRenderer.js +27 -14
  84. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  85. package/dist/components/FilePreview/PdfPreview.d.ts +1 -1
  86. package/dist/components/FilePreview/PdfPreview.d.ts.map +1 -1
  87. package/dist/components/FilePreview/PdfPreview.js +15 -16
  88. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  89. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  90. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +71 -68
  91. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  92. package/dist/components/FormTemplateEditor/FieldLibrary.css +1 -0
  93. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts +17 -0
  94. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -0
  95. package/dist/components/FormTemplateEditor/FieldLibrary.js +88 -0
  96. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -0
  97. package/dist/components/FormTemplateEditor/FieldLibrary.module.js +5 -0
  98. package/dist/components/FormTemplateEditor/FieldLibrary.module.js.map +1 -0
  99. package/dist/components/FormTemplateEditor/FieldLibrary.module.scss +12 -0
  100. package/dist/components/FormTemplateEditor/FieldLibraryRow.d.ts +19 -0
  101. package/dist/components/FormTemplateEditor/FieldLibraryRow.d.ts.map +1 -0
  102. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +115 -0
  103. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -0
  104. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.css +1 -0
  105. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.d.ts +9 -0
  106. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.d.ts.map +1 -0
  107. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.js +18 -0
  108. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.js.map +1 -0
  109. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.js +5 -0
  110. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.js.map +1 -0
  111. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.scss +4 -0
  112. package/dist/components/FormTemplateEditor/FormStructurePanel.d.ts +21 -0
  113. package/dist/components/FormTemplateEditor/FormStructurePanel.d.ts.map +1 -0
  114. package/dist/components/FormTemplateEditor/FormStructurePanel.js +108 -0
  115. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -0
  116. package/dist/components/FormTemplateEditor/FormTemplateEditor.d.ts +10 -0
  117. package/dist/components/FormTemplateEditor/FormTemplateEditor.d.ts.map +1 -0
  118. package/dist/components/FormTemplateEditor/FormTemplateEditor.js +31 -0
  119. package/dist/components/FormTemplateEditor/FormTemplateEditor.js.map +1 -0
  120. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.d.ts +15 -0
  121. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.d.ts.map +1 -0
  122. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +234 -0
  123. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -0
  124. package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts.map +1 -1
  125. package/dist/components/FormTemplateEditor/FormTemplatePreview.js +1 -12
  126. package/dist/components/FormTemplateEditor/FormTemplatePreview.js.map +1 -1
  127. package/dist/components/FormTemplateEditor/StepCard.d.ts +25 -0
  128. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -0
  129. package/dist/components/FormTemplateEditor/StepCard.js +203 -0
  130. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -0
  131. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts +34 -0
  132. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -0
  133. package/dist/components/FormTemplateEditor/StepFieldRow.js +128 -0
  134. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -0
  135. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts +19 -0
  136. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -0
  137. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +78 -0
  138. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -0
  139. package/dist/components/FormTemplateEditor/dragHandle.css +1 -0
  140. package/dist/components/FormTemplateEditor/dragHandle.module.js +8 -0
  141. package/dist/components/FormTemplateEditor/dragHandle.module.js.map +1 -0
  142. package/dist/components/FormTemplateEditor/dragHandle.module.scss +22 -0
  143. package/dist/components/FormTemplateEditor/dropTarget.css +1 -0
  144. package/dist/components/FormTemplateEditor/dropTarget.module.js +5 -0
  145. package/dist/components/FormTemplateEditor/dropTarget.module.js.map +1 -0
  146. package/dist/components/FormTemplateEditor/dropTarget.module.scss +14 -0
  147. package/dist/components/FormTemplateEditor/formTemplateDraftState.d.ts +48 -0
  148. package/dist/components/FormTemplateEditor/formTemplateDraftState.d.ts.map +1 -0
  149. package/dist/components/FormTemplateEditor/formTemplateDraftState.js +126 -0
  150. package/dist/components/FormTemplateEditor/formTemplateDraftState.js.map +1 -0
  151. package/dist/components/FormTemplateEditor/formTemplateSchema.d.ts +35 -0
  152. package/dist/components/FormTemplateEditor/formTemplateSchema.d.ts.map +1 -0
  153. package/dist/components/FormTemplateEditor/formTemplateSchema.js +35 -0
  154. package/dist/components/FormTemplateEditor/formTemplateSchema.js.map +1 -0
  155. package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts +3 -1
  156. package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts.map +1 -1
  157. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +26 -8
  158. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  159. package/dist/components/FormTemplateEditor/sortableIds.d.ts +23 -0
  160. package/dist/components/FormTemplateEditor/sortableIds.d.ts.map +1 -0
  161. package/dist/components/FormTemplateEditor/sortableIds.js +24 -0
  162. package/dist/components/FormTemplateEditor/sortableIds.js.map +1 -0
  163. package/dist/components/FormTemplateEditor/useFormTemplateDraft.d.ts +33 -0
  164. package/dist/components/FormTemplateEditor/useFormTemplateDraft.d.ts.map +1 -0
  165. package/dist/components/FormTemplateEditor/useFormTemplateDraft.js +59 -0
  166. package/dist/components/FormTemplateEditor/useFormTemplateDraft.js.map +1 -0
  167. package/dist/components/FormTemplateEditor/useFormTemplateDrag.d.ts +9 -0
  168. package/dist/components/FormTemplateEditor/useFormTemplateDrag.d.ts.map +1 -0
  169. package/dist/components/FormTemplateEditor/useFormTemplateDrag.js +66 -0
  170. package/dist/components/FormTemplateEditor/useFormTemplateDrag.js.map +1 -0
  171. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
  172. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js +34 -19
  173. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
  174. package/dist/components/FormTemplateEditor/utils.d.ts +2 -2
  175. package/dist/components/FormTemplateEditor/utils.d.ts.map +1 -1
  176. package/dist/components/FormTemplateEditor/utils.js +7 -10
  177. package/dist/components/FormTemplateEditor/utils.js.map +1 -1
  178. package/dist/components/JsonSchemaForm/widgets/SelectWidget.d.ts +11 -0
  179. package/dist/components/JsonSchemaForm/widgets/SelectWidget.d.ts.map +1 -1
  180. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js +28 -19
  181. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  182. package/dist/components/QueryBuilder/FilterConditionRow.d.ts +1 -0
  183. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  184. package/dist/components/QueryBuilder/FilterConditionRow.js +102 -105
  185. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  186. package/dist/components/QueryBuilder/FilterGroupNode.js +6 -6
  187. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  188. package/dist/components/QueryBuilder/QueryBuilderControls.js +88 -81
  189. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  190. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +7 -0
  191. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  192. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  193. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts +2 -1
  194. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts.map +1 -1
  195. package/dist/components/QueryBuilder/qbTreeToReadable.js +24 -20
  196. package/dist/components/QueryBuilder/qbTreeToReadable.js.map +1 -1
  197. package/dist/components/QueryBuilder/queryBuilderDrag.css +1 -1
  198. package/dist/components/QueryBuilder/queryBuilderDrag.module.js +2 -2
  199. package/dist/components/QueryBuilder/queryBuilderDrag.module.js.map +1 -1
  200. package/dist/components/QueryBuilder/queryBuilderDrag.module.scss +1 -1
  201. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +16 -0
  202. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  203. package/dist/components/QueryBuilder/queryBuilderMetadata.js +13 -5
  204. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  205. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts +18 -0
  206. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -0
  207. package/dist/components/QueryBuilder/useQBValueDisplayName.js +64 -0
  208. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -0
  209. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +6 -6
  210. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.d.ts +1 -0
  211. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.d.ts.map +1 -1
  212. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +13 -11
  213. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  214. package/dist/components/SynapseTable/SearchV2.js +4 -4
  215. package/dist/components/ToastMessage/ToastMessage.d.ts.map +1 -1
  216. package/dist/components/ToastMessage/ToastMessage.js +25 -22
  217. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  218. package/dist/components/dataaccess/FormTemplateEditorRoute.d.ts +7 -0
  219. package/dist/components/dataaccess/FormTemplateEditorRoute.d.ts.map +1 -0
  220. package/dist/components/dataaccess/FormTemplateEditorRoute.js +26 -0
  221. package/dist/components/dataaccess/FormTemplateEditorRoute.js.map +1 -0
  222. package/dist/components/dataaccess/FormTemplateTable.d.ts +10 -0
  223. package/dist/components/dataaccess/FormTemplateTable.d.ts.map +1 -0
  224. package/dist/components/dataaccess/FormTemplateTable.js +124 -0
  225. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -0
  226. package/dist/components/dataaccess/ReviewerDashboard.d.ts.map +1 -1
  227. package/dist/components/dataaccess/ReviewerDashboard.js +80 -50
  228. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  229. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  230. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +2 -0
  231. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  232. package/dist/components/widgets/FileHandleLink.d.ts +12 -2
  233. package/dist/components/widgets/FileHandleLink.d.ts.map +1 -1
  234. package/dist/components/widgets/FileHandleLink.js +25 -29
  235. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  236. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts +2 -0
  237. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts.map +1 -1
  238. package/dist/mocks/accessRequirement/mockFormTemplates.js +8 -2
  239. package/dist/mocks/accessRequirement/mockFormTemplates.js.map +1 -1
  240. package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts.map +1 -1
  241. package/dist/mocks/accessRequirement/mockJsonSchemas.js +17 -31
  242. package/dist/mocks/accessRequirement/mockJsonSchemas.js.map +1 -1
  243. package/dist/mocks/msw/handlers/authHandlers.d.ts +1 -0
  244. package/dist/mocks/msw/handlers/authHandlers.d.ts.map +1 -1
  245. package/dist/mocks/msw/handlers/authHandlers.js +6 -2
  246. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  247. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts +2 -0
  248. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
  249. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +52 -46
  250. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  251. package/dist/mocks/msw/handlers/fileHandlers.d.ts.map +1 -1
  252. package/dist/mocks/msw/handlers/fileHandlers.js +25 -21
  253. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  254. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts +2 -1
  255. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts.map +1 -1
  256. package/dist/mocks/msw/handlers/formTemplateHandlers.js +18 -18
  257. package/dist/mocks/msw/handlers/formTemplateHandlers.js.map +1 -1
  258. package/dist/mocks/msw/handlers/schemaHandlers.d.ts +8 -0
  259. package/dist/mocks/msw/handlers/schemaHandlers.d.ts.map +1 -1
  260. package/dist/mocks/msw/handlers/schemaHandlers.js +20 -3
  261. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  262. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.d.ts +8 -0
  263. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.d.ts.map +1 -0
  264. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.js +19 -0
  265. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.js.map +1 -0
  266. package/dist/style/abstracts/_cssVariables.scss +13 -0
  267. package/dist/style/components/_toasts.scss +10 -1
  268. package/dist/style/main.css +1 -1
  269. package/dist/synapse-queries/KeyFactory.d.ts +8 -1
  270. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  271. package/dist/synapse-queries/KeyFactory.js +17 -4
  272. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  273. package/dist/synapse-queries/auth/index.d.ts +1 -0
  274. package/dist/synapse-queries/auth/index.d.ts.map +1 -1
  275. package/dist/synapse-queries/auth/index.js +2 -1
  276. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.d.ts +11 -0
  277. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.d.ts.map +1 -0
  278. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +19 -0
  279. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -0
  280. package/dist/synapse-queries/dataaccess/index.js +5 -5
  281. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +18 -0
  282. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  283. package/dist/synapse-queries/dataaccess/useEDuc.js +33 -1
  284. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  285. package/dist/synapse-queries/file/useDirectUploadToS3.js +6 -6
  286. package/dist/synapse-queries/file/useFileHandle.d.ts +8 -0
  287. package/dist/synapse-queries/file/useFileHandle.d.ts.map +1 -1
  288. package/dist/synapse-queries/file/useFileHandle.js +15 -6
  289. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  290. package/dist/synapse-queries/index.js +260 -253
  291. package/dist/synapse-queries/jsonschema/index.js +2 -2
  292. package/dist/synapse-queries/jsonschema/useSchema.d.ts +5 -0
  293. package/dist/synapse-queries/jsonschema/useSchema.d.ts.map +1 -1
  294. package/dist/synapse-queries/jsonschema/useSchema.js +9 -1
  295. package/dist/synapse-queries/jsonschema/useSchema.js.map +1 -1
  296. package/dist/tsconfig.build.tsbuildinfo +1 -1
  297. package/dist/utils/APIConstants.d.ts +1 -0
  298. package/dist/utils/APIConstants.d.ts.map +1 -1
  299. package/dist/utils/APIConstants.js +2 -2
  300. package/dist/utils/APIConstants.js.map +1 -1
  301. package/dist/utils/featureflag/FeatureFlags.d.ts +1 -0
  302. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  303. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  304. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  305. package/dist/utils/functions/toPascalCase.d.ts +6 -0
  306. package/dist/utils/functions/toPascalCase.d.ts.map +1 -0
  307. package/dist/utils/functions/toPascalCase.js +8 -0
  308. package/dist/utils/functions/toPascalCase.js.map +1 -0
  309. package/dist/utils/jsonschema/submissionContext.d.ts +5 -0
  310. package/dist/utils/jsonschema/submissionContext.d.ts.map +1 -1
  311. package/dist/utils/jsonschema/submissionContext.js +22 -30
  312. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  313. package/package.json +10 -9
@@ -1 +1 @@
1
- {"version":3,"file":"mockJsonSchemas.js","names":[],"sources":["../../../src/mocks/accessRequirement/mockJsonSchemas.ts"],"sourcesContent":["/**\n * Mock JSON Schema registry for the JSON Schema-based Access Requirements demo.\n *\n * Each FormTemplate pins a registered JSON Schema by `$id`. The schema is the\n * data contract — it owns property types, validation rules, and which properties\n * are required.\n *\n * The FormTemplateEditor lets ACT edit the schema body alongside the template in\n * a single UI; saving is conceptually a write to both the schema registry and\n * the template service.\n */\n\nimport { RJSFSchema } from '@rjsf/utils'\nimport { DataAccessRequestType } from '@sage-bionetworks/synapse-client'\nimport { SUBMISSION_CONTEXT_PROPERTY } from '@/utils/jsonschema/submissionContext'\n\n/** Genomics DAR data contract — all fields required. */\nexport const mockGenomicsSchema: RJSFSchema = {\n $id: 'org.sagebionetworks.dar.genomics-1.0.0',\n type: 'object',\n title: 'Genomics Data Access Request',\n properties: {\n intendedDataUse: {\n type: 'string',\n title: 'Intended Data Use Statement',\n description:\n 'Describe in detail how you intend to use the requested data.',\n },\n agreeToTerms: {\n type: 'boolean',\n title: 'Terms and Conditions',\n description:\n 'I agree to abide by all terms and conditions for accessing this data.',\n },\n [SUBMISSION_CONTEXT_PROPERTY]: {\n type: 'string',\n enum: [DataAccessRequestType.REQUEST, DataAccessRequestType.RENEWAL],\n },\n },\n required: ['intendedDataUse', 'agreeToTerms', SUBMISSION_CONTEXT_PROPERTY],\n}\n\n/**\n * Clinical Trial DAR data contract — includes a file upload and a Renewal-only field\n * (`irbApprovalNumber`), gated behind an `x-synapse-submissionContext` conditional.\n */\nexport const mockClinicalSchema: RJSFSchema = {\n $id: 'org.sagebionetworks.dar.clinical-1.0.0',\n type: 'object',\n title: 'Clinical Trial Data Access Request',\n properties: {\n projectTitle: {\n type: 'string',\n title: 'Project Title',\n description: 'The title of the research project.',\n },\n dataUsePurpose: {\n type: 'string',\n title: 'Data Use Purpose',\n description: 'Select the primary purpose for your use of this data.',\n enum: ['Research', 'Commercial', 'Educational'],\n },\n signedDataUseAgreement: {\n type: 'number',\n title: 'Signed Data Use Agreement',\n description:\n 'Upload a signed copy of the Data Use Agreement. A template is available for download.',\n format: 'synapse-filehandle-id',\n },\n [SUBMISSION_CONTEXT_PROPERTY]: {\n type: 'string',\n enum: [DataAccessRequestType.REQUEST, DataAccessRequestType.RENEWAL],\n },\n },\n required: [\n 'projectTitle',\n 'signedDataUseAgreement',\n SUBMISSION_CONTEXT_PROPERTY,\n ],\n allOf: [\n {\n if: {\n properties: {\n [SUBMISSION_CONTEXT_PROPERTY]: {\n const: DataAccessRequestType.RENEWAL,\n },\n },\n },\n then: {\n properties: {\n irbApprovalNumber: {\n type: 'string',\n title: 'IRB Approval Number',\n description:\n 'If your institution requires IRB approval, provide the approval number.',\n },\n },\n },\n },\n ],\n}\n\n/**\n * Map from `$id` (with version) to the JSON Schema body. In the real system\n * this is served by the registered JSON Schema service.\n */\nexport const mockJsonSchemaRegistry: Record<string, RJSFSchema> = {\n [mockGenomicsSchema.$id as string]: mockGenomicsSchema,\n [mockClinicalSchema.$id as string]: mockClinicalSchema,\n}\n\n/** Look up a registered JSON Schema body by its `$id`. */\nexport function getMockJsonSchemaById(\n schema$id: string,\n): RJSFSchema | undefined {\n return mockJsonSchemaRegistry[schema$id]\n}\n"],"mappings":";;;AAiBA,IAAa,IAAiC;CAC5C,KAAK;CACL,MAAM;CACN,OAAO;CACP,YAAY;EACV,iBAAiB;GACf,MAAM;GACN,OAAO;GACP,aACE;EACJ;EACA,cAAc;GACZ,MAAM;GACN,OAAO;GACP,aACE;EACJ;GACC,IAA8B;GAC7B,MAAM;GACN,MAAM,CAAC,EAAsB,SAAS,EAAsB,OAAO;EACrE;CACF;CACA,UAAU;EAAC;EAAmB;EAAgB;CAA2B;AAC3E,GAMa,IAAiC;CAC5C,KAAK;CACL,MAAM;CACN,OAAO;CACP,YAAY;EACV,cAAc;GACZ,MAAM;GACN,OAAO;GACP,aAAa;EACf;EACA,gBAAgB;GACd,MAAM;GACN,OAAO;GACP,aAAa;GACb,MAAM;IAAC;IAAY;IAAc;GAAa;EAChD;EACA,wBAAwB;GACtB,MAAM;GACN,OAAO;GACP,aACE;GACF,QAAQ;EACV;GACC,IAA8B;GAC7B,MAAM;GACN,MAAM,CAAC,EAAsB,SAAS,EAAsB,OAAO;EACrE;CACF;CACA,UAAU;EACR;EACA;EACA;CACF;CACA,OAAO,CACL;EACE,IAAI,EACF,YAAY,GACT,IAA8B,EAC7B,OAAO,EAAsB,QAC/B,EACF,EACF;EACA,MAAM,EACJ,YAAY,EACV,mBAAmB;GACjB,MAAM;GACN,OAAO;GACP,aACE;EACJ,EACF,EACF;CACF,CACF;AACF,GAMa,IAAqD;EAC/D,EAAmB,MAAgB;EACnC,EAAmB,MAAgB;AACtC;AAGA,SAAgB,EACd,GACwB;CACxB,OAAO,EAAuB;AAChC"}
1
+ {"version":3,"file":"mockJsonSchemas.js","names":[],"sources":["../../../src/mocks/accessRequirement/mockJsonSchemas.ts"],"sourcesContent":["/**\n * Mock JSON Schema registry for the JSON Schema-based Access Requirements demo.\n *\n * Each FormTemplate pins a registered JSON Schema by `$id`. The schema is the\n * data contract — it owns property types, validation rules, and which properties\n * are required.\n *\n * The FormTemplateEditor lets ACT edit the schema body alongside the template in\n * a single UI; saving is conceptually a write to both the schema registry and\n * the template service.\n */\n\nimport { RJSFSchema } from '@rjsf/utils'\nimport { DataAccessRequestType } from '@sage-bionetworks/synapse-client'\nimport { SUBMISSION_CONTEXT_PROPERTY } from '@/utils/jsonschema/submissionContext'\nimport { ACCESS_REQUIREMENT_BASE_SCHEMA_ID } from '@/components/FormTemplateEditor/formTemplateSchema'\n\n/** Genomics DAR data contract — all fields required. */\nexport const mockGenomicsSchema: RJSFSchema = {\n $id: 'org.sagebionetworks.act-GenomicsDataAccessRequest-1.0.0',\n type: 'object',\n title: 'Genomics Data Access Request',\n properties: {\n intendedDataUse: {\n type: 'string',\n title: 'Intended Data Use Statement',\n description:\n 'Describe in detail how you intend to use the requested data.',\n },\n agreeToTerms: {\n type: 'boolean',\n title: 'Terms and Conditions',\n description:\n 'I agree to abide by all terms and conditions for accessing this data.',\n },\n },\n required: ['intendedDataUse', 'agreeToTerms'],\n allOf: [{ $ref: ACCESS_REQUIREMENT_BASE_SCHEMA_ID }],\n}\n\n/**\n * Clinical Trial DAR data contract — includes a file upload and a Renewal-only field\n * (`irbApprovalNumber`), gated behind an `x-synapse-submissionContext` conditional.\n */\nexport const mockClinicalSchema: RJSFSchema = {\n $id: 'org.sagebionetworks.act-ClinicalTrialDataAccessRequest-1.0.0',\n type: 'object',\n title: 'Clinical Trial Data Access Request',\n properties: {\n projectTitle: {\n type: 'string',\n title: 'Project Title',\n description: 'The title of the research project.',\n },\n dataUsePurpose: {\n type: 'string',\n title: 'Data Use Purpose',\n description: 'Select the primary purpose for your use of this data.',\n enum: ['Research', 'Commercial', 'Educational'],\n },\n signedDataUseAgreement: {\n type: 'number',\n title: 'Signed Data Use Agreement',\n description:\n 'Upload a signed copy of the Data Use Agreement. A template is available for download.',\n format: 'synapse-filehandle-id',\n },\n },\n required: ['projectTitle', 'signedDataUseAgreement'],\n allOf: [\n { $ref: ACCESS_REQUIREMENT_BASE_SCHEMA_ID },\n {\n if: {\n properties: {\n [SUBMISSION_CONTEXT_PROPERTY]: {\n const: DataAccessRequestType.RENEWAL,\n },\n },\n },\n then: {\n properties: {\n irbApprovalNumber: {\n type: 'string',\n title: 'IRB Approval Number',\n description:\n 'If your institution requires IRB approval, provide the approval number.',\n },\n },\n },\n },\n ],\n}\n\n/**\n * Map from `$id` (with version) to the JSON Schema body. In the real system\n * this is served by the registered JSON Schema service.\n */\nexport const mockJsonSchemaRegistry: Record<string, RJSFSchema> = {\n [mockGenomicsSchema.$id as string]: mockGenomicsSchema,\n [mockClinicalSchema.$id as string]: mockClinicalSchema,\n}\n\n/** Look up a registered JSON Schema body by its `$id`. */\nexport function getMockJsonSchemaById(\n schema$id: string,\n): RJSFSchema | undefined {\n return mockJsonSchemaRegistry[schema$id]\n}\n"],"mappings":";;;;AAkBA,IAAa,IAAiC;CAC5C,KAAK;CACL,MAAM;CACN,OAAO;CACP,YAAY;EACV,iBAAiB;GACf,MAAM;GACN,OAAO;GACP,aACE;EACJ;EACA,cAAc;GACZ,MAAM;GACN,OAAO;GACP,aACE;EACJ;CACF;CACA,UAAU,CAAC,mBAAmB,cAAc;CAC5C,OAAO,CAAC,EAAE,MAAM,EAAkC,CAAC;AACrD,GAMa,IAAiC;CAC5C,KAAK;CACL,MAAM;CACN,OAAO;CACP,YAAY;EACV,cAAc;GACZ,MAAM;GACN,OAAO;GACP,aAAa;EACf;EACA,gBAAgB;GACd,MAAM;GACN,OAAO;GACP,aAAa;GACb,MAAM;IAAC;IAAY;IAAc;GAAa;EAChD;EACA,wBAAwB;GACtB,MAAM;GACN,OAAO;GACP,aACE;GACF,QAAQ;EACV;CACF;CACA,UAAU,CAAC,gBAAgB,wBAAwB;CACnD,OAAO,CACL,EAAE,MAAM,EAAkC,GAC1C;EACE,IAAI,EACF,YAAY,GACT,IAA8B,EAC7B,OAAO,EAAsB,QAC/B,EACF,EACF;EACA,MAAM,EACJ,YAAY,EACV,mBAAmB;GACjB,MAAM;GACN,OAAO;GACP,aACE;EACJ,EACF,EACF;CACF,CACF;AACF,GAMa,IAAqD;EAC/D,EAAmB,MAAgB;EACnC,EAAmB,MAAgB;AACtC;AAGA,SAAgB,EACd,GACwB;CACxB,OAAO,EAAuB;AAChC"}
@@ -1,2 +1,3 @@
1
1
  export declare function getAuthHandlers(backendOrigin: string): import("msw").HttpHandler[];
2
+ export declare function getUnbindOAuthProviderIdentityHandler(backendOrigin: string): import("msw").HttpHandler;
2
3
  //# sourceMappingURL=authHandlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/authHandlers.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,+BAmBpD"}
1
+ {"version":3,"file":"authHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/authHandlers.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,+BAqBpD;AAED,wBAAgB,qCAAqC,CAAC,aAAa,EAAE,MAAM,6BAI1E"}
@@ -4,10 +4,14 @@ function n(n) {
4
4
  return [
5
5
  t.get(`${n}/auth/v1/authenticatedOn`, () => e.json({ authenticatedOn: (/* @__PURE__ */ new Date()).toISOString() }, { status: 200 })),
6
6
  t.get(`${n}/auth/v1/anonymousToken`, () => e.json({ accessToken: "mock-anonymous-token" }, { status: 200 })),
7
- t.post(`${n}/auth/v1/oauth2/introspect`, () => e.json({ active: !0 }, { status: 200 }))
7
+ t.post(`${n}/auth/v1/oauth2/introspect`, () => e.json({ active: !0 }, { status: 200 })),
8
+ r(n)
8
9
  ];
9
10
  }
11
+ function r(n) {
12
+ return t.delete(`${n}/auth/v1/oauth2/identity`, () => new e(null, { status: 200 }));
13
+ }
10
14
  //#endregion
11
- export { n as getAuthHandlers };
15
+ export { n as getAuthHandlers, r as getUnbindOAuthProviderIdentityHandler };
12
16
 
13
17
  //# sourceMappingURL=authHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/authHandlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw'\n\nexport function getAuthHandlers(backendOrigin: string) {\n return [\n http.get(`${backendOrigin}/auth/v1/authenticatedOn`, () => {\n return HttpResponse.json(\n { authenticatedOn: new Date().toISOString() },\n { status: 200 },\n )\n }),\n http.get(`${backendOrigin}/auth/v1/anonymousToken`, () => {\n return HttpResponse.json(\n { accessToken: 'mock-anonymous-token' },\n { status: 200 },\n )\n }),\n\n http.post(`${backendOrigin}/auth/v1/oauth2/introspect`, () => {\n return HttpResponse.json({ active: true }, { status: 200 })\n }),\n ]\n}\n"],"mappings":";;AAEA,SAAgB,EAAgB,GAAuB;CACrD,OAAO;EACL,EAAK,IAAI,GAAG,EAAc,iCACjB,EAAa,KAClB,EAAE,kCAAiB,IAAI,KAAK,GAAE,YAAY,EAAE,GAC5C,EAAE,QAAQ,IAAI,CAChB,CACD;EACD,EAAK,IAAI,GAAG,EAAc,gCACjB,EAAa,KAClB,EAAE,aAAa,uBAAuB,GACtC,EAAE,QAAQ,IAAI,CAChB,CACD;EAED,EAAK,KAAK,GAAG,EAAc,mCAClB,EAAa,KAAK,EAAE,QAAQ,GAAK,GAAG,EAAE,QAAQ,IAAI,CAAC,CAC3D;CACH;AACF"}
1
+ {"version":3,"file":"authHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/authHandlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw'\n\nexport function getAuthHandlers(backendOrigin: string) {\n return [\n http.get(`${backendOrigin}/auth/v1/authenticatedOn`, () => {\n return HttpResponse.json(\n { authenticatedOn: new Date().toISOString() },\n { status: 200 },\n )\n }),\n http.get(`${backendOrigin}/auth/v1/anonymousToken`, () => {\n return HttpResponse.json(\n { accessToken: 'mock-anonymous-token' },\n { status: 200 },\n )\n }),\n\n http.post(`${backendOrigin}/auth/v1/oauth2/introspect`, () => {\n return HttpResponse.json({ active: true }, { status: 200 })\n }),\n\n getUnbindOAuthProviderIdentityHandler(backendOrigin),\n ]\n}\n\nexport function getUnbindOAuthProviderIdentityHandler(backendOrigin: string) {\n return http.delete(`${backendOrigin}/auth/v1/oauth2/identity`, () => {\n return new HttpResponse(null, { status: 200 })\n })\n}\n"],"mappings":";;AAEA,SAAgB,EAAgB,GAAuB;CACrD,OAAO;EACL,EAAK,IAAI,GAAG,EAAc,iCACjB,EAAa,KAClB,EAAE,kCAAiB,IAAI,KAAK,GAAE,YAAY,EAAE,GAC5C,EAAE,QAAQ,IAAI,CAChB,CACD;EACD,EAAK,IAAI,GAAG,EAAc,gCACjB,EAAa,KAClB,EAAE,aAAa,uBAAuB,GACtC,EAAE,QAAQ,IAAI,CAChB,CACD;EAED,EAAK,KAAK,GAAG,EAAc,mCAClB,EAAa,KAAK,EAAE,QAAQ,GAAK,GAAG,EAAE,QAAQ,IAAI,CAAC,CAC3D;EAED,EAAsC,CAAa;CACrD;AACF;AAEA,SAAgB,EAAsC,GAAuB;CAC3E,OAAO,EAAK,OAAO,GAAG,EAAc,iCAC3B,IAAI,EAAa,MAAM,EAAE,QAAQ,IAAI,CAAC,CAC9C;AACH"}
@@ -1,2 +1,4 @@
1
+ import { EDucSignatureStatus } from '@sage-bionetworks/synapse-client';
2
+ export declare const MOCK_EDUC_SIGNATURE_STATUS: EDucSignatureStatus;
1
3
  export declare function getDataAccessRequestHandlers(backendOrigin: string): import("msw").HttpHandler[];
2
4
  //# sourceMappingURL=dataAccessRequestHandlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataAccessRequestHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"names":[],"mappings":"AA+CA,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,+BAgGjE"}
1
+ {"version":3,"file":"dataAccessRequestHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AA2BtE,eAAO,MAAM,0BAA0B,EAAE,mBAQxC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,+BAyGjE"}
@@ -1,67 +1,73 @@
1
- import { ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE as e, DATA_ACCESS_REQUEST as t, DATA_ACCESS_REQUEST_SIGNATURE as n, DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID as r, DATA_ACCESS_REQUEST_SIGNATURE_QUOTA as i, DATA_ACCESS_REQUEST_SIGNATURE_STATUS as a, DATA_ACCESS_REQUEST_SUBMISSION as o } from "../../../utils/APIConstants.js";
2
- import { MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID as s, mockManagedACTAccessRequirement as c } from "../../accessRequirement/mockAccessRequirements.js";
3
- import l from "../util/BasicMockedCrudService.js";
4
- import { MOCK_DATA_ACCESS_RENEWAL as u, MOCK_DATA_ACCESS_REQUEST as d } from "../../dataaccess/MockDataAccessRequest.js";
5
- import { HttpResponse as f, http as p } from "msw";
1
+ import { ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE as e, DATA_ACCESS_REQUEST as t, DATA_ACCESS_REQUEST_SIGNATURE as n, DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID as r, DATA_ACCESS_REQUEST_SIGNATURE_PRECHECK as i, DATA_ACCESS_REQUEST_SIGNATURE_QUOTA as a, DATA_ACCESS_REQUEST_SIGNATURE_STATUS as o, DATA_ACCESS_REQUEST_SUBMISSION as s } from "../../../utils/APIConstants.js";
2
+ import { MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID as c, mockManagedACTAccessRequirement as l } from "../../accessRequirement/mockAccessRequirements.js";
3
+ import u from "../util/BasicMockedCrudService.js";
4
+ import { MOCK_DATA_ACCESS_RENEWAL as d, MOCK_DATA_ACCESS_REQUEST as f } from "../../dataaccess/MockDataAccessRequest.js";
5
+ import { HttpResponse as p, http as m } from "msw";
6
6
  //#region src/mocks/msw/handlers/dataAccessRequestHandlers.ts
7
- var m = new l({
7
+ var h = new u({
8
8
  idField: "id",
9
9
  autoGenerateId: !0,
10
- initialData: [d, u]
11
- }), h = new l({ initialData: [{
12
- accessRequirementId: String(c.id),
13
- requestId: d.id
10
+ initialData: [f, d]
11
+ }), g = new u({ initialData: [{
12
+ accessRequirementId: String(l.id),
13
+ requestId: f.id
14
14
  }, {
15
- accessRequirementId: String(s),
16
- requestId: u.id
17
- }] });
18
- function g(s) {
15
+ accessRequirementId: String(c),
16
+ requestId: d.id
17
+ }] }), _ = {
18
+ ducStatus: "sent",
19
+ includesRequestChanges: !0,
20
+ signerStatus: [
21
+ {
22
+ name: "Alice Accessor",
23
+ userId: "3388888",
24
+ status: "done"
25
+ },
26
+ {
27
+ name: "Bob Collaborator",
28
+ userId: "3388889",
29
+ status: "pending"
30
+ },
31
+ {
32
+ name: "Cara Officer",
33
+ status: "pending"
34
+ }
35
+ ]
36
+ };
37
+ function v(c) {
19
38
  return [
20
- p.get(`${s}${e(":id")}`, ({ params: e }) => {
21
- let t = h.getOneByField("accessRequirementId", e.id);
39
+ m.get(`${c}${e(":id")}`, ({ params: e }) => {
40
+ let t = g.getOneByField("accessRequirementId", e.id);
22
41
  if (t?.requestId) {
23
- let e = m.getOneById(t.requestId);
24
- if (e) return f.json(e, { status: 200 });
42
+ let e = h.getOneById(t.requestId);
43
+ if (e) return p.json(e, { status: 200 });
25
44
  }
26
- return f.json({ message: `MSW: Request or Renewal not found for access requirement ID: ${e.id}` }, { status: 404 });
45
+ return p.json({ message: `MSW: Request or Renewal not found for access requirement ID: ${e.id}` }, { status: 404 });
27
46
  }),
28
- p.post(`${s}${t}`, async ({ request: e }) => {
29
- let t = await e.json(), n = t.id ? m.getOneById(t.id) : null, r;
30
- return r = n ? m.update(t.id, t) : m.create(t), f.json(r, { status: 201 });
47
+ m.post(`${c}${t}`, async ({ request: e }) => {
48
+ let t = await e.json(), n = t.id ? h.getOneById(t.id) : null, r;
49
+ return r = n ? h.update(t.id, t) : h.create(t), p.json(r, { status: 201 });
31
50
  }),
32
- p.post(`${s}${o(":id")}`, () => f.json({}, { status: 201 })),
33
- p.post(`${s}${n(":id")}`, () => f.json({
51
+ m.post(`${c}${s(":id")}`, () => p.json({}, { status: 201 })),
52
+ m.post(`${c}${n(":id")}`, () => p.json({
34
53
  quota: 5,
35
54
  remaining: 4
36
55
  }, { status: 200 })),
37
- p.get(`${s}${a(":id")}`, () => f.json({
38
- ducStatus: "sent",
39
- includesRequestChanges: !0,
40
- signerStatus: [
41
- {
42
- name: "Alice Accessor",
43
- userId: "3388888",
44
- status: "done"
45
- },
46
- {
47
- name: "Bob Collaborator",
48
- userId: "3388889",
49
- status: "pending"
50
- },
51
- {
52
- name: "Cara Officer",
53
- status: "pending"
54
- }
55
- ]
56
+ m.put(`${c}${n(":id")}`, () => p.json({
57
+ ..._,
58
+ includesRequestChanges: !0
56
59
  }, { status: 200 })),
57
- p.get(`${s}${r(":id")}`, () => f.json({ fileHandleId: "mock-signed-duc-file-handle" }, { status: 200 })),
58
- p.get(`${s}${i(":id")}`, () => f.json({
60
+ m.delete(`${c}${n(":id")}`, () => new p(null, { status: 204 })),
61
+ m.get(`${c}${i(":id")}`, () => p.json({ result: !0 }, { status: 200 })),
62
+ m.get(`${c}${o(":id")}`, () => p.json(_, { status: 200 })),
63
+ m.get(`${c}${r(":id")}`, () => p.json({ fileHandleId: "mock-signed-duc-file-handle" }, { status: 200 })),
64
+ m.get(`${c}${a(":id")}`, () => p.json({
59
65
  quota: 5,
60
66
  remaining: 4
61
67
  }, { status: 200 }))
62
68
  ];
63
69
  }
64
70
  //#endregion
65
- export { g as getDataAccessRequestHandlers };
71
+ export { _ as MOCK_EDUC_SIGNATURE_STATUS, v as getDataAccessRequestHandlers };
66
72
 
67
73
  //# sourceMappingURL=dataAccessRequestHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataAccessRequestHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"sourcesContent":["import {\n ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE,\n DATA_ACCESS_REQUEST,\n DATA_ACCESS_REQUEST_SIGNATURE,\n DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID,\n DATA_ACCESS_REQUEST_SIGNATURE_QUOTA,\n DATA_ACCESS_REQUEST_SIGNATURE_STATUS,\n DATA_ACCESS_REQUEST_SUBMISSION,\n} from '@/utils/APIConstants'\nimport { Renewal, Request } from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport {\n MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID,\n mockManagedACTAccessRequirement,\n} from '../../accessRequirement/mockAccessRequirements'\nimport {\n MOCK_DATA_ACCESS_RENEWAL,\n MOCK_DATA_ACCESS_REQUEST,\n} from '../../dataaccess/MockDataAccessRequest'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\nimport { EDucSignatureStatus } from '@sage-bionetworks/synapse-client'\n\nconst mockDataAccessRequestService = new BasicMockedCrudService<\n Request | Renewal,\n 'id'\n>({\n idField: 'id',\n autoGenerateId: true,\n initialData: [MOCK_DATA_ACCESS_REQUEST, MOCK_DATA_ACCESS_RENEWAL],\n})\n\nconst mockMapARToDataAccessRequestService = new BasicMockedCrudService<{\n accessRequirementId: string\n requestId: string\n}>({\n initialData: [\n {\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n requestId: MOCK_DATA_ACCESS_REQUEST.id,\n },\n {\n accessRequirementId: String(MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID),\n requestId: MOCK_DATA_ACCESS_RENEWAL.id,\n },\n ],\n})\n\nexport function getDataAccessRequestHandlers(backendOrigin: string) {\n return [\n http.get(\n `${backendOrigin}${ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE(\n ':id',\n )}`,\n ({ params }) => {\n const response = mockMapARToDataAccessRequestService.getOneByField(\n 'accessRequirementId',\n params.id as string,\n )\n if (response?.requestId) {\n const dataAccessRequest = mockDataAccessRequestService.getOneById(\n response.requestId,\n )\n if (dataAccessRequest) {\n return HttpResponse.json(dataAccessRequest, { status: 200 })\n }\n }\n return HttpResponse.json(\n {\n message: `MSW: Request or Renewal not found for access requirement ID: ${params.id}`,\n },\n { status: 404 },\n )\n },\n ),\n http.post<never, Request | Renewal>(\n `${backendOrigin}${DATA_ACCESS_REQUEST}`,\n async ({ request }) => {\n const resp = await request.json()\n const existingRequest = resp.id\n ? mockDataAccessRequestService.getOneById(resp.id)\n : null\n\n let updated\n if (existingRequest) {\n updated = mockDataAccessRequestService.update(resp.id, resp)\n } else {\n updated = mockDataAccessRequestService.create(resp)\n }\n\n return HttpResponse.json(updated, { status: 201 })\n },\n ),\n\n http.post(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SUBMISSION(':id')}`,\n () => {\n return HttpResponse.json({}, { status: 201 })\n },\n ),\n\n http.post(`${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE(':id')}`, () => {\n return HttpResponse.json({ quota: 5, remaining: 4 }, { status: 200 })\n }),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_STATUS(':id')}`,\n () => {\n return HttpResponse.json<EDucSignatureStatus>(\n {\n ducStatus: 'sent',\n includesRequestChanges: true,\n signerStatus: [\n { name: 'Alice Accessor', userId: '3388888', status: 'done' },\n {\n name: 'Bob Collaborator',\n userId: '3388889',\n status: 'pending',\n },\n { name: 'Cara Officer', status: 'pending' },\n ],\n },\n { status: 200 },\n )\n },\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID(':id')}`,\n () => {\n return HttpResponse.json(\n { fileHandleId: 'mock-signed-duc-file-handle' },\n { status: 200 },\n )\n },\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_QUOTA(':id')}`,\n () => {\n return HttpResponse.json({ quota: 5, remaining: 4 }, { status: 200 })\n },\n ),\n ]\n}\n"],"mappings":";;;;;;AAsBA,IAAM,IAA+B,IAAI,EAGvC;CACA,SAAS;CACT,gBAAgB;CAChB,aAAa,CAAC,GAA0B,CAAwB;AAClE,CAAC,GAEK,IAAsC,IAAI,EAG7C,EACD,aAAa,CACX;CACE,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,WAAW,EAAyB;AACtC,GACA;CACE,qBAAqB,OAAO,CAAsC;CAClE,WAAW,EAAyB;AACtC,CACF,EACF,CAAC;AAED,SAAgB,EAA6B,GAAuB;CAClE,OAAO;EACL,EAAK,IACH,GAAG,IAAgB,EACjB,KACF,MACC,EAAE,gBAAa;GACd,IAAM,IAAW,EAAoC,cACnD,uBACA,EAAO,EACT;GACA,IAAI,GAAU,WAAW;IACvB,IAAM,IAAoB,EAA6B,WACrD,EAAS,SACX;IACA,IAAI,GACF,OAAO,EAAa,KAAK,GAAmB,EAAE,QAAQ,IAAI,CAAC;GAE/D;GACA,OAAO,EAAa,KAClB,EACE,SAAS,gEAAgE,EAAO,KAClF,GACA,EAAE,QAAQ,IAAI,CAChB;EACF,CACF;EACA,EAAK,KACH,GAAG,IAAgB,KACnB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAO,MAAM,EAAQ,KAAK,GAC1B,IAAkB,EAAK,KACzB,EAA6B,WAAW,EAAK,EAAE,IAC/C,MAEA;GAOJ,OANA,AAGE,IAHE,IACQ,EAA6B,OAAO,EAAK,IAAI,CAAI,IAEjD,EAA6B,OAAO,CAAI,GAG7C,EAAa,KAAK,GAAS,EAAE,QAAQ,IAAI,CAAC;EACnD,CACF;EAEA,EAAK,KACH,GAAG,IAAgB,EAA+B,KAAK,WAE9C,EAAa,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAEhD;EAEA,EAAK,KAAK,GAAG,IAAgB,EAA8B,KAAK,WACvD,EAAa,KAAK;GAAE,OAAO;GAAG,WAAW;EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,CACrE;EAED,EAAK,IACH,GAAG,IAAgB,EAAqC,KAAK,WAEpD,EAAa,KAClB;GACE,WAAW;GACX,wBAAwB;GACxB,cAAc;IACZ;KAAE,MAAM;KAAkB,QAAQ;KAAW,QAAQ;IAAO;IAC5D;KACE,MAAM;KACN,QAAQ;KACR,QAAQ;IACV;IACA;KAAE,MAAM;KAAgB,QAAQ;IAAU;GAC5C;EACF,GACA,EAAE,QAAQ,IAAI,CAChB,CAEJ;EAEA,EAAK,IACH,GAAG,IAAgB,EAA4C,KAAK,WAE3D,EAAa,KAClB,EAAE,cAAc,8BAA8B,GAC9C,EAAE,QAAQ,IAAI,CAChB,CAEJ;EAEA,EAAK,IACH,GAAG,IAAgB,EAAoC,KAAK,WAEnD,EAAa,KAAK;GAAE,OAAO;GAAG,WAAW;EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,CAExE;CACF;AACF"}
1
+ {"version":3,"file":"dataAccessRequestHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"sourcesContent":["import {\n ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE,\n DATA_ACCESS_REQUEST,\n DATA_ACCESS_REQUEST_SIGNATURE,\n DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID,\n DATA_ACCESS_REQUEST_SIGNATURE_PRECHECK,\n DATA_ACCESS_REQUEST_SIGNATURE_QUOTA,\n DATA_ACCESS_REQUEST_SIGNATURE_STATUS,\n DATA_ACCESS_REQUEST_SUBMISSION,\n} from '@/utils/APIConstants'\nimport { Renewal, Request } from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport {\n MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID,\n mockManagedACTAccessRequirement,\n} from '../../accessRequirement/mockAccessRequirements'\nimport {\n MOCK_DATA_ACCESS_RENEWAL,\n MOCK_DATA_ACCESS_REQUEST,\n} from '../../dataaccess/MockDataAccessRequest'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\nimport { EDucSignatureStatus } from '@sage-bionetworks/synapse-client'\n\nconst mockDataAccessRequestService = new BasicMockedCrudService<\n Request | Renewal,\n 'id'\n>({\n idField: 'id',\n autoGenerateId: true,\n initialData: [MOCK_DATA_ACCESS_REQUEST, MOCK_DATA_ACCESS_RENEWAL],\n})\n\nconst mockMapARToDataAccessRequestService = new BasicMockedCrudService<{\n accessRequirementId: string\n requestId: string\n}>({\n initialData: [\n {\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n requestId: MOCK_DATA_ACCESS_REQUEST.id,\n },\n {\n accessRequirementId: String(MOCK_ACCESS_REQUIREMENT_WITHOUT_ACL_ID),\n requestId: MOCK_DATA_ACCESS_RENEWAL.id,\n },\n ],\n})\n\nexport const MOCK_EDUC_SIGNATURE_STATUS: EDucSignatureStatus = {\n ducStatus: 'sent',\n includesRequestChanges: true,\n signerStatus: [\n { name: 'Alice Accessor', userId: '3388888', status: 'done' },\n { name: 'Bob Collaborator', userId: '3388889', status: 'pending' },\n { name: 'Cara Officer', status: 'pending' },\n ],\n}\n\nexport function getDataAccessRequestHandlers(backendOrigin: string) {\n return [\n http.get(\n `${backendOrigin}${ACCESS_REQUIREMENT_DATA_ACCESS_REQUEST_FOR_UPDATE(\n ':id',\n )}`,\n ({ params }) => {\n const response = mockMapARToDataAccessRequestService.getOneByField(\n 'accessRequirementId',\n params.id as string,\n )\n if (response?.requestId) {\n const dataAccessRequest = mockDataAccessRequestService.getOneById(\n response.requestId,\n )\n if (dataAccessRequest) {\n return HttpResponse.json(dataAccessRequest, { status: 200 })\n }\n }\n return HttpResponse.json(\n {\n message: `MSW: Request or Renewal not found for access requirement ID: ${params.id}`,\n },\n { status: 404 },\n )\n },\n ),\n http.post<never, Request | Renewal>(\n `${backendOrigin}${DATA_ACCESS_REQUEST}`,\n async ({ request }) => {\n const resp = await request.json()\n const existingRequest = resp.id\n ? mockDataAccessRequestService.getOneById(resp.id)\n : null\n\n let updated\n if (existingRequest) {\n updated = mockDataAccessRequestService.update(resp.id, resp)\n } else {\n updated = mockDataAccessRequestService.create(resp)\n }\n\n return HttpResponse.json(updated, { status: 201 })\n },\n ),\n\n http.post(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SUBMISSION(':id')}`,\n () => {\n return HttpResponse.json({}, { status: 201 })\n },\n ),\n\n http.post(`${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE(':id')}`, () => {\n return HttpResponse.json({ quota: 5, remaining: 4 }, { status: 200 })\n }),\n\n // A successful update always leaves the envelope in sync with the request, whatever the\n // status handler below is overridden to report beforehand.\n http.put(`${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE(':id')}`, () => {\n return HttpResponse.json<EDucSignatureStatus>(\n { ...MOCK_EDUC_SIGNATURE_STATUS, includesRequestChanges: true },\n { status: 200 },\n )\n }),\n\n http.delete(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE(':id')}`,\n () => new HttpResponse(null, { status: 204 }),\n ),\n\n // The service wraps the answer in `{ result }`, though the OpenAPI spec declares a bare\n // boolean. Mirror the deployed shape so mocked flows match what callers really parse.\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_PRECHECK(':id')}`,\n () => HttpResponse.json({ result: true }, { status: 200 }),\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_STATUS(':id')}`,\n () => {\n return HttpResponse.json<EDucSignatureStatus>(\n MOCK_EDUC_SIGNATURE_STATUS,\n { status: 200 },\n )\n },\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_FILEHANDLE_ID(':id')}`,\n () => {\n return HttpResponse.json(\n { fileHandleId: 'mock-signed-duc-file-handle' },\n { status: 200 },\n )\n },\n ),\n\n http.get(\n `${backendOrigin}${DATA_ACCESS_REQUEST_SIGNATURE_QUOTA(':id')}`,\n () => {\n return HttpResponse.json({ quota: 5, remaining: 4 }, { status: 200 })\n },\n ),\n ]\n}\n"],"mappings":";;;;;;AAuBA,IAAM,IAA+B,IAAI,EAGvC;CACA,SAAS;CACT,gBAAgB;CAChB,aAAa,CAAC,GAA0B,CAAwB;AAClE,CAAC,GAEK,IAAsC,IAAI,EAG7C,EACD,aAAa,CACX;CACE,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,WAAW,EAAyB;AACtC,GACA;CACE,qBAAqB,OAAO,CAAsC;CAClE,WAAW,EAAyB;AACtC,CACF,EACF,CAAC,GAEY,IAAkD;CAC7D,WAAW;CACX,wBAAwB;CACxB,cAAc;EACZ;GAAE,MAAM;GAAkB,QAAQ;GAAW,QAAQ;EAAO;EAC5D;GAAE,MAAM;GAAoB,QAAQ;GAAW,QAAQ;EAAU;EACjE;GAAE,MAAM;GAAgB,QAAQ;EAAU;CAC5C;AACF;AAEA,SAAgB,EAA6B,GAAuB;CAClE,OAAO;EACL,EAAK,IACH,GAAG,IAAgB,EACjB,KACF,MACC,EAAE,gBAAa;GACd,IAAM,IAAW,EAAoC,cACnD,uBACA,EAAO,EACT;GACA,IAAI,GAAU,WAAW;IACvB,IAAM,IAAoB,EAA6B,WACrD,EAAS,SACX;IACA,IAAI,GACF,OAAO,EAAa,KAAK,GAAmB,EAAE,QAAQ,IAAI,CAAC;GAE/D;GACA,OAAO,EAAa,KAClB,EACE,SAAS,gEAAgE,EAAO,KAClF,GACA,EAAE,QAAQ,IAAI,CAChB;EACF,CACF;EACA,EAAK,KACH,GAAG,IAAgB,KACnB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAO,MAAM,EAAQ,KAAK,GAC1B,IAAkB,EAAK,KACzB,EAA6B,WAAW,EAAK,EAAE,IAC/C,MAEA;GAOJ,OANA,AAGE,IAHE,IACQ,EAA6B,OAAO,EAAK,IAAI,CAAI,IAEjD,EAA6B,OAAO,CAAI,GAG7C,EAAa,KAAK,GAAS,EAAE,QAAQ,IAAI,CAAC;EACnD,CACF;EAEA,EAAK,KACH,GAAG,IAAgB,EAA+B,KAAK,WAE9C,EAAa,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAEhD;EAEA,EAAK,KAAK,GAAG,IAAgB,EAA8B,KAAK,WACvD,EAAa,KAAK;GAAE,OAAO;GAAG,WAAW;EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,CACrE;EAID,EAAK,IAAI,GAAG,IAAgB,EAA8B,KAAK,WACtD,EAAa,KAClB;GAAE,GAAG;GAA4B,wBAAwB;EAAK,GAC9D,EAAE,QAAQ,IAAI,CAChB,CACD;EAED,EAAK,OACH,GAAG,IAAgB,EAA8B,KAAK,WAChD,IAAI,EAAa,MAAM,EAAE,QAAQ,IAAI,CAAC,CAC9C;EAIA,EAAK,IACH,GAAG,IAAgB,EAAuC,KAAK,WACzD,EAAa,KAAK,EAAE,QAAQ,GAAK,GAAG,EAAE,QAAQ,IAAI,CAAC,CAC3D;EAEA,EAAK,IACH,GAAG,IAAgB,EAAqC,KAAK,WAEpD,EAAa,KAClB,GACA,EAAE,QAAQ,IAAI,CAChB,CAEJ;EAEA,EAAK,IACH,GAAG,IAAgB,EAA4C,KAAK,WAE3D,EAAa,KAClB,EAAE,cAAc,8BAA8B,GAC9C,EAAE,QAAQ,IAAI,CAChB,CAEJ;EAEA,EAAK,IACH,GAAG,IAAgB,EAAoC,KAAK,WAEnD,EAAa,KAAK;GAAE,OAAO;GAAG,WAAW;EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,CAExE;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/fileHandlers.ts"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,+BA8EpD"}
1
+ {"version":3,"file":"fileHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/fileHandlers.ts"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,+BA2FpD"}
@@ -1,59 +1,63 @@
1
- import { FILE as e, FILE_HANDLE_BATCH as t } from "../../../utils/APIConstants.js";
1
+ import { FILE as e, FILE_HANDLE as t, FILE_HANDLE_BATCH as n } from "../../../utils/APIConstants.js";
2
2
  import "../../user/mock_user_profile.js";
3
- import { mockFileHandles as n } from "../../mock_file_handle.js";
4
- import { uniqueId as r } from "lodash-es";
5
- import { HttpResponse as i, http as a } from "msw";
3
+ import { mockFileHandles as r } from "../../mock_file_handle.js";
4
+ import { uniqueId as i } from "lodash-es";
5
+ import { HttpResponse as a, http as o } from "msw";
6
6
  //#region src/mocks/msw/handlers/fileHandlers.ts
7
- function o(o) {
7
+ function s(s) {
8
8
  return [
9
- a.post(`${o}${t}`, async ({ request: e }) => {
10
- let t = await e.json(), r = { requestedFiles: [] };
9
+ o.post(`${s}${n}`, async ({ request: e }) => {
10
+ let t = await e.json(), n = { requestedFiles: [] };
11
11
  return t.requestedFiles.forEach((e) => {
12
- let t = n.find((t) => t.id === e.fileHandleId);
13
- t && r.requestedFiles.push({
12
+ let t = r.find((t) => t.id === e.fileHandleId);
13
+ t && n.requestedFiles.push({
14
14
  fileHandleId: t.id,
15
15
  fileHandle: t
16
16
  });
17
- }), i.json(r, { status: 201 });
17
+ }), a.json(n, { status: 201 });
18
18
  }),
19
- a.post(`${o}${e}/file/multipart`, () => {
19
+ o.get(`${s}${t}/:id`, ({ params: e }) => {
20
+ let t = r.find((t) => t.id === e.id);
21
+ return t ? a.json(t) : a.json({ reason: `FileHandle not found: ${e.id}` }, { status: 404 });
22
+ }),
23
+ o.post(`${s}${e}/file/multipart`, () => {
20
24
  let e = {
21
25
  state: "COMPLETED",
22
- resultFileHandleId: r("mockFileHandleId"),
23
- uploadId: r("mockUploadId"),
26
+ resultFileHandleId: i("mockFileHandleId"),
27
+ uploadId: i("mockUploadId"),
24
28
  startedBy: "999",
25
29
  startedOn: (/* @__PURE__ */ new Date()).toISOString(),
26
30
  updatedOn: (/* @__PURE__ */ new Date()).toISOString(),
27
31
  partsState: "1"
28
32
  };
29
- return i.json(e, { status: 201 });
33
+ return a.json(e, { status: 201 });
30
34
  }),
31
- a.put(`${o}${e}/file/multipart/:id/complete`, ({ params: e }) => {
35
+ o.put(`${s}${e}/file/multipart/:id/complete`, ({ params: e }) => {
32
36
  let t = {
33
37
  state: "COMPLETED",
34
- resultFileHandleId: r("mockFileHandleId"),
38
+ resultFileHandleId: i("mockFileHandleId"),
35
39
  uploadId: String(e.id),
36
40
  startedBy: "999",
37
41
  startedOn: (/* @__PURE__ */ new Date()).toISOString(),
38
42
  updatedOn: (/* @__PURE__ */ new Date()).toISOString(),
39
43
  partsState: "1"
40
44
  };
41
- return i.json(t, { status: 201 });
45
+ return a.json(t, { status: 201 });
42
46
  }),
43
- a.post(`${o}${e}/externalFileHandle`, async ({ request: e }) => {
47
+ o.post(`${s}${e}/externalFileHandle`, async ({ request: e }) => {
44
48
  let t = {
45
49
  ...await e.json(),
46
- id: r(),
50
+ id: i(),
47
51
  etag: "fake-etag",
48
52
  createdBy: "999",
49
53
  createdOn: (/* @__PURE__ */ new Date()).toISOString(),
50
54
  modifiedOn: (/* @__PURE__ */ new Date()).toISOString()
51
55
  };
52
- return i.json(t, { status: 201 });
56
+ return a.json(t, { status: 201 });
53
57
  })
54
58
  ];
55
59
  }
56
60
  //#endregion
57
- export { o as getFileHandlers };
61
+ export { s as getFileHandlers };
58
62
 
59
63
  //# sourceMappingURL=fileHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/fileHandlers.ts"],"sourcesContent":["import { FILE, FILE_HANDLE_BATCH } from '@/utils/APIConstants'\nimport { ExternalFileHandleInterface } from '@sage-bionetworks/synapse-client'\nimport {\n BatchFileRequest,\n BatchFileResult,\n MultipartUploadStatus,\n} from '@sage-bionetworks/synapse-types'\nimport { uniqueId } from 'lodash-es'\nimport { http, HttpResponse } from 'msw'\nimport { mockFileHandles } from '../../mock_file_handle'\nimport { MOCK_USER_ID } from '../../user/mock_user_profile'\nimport { SynapseApiResponse } from '../handlers'\n\nexport function getFileHandlers(backendOrigin: string) {\n return [\n http.post<never, BatchFileRequest>(\n `${backendOrigin}${FILE_HANDLE_BATCH}`,\n async ({ request }) => {\n const requestBody: BatchFileRequest = await request.json()\n\n const response: BatchFileResult = {\n requestedFiles: [],\n }\n\n requestBody.requestedFiles.forEach(fileHandleAssociation => {\n const fileHandle = mockFileHandles.find(\n fh => fh.id === fileHandleAssociation.fileHandleId,\n )\n if (fileHandle) {\n response.requestedFiles.push({\n fileHandleId: fileHandle.id,\n fileHandle,\n })\n }\n })\n\n return HttpResponse.json(response, { status: 201 })\n },\n ),\n\n http.post(`${backendOrigin}${FILE}/file/multipart`, () => {\n // Each upload must get its own fileHandleId -- reusing MOCK_FILE_HANDLE_ID for every\n // call made multi-file uploads (e.g. in chat attachments) collide on the same id, so\n // removing one attachment would remove them all.\n const response: SynapseApiResponse<MultipartUploadStatus> = {\n state: 'COMPLETED',\n resultFileHandleId: uniqueId('mockFileHandleId'),\n uploadId: uniqueId('mockUploadId'),\n startedBy: String(MOCK_USER_ID),\n startedOn: new Date().toISOString(),\n updatedOn: new Date().toISOString(),\n partsState: '1',\n }\n\n return HttpResponse.json(response, { status: 201 })\n }),\n http.put(\n `${backendOrigin}${FILE}/file/multipart/:id/complete`,\n ({ params }) => {\n const response: SynapseApiResponse<MultipartUploadStatus> = {\n state: 'COMPLETED',\n resultFileHandleId: uniqueId('mockFileHandleId'),\n uploadId: String(params.id),\n startedBy: String(MOCK_USER_ID),\n startedOn: new Date().toISOString(),\n updatedOn: new Date().toISOString(),\n partsState: '1',\n }\n\n return HttpResponse.json(response, { status: 201 })\n },\n ),\n\n http.post<never, ExternalFileHandleInterface>(\n `${backendOrigin}${FILE}/externalFileHandle`,\n async ({ request }) => {\n const requestBody = await request.json()\n\n const response: SynapseApiResponse<ExternalFileHandleInterface> = {\n ...requestBody,\n id: uniqueId(),\n etag: 'fake-etag',\n createdBy: MOCK_USER_ID.toString(),\n createdOn: new Date().toISOString(),\n modifiedOn: new Date().toISOString(),\n }\n\n return HttpResponse.json(response, { status: 201 })\n },\n ),\n ]\n}\n"],"mappings":";;;;;;AAaA,SAAgB,EAAgB,GAAuB;CACrD,OAAO;EACL,EAAK,KACH,GAAG,IAAgB,KACnB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAgC,MAAM,EAAQ,KAAK,GAEnD,IAA4B,EAChC,gBAAgB,CAAC,EACnB;GAcA,OAZA,EAAY,eAAe,SAAQ,MAAyB;IAC1D,IAAM,IAAa,EAAgB,MACjC,MAAM,EAAG,OAAO,EAAsB,YACxC;IACA,AAAI,KACF,EAAS,eAAe,KAAK;KAC3B,cAAc,EAAW;KACzB;IACF,CAAC;GAEL,CAAC,GAEM,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;EAEA,EAAK,KAAK,GAAG,IAAgB,EAAK,wBAAwB;GAIxD,IAAM,IAAsD;IAC1D,OAAO;IACP,oBAAoB,EAAS,kBAAkB;IAC/C,UAAU,EAAS,cAAc;IACjC,WAAW;IACX,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,YAAY;GACd;GAEA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CAAC;EACD,EAAK,IACH,GAAG,IAAgB,EAAK,gCACvB,EAAE,gBAAa;GACd,IAAM,IAAsD;IAC1D,OAAO;IACP,oBAAoB,EAAS,kBAAkB;IAC/C,UAAU,OAAO,EAAO,EAAE;IAC1B,WAAW;IACX,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,YAAY;GACd;GAEA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;EAEA,EAAK,KACH,GAAG,IAAgB,EAAK,sBACxB,OAAO,EAAE,iBAAc;GAGrB,IAAM,IAA4D;IAChE,GAAG,MAHqB,EAAQ,KAAK;IAIrC,IAAI,EAAS;IACb,MAAM;IACN,WAAA;IACA,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,6BAAY,IAAI,KAAK,GAAE,YAAY;GACrC;GAEA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;CACF;AACF"}
1
+ {"version":3,"file":"fileHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/fileHandlers.ts"],"sourcesContent":["import { FILE, FILE_HANDLE, FILE_HANDLE_BATCH } from '@/utils/APIConstants'\nimport { ExternalFileHandleInterface } from '@sage-bionetworks/synapse-client'\nimport {\n BatchFileRequest,\n BatchFileResult,\n MultipartUploadStatus,\n} from '@sage-bionetworks/synapse-types'\nimport { uniqueId } from 'lodash-es'\nimport { http, HttpResponse } from 'msw'\nimport { mockFileHandles } from '../../mock_file_handle'\nimport { MOCK_USER_ID } from '../../user/mock_user_profile'\nimport { SynapseApiResponse } from '../handlers'\n\nexport function getFileHandlers(backendOrigin: string) {\n return [\n http.post<never, BatchFileRequest>(\n `${backendOrigin}${FILE_HANDLE_BATCH}`,\n async ({ request }) => {\n const requestBody: BatchFileRequest = await request.json()\n\n const response: BatchFileResult = {\n requestedFiles: [],\n }\n\n requestBody.requestedFiles.forEach(fileHandleAssociation => {\n const fileHandle = mockFileHandles.find(\n fh => fh.id === fileHandleAssociation.fileHandleId,\n )\n if (fileHandle) {\n response.requestedFiles.push({\n fileHandleId: fileHandle.id,\n fileHandle,\n })\n }\n })\n\n return HttpResponse.json(response, { status: 201 })\n },\n ),\n\n http.get<{ id: string }>(\n `${backendOrigin}${FILE_HANDLE}/:id`,\n ({ params }) => {\n const fileHandle = mockFileHandles.find(fh => fh.id === params.id)\n return fileHandle\n ? HttpResponse.json(fileHandle)\n : HttpResponse.json(\n { reason: `FileHandle not found: ${params.id}` },\n { status: 404 },\n )\n },\n ),\n\n http.post(`${backendOrigin}${FILE}/file/multipart`, () => {\n // Each upload must get its own fileHandleId -- reusing MOCK_FILE_HANDLE_ID for every\n // call made multi-file uploads (e.g. in chat attachments) collide on the same id, so\n // removing one attachment would remove them all.\n const response: SynapseApiResponse<MultipartUploadStatus> = {\n state: 'COMPLETED',\n resultFileHandleId: uniqueId('mockFileHandleId'),\n uploadId: uniqueId('mockUploadId'),\n startedBy: String(MOCK_USER_ID),\n startedOn: new Date().toISOString(),\n updatedOn: new Date().toISOString(),\n partsState: '1',\n }\n\n return HttpResponse.json(response, { status: 201 })\n }),\n http.put(\n `${backendOrigin}${FILE}/file/multipart/:id/complete`,\n ({ params }) => {\n const response: SynapseApiResponse<MultipartUploadStatus> = {\n state: 'COMPLETED',\n resultFileHandleId: uniqueId('mockFileHandleId'),\n uploadId: String(params.id),\n startedBy: String(MOCK_USER_ID),\n startedOn: new Date().toISOString(),\n updatedOn: new Date().toISOString(),\n partsState: '1',\n }\n\n return HttpResponse.json(response, { status: 201 })\n },\n ),\n\n http.post<never, ExternalFileHandleInterface>(\n `${backendOrigin}${FILE}/externalFileHandle`,\n async ({ request }) => {\n const requestBody = await request.json()\n\n const response: SynapseApiResponse<ExternalFileHandleInterface> = {\n ...requestBody,\n id: uniqueId(),\n etag: 'fake-etag',\n createdBy: MOCK_USER_ID.toString(),\n createdOn: new Date().toISOString(),\n modifiedOn: new Date().toISOString(),\n }\n\n return HttpResponse.json(response, { status: 201 })\n },\n ),\n ]\n}\n"],"mappings":";;;;;;AAaA,SAAgB,EAAgB,GAAuB;CACrD,OAAO;EACL,EAAK,KACH,GAAG,IAAgB,KACnB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAgC,MAAM,EAAQ,KAAK,GAEnD,IAA4B,EAChC,gBAAgB,CAAC,EACnB;GAcA,OAZA,EAAY,eAAe,SAAQ,MAAyB;IAC1D,IAAM,IAAa,EAAgB,MACjC,MAAM,EAAG,OAAO,EAAsB,YACxC;IACA,AAAI,KACF,EAAS,eAAe,KAAK;KAC3B,cAAc,EAAW;KACzB;IACF,CAAC;GAEL,CAAC,GAEM,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;EAEA,EAAK,IACH,GAAG,IAAgB,EAAY,QAC9B,EAAE,gBAAa;GACd,IAAM,IAAa,EAAgB,MAAK,MAAM,EAAG,OAAO,EAAO,EAAE;GACjE,OAAO,IACH,EAAa,KAAK,CAAU,IAC5B,EAAa,KACX,EAAE,QAAQ,yBAAyB,EAAO,KAAK,GAC/C,EAAE,QAAQ,IAAI,CAChB;EACN,CACF;EAEA,EAAK,KAAK,GAAG,IAAgB,EAAK,wBAAwB;GAIxD,IAAM,IAAsD;IAC1D,OAAO;IACP,oBAAoB,EAAS,kBAAkB;IAC/C,UAAU,EAAS,cAAc;IACjC,WAAW;IACX,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,YAAY;GACd;GAEA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CAAC;EACD,EAAK,IACH,GAAG,IAAgB,EAAK,gCACvB,EAAE,gBAAa;GACd,IAAM,IAAsD;IAC1D,OAAO;IACP,oBAAoB,EAAS,kBAAkB;IAC/C,UAAU,OAAO,EAAO,EAAE;IAC1B,WAAW;IACX,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,YAAY;GACd;GAEA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;EAEA,EAAK,KACH,GAAG,IAAgB,EAAK,sBACxB,OAAO,EAAE,iBAAc;GAGrB,IAAM,IAA4D;IAChE,GAAG,MAHqB,EAAQ,KAAK;IAIrC,IAAI,EAAS;IACb,MAAM;IACN,WAAA;IACA,4BAAW,IAAI,KAAK,GAAE,YAAY;IAClC,6BAAY,IAAI,KAAK,GAAE,YAAY;GACrC;GAEA,OAAO,EAAa,KAAK,GAAU,EAAE,QAAQ,IAAI,CAAC;EACpD,CACF;CACF;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { FormTemplate } from '@sage-bionetworks/synapse-client';
2
2
  import BasicMockedCrudService from '../util/BasicMockedCrudService';
3
- export declare function getFormTemplateService(): BasicMockedCrudService<FormTemplate, "id">;
3
+ export declare const getFormTemplateSearchUrl: (backendOrigin: string) => string;
4
+ export declare function getFormTemplateService(initialData?: FormTemplate[]): BasicMockedCrudService<FormTemplate, "id">;
4
5
  export declare const getFormTemplateHandlers: (backendOrigin: string, service?: BasicMockedCrudService<FormTemplate, "id">) => import("msw").HttpHandler[];
5
6
  //# sourceMappingURL=formTemplateHandlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formTemplateHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/formTemplateHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,kCAAkC,CAAA;AAGzC,OAAO,sBAAsB,MAAM,gCAAgC,CAAA;AAInE,wBAAgB,sBAAsB,+CAMrC;AAED,eAAO,MAAM,uBAAuB,GAClC,eAAe,MAAM,EACrB,oDAAkC,gCA+FnC,CAAA"}
1
+ {"version":3,"file":"formTemplateHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/formTemplateHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,kCAAkC,CAAA;AAGzC,OAAO,sBAAsB,MAAM,gCAAgC,CAAA;AAInE,eAAO,MAAM,wBAAwB,GAAI,eAAe,MAAM,WACd,CAAA;AAEhD,wBAAgB,sBAAsB,CACpC,WAAW,GAAE,YAAY,EAAsB,8CAOhD;AAED,eAAO,MAAM,uBAAuB,GAClC,eAAe,MAAM,EACrB,oDAAkC,gCAyFnC,CAAA"}
@@ -2,15 +2,15 @@ import e from "../util/BasicMockedCrudService.js";
2
2
  import { mockFormTemplates as t } from "../../accessRequirement/mockFormTemplates.js";
3
3
  import { HttpResponse as n, http as r } from "msw";
4
4
  //#region src/mocks/msw/handlers/formTemplateHandlers.ts
5
- var i = "/repo/v1/accessRequirement/formTemplate";
6
- function a() {
5
+ var i = "/repo/v1/accessRequirement/formTemplate", a = (e) => `${e}${i}/search`;
6
+ function o(n = t) {
7
7
  return new e({
8
- initialData: t,
8
+ initialData: n,
9
9
  idField: "id",
10
10
  autoGenerateId: !0
11
11
  });
12
12
  }
13
- var o = (e, t = a()) => [
13
+ var s = (e, t = o()) => [
14
14
  r.post(`${e}${i}`, async ({ request: e }) => {
15
15
  let r = await e.json(), i = t.create({
16
16
  ...r,
@@ -20,6 +20,19 @@ var o = (e, t = a()) => [
20
20
  });
21
21
  return n.json(i, { status: 201 });
22
22
  }),
23
+ r.post(a(e), async ({ request: e }) => {
24
+ let r = await e.json(), i = t.getAll();
25
+ if (r.name) {
26
+ let e = r.name.toLowerCase();
27
+ i = i.filter((t) => t.name.toLowerCase().includes(e));
28
+ }
29
+ r.includeDeprecated || (i = i.filter((e) => !e.deprecated));
30
+ let a = {
31
+ results: i,
32
+ nextPageToken: void 0
33
+ };
34
+ return n.json(a);
35
+ }),
23
36
  r.post(`${e}${i}/:id`, async ({ request: e, params: r }) => {
24
37
  let i = await e.json(), a = t.update(r.id, {
25
38
  ...i,
@@ -44,22 +57,9 @@ var o = (e, t = a()) => [
44
57
  concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
45
58
  reason: `FormTemplate not found: ${e.id}`
46
59
  }, { status: 404 });
47
- }),
48
- r.post(`${e}${i}/search`, async ({ request: e }) => {
49
- let r = await e.json(), i = t.getAll();
50
- if (r.name) {
51
- let e = r.name.toLowerCase();
52
- i = i.filter((t) => t.name.toLowerCase().includes(e));
53
- }
54
- r.includeDeprecated || (i = i.filter((e) => !e.deprecated));
55
- let a = {
56
- results: i,
57
- nextPageToken: void 0
58
- };
59
- return n.json(a);
60
60
  })
61
61
  ];
62
62
  //#endregion
63
- export { o as getFormTemplateHandlers, a as getFormTemplateService };
63
+ export { s as getFormTemplateHandlers, a as getFormTemplateSearchUrl, o as getFormTemplateService };
64
64
 
65
65
  //# sourceMappingURL=formTemplateHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formTemplateHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/formTemplateHandlers.ts"],"sourcesContent":["import {\n FormTemplate,\n FormTemplateSearchRequest,\n FormTemplateSearchResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { http, HttpResponse } from 'msw'\nimport { mockFormTemplates } from '../../accessRequirement/mockFormTemplates'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\n\nconst FORM_TEMPLATE_BASE = '/repo/v1/accessRequirement/formTemplate'\n\nexport function getFormTemplateService() {\n return new BasicMockedCrudService<FormTemplate, 'id'>({\n initialData: mockFormTemplates,\n idField: 'id',\n autoGenerateId: true,\n })\n}\n\nexport const getFormTemplateHandlers = (\n backendOrigin: string,\n service = getFormTemplateService(),\n) => [\n // Create a new form template\n http.post(`${backendOrigin}${FORM_TEMPLATE_BASE}`, async ({ request }) => {\n const body = (await request.json()) as FormTemplate\n const created = service.create({\n ...body,\n etag: crypto.randomUUID(),\n versionNumber: 1,\n deprecated: body.deprecated ?? false,\n })\n return HttpResponse.json(created, { status: 201 })\n }),\n\n // Update a form template by id (creates a new version)\n http.post(\n `${backendOrigin}${FORM_TEMPLATE_BASE}/:id`,\n async ({ request, params }) => {\n const body = (await request.json()) as FormTemplate\n const updated = service.update(params.id as string, {\n ...body,\n etag: crypto.randomUUID(),\n versionNumber: (body.versionNumber ?? 0) + 1,\n })\n if (!updated) {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `FormTemplate not found: ${params.id}`,\n },\n { status: 404 },\n )\n }\n return HttpResponse.json(updated)\n },\n ),\n\n // Get a form template by id (latest version)\n http.get(`${backendOrigin}${FORM_TEMPLATE_BASE}/:id`, ({ params }) => {\n const template = service.getOneById(params.id as string)\n if (!template) {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `FormTemplate not found: ${params.id}`,\n },\n { status: 404 },\n )\n }\n return HttpResponse.json(template)\n }),\n\n // Get a specific version of a form template\n http.get(\n `${backendOrigin}${FORM_TEMPLATE_BASE}/:id/version/:versionNumber`,\n ({ params }) => {\n const template = service.getOneById(params.id as string)\n if (!template) {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `FormTemplate not found: ${params.id}`,\n },\n { status: 404 },\n )\n }\n return HttpResponse.json(template)\n },\n ),\n\n // Search form templates\n http.post(\n `${backendOrigin}${FORM_TEMPLATE_BASE}/search`,\n async ({ request }) => {\n const body = (await request.json()) as FormTemplateSearchRequest\n let results = service.getAll()\n\n if (body.name) {\n const searchLower = body.name.toLowerCase()\n results = results.filter(t =>\n t.name.toLowerCase().includes(searchLower),\n )\n }\n\n if (!body.includeDeprecated) {\n results = results.filter(t => !t.deprecated)\n }\n\n const response: FormTemplateSearchResponse = {\n results,\n nextPageToken: undefined,\n }\n return HttpResponse.json(response)\n },\n ),\n]\n"],"mappings":";;;;AASA,IAAM,IAAqB;AAE3B,SAAgB,IAAyB;CACvC,OAAO,IAAI,EAA2C;EACpD,aAAa;EACb,SAAS;EACT,gBAAgB;CAClB,CAAC;AACH;AAEA,IAAa,KACX,GACA,IAAU,EAAuB,MAC9B;CAEH,EAAK,KAAK,GAAG,IAAgB,KAAsB,OAAO,EAAE,iBAAc;EACxE,IAAM,IAAQ,MAAM,EAAQ,KAAK,GAC3B,IAAU,EAAQ,OAAO;GAC7B,GAAG;GACH,MAAM,OAAO,WAAW;GACxB,eAAe;GACf,YAAY,EAAK,cAAc;EACjC,CAAC;EACD,OAAO,EAAa,KAAK,GAAS,EAAE,QAAQ,IAAI,CAAC;CACnD,CAAC;CAGD,EAAK,KACH,GAAG,IAAgB,EAAmB,OACtC,OAAO,EAAE,YAAS,gBAAa;EAC7B,IAAM,IAAQ,MAAM,EAAQ,KAAK,GAC3B,IAAU,EAAQ,OAAO,EAAO,IAAc;GAClD,GAAG;GACH,MAAM,OAAO,WAAW;GACxB,gBAAgB,EAAK,iBAAiB,KAAK;EAC7C,CAAC;EAUD,OATK,IASE,EAAa,KAAK,CAAO,IARvB,EAAa,KAClB;GACE,cAAc;GACd,QAAQ,2BAA2B,EAAO;EAC5C,GACA,EAAE,QAAQ,IAAI,CAChB;CAGJ,CACF;CAGA,EAAK,IAAI,GAAG,IAAgB,EAAmB,QAAQ,EAAE,gBAAa;EACpE,IAAM,IAAW,EAAQ,WAAW,EAAO,EAAY;EAUvD,OATK,IASE,EAAa,KAAK,CAAQ,IARxB,EAAa,KAClB;GACE,cAAc;GACd,QAAQ,2BAA2B,EAAO;EAC5C,GACA,EAAE,QAAQ,IAAI,CAChB;CAGJ,CAAC;CAGD,EAAK,IACH,GAAG,IAAgB,EAAmB,+BACrC,EAAE,gBAAa;EACd,IAAM,IAAW,EAAQ,WAAW,EAAO,EAAY;EAUvD,OATK,IASE,EAAa,KAAK,CAAQ,IARxB,EAAa,KAClB;GACE,cAAc;GACd,QAAQ,2BAA2B,EAAO;EAC5C,GACA,EAAE,QAAQ,IAAI,CAChB;CAGJ,CACF;CAGA,EAAK,KACH,GAAG,IAAgB,EAAmB,UACtC,OAAO,EAAE,iBAAc;EACrB,IAAM,IAAQ,MAAM,EAAQ,KAAK,GAC7B,IAAU,EAAQ,OAAO;EAE7B,IAAI,EAAK,MAAM;GACb,IAAM,IAAc,EAAK,KAAK,YAAY;GAC1C,IAAU,EAAQ,QAAO,MACvB,EAAE,KAAK,YAAY,EAAE,SAAS,CAAW,CAC3C;EACF;EAEA,AAAK,EAAK,sBACR,IAAU,EAAQ,QAAO,MAAK,CAAC,EAAE,UAAU;EAG7C,IAAM,IAAuC;GAC3C;GACA,eAAe,KAAA;EACjB;EACA,OAAO,EAAa,KAAK,CAAQ;CACnC,CACF;AACF"}
1
+ {"version":3,"file":"formTemplateHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/formTemplateHandlers.ts"],"sourcesContent":["import {\n FormTemplate,\n FormTemplateSearchRequest,\n FormTemplateSearchResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { http, HttpResponse } from 'msw'\nimport { mockFormTemplates } from '../../accessRequirement/mockFormTemplates'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\n\nconst FORM_TEMPLATE_BASE = '/repo/v1/accessRequirement/formTemplate'\n\nexport const getFormTemplateSearchUrl = (backendOrigin: string) =>\n `${backendOrigin}${FORM_TEMPLATE_BASE}/search`\n\nexport function getFormTemplateService(\n initialData: FormTemplate[] = mockFormTemplates,\n) {\n return new BasicMockedCrudService<FormTemplate, 'id'>({\n initialData,\n idField: 'id',\n autoGenerateId: true,\n })\n}\n\nexport const getFormTemplateHandlers = (\n backendOrigin: string,\n service = getFormTemplateService(),\n) => [\n // Create a new form template\n http.post(`${backendOrigin}${FORM_TEMPLATE_BASE}`, async ({ request }) => {\n const body = (await request.json()) as FormTemplate\n const created = service.create({\n ...body,\n etag: crypto.randomUUID(),\n versionNumber: 1,\n deprecated: body.deprecated ?? false,\n })\n return HttpResponse.json(created, { status: 201 })\n }),\n\n // Search form templates\n http.post(getFormTemplateSearchUrl(backendOrigin), async ({ request }) => {\n const body = (await request.json()) as FormTemplateSearchRequest\n let results = service.getAll()\n\n if (body.name) {\n const searchLower = body.name.toLowerCase()\n results = results.filter(t => t.name.toLowerCase().includes(searchLower))\n }\n\n if (!body.includeDeprecated) {\n results = results.filter(t => !t.deprecated)\n }\n\n const response: FormTemplateSearchResponse = {\n results,\n nextPageToken: undefined,\n }\n return HttpResponse.json(response)\n }),\n // Update a form template by id (creates a new version)\n http.post(\n `${backendOrigin}${FORM_TEMPLATE_BASE}/:id`,\n async ({ request, params }) => {\n const body = (await request.json()) as FormTemplate\n const updated = service.update(params.id as string, {\n ...body,\n etag: crypto.randomUUID(),\n versionNumber: (body.versionNumber ?? 0) + 1,\n })\n if (!updated) {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `FormTemplate not found: ${params.id}`,\n },\n { status: 404 },\n )\n }\n return HttpResponse.json(updated)\n },\n ),\n\n // Get a form template by id (latest version)\n http.get(`${backendOrigin}${FORM_TEMPLATE_BASE}/:id`, ({ params }) => {\n const template = service.getOneById(params.id as string)\n if (!template) {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `FormTemplate not found: ${params.id}`,\n },\n { status: 404 },\n )\n }\n return HttpResponse.json(template)\n }),\n\n // Get a specific version of a form template\n http.get(\n `${backendOrigin}${FORM_TEMPLATE_BASE}/:id/version/:versionNumber`,\n ({ params }) => {\n const template = service.getOneById(params.id as string)\n if (!template) {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `FormTemplate not found: ${params.id}`,\n },\n { status: 404 },\n )\n }\n return HttpResponse.json(template)\n },\n ),\n]\n"],"mappings":";;;;AASA,IAAM,IAAqB,2CAEd,KAA4B,MACvC,GAAG,IAAgB,EAAmB;AAExC,SAAgB,EACd,IAA8B,GAC9B;CACA,OAAO,IAAI,EAA2C;EACpD;EACA,SAAS;EACT,gBAAgB;CAClB,CAAC;AACH;AAEA,IAAa,KACX,GACA,IAAU,EAAuB,MAC9B;CAEH,EAAK,KAAK,GAAG,IAAgB,KAAsB,OAAO,EAAE,iBAAc;EACxE,IAAM,IAAQ,MAAM,EAAQ,KAAK,GAC3B,IAAU,EAAQ,OAAO;GAC7B,GAAG;GACH,MAAM,OAAO,WAAW;GACxB,eAAe;GACf,YAAY,EAAK,cAAc;EACjC,CAAC;EACD,OAAO,EAAa,KAAK,GAAS,EAAE,QAAQ,IAAI,CAAC;CACnD,CAAC;CAGD,EAAK,KAAK,EAAyB,CAAa,GAAG,OAAO,EAAE,iBAAc;EACxE,IAAM,IAAQ,MAAM,EAAQ,KAAK,GAC7B,IAAU,EAAQ,OAAO;EAE7B,IAAI,EAAK,MAAM;GACb,IAAM,IAAc,EAAK,KAAK,YAAY;GAC1C,IAAU,EAAQ,QAAO,MAAK,EAAE,KAAK,YAAY,EAAE,SAAS,CAAW,CAAC;EAC1E;EAEA,AAAK,EAAK,sBACR,IAAU,EAAQ,QAAO,MAAK,CAAC,EAAE,UAAU;EAG7C,IAAM,IAAuC;GAC3C;GACA,eAAe,KAAA;EACjB;EACA,OAAO,EAAa,KAAK,CAAQ;CACnC,CAAC;CAED,EAAK,KACH,GAAG,IAAgB,EAAmB,OACtC,OAAO,EAAE,YAAS,gBAAa;EAC7B,IAAM,IAAQ,MAAM,EAAQ,KAAK,GAC3B,IAAU,EAAQ,OAAO,EAAO,IAAc;GAClD,GAAG;GACH,MAAM,OAAO,WAAW;GACxB,gBAAgB,EAAK,iBAAiB,KAAK;EAC7C,CAAC;EAUD,OATK,IASE,EAAa,KAAK,CAAO,IARvB,EAAa,KAClB;GACE,cAAc;GACd,QAAQ,2BAA2B,EAAO;EAC5C,GACA,EAAE,QAAQ,IAAI,CAChB;CAGJ,CACF;CAGA,EAAK,IAAI,GAAG,IAAgB,EAAmB,QAAQ,EAAE,gBAAa;EACpE,IAAM,IAAW,EAAQ,WAAW,EAAO,EAAY;EAUvD,OATK,IASE,EAAa,KAAK,CAAQ,IARxB,EAAa,KAClB;GACE,cAAc;GACd,QAAQ,2BAA2B,EAAO;EAC5C,GACA,EAAE,QAAQ,IAAI,CAChB;CAGJ,CAAC;CAGD,EAAK,IACH,GAAG,IAAgB,EAAmB,+BACrC,EAAE,gBAAa;EACd,IAAM,IAAW,EAAQ,WAAW,EAAO,EAAY;EAUvD,OATK,IASE,EAAa,KAAK,CAAQ,IARxB,EAAa,KAClB;GACE,cAAc;GACd,QAAQ,2BAA2B,EAAO;EAC5C,GACA,EAAE,QAAQ,IAAI,CAChB;CAGJ,CACF;AACF"}
@@ -1,3 +1,11 @@
1
1
  import { JSONSchema7 } from 'json-schema';
2
2
  export declare function getValidationSchemaHandlers(backendOrigin?: string, schemas?: JSONSchema7[]): import("msw").HttpHandler[];
3
+ /** Serves each schema as registered, looked up by its exact `$id`. */
4
+ export declare function getRegisteredSchemaHandlers(backendOrigin: string, schemas: JSONSchema7[]): import("msw").HttpHandler[];
5
+ /**
6
+ * Mocks the `CreateSchemaRequest` async job on the generic asynchronous job endpoint. Registers
7
+ * each created schema under its requested `$id` by appending it to `registeredSchemas`; pass the
8
+ * same array to {@link getRegisteredSchemaHandlers} so newly created versions can be fetched.
9
+ */
10
+ export declare function getCreateSchemaHandlers(backendOrigin: string, registeredSchemas: JSONSchema7[]): import("msw").HttpHandler[];
3
11
  //# sourceMappingURL=schemaHandlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/schemaHandlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AASzC,wBAAgB,2BAA2B,CACzC,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,GAAE,WAAW,EAAsB,+BA8B3C"}
1
+ {"version":3,"file":"schemaHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/schemaHandlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAUzC,wBAAgB,2BAA2B,CACzC,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,GAAE,WAAW,EAAsB,+BA8B3C;AAED,sEAAsE;AACtE,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,WAAW,EAAE,+BAgBvB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,WAAW,EAAE,+BAqBjC"}
@@ -1,14 +1,15 @@
1
1
  import { SCHEMA_VALIDATION_GET as e, SCHEMA_VALIDATION_START as t } from "../../../utils/APIConstants.js";
2
2
  import { mockConditionalOnConcreteTypeSchema as n, mockFileEntityValidationSchema as r, mockProjectValidationSchema as i, mockValidationSchema as a } from "../../mockSchema.js";
3
3
  import { dispatchEntry as o, generateAsyncJobHandlers as s } from "./asyncJobHandlers.js";
4
+ import { HttpResponse as c, http as l } from "msw";
4
5
  //#region src/mocks/msw/handlers/schemaHandlers.ts
5
- var c = [
6
+ var u = [
6
7
  a,
7
8
  n,
8
9
  r,
9
10
  i
10
11
  ];
11
- function l(n, r = c) {
12
+ function d(n, r = u) {
12
13
  return s(o("org.sagebionetworks.repo.model.schema.GetValidationSchemaRequest", (e) => {
13
14
  let t = e.$id, n = t ? r.find((e) => e.$id?.includes(t)) : void 0;
14
15
  if (!n) throw Error(`Validation schema with id ${t} not found in mock data.`);
@@ -24,7 +25,23 @@ function l(n, r = c) {
24
25
  backendOrigin: n
25
26
  });
26
27
  }
28
+ function f(e, t) {
29
+ return [l.get(`${e}/repo/v1/schema/type/registered/:id`, ({ params: e }) => {
30
+ let n = t.find((t) => t.$id === e.id);
31
+ return n ? c.json(n, { status: 200 }) : c.json({ reason: `Schema ${String(e.id)} not found in mock data.` }, { status: 404 });
32
+ })];
33
+ }
34
+ function p(e, t) {
35
+ return s(o("org.sagebionetworks.repo.model.schema.CreateSchemaRequest", (e) => {
36
+ let { schema: n } = e, r = n?.$id;
37
+ if (!n || !r) throw Error("CreateSchemaRequest schema must declare an $id.");
38
+ return t.push(n), {
39
+ concreteType: "org.sagebionetworks.repo.model.schema.CreateSchemaResponse",
40
+ newVersionInfo: { $id: r }
41
+ };
42
+ }), { backendOrigin: e });
43
+ }
27
44
  //#endregion
28
- export { l as getValidationSchemaHandlers };
45
+ export { p as getCreateSchemaHandlers, f as getRegisteredSchemaHandlers, d as getValidationSchemaHandlers };
29
46
 
30
47
  //# sourceMappingURL=schemaHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/schemaHandlers.ts"],"sourcesContent":["// MSW handlers for JSON Schema services\nimport {\n mockConditionalOnConcreteTypeSchema,\n mockFileEntityValidationSchema,\n mockProjectValidationSchema,\n mockValidationSchema,\n} from '@/mocks/mockSchema'\nimport {\n dispatchEntry,\n generateAsyncJobHandlers,\n} from '@/mocks/msw/handlers/asyncJobHandlers'\nimport {\n SCHEMA_VALIDATION_GET,\n SCHEMA_VALIDATION_START,\n} from '@/utils/APIConstants'\nimport { JSONSchema7 } from 'json-schema'\n\nconst validationSchemas: JSONSchema7[] = [\n mockValidationSchema,\n mockConditionalOnConcreteTypeSchema,\n mockFileEntityValidationSchema,\n mockProjectValidationSchema,\n]\n\nexport function getValidationSchemaHandlers(\n backendOrigin?: string,\n schemas: JSONSchema7[] = validationSchemas,\n) {\n return generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.schema.GetValidationSchemaRequest',\n request => {\n const requestedId = request.$id\n const validationSchema = requestedId\n ? schemas.find(schema => schema.$id?.includes(requestedId))\n : undefined\n if (!validationSchema) {\n throw new Error(\n `Validation schema with id ${requestedId} not found in mock data.`,\n )\n }\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.schema.GetValidationSchemaResponse',\n validationSchema,\n }\n },\n ),\n {\n asyncTypeServicePaths: {\n requestPath: SCHEMA_VALIDATION_START,\n responsePath: tokenParam => SCHEMA_VALIDATION_GET(tokenParam),\n },\n backendOrigin,\n },\n )\n}\n"],"mappings":";;;;AAiBA,IAAM,IAAmC;CACvC;CACA;CACA;CACA;AACF;AAEA,SAAgB,EACd,GACA,IAAyB,GACzB;CACA,OAAO,EACL,EACE,qEACA,MAAW;EACT,IAAM,IAAc,EAAQ,KACtB,IAAmB,IACrB,EAAQ,MAAK,MAAU,EAAO,KAAK,SAAS,CAAW,CAAC,IACxD,KAAA;EACJ,IAAI,CAAC,GACH,MAAU,MACR,6BAA6B,EAAY,yBAC3C;EAEF,OAAO;GACL,cACE;GACF;EACF;CACF,CACF,GACA;EACE,uBAAuB;GACrB,aAAa;GACb,eAAc,MAAc,EAAsB,CAAU;EAC9D;EACA;CACF,CACF;AACF"}
1
+ {"version":3,"file":"schemaHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/schemaHandlers.ts"],"sourcesContent":["// MSW handlers for JSON Schema services\nimport {\n mockConditionalOnConcreteTypeSchema,\n mockFileEntityValidationSchema,\n mockProjectValidationSchema,\n mockValidationSchema,\n} from '@/mocks/mockSchema'\nimport {\n dispatchEntry,\n generateAsyncJobHandlers,\n} from '@/mocks/msw/handlers/asyncJobHandlers'\nimport {\n SCHEMA_VALIDATION_GET,\n SCHEMA_VALIDATION_START,\n} from '@/utils/APIConstants'\nimport { JSONSchema7 } from 'json-schema'\nimport { http, HttpResponse } from 'msw'\n\nconst validationSchemas: JSONSchema7[] = [\n mockValidationSchema,\n mockConditionalOnConcreteTypeSchema,\n mockFileEntityValidationSchema,\n mockProjectValidationSchema,\n]\n\nexport function getValidationSchemaHandlers(\n backendOrigin?: string,\n schemas: JSONSchema7[] = validationSchemas,\n) {\n return generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.schema.GetValidationSchemaRequest',\n request => {\n const requestedId = request.$id\n const validationSchema = requestedId\n ? schemas.find(schema => schema.$id?.includes(requestedId))\n : undefined\n if (!validationSchema) {\n throw new Error(\n `Validation schema with id ${requestedId} not found in mock data.`,\n )\n }\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.schema.GetValidationSchemaResponse',\n validationSchema,\n }\n },\n ),\n {\n asyncTypeServicePaths: {\n requestPath: SCHEMA_VALIDATION_START,\n responsePath: tokenParam => SCHEMA_VALIDATION_GET(tokenParam),\n },\n backendOrigin,\n },\n )\n}\n\n/** Serves each schema as registered, looked up by its exact `$id`. */\nexport function getRegisteredSchemaHandlers(\n backendOrigin: string,\n schemas: JSONSchema7[],\n) {\n return [\n http.get(\n `${backendOrigin}/repo/v1/schema/type/registered/:id`,\n ({ params }) => {\n const schema = schemas.find(s => s.$id === params.id)\n return schema\n ? HttpResponse.json(schema, { status: 200 })\n : HttpResponse.json(\n { reason: `Schema ${String(params.id)} not found in mock data.` },\n { status: 404 },\n )\n },\n ),\n ]\n}\n\n/**\n * Mocks the `CreateSchemaRequest` async job on the generic asynchronous job endpoint. Registers\n * each created schema under its requested `$id` by appending it to `registeredSchemas`; pass the\n * same array to {@link getRegisteredSchemaHandlers} so newly created versions can be fetched.\n */\nexport function getCreateSchemaHandlers(\n backendOrigin: string,\n registeredSchemas: JSONSchema7[],\n) {\n return generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.schema.CreateSchemaRequest',\n request => {\n const { schema } = request\n const $id = schema?.$id\n if (!schema || !$id) {\n throw new Error('CreateSchemaRequest schema must declare an $id.')\n }\n registeredSchemas.push(schema as JSONSchema7)\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.schema.CreateSchemaResponse',\n newVersionInfo: { $id },\n }\n },\n ),\n { backendOrigin },\n )\n}\n"],"mappings":";;;;;AAkBA,IAAM,IAAmC;CACvC;CACA;CACA;CACA;AACF;AAEA,SAAgB,EACd,GACA,IAAyB,GACzB;CACA,OAAO,EACL,EACE,qEACA,MAAW;EACT,IAAM,IAAc,EAAQ,KACtB,IAAmB,IACrB,EAAQ,MAAK,MAAU,EAAO,KAAK,SAAS,CAAW,CAAC,IACxD,KAAA;EACJ,IAAI,CAAC,GACH,MAAU,MACR,6BAA6B,EAAY,yBAC3C;EAEF,OAAO;GACL,cACE;GACF;EACF;CACF,CACF,GACA;EACE,uBAAuB;GACrB,aAAa;GACb,eAAc,MAAc,EAAsB,CAAU;EAC9D;EACA;CACF,CACF;AACF;AAGA,SAAgB,EACd,GACA,GACA;CACA,OAAO,CACL,EAAK,IACH,GAAG,EAAc,uCAChB,EAAE,gBAAa;EACd,IAAM,IAAS,EAAQ,MAAK,MAAK,EAAE,QAAQ,EAAO,EAAE;EACpD,OAAO,IACH,EAAa,KAAK,GAAQ,EAAE,QAAQ,IAAI,CAAC,IACzC,EAAa,KACX,EAAE,QAAQ,UAAU,OAAO,EAAO,EAAE,EAAE,0BAA0B,GAChE,EAAE,QAAQ,IAAI,CAChB;CACN,CACF,CACF;AACF;AAOA,SAAgB,EACd,GACA,GACA;CACA,OAAO,EACL,EACE,8DACA,MAAW;EACT,IAAM,EAAE,cAAW,GACb,IAAM,GAAQ;EACpB,IAAI,CAAC,KAAU,CAAC,GACd,MAAU,MAAM,iDAAiD;EAGnE,OADA,EAAkB,KAAK,CAAqB,GACrC;GACL,cACE;GACF,gBAAgB,EAAE,OAAI;EACxB;CACF,CACF,GACA,EAAE,iBAAc,CAClB;AACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Rejects the submitted verification code the way the service does when it doesn't match the bound
3
+ * secret. The reason text is what the UI matches on to present the failure on the code field.
4
+ */
5
+ export declare function getInvalidCodeTwoFactorEnrollmentHandler(backendOrigin: string): import("msw").HttpHandler;
6
+ /** Fails enrollment for a reason that no change to the submitted code could resolve */
7
+ export declare function getUnexpectedErrorTwoFactorEnrollmentHandler(backendOrigin: string, message: string): import("msw").HttpHandler;
8
+ //# sourceMappingURL=twoFactorEnrollmentHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoFactorEnrollmentHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/twoFactorEnrollmentHandlers.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,wCAAwC,CACtD,aAAa,EAAE,MAAM,6BAWtB;AAED,uFAAuF;AACvF,wBAAgB,4CAA4C,CAC1D,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,6BAWhB"}
@@ -0,0 +1,19 @@
1
+ import { HttpResponse as e, http as t } from "msw";
2
+ //#region src/mocks/msw/handlers/twoFactorEnrollmentHandlers.ts
3
+ var n = "/auth/v1/2fa";
4
+ function r(r) {
5
+ return t.post(r + n, () => e.json({
6
+ concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
7
+ reason: "Invalid TOTP code"
8
+ }, { status: 400 }));
9
+ }
10
+ function i(r, i) {
11
+ return t.post(r + n, () => e.json({
12
+ concreteType: "org.sagebionetworks.repo.model.ErrorResponse",
13
+ reason: i
14
+ }, { status: 500 }));
15
+ }
16
+ //#endregion
17
+ export { r as getInvalidCodeTwoFactorEnrollmentHandler, i as getUnexpectedErrorTwoFactorEnrollmentHandler };
18
+
19
+ //# sourceMappingURL=twoFactorEnrollmentHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twoFactorEnrollmentHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/twoFactorEnrollmentHandlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw'\n\nconst TWO_FACTOR_ENROLLMENT_PATH = '/auth/v1/2fa'\n\n/**\n * Rejects the submitted verification code the way the service does when it doesn't match the bound\n * secret. The reason text is what the UI matches on to present the failure on the code field.\n */\nexport function getInvalidCodeTwoFactorEnrollmentHandler(\n backendOrigin: string,\n) {\n return http.post(backendOrigin + TWO_FACTOR_ENROLLMENT_PATH, () => {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: 'Invalid TOTP code',\n },\n { status: 400 },\n )\n })\n}\n\n/** Fails enrollment for a reason that no change to the submitted code could resolve */\nexport function getUnexpectedErrorTwoFactorEnrollmentHandler(\n backendOrigin: string,\n message: string,\n) {\n return http.post(backendOrigin + TWO_FACTOR_ENROLLMENT_PATH, () => {\n return HttpResponse.json(\n {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: message,\n },\n { status: 500 },\n )\n })\n}\n"],"mappings":";;AAEA,IAAM,IAA6B;AAMnC,SAAgB,EACd,GACA;CACA,OAAO,EAAK,KAAK,IAAgB,SACxB,EAAa,KAClB;EACE,cAAc;EACd,QAAQ;CACV,GACA,EAAE,QAAQ,IAAI,CAChB,CACD;AACH;AAGA,SAAgB,EACd,GACA,GACA;CACA,OAAO,EAAK,KAAK,IAAgB,SACxB,EAAa,KAClB;EACE,cAAc;EACd,QAAQ;CACV,GACA,EAAE,QAAQ,IAAI,CAChB,CACD;AACH"}
@@ -147,5 +147,18 @@
147
147
  --synapse-gray-regular: #515359; // this is fine, not changing,
148
148
  --synapse-gray-deemphasized: #ababac;
149
149
 
150
+ --synapse-drag-source-opacity: 0.4;
151
+
150
152
  --synapse-space-unit: 2.1rem;
153
+
154
+ --synapse-floating-row-selection-bar-height: 70px;
155
+ // Space occupied along the bottom edge of the viewport by app-level fixed UI
156
+ --synapse-bottom-viewport-inset: 0px;
157
+ }
158
+
159
+ // Let bottom-anchored UI (e.g. the Curie launcher) move clear of the floating row-selection bar
160
+ body:has(.SynapseFloatingRowSelectionBar) {
161
+ --synapse-bottom-viewport-inset: var(
162
+ --synapse-floating-row-selection-bar-height
163
+ );
151
164
  }