@openneuro/app 4.2.0 → 4.2.4

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 (554) hide show
  1. package/package.json +9 -18
  2. package/src/scripts/common/forms/warn-button.jsx +1 -1
  3. package/src/scripts/pages/citation-page.tsx +41 -0
  4. package/src/scripts/refactor_2021/admin/admin.jsx +1 -1
  5. package/src/scripts/refactor_2021/admin/flagged-files.jsx +2 -1
  6. package/src/scripts/refactor_2021/admin/user-tools.tsx +3 -5
  7. package/src/scripts/refactor_2021/admin/users.jsx +7 -10
  8. package/src/scripts/{authentication → refactor_2021/authentication}/__tests__/profile.spec.js +1 -1
  9. package/src/scripts/{datalad/dataset → refactor_2021/dataset/comments}/__tests__/__snapshots__/comment.spec.jsx.snap +0 -8
  10. package/src/scripts/refactor_2021/dataset/comments/__tests__/__snapshots__/comments.spec.jsx.snap +129 -0
  11. package/src/scripts/{datalad/dataset → refactor_2021/dataset/comments}/__tests__/comment.spec.jsx +0 -0
  12. package/src/scripts/{datalad/dataset → refactor_2021/dataset/comments}/__tests__/comments.spec.jsx +0 -0
  13. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/download-command-line.spec.jsx.snap +0 -0
  14. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/download-link.spec.jsx.snap +645 -105
  15. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/shell-example.spec.jsx.snap +6 -3
  16. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-command-line.spec.jsx +0 -0
  17. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-link.spec.jsx +0 -0
  18. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-native.spec.js +0 -0
  19. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/shell-example.spec.jsx +0 -0
  20. package/src/scripts/refactor_2021/dataset/draft-container.tsx +11 -22
  21. package/src/scripts/refactor_2021/dataset/files/file-tree.jsx +3 -2
  22. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/cancel-button.spec.tsx.snap +10 -0
  23. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/edit-button.spec.tsx.snap +10 -0
  24. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/edit-list.spec.jsx.snap +24 -0
  25. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/save-button.spec.tsx.snap +10 -0
  26. package/src/scripts/{datalad/fragments/__tests__/__snapshots__/select-input.spec.jsx.snap → refactor_2021/dataset/fragments/__tests__/__snapshots__/select-input.spec.tsx.snap} +0 -0
  27. package/src/scripts/{datalad/fragments/__tests__/cancel-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/cancel-button.spec.tsx} +2 -2
  28. package/src/scripts/{datalad → refactor_2021/dataset}/fragments/__tests__/dataset-citation.spec.jsx +0 -0
  29. package/src/scripts/{datalad/fragments/__tests__/edit-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/edit-button.spec.tsx} +2 -2
  30. package/src/scripts/refactor_2021/dataset/fragments/__tests__/edit-list.spec.jsx +27 -0
  31. package/src/scripts/{datalad/fragments/__tests__/save-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/save-button.spec.tsx} +2 -2
  32. package/src/scripts/{datalad/fragments/__tests__/select-input.spec.jsx → refactor_2021/dataset/fragments/__tests__/select-input.spec.tsx} +0 -0
  33. package/src/scripts/refactor_2021/dataset/mutations/__tests__/__snapshots__/delete.spec.jsx.snap +50 -0
  34. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/__snapshots__/description.spec.jsx.snap +0 -0
  35. package/src/scripts/refactor_2021/dataset/mutations/__tests__/__snapshots__/update-permissions.spec.jsx.snap +27 -0
  36. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/cache-id.spec.js +0 -0
  37. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/delete.spec.jsx +8 -8
  38. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/description.spec.jsx +0 -0
  39. package/src/scripts/{datalad/mutations/__tests__/remove-permissions.spec.jsx → refactor_2021/dataset/mutations/__tests__/remove-permissions.spec.tsx} +1 -1
  40. package/src/scripts/refactor_2021/dataset/mutations/__tests__/update-permissions.spec.jsx +28 -0
  41. package/src/scripts/refactor_2021/dataset/mutations/update-file.jsx +2 -2
  42. package/src/scripts/refactor_2021/dataset/snapshot-container.tsx +4 -8
  43. package/src/scripts/refactor_2021/routes.tsx +1 -1
  44. package/src/scripts/refactor_2021/search/initial-search-params.tsx +7 -7
  45. package/src/scripts/refactor_2021/search/inputs/index.ts +2 -2
  46. package/src/scripts/refactor_2021/search/inputs/{gender-radios.tsx → sex-radios.tsx} +10 -10
  47. package/src/scripts/refactor_2021/search/search-container.tsx +2 -2
  48. package/src/scripts/refactor_2021/search/search-params-ctx.tsx +3 -3
  49. package/src/scripts/refactor_2021/search/use-search-results.tsx +3 -3
  50. package/src/scripts/refactor_2021/user/api.jsx +11 -6
  51. package/src/sass/_bootstrap-compass.scss +0 -9
  52. package/src/sass/_bootstrap-mincer.scss +0 -19
  53. package/src/sass/_bootstrap-sprockets.scss +0 -9
  54. package/src/sass/_bootstrap.scss +0 -50
  55. package/src/sass/animate/_attention-seekers/_bounce.scss +0 -15
  56. package/src/sass/animate/_attention-seekers/_flash.scss +0 -14
  57. package/src/sass/animate/_attention-seekers/_pulse.scss +0 -17
  58. package/src/sass/animate/_attention-seekers/_rubberBand.scss +0 -19
  59. package/src/sass/animate/_attention-seekers/_shake.scss +0 -15
  60. package/src/sass/animate/_attention-seekers/_swing.scss +0 -19
  61. package/src/sass/animate/_attention-seekers/_tada.scss +0 -17
  62. package/src/sass/animate/_attention-seekers/_wobble.scss +0 -21
  63. package/src/sass/animate/_attention-seekers/attention-seekers.scss +0 -12
  64. package/src/sass/animate/_bouncing-entrances/_bounceIn.scss +0 -26
  65. package/src/sass/animate/_bouncing-entrances/_bounceInDown.scss +0 -26
  66. package/src/sass/animate/_bouncing-entrances/_bounceInLeft.scss +0 -26
  67. package/src/sass/animate/_bouncing-entrances/_bounceInRight.scss +0 -26
  68. package/src/sass/animate/_bouncing-entrances/_bounceInUp.scss +0 -26
  69. package/src/sass/animate/_bouncing-entrances/bouncing-entrances.scss +0 -9
  70. package/src/sass/animate/_bouncing-exits/_bounceOut.scss +0 -26
  71. package/src/sass/animate/_bouncing-exits/_bounceOutDown.scss +0 -23
  72. package/src/sass/animate/_bouncing-exits/_bounceOutLeft.scss +0 -23
  73. package/src/sass/animate/_bouncing-exits/_bounceOutRight.scss +0 -23
  74. package/src/sass/animate/_bouncing-exits/_bounceOutUp.scss +0 -23
  75. package/src/sass/animate/_bouncing-exits/bouncing-exits.scss +0 -4
  76. package/src/sass/animate/_fading-entrances/_fadeIn.scss +0 -14
  77. package/src/sass/animate/_fading-entrances/_fadeInDown.scss +0 -20
  78. package/src/sass/animate/_fading-entrances/_fadeInDownBig.scss +0 -20
  79. package/src/sass/animate/_fading-entrances/_fadeInLeft.scss +0 -20
  80. package/src/sass/animate/_fading-entrances/_fadeInLeftBig.scss +0 -20
  81. package/src/sass/animate/_fading-entrances/_fadeInRight.scss +0 -20
  82. package/src/sass/animate/_fading-entrances/_fadeInRightBig.scss +0 -20
  83. package/src/sass/animate/_fading-entrances/_fadeInUp.scss +0 -19
  84. package/src/sass/animate/_fading-entrances/_fadeInUpBig.scss +0 -20
  85. package/src/sass/animate/_fading-entrances/fading-entrances.scss +0 -5
  86. package/src/sass/animate/_fading-exits/_fadeOut.scss +0 -14
  87. package/src/sass/animate/_fading-exits/_fadeOutDown.scss +0 -20
  88. package/src/sass/animate/_fading-exits/_fadeOutDownBig.scss +0 -20
  89. package/src/sass/animate/_fading-exits/_fadeOutLeft.scss +0 -20
  90. package/src/sass/animate/_fading-exits/_fadeOutLeftBig.scss +0 -20
  91. package/src/sass/animate/_fading-exits/_fadeOutRight.scss +0 -20
  92. package/src/sass/animate/_fading-exits/_fadeOutRightBig.scss +0 -20
  93. package/src/sass/animate/_fading-exits/_fadeOutUp.scss +0 -20
  94. package/src/sass/animate/_fading-exits/_fadeOutUpBig.scss +0 -20
  95. package/src/sass/animate/_fading-exits/fading-exits.scss +0 -5
  96. package/src/sass/animate/_flippers/_flip.scss +0 -33
  97. package/src/sass/animate/_flippers/_flipInX.scss +0 -26
  98. package/src/sass/animate/_flippers/_flipInY.scss +0 -26
  99. package/src/sass/animate/_flippers/_flipOutX.scss +0 -20
  100. package/src/sass/animate/_flippers/_flipOutY.scss +0 -20
  101. package/src/sass/animate/_flippers/flippers.scss +0 -8
  102. package/src/sass/animate/_lightspeed/_lightSpeedIn.scss +0 -29
  103. package/src/sass/animate/_lightspeed/_lightSpeedOut.scss +0 -21
  104. package/src/sass/animate/_lightspeed/lightspeed.scss +0 -3
  105. package/src/sass/animate/_properties.scss +0 -119
  106. package/src/sass/animate/_rotating-entrances/_rotateIn.scss +0 -22
  107. package/src/sass/animate/_rotating-entrances/_rotateInDownLeft.scss +0 -22
  108. package/src/sass/animate/_rotating-entrances/_rotateInDownRight.scss +0 -22
  109. package/src/sass/animate/_rotating-entrances/_rotateInUpLeft.scss +0 -22
  110. package/src/sass/animate/_rotating-entrances/_rotateInUpRight.scss +0 -22
  111. package/src/sass/animate/_rotating-entrances/rotating-entrances.scss +0 -8
  112. package/src/sass/animate/_rotating-exits/_rotateOut.scss +0 -22
  113. package/src/sass/animate/_rotating-exits/_rotateOutDownLeft.scss +0 -22
  114. package/src/sass/animate/_rotating-exits/_rotateOutDownRight.scss +0 -22
  115. package/src/sass/animate/_rotating-exits/_rotateOutUpLeft.scss +0 -22
  116. package/src/sass/animate/_rotating-exits/_rotateOutUpRight.scss +0 -22
  117. package/src/sass/animate/_rotating-exits/rotating-exits.scss +0 -8
  118. package/src/sass/animate/_sliding-entrances/_slideInDown.scss +0 -19
  119. package/src/sass/animate/_sliding-entrances/_slideInLeft.scss +0 -19
  120. package/src/sass/animate/_sliding-entrances/_slideInRight.scss +0 -42
  121. package/src/sass/animate/_sliding-entrances/_slideInUp.scss +0 -19
  122. package/src/sass/animate/_sliding-entrances/sliding-entrances.scss +0 -7
  123. package/src/sass/animate/_sliding-exits/_slideOutDown.scss +0 -19
  124. package/src/sass/animate/_sliding-exits/_slideOutLeft.scss +0 -19
  125. package/src/sass/animate/_sliding-exits/_slideOutRight.scss +0 -19
  126. package/src/sass/animate/_sliding-exits/_slideOutUp.scss +0 -19
  127. package/src/sass/animate/_sliding-exits/sliding-exits.scss +0 -7
  128. package/src/sass/animate/_specials/_hinge.scss +0 -37
  129. package/src/sass/animate/_specials/_rollIn.scss +0 -20
  130. package/src/sass/animate/_specials/_rollOut.scss +0 -22
  131. package/src/sass/animate/_specials/specials.scss +0 -6
  132. package/src/sass/animate/_zooming-entrances/_zoomIn.scss +0 -19
  133. package/src/sass/animate/_zooming-entrances/_zoomInDown.scss +0 -22
  134. package/src/sass/animate/_zooming-entrances/_zoomInLeft.scss +0 -22
  135. package/src/sass/animate/_zooming-entrances/_zoomInRight.scss +0 -22
  136. package/src/sass/animate/_zooming-entrances/_zoomInUp.scss +0 -22
  137. package/src/sass/animate/_zooming-entrances/zooming-entrances.scss +0 -4
  138. package/src/sass/animate/_zooming-exits/_zoomOut.scss +0 -22
  139. package/src/sass/animate/_zooming-exits/_zoomOutDown.scss +0 -23
  140. package/src/sass/animate/_zooming-exits/_zoomOutLeft.scss +0 -21
  141. package/src/sass/animate/_zooming-exits/_zoomOutRight.scss +0 -21
  142. package/src/sass/animate/_zooming-exits/_zoomOutUp.scss +0 -23
  143. package/src/sass/animate/_zooming-exits/zooming-exits.scss +0 -4
  144. package/src/sass/animate/animate.css +0 -7497
  145. package/src/sass/animate/animate.css.map +0 -7
  146. package/src/sass/animate/animate.min.css +0 -2
  147. package/src/sass/animate/animate.min.css.map +0 -7
  148. package/src/sass/animate/animate.scss +0 -30
  149. package/src/sass/animate/bower.json +0 -22
  150. package/src/sass/bootstrap/_alerts.scss +0 -70
  151. package/src/sass/bootstrap/_badges.scss +0 -68
  152. package/src/sass/bootstrap/_breadcrumbs.scss +0 -26
  153. package/src/sass/bootstrap/_button-groups.scss +0 -243
  154. package/src/sass/bootstrap/_buttons.scss +0 -160
  155. package/src/sass/bootstrap/_carousel.scss +0 -269
  156. package/src/sass/bootstrap/_close.scss +0 -36
  157. package/src/sass/bootstrap/_code.scss +0 -69
  158. package/src/sass/bootstrap/_component-animations.scss +0 -37
  159. package/src/sass/bootstrap/_dropdowns.scss +0 -223
  160. package/src/sass/bootstrap/_forms.scss +0 -613
  161. package/src/sass/bootstrap/_grid.scss +0 -84
  162. package/src/sass/bootstrap/_input-groups.scss +0 -166
  163. package/src/sass/bootstrap/_jumbotron.scss +0 -50
  164. package/src/sass/bootstrap/_labels.scss +0 -66
  165. package/src/sass/bootstrap/_list-group.scss +0 -124
  166. package/src/sass/bootstrap/_media.scss +0 -61
  167. package/src/sass/bootstrap/_mixins.scss +0 -39
  168. package/src/sass/bootstrap/_modals.scss +0 -150
  169. package/src/sass/bootstrap/_navbar.scss +0 -647
  170. package/src/sass/bootstrap/_navs.scss +0 -243
  171. package/src/sass/bootstrap/_normalize.scss +0 -427
  172. package/src/sass/bootstrap/_pager.scss +0 -54
  173. package/src/sass/bootstrap/_pagination.scss +0 -88
  174. package/src/sass/bootstrap/_panels.scss +0 -265
  175. package/src/sass/bootstrap/_popovers.scss +0 -135
  176. package/src/sass/bootstrap/_print.scss +0 -107
  177. package/src/sass/bootstrap/_progress-bars.scss +0 -87
  178. package/src/sass/bootstrap/_responsive-embed.scss +0 -35
  179. package/src/sass/bootstrap/_responsive-utilities.scss +0 -177
  180. package/src/sass/bootstrap/_scaffolding.scss +0 -162
  181. package/src/sass/bootstrap/_tables.scss +0 -234
  182. package/src/sass/bootstrap/_theme.scss +0 -273
  183. package/src/sass/bootstrap/_thumbnails.scss +0 -38
  184. package/src/sass/bootstrap/_tooltip.scss +0 -102
  185. package/src/sass/bootstrap/_type.scss +0 -298
  186. package/src/sass/bootstrap/_utilities.scss +0 -55
  187. package/src/sass/bootstrap/_variables.scss +0 -866
  188. package/src/sass/bootstrap/_wells.scss +0 -29
  189. package/src/sass/bootstrap/float-label.scss +0 -70
  190. package/src/sass/bootstrap/mixins/_alerts.scss +0 -14
  191. package/src/sass/bootstrap/mixins/_background-variant.scss +0 -11
  192. package/src/sass/bootstrap/mixins/_border-radius.scss +0 -18
  193. package/src/sass/bootstrap/mixins/_buttons.scss +0 -52
  194. package/src/sass/bootstrap/mixins/_center-block.scss +0 -7
  195. package/src/sass/bootstrap/mixins/_clearfix.scss +0 -22
  196. package/src/sass/bootstrap/mixins/_forms.scss +0 -88
  197. package/src/sass/bootstrap/mixins/_gradients.scss +0 -58
  198. package/src/sass/bootstrap/mixins/_grid-framework.scss +0 -81
  199. package/src/sass/bootstrap/mixins/_grid.scss +0 -122
  200. package/src/sass/bootstrap/mixins/_hide-text.scss +0 -21
  201. package/src/sass/bootstrap/mixins/_image.scss +0 -33
  202. package/src/sass/bootstrap/mixins/_labels.scss +0 -12
  203. package/src/sass/bootstrap/mixins/_list-group.scss +0 -31
  204. package/src/sass/bootstrap/mixins/_nav-divider.scss +0 -10
  205. package/src/sass/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  206. package/src/sass/bootstrap/mixins/_opacity.scss +0 -8
  207. package/src/sass/bootstrap/mixins/_pagination.scss +0 -23
  208. package/src/sass/bootstrap/mixins/_panels.scss +0 -24
  209. package/src/sass/bootstrap/mixins/_progress-bar.scss +0 -10
  210. package/src/sass/bootstrap/mixins/_reset-filter.scss +0 -8
  211. package/src/sass/bootstrap/mixins/_resize.scss +0 -6
  212. package/src/sass/bootstrap/mixins/_responsive-visibility.scss +0 -21
  213. package/src/sass/bootstrap/mixins/_size.scss +0 -10
  214. package/src/sass/bootstrap/mixins/_tab-focus.scss +0 -9
  215. package/src/sass/bootstrap/mixins/_table-row.scss +0 -28
  216. package/src/sass/bootstrap/mixins/_text-emphasis.scss +0 -11
  217. package/src/sass/bootstrap/mixins/_text-overflow.scss +0 -8
  218. package/src/sass/bootstrap/mixins/_vendor-prefixes.scss +0 -222
  219. package/src/sass/crn_app/_admin.admin.scss +0 -205
  220. package/src/sass/crn_app/_admin.graphs.scss +0 -51
  221. package/src/sass/crn_app/_admin.tools.scss +0 -24
  222. package/src/sass/crn_app/_api.scss +0 -65
  223. package/src/sass/crn_app/_bootstrap.overrides.scss +0 -54
  224. package/src/sass/crn_app/_colors.scss +0 -88
  225. package/src/sass/crn_app/_common.click-to-edit.scss +0 -187
  226. package/src/sass/crn_app/_common.modals.scss +0 -686
  227. package/src/sass/crn_app/_common.pagination.scss +0 -41
  228. package/src/sass/crn_app/_common.papaya.scss +0 -348
  229. package/src/sass/crn_app/_common.progress-bar.scss +0 -26
  230. package/src/sass/crn_app/_common.spinner.scss +0 -63
  231. package/src/sass/crn_app/_common.status.scss +0 -103
  232. package/src/sass/crn_app/_common.tooltip.scss +0 -22
  233. package/src/sass/crn_app/_common.typeahead.scss +0 -31
  234. package/src/sass/crn_app/_common.variables.scss +0 -16
  235. package/src/sass/crn_app/_dashboard.datasets.scss +0 -588
  236. package/src/sass/crn_app/_dataset.comments.scss +0 -201
  237. package/src/sass/crn_app/_dataset.dataset.scss +0 -161
  238. package/src/sass/crn_app/_dataset.file-tree.scss +0 -277
  239. package/src/sass/crn_app/_dataset.jobs.scss +0 -701
  240. package/src/sass/crn_app/_dataset.sidebar.scss +0 -265
  241. package/src/sass/crn_app/_dataset.tools.scss +0 -118
  242. package/src/sass/crn_app/_elements-wrappers.scss +0 -870
  243. package/src/sass/crn_app/_faq.scss +0 -37
  244. package/src/sass/crn_app/_frontPage.scss +0 -569
  245. package/src/sass/crn_app/_nav.navbar.scss +0 -387
  246. package/src/sass/crn_app/_theme.scss +0 -87
  247. package/src/sass/crn_app/_upload.upload.scss +0 -393
  248. package/src/sass/crn_app/_upload.validation.scss +0 -210
  249. package/src/sass/draft/draft.scss +0 -11
  250. package/src/sass/draft/rich-editor.scss +0 -73
  251. package/src/sass/font-awesome/_animated.scss +0 -34
  252. package/src/sass/font-awesome/_bordered-pulled.scss +0 -25
  253. package/src/sass/font-awesome/_core.scss +0 -12
  254. package/src/sass/font-awesome/_fixed-width.scss +0 -6
  255. package/src/sass/font-awesome/_font-awesome.scss +0 -17
  256. package/src/sass/font-awesome/_icons.scss +0 -697
  257. package/src/sass/font-awesome/_larger.scss +0 -13
  258. package/src/sass/font-awesome/_list.scss +0 -19
  259. package/src/sass/font-awesome/_mixins.scss +0 -26
  260. package/src/sass/font-awesome/_path.scss +0 -15
  261. package/src/sass/font-awesome/_rotated-flipped.scss +0 -20
  262. package/src/sass/font-awesome/_stacked.scss +0 -20
  263. package/src/sass/font-awesome/_variables.scss +0 -713
  264. package/src/sass/main.scss +0 -317
  265. package/src/sass/pre-refactor-with-wrapper-main.scss +0 -1549
  266. package/src/scripts/admin/__tests__/__snapshots__/exports.spec.jsx.snap +0 -112
  267. package/src/scripts/admin/__tests__/exports.spec.jsx +0 -15
  268. package/src/scripts/admin/__tests__/users.spec.jsx +0 -15
  269. package/src/scripts/admin/admin.jsx +0 -53
  270. package/src/scripts/admin/flagged-files.jsx +0 -178
  271. package/src/scripts/admin/user-fragment.ts +0 -14
  272. package/src/scripts/admin/user-tools.tsx +0 -83
  273. package/src/scripts/admin/users.jsx +0 -224
  274. package/src/scripts/authentication/admin-user.jsx +0 -23
  275. package/src/scripts/authentication/buttons.jsx +0 -26
  276. package/src/scripts/authentication/globus-button.jsx +0 -39
  277. package/src/scripts/authentication/google-button.jsx +0 -32
  278. package/src/scripts/authentication/logged-in.jsx +0 -12
  279. package/src/scripts/authentication/logged-out.jsx +0 -12
  280. package/src/scripts/authentication/loginCheck.js +0 -7
  281. package/src/scripts/authentication/orcid-button.jsx +0 -32
  282. package/src/scripts/authentication/withProfile.jsx +0 -22
  283. package/src/scripts/classic.tsx +0 -18
  284. package/src/scripts/common/forms/file-select.tsx +0 -71
  285. package/src/scripts/common/partials/__tests__/__snapshots__/footer.spec.jsx.snap +0 -42
  286. package/src/scripts/common/partials/__tests__/__snapshots__/metric.spec.jsx.snap +0 -101
  287. package/src/scripts/common/partials/__tests__/footer.spec.jsx +0 -10
  288. package/src/scripts/common/partials/__tests__/metric.spec.jsx +0 -31
  289. package/src/scripts/common/partials/footer.jsx +0 -40
  290. package/src/scripts/common/partials/login.jsx +0 -99
  291. package/src/scripts/common/partials/metric.jsx +0 -73
  292. package/src/scripts/common/partials/spinner.jsx +0 -34
  293. package/src/scripts/common/partials/status.jsx +0 -96
  294. package/src/scripts/common/partials/timeout.jsx +0 -47
  295. package/src/scripts/common/partials/tooltip.jsx +0 -36
  296. package/src/scripts/components/__tests__/dropdown-button.spec.tsx +0 -49
  297. package/src/scripts/components/dropdown-button.tsx +0 -42
  298. package/src/scripts/components/panel-group.tsx +0 -24
  299. package/src/scripts/components/panel.tsx +0 -42
  300. package/src/scripts/datalad/__tests__/snapshotVersion.spec.js +0 -21
  301. package/src/scripts/datalad/comments/__tests__/comment-editor.spec.jsx +0 -19
  302. package/src/scripts/datalad/comments/block-style-controls.jsx +0 -46
  303. package/src/scripts/datalad/comments/comment-editor.jsx +0 -79
  304. package/src/scripts/datalad/comments/inline-style-controls.jsx +0 -34
  305. package/src/scripts/datalad/comments/style-button.jsx +0 -28
  306. package/src/scripts/datalad/dashboard/__tests__/__snapshots__/dashboard.spec.jsx.snap +0 -163
  307. package/src/scripts/datalad/dashboard/__tests__/dashboard.spec.jsx +0 -21
  308. package/src/scripts/datalad/dashboard/dashboard.jsx +0 -54
  309. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-filter.spec.jsx.snap +0 -20
  310. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-row-skeleton.spec.jsx.snap +0 -13
  311. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-row.spec.jsx.snap +0 -65
  312. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-sorter.spec.jsx.snap +0 -14
  313. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-virtual-scroller.spec.jsx.snap +0 -17
  314. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/uploaded.spec.jsx.snap +0 -27
  315. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-filter.spec.jsx +0 -67
  316. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-query.spec.jsx +0 -72
  317. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-row-skeleton.spec.jsx +0 -9
  318. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-row.spec.jsx +0 -53
  319. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-sorter.spec.jsx +0 -69
  320. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-virtual-scroller.spec.jsx +0 -65
  321. package/src/scripts/datalad/dashboard/datasets/__tests__/uploaded.spec.jsx +0 -17
  322. package/src/scripts/datalad/dashboard/datasets/dataset-filter.jsx +0 -78
  323. package/src/scripts/datalad/dashboard/datasets/dataset-query.jsx +0 -102
  324. package/src/scripts/datalad/dashboard/datasets/dataset-row-error-boundary.jsx +0 -52
  325. package/src/scripts/datalad/dashboard/datasets/dataset-row-skeleton.jsx +0 -10
  326. package/src/scripts/datalad/dashboard/datasets/dataset-row.jsx +0 -58
  327. package/src/scripts/datalad/dashboard/datasets/dataset-sorter.jsx +0 -148
  328. package/src/scripts/datalad/dashboard/datasets/dataset-statuses.jsx +0 -44
  329. package/src/scripts/datalad/dashboard/datasets/dataset-tab.jsx +0 -192
  330. package/src/scripts/datalad/dashboard/datasets/dataset-virtual-scroller.jsx +0 -126
  331. package/src/scripts/datalad/dashboard/datasets/row-height.jsx +0 -7
  332. package/src/scripts/datalad/dashboard/datasets/uploaded.jsx +0 -33
  333. package/src/scripts/datalad/dataset/__tests__/__snapshots__/comments.spec.jsx.snap +0 -137
  334. package/src/scripts/datalad/dataset/__tests__/__snapshots__/dataset-page.spec.jsx.snap +0 -69
  335. package/src/scripts/datalad/dataset/__tests__/__snapshots__/dataset-query.spec.jsx.snap +0 -15
  336. package/src/scripts/datalad/dataset/__tests__/__snapshots__/left-siderbar.spec.jsx.snap +0 -85
  337. package/src/scripts/datalad/dataset/__tests__/dataset-page.spec.jsx +0 -33
  338. package/src/scripts/datalad/dataset/__tests__/dataset-query.spec.jsx +0 -20
  339. package/src/scripts/datalad/dataset/__tests__/left-siderbar.spec.jsx +0 -106
  340. package/src/scripts/datalad/dataset/comment.jsx +0 -90
  341. package/src/scripts/datalad/dataset/comments.jsx +0 -83
  342. package/src/scripts/datalad/dataset/dataset-description.jsx +0 -111
  343. package/src/scripts/datalad/dataset/dataset-main.jsx +0 -29
  344. package/src/scripts/datalad/dataset/dataset-page.jsx +0 -63
  345. package/src/scripts/datalad/dataset/dataset-query.jsx +0 -192
  346. package/src/scripts/datalad/dataset/dataset.jsx +0 -22
  347. package/src/scripts/datalad/dataset/delete-page.tsx +0 -92
  348. package/src/scripts/datalad/dataset/left-sidebar.jsx +0 -109
  349. package/src/scripts/datalad/download/__tests__/__snapshots__/download-dataset.spec.jsx.snap +0 -7
  350. package/src/scripts/datalad/download/__tests__/__snapshots__/download-tool.spec.jsx.snap +0 -26
  351. package/src/scripts/datalad/download/__tests__/download-dataset.spec.jsx +0 -19
  352. package/src/scripts/datalad/download/__tests__/download-tool.spec.jsx +0 -19
  353. package/src/scripts/datalad/download/download-command-line.jsx +0 -43
  354. package/src/scripts/datalad/download/download-datalad.jsx +0 -58
  355. package/src/scripts/datalad/download/download-dataset.jsx +0 -61
  356. package/src/scripts/datalad/download/download-link.jsx +0 -41
  357. package/src/scripts/datalad/download/download-native.js +0 -118
  358. package/src/scripts/datalad/download/download-query.js +0 -22
  359. package/src/scripts/datalad/download/download-s3.jsx +0 -46
  360. package/src/scripts/datalad/download/download-tool.jsx +0 -44
  361. package/src/scripts/datalad/download/native-file-toast.jsx +0 -90
  362. package/src/scripts/datalad/download/shell-example.jsx +0 -9
  363. package/src/scripts/datalad/download/track-download.js +0 -15
  364. package/src/scripts/datalad/fragments/__tests__/__snapshots__/cancel-button.spec.jsx.snap +0 -21
  365. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-analytics.spec.jsx.snap +0 -41
  366. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-authors.spec.jsx.snap +0 -13
  367. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-readme.spec.jsx.snap +0 -49
  368. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-title.spec.jsx.snap +0 -7
  369. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-tools.spec.jsx.snap +0 -346
  370. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-uploaded.spec.jsx.snap +0 -7
  371. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-button.spec.jsx.snap +0 -21
  372. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-list.spec.jsx.snap +0 -34
  373. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-readme.spec.jsx.snap +0 -3
  374. package/src/scripts/datalad/fragments/__tests__/__snapshots__/save-button.spec.jsx.snap +0 -21
  375. package/src/scripts/datalad/fragments/__tests__/dataset-analytics.spec.jsx +0 -16
  376. package/src/scripts/datalad/fragments/__tests__/dataset-authors.spec.jsx +0 -22
  377. package/src/scripts/datalad/fragments/__tests__/dataset-prominent-links.spec.jsx +0 -32
  378. package/src/scripts/datalad/fragments/__tests__/dataset-readme.spec.jsx +0 -10
  379. package/src/scripts/datalad/fragments/__tests__/dataset-summary.spec.jsx +0 -55
  380. package/src/scripts/datalad/fragments/__tests__/dataset-title.spec.jsx +0 -10
  381. package/src/scripts/datalad/fragments/__tests__/dataset-tools.spec.jsx +0 -55
  382. package/src/scripts/datalad/fragments/__tests__/dataset-uploaded.spec.jsx +0 -16
  383. package/src/scripts/datalad/fragments/__tests__/edit-list.spec.jsx +0 -25
  384. package/src/scripts/datalad/fragments/__tests__/edit-readme.spec.jsx +0 -10
  385. package/src/scripts/datalad/fragments/cancel-button.jsx +0 -24
  386. package/src/scripts/datalad/fragments/copyable-tooltip.jsx +0 -82
  387. package/src/scripts/datalad/fragments/dataset-analytics.jsx +0 -27
  388. package/src/scripts/datalad/fragments/dataset-authors.jsx +0 -16
  389. package/src/scripts/datalad/fragments/dataset-citation.jsx +0 -77
  390. package/src/scripts/datalad/fragments/dataset-files.jsx +0 -50
  391. package/src/scripts/datalad/fragments/dataset-git-access.jsx +0 -56
  392. package/src/scripts/datalad/fragments/dataset-git-hash.jsx +0 -27
  393. package/src/scripts/datalad/fragments/dataset-history.jsx +0 -95
  394. package/src/scripts/datalad/fragments/dataset-modified.jsx +0 -17
  395. package/src/scripts/datalad/fragments/dataset-prominent-links.jsx +0 -129
  396. package/src/scripts/datalad/fragments/dataset-readme.jsx +0 -42
  397. package/src/scripts/datalad/fragments/dataset-summary.jsx +0 -230
  398. package/src/scripts/datalad/fragments/dataset-title.jsx +0 -10
  399. package/src/scripts/datalad/fragments/dataset-tools.jsx +0 -190
  400. package/src/scripts/datalad/fragments/dataset-uploaded.jsx +0 -25
  401. package/src/scripts/datalad/fragments/edit-button.jsx +0 -24
  402. package/src/scripts/datalad/fragments/edit-description-field.jsx +0 -54
  403. package/src/scripts/datalad/fragments/edit-description-list.jsx +0 -49
  404. package/src/scripts/datalad/fragments/edit-list.jsx +0 -82
  405. package/src/scripts/datalad/fragments/edit-readme.jsx +0 -44
  406. package/src/scripts/datalad/fragments/incomplete-dataset.jsx +0 -23
  407. package/src/scripts/datalad/fragments/metadata-tool.jsx +0 -34
  408. package/src/scripts/datalad/fragments/number-input.tsx +0 -126
  409. package/src/scripts/datalad/fragments/save-button.jsx +0 -24
  410. package/src/scripts/datalad/fragments/select-input.tsx +0 -247
  411. package/src/scripts/datalad/fragments/share-dataset-button.jsx +0 -32
  412. package/src/scripts/datalad/fragments/text-array-input.tsx +0 -119
  413. package/src/scripts/datalad/fragments/text-input.tsx +0 -206
  414. package/src/scripts/datalad/mutations/__tests__/__snapshots__/comment.spec.jsx.snap +0 -5
  415. package/src/scripts/datalad/mutations/__tests__/__snapshots__/delete.spec.jsx.snap +0 -181
  416. package/src/scripts/datalad/mutations/__tests__/__snapshots__/manage-permissions.spec.jsx.snap +0 -361
  417. package/src/scripts/datalad/mutations/__tests__/__snapshots__/subscribe-to-newsletter.spec.jsx.snap +0 -83
  418. package/src/scripts/datalad/mutations/__tests__/__snapshots__/update-file.spec.jsx.snap +0 -25
  419. package/src/scripts/datalad/mutations/__tests__/__snapshots__/update-permissions.spec.jsx.snap +0 -361
  420. package/src/scripts/datalad/mutations/__tests__/comment.spec.jsx +0 -154
  421. package/src/scripts/datalad/mutations/__tests__/manage-permissions.spec.jsx +0 -21
  422. package/src/scripts/datalad/mutations/__tests__/subscribe-to-newsletter.spec.jsx +0 -10
  423. package/src/scripts/datalad/mutations/__tests__/update-file.spec.jsx +0 -15
  424. package/src/scripts/datalad/mutations/__tests__/update-permissions.spec.jsx +0 -21
  425. package/src/scripts/datalad/mutations/add-metadata.jsx +0 -164
  426. package/src/scripts/datalad/mutations/comment.jsx +0 -164
  427. package/src/scripts/datalad/mutations/delete-dataset-form.jsx +0 -82
  428. package/src/scripts/datalad/mutations/description.jsx +0 -129
  429. package/src/scripts/datalad/mutations/flag-annex-object.jsx +0 -62
  430. package/src/scripts/datalad/mutations/metadata-form.jsx +0 -388
  431. package/src/scripts/datalad/mutations/readme.jsx +0 -53
  432. package/src/scripts/datalad/mutations/remove-annex-object.jsx +0 -71
  433. package/src/scripts/datalad/mutations/subscribe-to-newsletter.jsx +0 -26
  434. package/src/scripts/datalad/mutations/update-file.jsx +0 -51
  435. package/src/scripts/datalad/routes/__tests__/__snapshots__/manage-permissions.spec.jsx.snap +0 -159
  436. package/src/scripts/datalad/routes/__tests__/__snapshots__/snapshot.spec.jsx.snap +0 -31
  437. package/src/scripts/datalad/routes/__tests__/dataset-content.spec.jsx +0 -108
  438. package/src/scripts/datalad/routes/__tests__/file-display.spec.jsx +0 -22
  439. package/src/scripts/datalad/routes/__tests__/manage-permissions.spec.jsx +0 -101
  440. package/src/scripts/datalad/routes/__tests__/snapshot.spec.jsx +0 -49
  441. package/src/scripts/datalad/routes/admin-datalad.jsx +0 -45
  442. package/src/scripts/datalad/routes/admin-exports.jsx +0 -125
  443. package/src/scripts/datalad/routes/dataset-content.jsx +0 -198
  444. package/src/scripts/datalad/routes/dataset-routes.jsx +0 -162
  445. package/src/scripts/datalad/routes/file-display.jsx +0 -84
  446. package/src/scripts/datalad/routes/manage-permissions.jsx +0 -128
  447. package/src/scripts/datalad/routes/snapshot-content.jsx +0 -135
  448. package/src/scripts/datalad/routes/snapshot.jsx +0 -131
  449. package/src/scripts/datalad/snapshotVersion.js +0 -7
  450. package/src/scripts/datalad/validation/validation-panel.jsx +0 -48
  451. package/src/scripts/datalad/validation/validation-status.jsx +0 -120
  452. package/src/scripts/datalad/validation/validation.jsx +0 -40
  453. package/src/scripts/dataset/dataset.metrics.jsx +0 -61
  454. package/src/scripts/file-tree/__tests__/__snapshots__/file-tree-unloaded-directory.spec.jsx.snap +0 -26
  455. package/src/scripts/file-tree/__tests__/__snapshots__/file-tree.spec.jsx.snap +0 -18
  456. package/src/scripts/file-tree/__tests__/__snapshots__/file.spec.jsx.snap +0 -81
  457. package/src/scripts/file-tree/__tests__/file-tree-loading.spec.jsx +0 -18
  458. package/src/scripts/file-tree/__tests__/file-tree-unloaded-directory.spec.jsx +0 -74
  459. package/src/scripts/file-tree/__tests__/file-tree.spec.jsx +0 -94
  460. package/src/scripts/file-tree/__tests__/file-viewer-type.spec.jsx +0 -15
  461. package/src/scripts/file-tree/__tests__/file.spec.jsx +0 -44
  462. package/src/scripts/file-tree/__tests__/flat-to-tree.spec.js +0 -55
  463. package/src/scripts/file-tree/file-tree-loading.jsx +0 -64
  464. package/src/scripts/file-tree/file-tree-unloaded-directory.jsx +0 -108
  465. package/src/scripts/file-tree/file-tree.jsx +0 -133
  466. package/src/scripts/file-tree/file-view.jsx +0 -31
  467. package/src/scripts/file-tree/file-viewer-type.jsx +0 -45
  468. package/src/scripts/file-tree/file.jsx +0 -123
  469. package/src/scripts/file-tree/files.jsx +0 -126
  470. package/src/scripts/file-tree/flat-to-tree.js +0 -49
  471. package/src/scripts/file-tree/viewers/__tests__/__snapshots__/file-viewer-json.spec.jsx.snap +0 -51
  472. package/src/scripts/file-tree/viewers/__tests__/file-viewer-json.spec.jsx +0 -15
  473. package/src/scripts/file-tree/viewers/__tests__/parse-tabular.spec.js +0 -24
  474. package/src/scripts/file-tree/viewers/file-viewer-csv.jsx +0 -16
  475. package/src/scripts/file-tree/viewers/file-viewer-html.jsx +0 -20
  476. package/src/scripts/file-tree/viewers/file-viewer-json.jsx +0 -50
  477. package/src/scripts/file-tree/viewers/file-viewer-nifti.jsx +0 -11
  478. package/src/scripts/file-tree/viewers/file-viewer-table.jsx +0 -34
  479. package/src/scripts/file-tree/viewers/file-viewer-text.jsx +0 -13
  480. package/src/scripts/file-tree/viewers/file-viewer-tsv.jsx +0 -16
  481. package/src/scripts/file-tree/viewers/parse-tabular.js +0 -18
  482. package/src/scripts/front-page/__tests__/__snapshots__/email-subscription-box.spec.jsx.snap +0 -190
  483. package/src/scripts/front-page/__tests__/__snapshots__/front-page-stats.spec.jsx.snap +0 -29
  484. package/src/scripts/front-page/__tests__/__snapshots__/front-page-top-datasets.spec.jsx.snap +0 -464
  485. package/src/scripts/front-page/__tests__/dataset-count.spec.jsx +0 -33
  486. package/src/scripts/front-page/__tests__/email-subscription-box.spec.jsx +0 -57
  487. package/src/scripts/front-page/__tests__/front-page-stats.spec.jsx +0 -10
  488. package/src/scripts/front-page/__tests__/front-page-top-datasets.spec.jsx +0 -27
  489. package/src/scripts/front-page/__tests__/participant-count.spec.jsx +0 -31
  490. package/src/scripts/front-page/dataset-count.jsx +0 -29
  491. package/src/scripts/front-page/email-subscription-box.jsx +0 -131
  492. package/src/scripts/front-page/front-page-additional-info.jsx +0 -15
  493. package/src/scripts/front-page/front-page-collaborators.jsx +0 -117
  494. package/src/scripts/front-page/front-page-stats.jsx +0 -71
  495. package/src/scripts/front-page/front-page-support.jsx +0 -30
  496. package/src/scripts/front-page/front-page-tabs.jsx +0 -166
  497. package/src/scripts/front-page/front-page-top-datasets.jsx +0 -203
  498. package/src/scripts/front-page/front-page.jsx +0 -95
  499. package/src/scripts/front-page/participant-count.jsx +0 -25
  500. package/src/scripts/hooks/use-measure.js +0 -15
  501. package/src/scripts/hooks/use-previous.js +0 -7
  502. package/src/scripts/nav/assets/brand_mark.png +0 -0
  503. package/src/scripts/nav/assets/favicon-upload.png +0 -0
  504. package/src/scripts/nav/assets/logo_app.png +0 -0
  505. package/src/scripts/nav/navbar.jsx +0 -144
  506. package/src/scripts/nav/navbar.navmenu.jsx +0 -106
  507. package/src/scripts/nav/navbar.usermenu.jsx +0 -52
  508. package/src/scripts/pages/citation-page.jsx +0 -43
  509. package/src/scripts/pet/__tests__/__snapshots__/dummy.spec.jsx.snap +0 -70
  510. package/src/scripts/pet/__tests__/dummy.spec.jsx +0 -10
  511. package/src/scripts/pet/dummy.jsx +0 -61
  512. package/src/scripts/refactor_2021/dataset/dataset-pre-refactor-container.tsx +0 -12
  513. package/src/scripts/routes.tsx +0 -36
  514. package/src/scripts/search/search-input.tsx +0 -42
  515. package/src/scripts/search/search-results.tsx +0 -114
  516. package/src/scripts/styles/capitalized.jsx +0 -6
  517. package/src/scripts/styles/uppercase.jsx +0 -6
  518. package/src/scripts/uploader/__tests__/add-path-to-files.spec.js +0 -29
  519. package/src/scripts/uploader/__tests__/file-upload.spec.js +0 -116
  520. package/src/scripts/uploader/__tests__/upload-disclaimer.spec.jsx +0 -67
  521. package/src/scripts/uploader/__tests__/upload-mutation.spec.js +0 -57
  522. package/src/scripts/uploader/__tests__/uploader.spec.js +0 -31
  523. package/src/scripts/uploader/add-path-to-files.js +0 -19
  524. package/src/scripts/uploader/file-upload.js +0 -88
  525. package/src/scripts/uploader/upload-button.jsx +0 -18
  526. package/src/scripts/uploader/upload-disclaimer.jsx +0 -92
  527. package/src/scripts/uploader/upload-file-status.jsx +0 -20
  528. package/src/scripts/uploader/upload-issues.jsx +0 -131
  529. package/src/scripts/uploader/upload-metadata.jsx +0 -59
  530. package/src/scripts/uploader/upload-mutation.js +0 -111
  531. package/src/scripts/uploader/upload-progress-button.jsx +0 -20
  532. package/src/scripts/uploader/upload-progress-class.js +0 -36
  533. package/src/scripts/uploader/upload-progress.jsx +0 -15
  534. package/src/scripts/uploader/upload-rename.jsx +0 -33
  535. package/src/scripts/uploader/upload-resume.jsx +0 -35
  536. package/src/scripts/uploader/upload-select.jsx +0 -29
  537. package/src/scripts/uploader/upload-status.jsx +0 -23
  538. package/src/scripts/uploader/upload-step.jsx +0 -48
  539. package/src/scripts/uploader/uploader-context.js +0 -6
  540. package/src/scripts/uploader/uploader-location.js +0 -5
  541. package/src/scripts/uploader/uploader-modal.jsx +0 -27
  542. package/src/scripts/uploader/uploader-setup-routes.jsx +0 -52
  543. package/src/scripts/uploader/uploader-status-routes.jsx +0 -30
  544. package/src/scripts/uploader/uploader-view.jsx +0 -45
  545. package/src/scripts/uploader/uploader.jsx +0 -388
  546. package/src/scripts/user/__mocks__/user.store.js +0 -1
  547. package/src/scripts/user/api.jsx +0 -132
  548. package/src/scripts/user/avatar.jsx +0 -40
  549. package/src/scripts/utils/crn.js +0 -15
  550. package/src/scripts/utils/request.js +0 -107
  551. package/src/scripts/utils/user.js +0 -18
  552. package/src/scripts/validation/validation-results.issues.issue.jsx +0 -90
  553. package/src/scripts/validation/validation-results.issues.jsx +0 -79
  554. package/src/scripts/validation/validation-results.jsx +0 -96
