girder 5.0.22.dev2__tar.gz → 5.0.23.dev7__tar.gz
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.
- girder-5.0.23.dev7/.circleci/check_npm_package.js +153 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.circleci/config.yml +27 -1
- girder-5.0.23.dev7/.circleci/publish_npm.sh +68 -0
- {girder-5.0.22.dev2/girder.egg-info → girder-5.0.23.dev7}/PKG-INFO +1 -1
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/plugins.rst +45 -0
- girder-5.0.22.dev2/girder/web/dist/assets/index-CmeGcPPd.js → girder-5.0.23.dev7/girder/web/dist/assets/index-Ba0PPf3g.js +2 -2
- girder-5.0.22.dev2/girder/web/dist/assets/index-CmeGcPPd.js.map → girder-5.0.23.dev7/girder/web/dist/assets/index-Ba0PPf3g.js.map +1 -1
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/index.html +1 -1
- girder-5.0.23.dev7/girder/web/dist/src/collections/ApiKeyCollection.js +9 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/AssetstoreCollection.js +10 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/Collection.js +295 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/CollectionCollection.js +9 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/FileCollection.js +11 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/FolderCollection.js +11 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/GroupCollection.js +9 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/ItemCollection.js +11 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/UserCollection.js +24 -0
- girder-5.0.23.dev7/girder/web/dist/src/collections/index.js +21 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/AccessControlledModel.js +76 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/ApiKeyModel.js +31 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/AssetstoreModel.js +43 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/CollectionCreationPolicyModel.js +20 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/CollectionModel.js +12 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/FileModel.js +310 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/FolderModel.js +33 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/GroupModel.js +197 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/ItemModel.js +72 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/MetadataMixin.js +88 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/Model.js +187 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/UserModel.js +189 -0
- girder-5.0.23.dev7/girder/web/dist/src/models/index.js +25 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/apidocs/apidocs.styl +50 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/adminConsole.styl +21 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/assetstores.styl +46 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/collectionList.styl +44 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/collectionPage.styl +6 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/frontPage.styl +48 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/groupList.styl +48 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/groupPage.styl +116 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/itemPage.styl +81 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/plugins.styl +61 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/searchResultsList.styl +51 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/systemConfig.styl +56 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/userAccount.styl +57 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/userList.styl +79 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/body/userPage.styl +6 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/footer.styl +19 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/global.styl +164 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/globalNav.styl +89 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/header.styl +29 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/headerUser.styl +33 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/layout.styl +75 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/layoutVars.styl +9 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/loading.styl +37 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/layout/progressArea.styl +17 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/accessWidget.styl +106 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/browserWidget.styl +9 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/hierarchyWidget.styl +188 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/markdownWidget.styl +92 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/metadataWidget.styl +92 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/searchFieldWidget.styl +70 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/taskProgress.styl +41 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/timelineWidget.styl +41 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/uploadWidget.styl +43 -0
- girder-5.0.23.dev7/girder/web/dist/src/stylesheets/widgets/userOtpManagementWidget.styl +159 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/adminConsole.pug +13 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/assetstores.pug +83 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/collectionList.pug +48 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/collectionPage.pug +38 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/filesystemImport.pug +41 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/frontPage.pug +83 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/groupList.pug +36 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/groupPage.pug +116 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/itemPage.pug +64 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/plugins.pug +20 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/s3Import.pug +35 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/searchResults.pug +15 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/searchResultsType.pug +13 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/systemConfiguration.pug +234 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/userAccount.pug +83 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/userList.pug +43 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/body/userPage.pug +40 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/alert.pug +5 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/layout.pug +12 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/layoutFooter.pug +11 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/layoutGlobalNav.pug +7 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/layoutHeader.pug +8 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/layoutHeaderUser.pug +26 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/layoutProgressArea.pug +1 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/loginDialog.pug +30 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/registerDialog.pug +35 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/layout/resetPasswordDialog.pug +25 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/accessEditor.pug +23 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/accessEditorMixins.pug +57 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/accessEditorNonModal.pug +11 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/accessEntry.pug +32 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/apiKeyList.pug +50 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/browserWidget.pug +32 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/checkedActionsMenu.pug +47 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/collectionInfoDialog.pug +37 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/confirmDialog.pug +14 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editApiKeyWidget.pug +43 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editAssetstoreWidget.pug +70 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editCollectionWidget.pug +27 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editFileWidget.pug +21 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editFolderWidget.pug +27 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editGroupWidget.pug +54 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/editItemWidget.pug +27 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/fileInfoDialog.pug +33 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/fileList.pug +44 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/folderInfoDialog.pug +42 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/folderList.pug +21 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/groupAdminList.pug +33 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/groupInviteDialog.pug +76 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/groupInviteList.pug +14 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/groupMemberList.pug +39 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/groupModList.pug +23 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/hierarchyBreadcrumb.pug +37 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/hierarchyPaginated.pug +19 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/hierarchyWidget.pug +97 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/itemBreadcrumb.pug +16 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/itemList.pug +27 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/jsonMetadatumEditWidget.pug +13 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/jsonMetadatumView.pug +6 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/loadingAnimation.pug +4 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/markdownWidget.pug +34 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/metadataWidget.pug +16 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/metadatumEditWidget.pug +15 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/metadatumView.pug +5 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/newAssetstore.pug +87 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/paginateWidget.pug +7 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/pluginConfigBreadcrumb.pug +13 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/rootSelectorWidget.pug +13 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/searchField.pug +10 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/searchHelp.pug +12 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/searchModeSelect.pug +9 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/searchResults.pug +14 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/sortCollectionWidget.pug +14 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/taskProgress.pug +16 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/timeline.pug +15 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/uploadWidget.pug +15 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/uploadWidgetMixins.pug +31 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/uploadWidgetNonModal.pug +10 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/userOtpBegin.pug +4 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/userOtpDisable.pug +6 -0
- girder-5.0.23.dev7/girder/web/dist/src/templates/widgets/userOtpEnable.pug +44 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/EventStream.js +118 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/PluginUtils.js +36 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/S3UploadHandler.js +263 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/ShowDownload.js +15 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/index.js +11 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/jquery/girderEnable.js +19 -0
- girder-5.0.23.dev7/girder/web/dist/src/utilities/jquery/girderModal.js +48 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/App.js +370 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/View.js +79 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/AdminView.js +29 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/AssetstoresView.js +239 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/CollectionView.js +199 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/CollectionsView.js +121 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/FilesystemImportView.js +83 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/FolderView.js +54 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/FrontPageView.js +47 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/GroupView.js +336 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/GroupsView.js +107 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/ItemView.js +180 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/PluginsView.js +73 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/S3ImportView.js +80 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/SearchResultsView.js +162 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/SystemConfigurationView.js +180 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/UserAccountView.js +179 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/UserView.js +169 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/UsersView.js +124 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/body/index.js +38 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/index.js +13 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/FooterView.js +29 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/GlobalNavView.js +110 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/HeaderUserView.js +45 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/HeaderView.js +83 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/LoginView.js +100 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/ProgressListView.js +70 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/RegisterView.js +101 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/ResetPasswordView.js +70 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/layout/index.js +19 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/AccessWidget.js +427 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/ApiKeyListWidget.js +140 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/BrowserWidget.js +315 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/CheckedMenuWidget.js +71 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/CollectionInfoWidget.js +40 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditApiKeyWidget.js +124 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditAssetstoreWidget.js +136 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditCollectionWidget.js +93 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditFileWidget.js +56 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditFolderWidget.js +116 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditGroupWidget.js +125 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/EditItemWidget.js +110 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/FileInfoWidget.js +26 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/FileListWidget.js +154 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/FolderInfoWidget.js +39 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/FolderListWidget.js +108 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/GroupAdminsWidget.js +88 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/GroupInvitesWidget.js +56 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/GroupMembersWidget.js +185 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/GroupModsWidget.js +77 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/HierarchyWidget.js +1107 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/ItemBreadcrumbWidget.js +38 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/ItemListWidget.js +352 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/LoadingAnimation.js +17 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/MarkdownWidget.js +217 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/MetadataWidget.js +508 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/NewAssetstoreWidget.js +72 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/PaginateWidget.js +37 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/PluginConfigBreadcrumbWidget.js +33 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/RootSelectorWidget.js +192 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/SearchFieldWidget.js +395 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/SearchPaginateWidget.js +149 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/SortCollectionWidget.js +53 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/TaskProgressWidget.js +90 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/TimelineWidget.js +155 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/UploadWidget.js +340 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/UserOtpManagementWidget.js +105 -0
- girder-5.0.23.dev7/girder/web/dist/src/views/widgets/index.js +77 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7/girder.egg-info}/PKG-INFO +1 -1
- girder-5.0.23.dev7/girder.egg-info/SOURCES.txt +495 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder.egg-info/scm_file_list.json +28 -0
- girder-5.0.23.dev7/girder.egg-info/scm_version.json +8 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/package-lock.json +3 -3
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/requirements-dev.txt +3 -1
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/publicNames.txt +67 -0
- girder-5.0.22.dev2/.circleci/publish_npm.sh +0 -30
- girder-5.0.22.dev2/girder.egg-info/SOURCES.txt +0 -281
- girder-5.0.22.dev2/girder.egg-info/scm_version.json +0 -8
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.circleci/Dockerfile +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.circleci/build_plugins.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.circleci/generatePyEnvChecksum.sh +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.circleci/publish_pypi.sh +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.circleci/rabbitmq.conf +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.codecov.yml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.dockerignore +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.editorconfig +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.git-blame-ignore-revs +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.github/workflows/codespell.yml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.gitignore +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.pre-commit-config.yaml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/.readthedocs.yml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/CHANGELOG.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/CMakeLists.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/CONTRIBUTING.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/Dockerfile +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/LICENSE +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/MANIFEST.in +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/README.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/clients/python/README.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/clients/python/girder_client/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/clients/python/girder_client/_jsonemitter.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/clients/python/girder_client/cli.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/clients/python/pyproject.toml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/clients/python/setup.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docker-compose.yml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/admin-docs.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/api-docs.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/build-docs.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/conf.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/configuration.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/dependencies.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/deployment.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/dev-installation.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/developer-cookbook.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/developer-docs.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/development.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/favicon.ico +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/images/dicom-viewer.png +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/index.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/license.png +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/list_env_settings.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/list_env_settings.yaml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/migration-guide.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/mount.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/plugin-development.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/python-client.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/requirements-docs.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/security.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/sftp.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/static/custom.css +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/user-docs.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/docs/user-guide.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/access.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/api_docs.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/api_main.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/describe.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/docs.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/filter_logging.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/rest.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/sftp.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/api_key.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/assetstore.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/collection.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/file.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/folder.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/group.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/item.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/resource.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/system.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/token.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/api/v1/user.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/asgi.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/cli/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/cli/mount.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/cli/serve.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/cli/sftpd.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/cli/shell.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/constants.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/events.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/exceptions.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/_footer.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/_header.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/accountApproval.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/accountApproved.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/emailVerification.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/groupInvite.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/mail_templates/temporaryAccess.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/api_key.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/assetstore.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/collection.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/file.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/folder.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/group.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/item.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/model_base.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/setting.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/token.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/upload.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/models/user.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/notification.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/plugin.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/settings.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/tasks.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/_cache.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/_hash_state.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/abstract_assetstore_adapter.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/acl_mixin.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/assetstore_utilities.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/config.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/error.mako +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/filesystem_assetstore_adapter.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/mail_utils.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/model_importer.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/path.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/progress.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/s3_assetstore_adapter.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/search.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/server.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/setting_utilities.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/system.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/webroot.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/utility/ziputil.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/.env.development +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/.gitignore +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/.prettierrc.json +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/README.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/Girder_Favicon.png +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/Girder_Mark.png +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/fontello-BGLM866c.svg +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/fontello-B_1bq6Kd.eot +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/fontello-CpEujeXd.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/fontello-Or0MeVYv.ttf +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/fontello-aW2lAE4M.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/glyphicons-halflings-regular-BKjkU69z.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/glyphicons-halflings-regular-BUJKDMgK.eot +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/glyphicons-halflings-regular-CSehLiBc.svg +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/glyphicons-halflings-regular-DrwTMapi.ttf +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/glyphicons-halflings-regular-DzqM6ju8.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/index-DHydYdLA.css +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/jsoneditor-icons-CIlYC0TY.svg +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-300-B6tDWRxp.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-300-DZbNTRe6.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-300italic-DLsXqxhU.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-300italic-Dfz31Up5.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-400-D5zbb_EN.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-400-DLgeRt71.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-400italic-DpGQ6Ktj.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-400italic-UJbezL8h.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-600-CCvT4JHQ.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-600-DHWfDY-G.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-600italic-X8kCjSq_.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-600italic-slqXzGub.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-700-CsbQbrjx.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-700-DNl7WOH5.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-700italic-BtE7VvhE.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-700italic-hc2P_kZo.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-800-CbJOM4_m.woff2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-800-XaYTAPrv.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-800italic-DqvYew-K.woff +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/assets/open-sans-latin-800italic-JIGkTxpX.woff2 +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/auth.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/constants.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/dialog.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/events.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/index.ts +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/main.ts +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/misc.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/pluginUtils.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/rest.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/router.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/routes.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/version.js +0 -0
- {girder-5.0.22.dev2/girder/web/dist/src → girder-5.0.23.dev7/girder/web/dist}/src/vite-env.d.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/swagger-ui/swagger-ui-bundle.js +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/dist/swagger-ui/swagger-ui.css +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/env.d.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/playwright.config.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/coverage.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/playwright-setup.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/playwright-teardown.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/server.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/admin.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/browser.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/collection.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/collectionBaseClass.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/customWidgets.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/README.md +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/fake.jpg +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/nomime.dat +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/slicer_cli_web_multiple_test.xml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/slicer_cli_web_test.xml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/ten_byte_file.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/testFile.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data/testFile2 +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/data.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/emptyLayout.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/file_upload.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/folder.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/group.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/item.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/model.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_authorized_upload.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_autojoin.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_hashsum_download.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_homepage.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_item_licenses.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_jobs.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_readme.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_config_view.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_container_view.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_item_selector.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_panel_group.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_parser.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_task.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_widget_model.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_slicer_cli_web_widget_view.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_terms.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_thumbnails.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/plugin_user_quota.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/routing.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/setApi.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/setting_show_download.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/sortWidget.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/swagger.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/user.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/utilities.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/version.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/spec/widgets.spec.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/web/tests/util.ts +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/worker_plugin.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder/wsgi.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder.egg-info/dependency_links.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder.egg-info/entry_points.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder.egg-info/not-zip-safe +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder.egg-info/requires.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/girder.egg-info/top_level.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/jsdoc.json +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/package.json +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pyproject.toml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/LICENSE +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/MANIFEST.in +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pyproject.toml +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/__init__.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/assertions.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/fixtures.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/plugin.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/utils.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/pytest_girder/web_client.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/pytest_girder/setup.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/midas/README.rst +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/midas/migrate.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/midas/requirements.txt +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/midas/walk_girder.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/midas/walk_midas.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/publicNames.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/scripts/test_names.sh +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/setup.cfg +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/setup.py +0 -0
- {girder-5.0.22.dev2 → girder-5.0.23.dev7}/tox.ini +0 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Check that a packed npm tarball is usable: every entry point that
|
|
3
|
+
// package.json declares is in the tarball, every "files" entry matched
|
|
4
|
+
// something, and the relative references inside packed CSS (url(...)) and
|
|
5
|
+
// JavaScript (sourceMappingURL) resolve to packed files, and no runtime
|
|
6
|
+
// dependency uses a local specifier (file:, link:, workspace:) that cannot
|
|
7
|
+
// resolve once installed from the registry. Any further
|
|
8
|
+
// arguments are paths that must also be in the package.
|
|
9
|
+
//
|
|
10
|
+
// Usage: check_npm_package.js <package.tgz> [required-path ...]
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
const childProcess = require('child_process');
|
|
14
|
+
const fs = require('fs');
|
|
15
|
+
const os = require('os');
|
|
16
|
+
const path = require('path');
|
|
17
|
+
|
|
18
|
+
const METADATA_FILES = new Set(['package.json', 'readme', 'readme.md', 'readme.rst', 'readme.txt', 'license', 'license.txt', 'license.md']);
|
|
19
|
+
|
|
20
|
+
function listFiles(root) {
|
|
21
|
+
const result = [];
|
|
22
|
+
for (const entry of fs.readdirSync(root, {withFileTypes: true, recursive: true})) {
|
|
23
|
+
if (entry.isFile()) {
|
|
24
|
+
result.push(path.relative(root, path.join(entry.parentPath, entry.name)).split(path.sep).join('/'));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return result.sort();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function normalize(ref) {
|
|
31
|
+
return path.posix.normalize(ref.replace(/^\.\//, ''));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Collect every path that package.json says a consumer can load.
|
|
35
|
+
function entryPoints(pkg) {
|
|
36
|
+
const result = [];
|
|
37
|
+
for (const key of ['main', 'module', 'types', 'typings', 'style']) {
|
|
38
|
+
if (typeof pkg[key] === 'string') {
|
|
39
|
+
result.push([key, pkg[key]]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (typeof pkg.browser === 'string') {
|
|
43
|
+
result.push(['browser', pkg.browser]);
|
|
44
|
+
}
|
|
45
|
+
if (typeof pkg.bin === 'string') {
|
|
46
|
+
result.push(['bin', pkg.bin]);
|
|
47
|
+
} else if (pkg.bin) {
|
|
48
|
+
for (const [name, value] of Object.entries(pkg.bin)) {
|
|
49
|
+
result.push([`bin.${name}`, value]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const walk = (value, where) => {
|
|
53
|
+
if (typeof value === 'string') {
|
|
54
|
+
if (!value.includes('*')) {
|
|
55
|
+
result.push([where, value]);
|
|
56
|
+
}
|
|
57
|
+
} else if (value && typeof value === 'object') {
|
|
58
|
+
for (const [key, child] of Object.entries(value)) {
|
|
59
|
+
walk(child, `${where}[${JSON.stringify(key)}]`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
walk(pkg.exports, 'exports');
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function checkPackage(root, required) {
|
|
68
|
+
const errors = [];
|
|
69
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8'));
|
|
70
|
+
const files = listFiles(root);
|
|
71
|
+
const fileSet = new Set(files);
|
|
72
|
+
|
|
73
|
+
if (!files.some((file) => !METADATA_FILES.has(file.toLowerCase()))) {
|
|
74
|
+
errors.push('the package contains no files besides package.json, README, and LICENSE');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
for (const [where, ref] of entryPoints(pkg)) {
|
|
78
|
+
if (!fileSet.has(normalize(ref))) {
|
|
79
|
+
errors.push(`${where} refers to ${ref}, which is not in the package`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
for (const field of ['dependencies', 'peerDependencies', 'optionalDependencies']) {
|
|
84
|
+
for (const [name, spec] of Object.entries(pkg[field] || {})) {
|
|
85
|
+
if (/^(file|link|workspace):/.test(spec)) {
|
|
86
|
+
errors.push(`${field} has ${name}@${spec}, which cannot be installed from the registry`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
for (const ref of required) {
|
|
92
|
+
if (!fileSet.has(normalize(ref))) {
|
|
93
|
+
errors.push(`${ref} is required but is not in the package`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
for (const entry of pkg.files || []) {
|
|
98
|
+
if (/[*?[\]{}!]/.test(entry)) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const prefix = normalize(entry).replace(/\/$/, '');
|
|
102
|
+
if (!files.some((file) => file === prefix || file.startsWith(`${prefix}/`))) {
|
|
103
|
+
errors.push(`"files" lists ${entry}, but nothing in the package matches it`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
for (const file of files) {
|
|
108
|
+
const ext = path.extname(file);
|
|
109
|
+
let refs = [];
|
|
110
|
+
if (ext === '.css') {
|
|
111
|
+
const text = fs.readFileSync(path.join(root, file), 'utf8');
|
|
112
|
+
refs = [...text.matchAll(/url\(\s*(['"]?)([^'")]+)\1\s*\)/g)].map((match) => match[2]);
|
|
113
|
+
} else if (['.js', '.cjs', '.mjs'].includes(ext)) {
|
|
114
|
+
const text = fs.readFileSync(path.join(root, file), 'utf8');
|
|
115
|
+
refs = [...text.matchAll(/^\/\/# sourceMappingURL=(\S+)\s*$/gm)].map((match) => match[1]);
|
|
116
|
+
}
|
|
117
|
+
for (const ref of refs) {
|
|
118
|
+
if (/^(data:|[a-z][a-z0-9+.-]*:|\/|#)/i.test(ref)) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const target = path.posix.normalize(path.posix.join(path.posix.dirname(file), ref.replace(/[?#].*$/, '')));
|
|
122
|
+
if (!fileSet.has(target)) {
|
|
123
|
+
errors.push(`${file} refers to ${ref}, but ${target} is not in the package`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return {pkg, files, errors};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function main() {
|
|
131
|
+
const [tarball, ...required] = process.argv.slice(2);
|
|
132
|
+
if (!tarball) {
|
|
133
|
+
console.error('Usage: check_npm_package.js <package.tgz> [required-path ...]');
|
|
134
|
+
process.exit(2);
|
|
135
|
+
}
|
|
136
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'npm-package-check-'));
|
|
137
|
+
try {
|
|
138
|
+
childProcess.execFileSync('tar', ['-xzf', path.resolve(tarball), '-C', tmpDir]);
|
|
139
|
+
const {pkg, files, errors} = checkPackage(path.join(tmpDir, 'package'), required);
|
|
140
|
+
if (errors.length) {
|
|
141
|
+
console.error(`${pkg.name}@${pkg.version} is not usable:`);
|
|
142
|
+
for (const error of errors) {
|
|
143
|
+
console.error(` ${error}`);
|
|
144
|
+
}
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
console.log(`${pkg.name}@${pkg.version}: ${files.length} files, entry points and references are valid`);
|
|
148
|
+
} finally {
|
|
149
|
+
fs.rmSync(tmpDir, {recursive: true, force: true});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
main();
|
|
@@ -23,6 +23,12 @@ executors:
|
|
|
23
23
|
working_directory: /home/circleci/project
|
|
24
24
|
|
|
25
25
|
commands:
|
|
26
|
+
install-ttfautohint:
|
|
27
|
+
description: "Install ttfautohint so the Fontello build produces a hinted font"
|
|
28
|
+
steps:
|
|
29
|
+
- run:
|
|
30
|
+
name: Install ttfautohint
|
|
31
|
+
command: sudo apt-get update && sudo apt-get install -y ttfautohint
|
|
26
32
|
prerequisites:
|
|
27
33
|
description: "Install prerequisites and run required background services"
|
|
28
34
|
steps:
|
|
@@ -163,7 +169,10 @@ jobs:
|
|
|
163
169
|
- build-plugins
|
|
164
170
|
- run:
|
|
165
171
|
name: Run pytest tests
|
|
166
|
-
command:
|
|
172
|
+
command: |
|
|
173
|
+
# tox refuses to stage packages in group/world-writable directories
|
|
174
|
+
umask 0022
|
|
175
|
+
tox -e pytest_circleci -- -x
|
|
167
176
|
working_directory: girder
|
|
168
177
|
- store_test_results:
|
|
169
178
|
path: girder/build/test/results
|
|
@@ -472,11 +481,23 @@ jobs:
|
|
|
472
481
|
command: tox -e publish
|
|
473
482
|
working_directory: girder
|
|
474
483
|
|
|
484
|
+
check-publish-npm:
|
|
485
|
+
executor: py3
|
|
486
|
+
steps:
|
|
487
|
+
- checkout:
|
|
488
|
+
path: girder
|
|
489
|
+
- install-ttfautohint
|
|
490
|
+
- run:
|
|
491
|
+
name: Check that npm packages can be built and packed
|
|
492
|
+
command: ./.circleci/publish_npm.sh --dry-run
|
|
493
|
+
working_directory: girder
|
|
494
|
+
|
|
475
495
|
publish-release:
|
|
476
496
|
executor: py3
|
|
477
497
|
steps:
|
|
478
498
|
- checkout:
|
|
479
499
|
path: girder
|
|
500
|
+
- install-ttfautohint
|
|
480
501
|
- run:
|
|
481
502
|
name: Publish npm packages
|
|
482
503
|
command: npm run publish-all
|
|
@@ -554,6 +575,10 @@ workflows:
|
|
|
554
575
|
filters:
|
|
555
576
|
tags:
|
|
556
577
|
only: /^v[0-9]+.*/
|
|
578
|
+
- check-publish-npm:
|
|
579
|
+
filters:
|
|
580
|
+
tags:
|
|
581
|
+
only: /^v[0-9]+.*/
|
|
557
582
|
- publish:
|
|
558
583
|
requires:
|
|
559
584
|
- check-publish
|
|
@@ -570,6 +595,7 @@ workflows:
|
|
|
570
595
|
- publish-release:
|
|
571
596
|
requires:
|
|
572
597
|
- check-publish
|
|
598
|
+
- check-publish-npm
|
|
573
599
|
- server-lint-test
|
|
574
600
|
- web-lint-test
|
|
575
601
|
- coverage
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
# Publish npm packages for selected locations.
|
|
4
|
+
# Every package is installed, versioned, packed (its prepack script builds
|
|
5
|
+
# it), and checked before any is published, and the checked tarballs are what
|
|
6
|
+
# get published. Publishing authenticates through CircleCI OIDC. With
|
|
7
|
+
# --dry-run, everything runs except the upload.
|
|
8
|
+
|
|
9
|
+
dry_run=()
|
|
10
|
+
if [[ "$1" == "--dry-run" ]]; then
|
|
11
|
+
dry_run=(--dry-run --tag dry-run)
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
15
|
+
|
|
16
|
+
export npm_config_prefix="$HOME/.npm-global"
|
|
17
|
+
npm install -g 'npm@^11.5.1'
|
|
18
|
+
export PATH="$npm_config_prefix/bin:$PATH"
|
|
19
|
+
hash -r
|
|
20
|
+
npm --version
|
|
21
|
+
|
|
22
|
+
GIT_VERSION=$(git describe --tags)
|
|
23
|
+
readonly GIT_VERSION
|
|
24
|
+
readonly PUBLISHED_NPM_PACKAGES=(
|
|
25
|
+
# Published Fontello is used by all builds, and is critical to publish
|
|
26
|
+
girder/web/fontello
|
|
27
|
+
# The raw JS source is used by some downstream 'external builds'
|
|
28
|
+
girder/web
|
|
29
|
+
# These plugins were published to support downstream external builds, and should be kept updated
|
|
30
|
+
plugins/jobs/girder_jobs/web_client
|
|
31
|
+
plugins/oauth/girder_oauth/web_client
|
|
32
|
+
plugins/gravatar/girder_gravatar/web_client
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
# Files a package must contain beyond what its package.json declares
|
|
36
|
+
required_files() {
|
|
37
|
+
case "$1" in
|
|
38
|
+
girder/web)
|
|
39
|
+
# The full source tree for downstream external builds
|
|
40
|
+
echo dist-lib/src/index.ts dist-lib/src/views/App.js
|
|
41
|
+
;;
|
|
42
|
+
esac
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
pack_root=$(mktemp -d)
|
|
46
|
+
trap 'rm -rf "$pack_root"' EXIT
|
|
47
|
+
tarballs=()
|
|
48
|
+
for directory in "${PUBLISHED_NPM_PACKAGES[@]}"; do
|
|
49
|
+
pushd "$directory"
|
|
50
|
+
npm ci
|
|
51
|
+
npm version --allow-same-version --no-git-tag-version "$GIT_VERSION"
|
|
52
|
+
pack_dir="$pack_root/${directory//\//_}"
|
|
53
|
+
mkdir "$pack_dir"
|
|
54
|
+
npm pack --pack-destination "$pack_dir"
|
|
55
|
+
tarball=("$pack_dir"/*.tgz)
|
|
56
|
+
# shellcheck disable=SC2046
|
|
57
|
+
node "$script_dir/check_npm_package.js" "${tarball[0]}" $(required_files "$directory")
|
|
58
|
+
tarballs+=("${tarball[0]}")
|
|
59
|
+
popd
|
|
60
|
+
done
|
|
61
|
+
|
|
62
|
+
for tarball in "${tarballs[@]}"; do
|
|
63
|
+
if [[ ${#dry_run[@]} -eq 0 ]]; then
|
|
64
|
+
NPM_ID_TOKEN=$(circleci run oidc get --claims '{"aud": "npm:registry.npmjs.org"}')
|
|
65
|
+
export NPM_ID_TOKEN
|
|
66
|
+
fi
|
|
67
|
+
npm publish "$tarball" --loglevel warn --access public "${dry_run[@]}"
|
|
68
|
+
done
|
|
@@ -402,6 +402,51 @@ instead. The potential error values are:
|
|
|
402
402
|
current authentication policy.
|
|
403
403
|
|
|
404
404
|
|
|
405
|
+
Local Checkout
|
|
406
|
+
--------------
|
|
407
|
+
`PyPI package <https://pypi.org/project/girder-local-checkout/>`__: ``girder-local-checkout``
|
|
408
|
+
|
|
409
|
+
Data on an S3 assetstore is slower to access than data on a filesystem assetstore. This plugin
|
|
410
|
+
lets users with write access to a folder temporarily "checkout" the folder: every file in the
|
|
411
|
+
folder (recursively) whose data lives on an S3 assetstore is copied to a filesystem assetstore for
|
|
412
|
+
a chosen number of days, and Girder serves the local copy while the checkout lasts. Files added to
|
|
413
|
+
the folder after a checkout are not copied until the checkout is renewed.
|
|
414
|
+
|
|
415
|
+
The folder actions menu gains a **Make files local** item. Choosing it shows how many files can
|
|
416
|
+
be made local, how many already are, and, for a checked-out folder, the days remaining. The
|
|
417
|
+
duration can be lengthened or shortened, or the checkout released; copying and releasing happen in
|
|
418
|
+
background tasks on the ``local`` worker queue, so a worker must be available.
|
|
419
|
+
|
|
420
|
+
Each checkout is tracked per folder. A file keeps its local copy until the latest expiration of
|
|
421
|
+
every checkout that covers it, so checking out a parent folder for a short time never shortens a
|
|
422
|
+
longer checkout of a subfolder. When a file's local copy is released, the file once again refers
|
|
423
|
+
to its S3 data; deleting or replacing a checked-out file removes both the local copy and the S3
|
|
424
|
+
data. An S3 assetstore cannot be deleted while a checked-out file's original data is on it.
|
|
425
|
+
|
|
426
|
+
Expired checkouts are cleaned up daily, before each new checkout, and on demand via
|
|
427
|
+
``POST /local_checkout/cleanup``. Free space on the filesystem assetstore is computed with the
|
|
428
|
+
``GIRDER_FILESYSTEMASSETSTORE_RESERVED_MBYTES`` reservation applied. If a checkout needs more space
|
|
429
|
+
than is free, local copies that expire sooner than the new checkout are released first; if there
|
|
430
|
+
is still not enough room, the checkout is left partial and says so. Likewise, an upload to the
|
|
431
|
+
filesystem assetstore that would not otherwise fit releases local copies, soonest-expiring first,
|
|
432
|
+
rather than failing.
|
|
433
|
+
|
|
434
|
+
Administrators can list all checkouts, the files and space they use, and each assetstore's free
|
|
435
|
+
space with ``GET /local_checkout``. The plugin's configuration page shows the same summary and
|
|
436
|
+
has these settings:
|
|
437
|
+
|
|
438
|
+
* **Assetstore for local copies**: the filesystem assetstore that receives the copies. By default
|
|
439
|
+
the current default assetstore is used. If that is not a filesystem assetstore, the user picks
|
|
440
|
+
one of the filesystem assetstores when checking out a folder (via the ``assetstoreId``
|
|
441
|
+
parameter of ``PUT /folder/{id}/local_checkout``, which may be omitted when there is only one),
|
|
442
|
+
and the feature is unavailable only if there are no filesystem assetstores.
|
|
443
|
+
* **Maximum checkout duration**: the most days a checkout may last (default 90).
|
|
444
|
+
* **Only administrators may checkout folders**: restrict the feature to site administrators;
|
|
445
|
+
other users do not see the folder action.
|
|
446
|
+
|
|
447
|
+
This plugin requires the Jobs plugin and currently only copies files from S3 assetstores.
|
|
448
|
+
|
|
449
|
+
|
|
405
450
|
README
|
|
406
451
|
------
|
|
407
452
|
`PyPI package <https://pypi.org/project/girder-readme/>`__: ``girder-readme``
|