@@ -1,116 +0,0 @@
1
- import { getRelativePath, encodeFilePath } from '../file-upload.js'
2
-
3
- describe('file upload helpers', () => {
4
- describe('getRelativePath', () => {
5
- it('works with a few directory levels', () => {
6
- expect(
7
- getRelativePath({ webkitRelativePath: 'test/paths/like/this' }),
8
- ).toBe('paths/like/this')
9
- })
10
- it('works if the path is not actually relative', () => {
11
- expect(
12
- getRelativePath({ webkitRelativePath: 'dataset_description.json' }),
13
- ).toBe('dataset_description.json')
14
- })
15
- })
16
- describe('encodeFilePath', () => {
17
- it('supports directory upload from a webkit-derived browser (stripRelativePath: true)', () => {
18
- expect(
19
- encodeFilePath(
20
- {
21
- name: 'sub-02_T1w.nii.gz',
22
- lastModified: 1604713385516,
23
- webkitRelativePath: 'dataset/sub-02/anat/sub-02_T1w.nii.gz',
24
- size: 311112,
25
- type: 'application/gzip',
26
- },
27
- { stripRelativePath: true },
28
- ),
29
- ).toEqual('sub-02:anat:sub-02_T1w.nii.gz')
30
- })
31
- it('supports directory upload from a webkit-derived browser (stripRelativePath: false)', () => {
32
- expect(
33
- encodeFilePath(
34
- {
35
- name: 'sub-02_T1w.nii.gz',
36
- lastModified: 1604713385516,
37
- webkitRelativePath: 'sub-02/anat/sub-02_T1w.nii.gz',
38
- size: 311112,
39
- type: 'application/gzip',
40
- },
41
- { stripRelativePath: false },
42
- ),
43
- ).toEqual('sub-02:anat:sub-02_T1w.nii.gz')
44
- })
45
- it('supports file upload from a webkit-derived browser (stripRelativePath: true)', () => {
46
- expect(
47
- encodeFilePath(
48
- {
49
- name: 'README',
50
- lastModified: 1604713385516,
51
- webkitRelativePath: '',
52
- size: 809,
53
- type: 'text/plain',
54
- },
55
- { stripRelativePath: true },
56
- ),
57
- ).toEqual('README')
58
- })
59
- it('supports file upload from a webkit-derived browser (stripRelativePath: false)', () => {
60
- expect(
61
- encodeFilePath(
62
- {
63
- name: 'README',
64
- lastModified: 1604713385516,
65
- webkitRelativePath: '',
66
- size: 809,
67
- type: 'text/plain',
68
- },
69
- { stripRelativePath: false },
70
- ),
71
- ).toEqual('README')
72
- })
73
- it('supports nested file upload from a webkit-derived browser (stripRelativePath: true)', () => {
74
- expect(
75
- encodeFilePath(
76
- {
77
- name: 'sub-02_T1w.nii.gz',
78
- lastModified: 1604713385516,
79
- webkitRelativePath: '/dataset/sub-02/anat/',
80
- size: 2000,
81
- type: 'text/plain',
82
- },
83
- { stripRelativePath: true },
84
- ),
85
- ).toEqual('sub-02:anat:sub-02_T1w.nii.gz')
86
- })
87
- it('supports nested file upload from a webkit-derived browser (stripRelativePath: false)', () => {
88
- expect(
89
- encodeFilePath(
90
- {
91
- name: 'sub-02_T1w.nii.gz',
92
- lastModified: 1604713385516,
93
- webkitRelativePath: '/sub-02/anat/',
94
- size: 2000,
95
- type: 'text/plain',
96
- },
97
- { stripRelativePath: false },
98
- ),
99
- ).toEqual('sub-02:anat:sub-02_T1w.nii.gz')
100
- })
101
- it('supports nested directory upload from a webkit-derived browser (stripRelativePath: false)', () => {
102
- expect(
103
- encodeFilePath(
104
- {
105
- name: 'sub-02_T1w.nii.gz',
106
- lastModified: 1604713385516,
107
- webkitRelativePath: '/sub-02/anat/sub-02_T1w.nii.gz',
108
- size: 2000,
109
- type: 'text/plain',
110
- },
111
- { stripRelativePath: false },
112
- ),
113
- ).toEqual('sub-02:anat:sub-02_T1w.nii.gz')
114
- })
115
- })
116
- })
@@ -1,67 +0,0 @@
1
- import React from 'react'
2
- import { render, screen, fireEvent } from '@testing-library/react'
3
- import UploadDisclaimer from '../upload-disclaimer.jsx'
4
- import UploaderContext from '../uploader-context.js'
5
-
6
- describe('UploadDisclaimer component', () => {
7
- it('renders as expected', () => {
8
- expect(() =>
9
- render(
10
- <UploaderContext.Provider value={{ uploader: jest.fn() }}>
11
- <UploadDisclaimer />
12
- </UploaderContext.Provider>,
13
- ),
14
- ).not.toThrowError()
15
- })
16
- it('starts with the upload button disabled', () => {
17
- render(
18
- <UploaderContext.Provider value={{ uploader: jest.fn() }}>
19
- <UploadDisclaimer />
20
- </UploaderContext.Provider>,
21
- )
22
- expect(screen.getByText('I Agree')).toBeDisabled()
23
- })
24
- it('disable the upload button when both boxes are checked', () => {
25
- const { getByLabelText } = render(
26
- <UploaderContext.Provider value={{ uploader: jest.fn() }}>
27
- <UploadDisclaimer />
28
- </UploaderContext.Provider>,
29
- )
30
- fireEvent.click(
31
- getByLabelText(
32
- 'All structural scans have been defaced, obscuring any tissue on or near the face that could potentially be used to reconstruct the facial structure.',
33
- ),
34
- )
35
- fireEvent.click(
36
- getByLabelText(
37
- 'I have explicit participant consent and ethical authorization to publish structural scans without defacing.',
38
- ),
39
- )
40
- expect(screen.getByText('I Agree')).toBeDisabled()
41
- })
42
- it('enable the upload button when one box is checked', () => {
43
- const { getByLabelText } = render(
44
- <UploaderContext.Provider value={{ uploader: jest.fn() }}>
45
- <UploadDisclaimer />
46
- </UploaderContext.Provider>,
47
- )
48
- fireEvent.click(
49
- getByLabelText(
50
- 'All structural scans have been defaced, obscuring any tissue on or near the face that could potentially be used to reconstruct the facial structure.',
51
- ),
52
- )
53
- expect(screen.getByText('I Agree')).not.toBeDisabled()
54
- // Disable the first and enable the second to test the alternate state
55
- fireEvent.click(
56
- getByLabelText(
57
- 'All structural scans have been defaced, obscuring any tissue on or near the face that could potentially be used to reconstruct the facial structure.',
58
- ),
59
- )
60
- fireEvent.click(
61
- getByLabelText(
62
- 'I have explicit participant consent and ethical authorization to publish structural scans without defacing.',
63
- ),
64
- )
65
- expect(screen.getByText('I Agree')).not.toBeDisabled()
66
- })
67
- })
@@ -1,57 +0,0 @@
1
- import { mkLevels, treeFromList } from '../upload-mutation.js'
2
-
3
- describe('Uploader mutations', () => {
4
- describe('mkLevels', () => {
5
- it('updates the parent argument by pushing file objects', () => {
6
- const file = new Blob(['Trouble on Blobolonia'], { type: 'text/plain' })
7
- const parent = { files: [], directories: [], name: '' }
8
- mkLevels(file, parent, ['README'])
9
- expect(parent.files).toEqual([file])
10
- expect(parent.directories).toEqual([])
11
- })
12
- it('creates new directories for nested paths', () => {
13
- const file = new Blob(['1234'], { type: 'text/plain' })
14
- const parent = { files: [], directories: [], name: '' }
15
- mkLevels(file, parent, ['derivatives', 'README'])
16
- expect(parent.files).toEqual([])
17
- expect(parent.directories).toHaveLength(1)
18
- expect(parent.directories[0].files).toHaveLength(1)
19
- expect(parent.directories[0].files[0]).toEqual(file)
20
- })
21
- it('updates existing directories with newly found files', () => {
22
- const file = new Blob(['{}'], { type: 'application/json' })
23
- const parent = {
24
- files: [],
25
- directories: [{ name: '/derivatives', files: [], directories: [] }],
26
- name: '',
27
- }
28
- mkLevels(file, parent, ['derivatives', 'data.json'])
29
- expect(parent.files).toEqual([])
30
- expect(parent.directories).toHaveLength(1)
31
- expect(parent.directories[0].files).toHaveLength(1)
32
- expect(parent.directories[0].files[0]).toEqual(file)
33
- })
34
- })
35
- describe('treeFromList', () => {
36
- it('handles a tree from <input type="file" multiple />', () => {
37
- const mockFileA = new Blob(['file one'], { type: 'text/plain' })
38
- const mockFileB = new Blob(['file two'], { type: 'text/plain' })
39
- mockFileA.webkitRelativePath = '/'
40
- mockFileB.webkitRelativePath = '/'
41
- const mockFileList = [mockFileA, mockFileB]
42
- const fileTree = treeFromList(mockFileList)
43
- expect(typeof fileTree).toBe('object')
44
- expect(fileTree.directories).toEqual([])
45
- expect(fileTree.files).toHaveLength(2)
46
- expect(fileTree.name).toBe('')
47
- })
48
- it('should work for files without webkitRelativePath', () => {
49
- const mockFile = new Blob(['a boy and his blob'], { type: 'text/plain' })
50
- const mockFileList = [mockFile]
51
- const fileTree = treeFromList(mockFileList)
52
- expect(fileTree.directories).toEqual([])
53
- expect(fileTree.files).toHaveLength(1)
54
- expect(fileTree.name).toBe('')
55
- })
56
- })
57
- })
@@ -1,31 +0,0 @@
1
- import React from 'react'
2
- import { shallow } from 'enzyme'
3
- import { UploadClient } from '../uploader.jsx'
4
- import { JSDOM } from 'jsdom'
5
- const { window } = new JSDOM('', { runScripts: 'outside-only' })
6
-
7
- // Stub constructor for File-like objects with webkitRelativePath
8
- function TestFile(body, name, webkitRelativePath) {
9
- const file = new window.Blob(body)
10
- file.name = name
11
- file.webkitRelativePath = webkitRelativePath ? webkitRelativePath : name
12
- return file
13
- }
14
-
15
- describe('uploader', () => {
16
- it('select files updates state', async done => {
17
- const wrapper = shallow(<UploadClient />)
18
- try {
19
- await wrapper.instance().selectFiles({
20
- files: [
21
- new TestFile(['file body one'], 'file_one'),
22
- new TestFile(['file body two'], 'file_two'),
23
- ],
24
- })
25
- expect(wrapper.instance().state.files).toHaveLength(2)
26
- done()
27
- } catch (e) {
28
- done.fail(e)
29
- }
30
- })
31
- })
@@ -1,19 +0,0 @@
1
- /**
2
- * Prefix all files with a path
3
- * This supports uploading within another directory
4
- * @param {any[]} fileList FileList for upload
5
- * @param {string} path Prefix path for all files
6
- * @returns {Array} Updated array of files with adapted paths
7
- */
8
- export const addPathToFiles = (fileList, path) => {
9
- return path
10
- ? Array.prototype.map.call(fileList, file => {
11
- // Override webkitRelativePath with a new property
12
- Object.defineProperty(file, 'webkitRelativePath', {
13
- value: `/${path}/${file.webkitRelativePath}`,
14
- writable: false,
15
- })
16
- return file
17
- })
18
- : fileList
19
- }
@@ -1,88 +0,0 @@
1
- import { config } from '../config'
2
- import { uploads } from '@openneuro/client'
3
-
4
- /**
5
- * Trim the webkitRelativePath value to only include the dataset relative path
6
- * @param {File} file FileAPI object from a browser multiple file selector
7
- */
8
- export const getRelativePath = (
9
- file,
10
- options = { stripRelativePath: true },
11
- ) => {
12
- const path = file.webkitRelativePath
13
- const pathTokens = path.split('/')
14
- if (pathTokens.length === 1) {
15
- return path
16
- }
17
- if (pathTokens[0] === '') {
18
- pathTokens.shift()
19
- }
20
- if (pathTokens[pathTokens.length - 1] === '') {
21
- pathTokens[pathTokens.length - 1] = file.name
22
- }
23
- if (options.stripRelativePath) {
24
- return pathTokens.slice(1).join('/')
25
- } else {
26
- return pathTokens.join('/')
27
- }
28
- }
29
-
30
- /**
31
- * Handle all variants of File objects and return the encoded upload file path
32
- *
33
- * Top level files have webkitRelativePath '' in some scenarios, use just the filename in that case
34
- *
35
- * @param {File} file
36
- * @param {object} options
37
- * @param {boolean} options.stripRelativePath
38
- **/
39
- export const encodeFilePath = (file, options = { stripRelativePath: false }) =>
40
- file.webkitRelativePath
41
- ? uploads.encodeFilePath(getRelativePath(file, options))
42
- : file.name
43
-
44
- /**
45
- * This provides a similar interface to Apollo mutation for a background fetch with a promise that resolves once all promises have settled
46
- * @param {object} options
47
- * @param {string} options.uploadId Upload identifier for resume
48
- * @param {string} options.datasetId Accession number
49
- * @param {number} options.endpoint Offset for upload endpoint
50
- * @param {Array<object>} options.filesToUpload Array of file objects
51
- * @param {string} options.token Credentials
52
- * @param {import('./upload-progress-class').UploadProgress} options.uploadProgress Controller for reporting upload progress
53
- * @param {AbortController} options.abortController Fetch AbortController for halting uploads
54
- * @param {boolean} options.stripRelativePath True will remove the top-most directory name
55
- */
56
- export async function uploadFiles({
57
- uploadId,
58
- datasetId,
59
- endpoint,
60
- filesToUpload,
61
- token,
62
- uploadProgress,
63
- abortController,
64
- stripRelativePath = true,
65
- }) {
66
- // Maps FileAPI objects to Request with the correct URL and body
67
- let totalSize = 0
68
- const requests = filesToUpload.map(f => {
69
- totalSize += f.size
70
- const encodedFilePath = encodeFilePath(f, {
71
- stripRelativePath,
72
- })
73
- const fileUrl = `${config.url}/uploads/${endpoint}/${datasetId}/${uploadId}/${encodedFilePath}`
74
- return new Request(fileUrl, {
75
- method: 'POST',
76
- body: f,
77
- headers: {
78
- Authorization: `Bearer ${token}`,
79
- },
80
- credentials: 'omit',
81
- signal: abortController.signal,
82
- })
83
- })
84
-
85
- // No background fetch
86
- // Parallelism is handled by the client in this case
87
- return uploads.uploadParallel(requests, totalSize, uploadProgress, fetch)
88
- }
@@ -1,18 +0,0 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
-
4
- const UploadButton = ({ onClick }) => (
5
- <span className="upload-btn-wrap">
6
- <a className="nav-link nl-upload" onClick={onClick}>
7
- <span className="link-name">
8
- <i className="fa fa-upload" /> Upload Dataset
9
- </span>
10
- </a>
11
- </span>
12
- )
13
-
14
- UploadButton.propTypes = {
15
- onClick: PropTypes.func,
16
- }
17
-
18
- export default UploadButton
@@ -1,92 +0,0 @@
1
- import React, { useState } from 'react'
2
- import UploaderContext from './uploader-context.js'
3
-
4
- const UploadDisclaimer = () => {
5
- const [affirmedDefaced, setAffirmedDefaced] = useState(false)
6
- const [affirmedConsent, setAffirmedConsent] = useState(false)
7
- return (
8
- <UploaderContext.Consumer>
9
- {uploader => (
10
- <div className="disclaimer fade-in">
11
- <h4>
12
- By uploading this dataset to OpenNeuro I agree to the following
13
- conditions:
14
- </h4>
15
- <p>
16
- I am the owner of this dataset and have any necessary ethics
17
- permissions to share the data publicly. This dataset does not
18
- include any identifiable personal health information as defined by
19
- the{' '}
20
- <a href="https://www.hhs.gov/hipaa/for-professionals/privacy/laws-regulations/">
21
- Health Insurance Portability and Accountability Act of 1996
22
- </a>{' '}
23
- (including names, zip codes, dates of birth, acquisition dates,
24
- etc). I agree to destroy any key linking the personal identity of
25
- research participants to the subject codes used in the dataset.
26
- </p>
27
- <p>
28
- I agree that this dataset will become publicly available under a{' '}
29
- <a href="https://wiki.creativecommons.org/wiki/CC0">
30
- Creative Commons CC0
31
- </a>{' '}
32
- license after a grace period of 36 months counted from the date of
33
- the first snapshot creation for this dataset. You will be able to
34
- apply for up to two 6 month extensions to increase the grace period
35
- in case the publication of a corresponding paper takes longer than
36
- expected. See <a href="/faq">FAQ</a> for details.
37
- </p>
38
- <p>This dataset is not subject to GDPR protections.</p>
39
- <p>
40
- Generally, data should only be uploaded to a single data archive. In
41
- the rare cases where it is necessary to upload the data to two
42
- databases (such as the NIMH Data Archive), I agree to ensure that
43
- the datasets are harmonized across archives.
44
- </p>
45
- <p>Please affirm one of the following:</p>
46
- <label>
47
- <input
48
- type="checkbox"
49
- onChange={() => setAffirmedDefaced(!affirmedDefaced)}
50
- defaultChecked={affirmedDefaced}
51
- />
52
- &nbsp; All structural scans have been defaced, obscuring any tissue
53
- on or near the face that could potentially be used to reconstruct
54
- the facial structure.
55
- </label>
56
- <label>
57
- <input
58
- type="checkbox"
59
- onChange={() => setAffirmedConsent(!affirmedConsent)}
60
- defaultChecked={affirmedConsent}
61
- />
62
- &nbsp; I have explicit participant consent and ethical authorization
63
- to publish structural scans without defacing.
64
- </label>
65
- <span className="message">
66
- <button
67
- className="fileupload-btn btn-blue"
68
- onClick={() => {
69
- uploader.captureMetadata({
70
- ...uploader.metadata,
71
- affirmedDefaced,
72
- affirmedConsent,
73
- })
74
- uploader.upload({ affirmedDefaced, affirmedConsent })
75
- }}
76
- disabled={
77
- !(
78
- (affirmedDefaced && !affirmedConsent) ||
79
- (!affirmedDefaced && affirmedConsent)
80
- )
81
- }
82
- >
83
- I Agree
84
- </button>
85
- </span>
86
- </div>
87
- )}
88
- </UploaderContext.Consumer>
89
- )
90
- }
91
-
92
- export default UploadDisclaimer
@@ -1,20 +0,0 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
-
4
- const UploadFileStatus = ({ uploadingFiles, failedFiles }) => (
5
- <>
6
- <p>{[...uploadingFiles].join(', ')}</p>
7
- <p>
8
- {failedFiles.size
9
- ? `Too many failed attempts for '${[...failedFiles].join(', ')}'`
10
- : null}
11
- </p>
12
- </>
13
- )
14
-
15
- UploadFileStatus.propTypes = {
16
- uploadingFiles: PropTypes.instanceOf(Set),
17
- failedFiles: PropTypes.instanceOf(Set),
18
- }
19
-
20
- export default UploadFileStatus
@@ -1,131 +0,0 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import pluralize from 'pluralize'
4
- import Spinner from '../common/partials/spinner.jsx'
5
- import Results from '../validation/validation-results.jsx'
6
- import UploaderContext from './uploader-context.js'
7
- import validate from '../workers/validate'
8
-
9
- const UploadValidatorStatus = ({ issues, next, reset }) => {
10
- const errorCount = issues.errors.length
11
- const warnCount = issues.warnings.length
12
- const issuesCount = errorCount + warnCount
13
- if (issuesCount === 0) {
14
- return (
15
- <div className="message fade-in">
16
- This dataset has no issues.
17
- <button className="fileupload-btn btn-blue" onClick={next}>
18
- Continue
19
- </button>
20
- </div>
21
- )
22
- } else if (errorCount === 0 && warnCount > 0) {
23
- return (
24
- <div className="message warn fade-in">
25
- We found {warnCount} {pluralize('warning', warnCount)} in your dataset.
26
- You are not required to fix warnings, but doing so will make your
27
- dataset more BIDS compliant. Continue or fix the issues and select
28
- folder again.
29
- <button className="fileupload-btn btn-blue" onClick={next}>
30
- Continue
31
- </button>
32
- </div>
33
- )
34
- } else {
35
- return (
36
- <div className="message error fade-in">
37
- Your dataset is not a valid BIDS dataset. Fix the{' '}
38
- <strong>
39
- {errorCount} {pluralize('error', errorCount)}
40
- </strong>{' '}
41
- and{' '}
42
- <a
43
- href="#"
44
- onClick={e => {
45
- e.preventDefault()
46
- reset()
47
- }}>
48
- select your folder again.
49
- </a>{' '}
50
- </div>
51
- )
52
- }
53
- }
54
-
55
- class UploadValidator extends React.Component {
56
- constructor(props) {
57
- super(props)
58
- this.state = {
59
- validating: true,
60
- issues: {
61
- errors: [],
62
- warnings: [],
63
- },
64
- summary: {},
65
- }
66
- const options = {
67
- config: {
68
- error: ['NO_AUTHORS'],
69
- ignoreSubjectConsistency: true,
70
- },
71
- }
72
- validate(this.props.files, options).then(this.done)
73
- }
74
-
75
- /**
76
- * Called when validation finishes
77
- */
78
- done = ({ issues, summary }) => {
79
- this.setState({ issues, summary, validating: false })
80
- }
81
-
82
- render() {
83
- if (this.state.validating) {
84
- return <Spinner text="validating" active={true} />
85
- } else {
86
- return (
87
- <div>
88
- <UploadValidatorStatus
89
- issues={this.state.issues}
90
- next={this.props.next}
91
- reset={this.props.reset}
92
- />
93
- <Results
94
- errors={this.state.issues.errors}
95
- warnings={this.state.issues.warnings}
96
- />
97
- <span className="bids-link">
98
- Click to view details on{' '}
99
- <a
100
- href="http://bids.neuroimaging.io"
101
- target="_blank"
102
- rel="noopener noreferrer">
103
- BIDS specification
104
- </a>
105
- </span>
106
- </div>
107
- )
108
- }
109
- }
110
- }
111
-
112
- UploadValidator.propTypes = {
113
- // Files can be an FileList object or an array of File objects
114
- files: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
115
- next: PropTypes.func,
116
- reset: PropTypes.func,
117
- }
118
-
119
- const UploadIssues = () => (
120
- <UploaderContext.Consumer>
121
- {uploader => (
122
- <UploadValidator
123
- files={uploader.selectedFiles}
124
- next={() => uploader.setLocation('/upload/metadata')}
125
- reset={() => uploader.setLocation('/upload')}
126
- />
127
- )}
128
- </UploaderContext.Consumer>
129
- )
130
-
131
- export default UploadIssues