swh.web 0.16.3__py3-none-any.whl → 0.16.4__py3-none-any.whl
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.
- swh/web/add_forge_now/templates/add-forge-request-dashboard.html +5 -2
- swh/web/api/views/origin.py +2 -2
- swh/web/archive_coverage/views.py +4 -7
- swh/web/badges/__init__.py +1 -1
- swh/web/badges/assets/index.js +40 -14
- swh/web/browse/assets/browse/browse.css +5 -0
- swh/web/browse/assets/browse/sidetabs.js +3 -16
- swh/web/browse/templates/browse-iframe.html +9 -7
- swh/web/browse/templates/browse-origin-visits.html +2 -2
- swh/web/browse/templates/browse-revision.html +5 -3
- swh/web/browse/templates/includes/content-display.html +10 -5
- swh/web/browse/templates/includes/readme-display.html +3 -2
- swh/web/browse/templates/includes/show-metadata.html +3 -2
- swh/web/browse/templates/includes/sidetabs.html +9 -7
- swh/web/browse/templates/includes/top-navigation.html +2 -1
- swh/web/browse/tests/views/test_origin.py +3 -1
- swh/web/deposit/templates/deposit-admin.html +6 -1
- swh/web/static/css/{archive_coverage.70eba3d32ed75472d638.css → archive_coverage.df54ae8fe40453ecd972.css} +2 -2
- swh/web/static/css/archive_coverage.df54ae8fe40453ecd972.css.map +1 -0
- swh/web/static/css/browse.633076034514e6a3977d.css +2 -0
- swh/web/static/css/browse.633076034514e6a3977d.css.map +1 -0
- swh/web/static/css/guided_tour.d496a0c252e1bb193496.css +2 -0
- swh/web/static/css/{guided_tour.62c03630e944b8b8d9ad.css.map → guided_tour.d496a0c252e1bb193496.css.map} +1 -1
- swh/web/static/css/{highlightjs.0c1b181eb006699a4c3e.css → highlightjs.37238c93749cb449800d.css} +2 -2
- swh/web/static/css/highlightjs.37238c93749cb449800d.css.map +1 -0
- swh/web/static/css/origin_visits.9a796c4df6606bd9905f.css +2 -0
- swh/web/static/css/origin_visits.9a796c4df6606bd9905f.css.map +1 -0
- swh/web/static/css/vendors.a4844da6ce54cbc04960.css +24 -0
- swh/web/static/css/vendors.a4844da6ce54cbc04960.css.map +1 -0
- swh/web/static/css/{webapp.4655323082740f1a4862.css → webapp.e995faa24f8c84db0d06.css} +2 -2
- swh/web/static/css/webapp.e995faa24f8c84db0d06.css.map +1 -0
- swh/web/static/js/add_forge_now.e85d09463e38c1e19632.js +3 -0
- swh/web/static/js/add_forge_now.e85d09463e38c1e19632.js.map +1 -0
- swh/web/static/js/auth.06c697ab58b81d08ebce.js +3 -0
- swh/web/static/js/auth.06c697ab58b81d08ebce.js.map +1 -0
- swh/web/static/js/badges.50941e27bf5e4453b0e0.js +3 -0
- swh/web/static/js/badges.50941e27bf5e4453b0e0.js.LICENSE.txt +6 -0
- swh/web/static/js/badges.50941e27bf5e4453b0e0.js.map +1 -0
- swh/web/static/js/browse.3f22819b69002c8b6407.js +3 -0
- swh/web/static/js/browse.3f22819b69002c8b6407.js.map +1 -0
- swh/web/static/js/deposit.d47e18177b16ccdbdb84.js.map +1 -1
- swh/web/static/js/{highlightjs.14fc09414685bf90c554.js → highlightjs.516e784a1e62011c7605.js} +3 -3
- swh/web/static/js/highlightjs.516e784a1e62011c7605.js.map +1 -0
- swh/web/static/js/mailmap.de04f685e56eff5b627f.js +3 -0
- swh/web/static/js/mailmap.de04f685e56eff5b627f.js.map +1 -0
- swh/web/static/js/mathjax.98ef576f318f1a0b0c4a.js.map +1 -1
- swh/web/static/js/pdf.worker.min.js +1 -1
- swh/web/static/js/pdfjs.018d9890c044b3612ece.js +3 -0
- swh/web/static/js/pdfjs.018d9890c044b3612ece.js.map +1 -0
- swh/web/static/js/{revision.61c9277f4a4c63df0f45.js → revision.122a31614a5f9abffc3c.js} +3 -3
- swh/web/static/js/revision.122a31614a5f9abffc3c.js.map +1 -0
- swh/web/static/js/save_code_now.d4d8fc47420a4badb683.js +3 -0
- swh/web/static/js/save_code_now.d4d8fc47420a4badb683.js.map +1 -0
- swh/web/static/js/vault.d2ec3dd1d84a8d038a6c.js +3 -0
- swh/web/static/js/vault.d2ec3dd1d84a8d038a6c.js.map +1 -0
- swh/web/static/js/vendors.f62cb86cf3b92ae280ee.js +3 -0
- swh/web/static/js/{vendors.9fc5b97b8e4691b7272e.js.LICENSE.txt → vendors.f62cb86cf3b92ae280ee.js.LICENSE.txt} +5 -1
- swh/web/static/js/vendors.f62cb86cf3b92ae280ee.js.map +1 -0
- swh/web/static/js/webapp.e93873983e400db67bf8.js +3 -0
- swh/web/static/js/{webapp.c5e37f8f7bfc8bb87ad8.js.map → webapp.e93873983e400db67bf8.js.map} +1 -1
- swh/web/static/jssources/assets/src/utils/functions.js +4 -4
- swh/web/static/jssources/datatables.net/js/dataTables.mjs +108 -44
- swh/web/static/jssources/datatables.net-fixedheader/js/dataTables.fixedHeader.mjs +10 -4
- swh/web/static/jssources/datatables.net-fixedheader/node_modules/datatables.net/js/dataTables.mjs +14027 -0
- swh/web/static/jssources/datatables.net-fixedheader-bs5/node_modules/datatables.net/js/dataTables.mjs +14027 -0
- swh/web/static/jssources/datatables.net-fixedheader-bs5/node_modules/datatables.net-bs5/js/dataTables.bootstrap5.mjs +81 -0
- swh/web/static/jssources/highlightjs-macaulay2/dist/macaulay2.min.js +3 -3
- swh/web/static/jssources/jslicenses.json +1 -1
- swh/web/static/jssources/pdfjs-dist/build/pdf.worker.mjs +885 -596
- swh/web/static/jssources/pdfjs-dist/legacy/build/pdf.mjs +4982 -4566
- swh/web/static/jssources/swh/web/badges/assets/index.js +40 -14
- swh/web/static/jssources/swh/web/browse/assets/browse/sidetabs.js +3 -16
- swh/web/static/jssources/swh/web/vault/assets/vault-ui.js +6 -4
- swh/web/static/jssources/swh/web/webapp/assets/webapp/webapp-utils.js +18 -1
- swh/web/static/security.txt +3 -0
- swh/web/static/webpack-stats.json +240 -235
- swh/web/utils/swh_templatetags.py +8 -13
- swh/web/vault/assets/vault-ui.js +6 -4
- swh/web/webapp/assets/webapp/webapp-utils.js +18 -1
- swh/web/webapp/assets/webapp/webapp.css +8 -0
- swh/web/webapp/templates/layout.html +13 -10
- swh/web/webapp/tests/test_views.py +16 -1
- {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/METADATA +2 -3
- {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/RECORD +98 -93
- swh/web/static/css/archive_coverage.70eba3d32ed75472d638.css.map +0 -1
- swh/web/static/css/browse.0a250d3b07ce628588a5.css +0 -2
- swh/web/static/css/browse.0a250d3b07ce628588a5.css.map +0 -1
- swh/web/static/css/guided_tour.62c03630e944b8b8d9ad.css +0 -2
- swh/web/static/css/highlightjs.0c1b181eb006699a4c3e.css.map +0 -1
- swh/web/static/css/origin_visits.88099d68a63f86af2f8e.css +0 -2
- swh/web/static/css/origin_visits.88099d68a63f86af2f8e.css.map +0 -1
- swh/web/static/css/vendors.1cfc8080eed63af482cf.css +0 -24
- swh/web/static/css/vendors.1cfc8080eed63af482cf.css.map +0 -1
- swh/web/static/css/webapp.4655323082740f1a4862.css.map +0 -1
- swh/web/static/js/add_forge_now.e25d1ad2ab6c45e60b67.js +0 -3
- swh/web/static/js/add_forge_now.e25d1ad2ab6c45e60b67.js.map +0 -1
- swh/web/static/js/auth.bd2f475f49caa9f84e99.js +0 -3
- swh/web/static/js/auth.bd2f475f49caa9f84e99.js.map +0 -1
- swh/web/static/js/badges.f02607179ad0264e7522.js +0 -2
- swh/web/static/js/badges.f02607179ad0264e7522.js.map +0 -1
- swh/web/static/js/browse.fc5d5fafca71e03d2add.js +0 -3
- swh/web/static/js/browse.fc5d5fafca71e03d2add.js.map +0 -1
- swh/web/static/js/highlightjs.14fc09414685bf90c554.js.map +0 -1
- swh/web/static/js/mailmap.631c53127ba5511ebda7.js +0 -3
- swh/web/static/js/mailmap.631c53127ba5511ebda7.js.map +0 -1
- swh/web/static/js/pdfjs.40675676ebcbdde8baab.js +0 -3
- swh/web/static/js/pdfjs.40675676ebcbdde8baab.js.map +0 -1
- swh/web/static/js/revision.61c9277f4a4c63df0f45.js.map +0 -1
- swh/web/static/js/save_code_now.4211098f5dd740dc49b4.js +0 -3
- swh/web/static/js/save_code_now.4211098f5dd740dc49b4.js.map +0 -1
- swh/web/static/js/vault.4eaa8dbf376ebe9cdc7f.js +0 -3
- swh/web/static/js/vault.4eaa8dbf376ebe9cdc7f.js.map +0 -1
- swh/web/static/js/vendors.9fc5b97b8e4691b7272e.js +0 -3
- swh/web/static/js/vendors.9fc5b97b8e4691b7272e.js.map +0 -1
- swh/web/static/js/webapp.c5e37f8f7bfc8bb87ad8.js +0 -3
- /swh/web/static/js/{add_forge_now.e25d1ad2ab6c45e60b67.js.LICENSE.txt → add_forge_now.e85d09463e38c1e19632.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{auth.bd2f475f49caa9f84e99.js.LICENSE.txt → auth.06c697ab58b81d08ebce.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{browse.fc5d5fafca71e03d2add.js.LICENSE.txt → browse.3f22819b69002c8b6407.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{highlightjs.14fc09414685bf90c554.js.LICENSE.txt → highlightjs.516e784a1e62011c7605.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{mailmap.631c53127ba5511ebda7.js.LICENSE.txt → mailmap.de04f685e56eff5b627f.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{pdfjs.40675676ebcbdde8baab.js.LICENSE.txt → pdfjs.018d9890c044b3612ece.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{revision.61c9277f4a4c63df0f45.js.LICENSE.txt → revision.122a31614a5f9abffc3c.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{save_code_now.4211098f5dd740dc49b4.js.LICENSE.txt → save_code_now.d4d8fc47420a4badb683.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{vault.4eaa8dbf376ebe9cdc7f.js.LICENSE.txt → vault.d2ec3dd1d84a8d038a6c.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{webapp.c5e37f8f7bfc8bb87ad8.js.LICENSE.txt → webapp.e93873983e400db67bf8.js.LICENSE.txt} +0 -0
- {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/WHEEL +0 -0
- {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/licenses/AUTHORS +0 -0
- {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/licenses/LICENSE +0 -0
- {swh_web-0.16.3.dist-info → swh_web-0.16.4.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css/webapp.4655323082740f1a4862.css","mappings":"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","sources":["webpack://swh/./swh/web/webapp/assets/webapp/breadcrumbs.css","webpack://swh/./swh/web/webapp/assets/webapp/webapp.css","webpack://swh/./swh/web/webapp/assets/webapp/history-counters.css","webpack://swh/./swh/web/webapp/assets/webapp/notebook.css","webpack://swh/./swh/web/webapp/assets/webapp/status-widget.css","webpack://swh/./swh/web/webapp/assets/webapp/heading-anchors.css"],"sourcesContent":["/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.bread-crumbs {\n display: inline-block;\n overflow: hidden;\n color: rgb(0 0 0 / 55%);\n}\n\n.bread-crumbs ul {\n list-style-type: none;\n height: 100%;\n}\n\n.bread-crumbs li {\n float: left;\n list-style-type: none;\n}\n\n.bread-crumbs a {\n color: rgb(0 0 0 / 75%);\n border-bottom-style: none;\n}\n\n.bread-crumbs a:hover {\n color: rgb(0 0 0 / 85%);\n text-decoration: underline;\n}\n","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nhtml {\n height: 100%;\n overflow-x: hidden;\n scroll-behavior: auto !important;\n}\n\nbody {\n min-height: 100%;\n margin: 0;\n position: relative;\n overflow-y: clip;\n}\n\n/* The Alegreya font used in swh-web ships some ligatures producing\nconfusing text rendering, for instance the ligatures for `~` and some\ncharacters like e, y, u, ... so disable font common ligatures */\n* {\n font-variant-ligatures: no-common-ligatures;\n}\n\na:active,\na.active {\n outline: none;\n}\n\na:focus-visible,\n.page-item:focus-visible,\n.page-link:focus-visible {\n outline:rgb(226 0 38 / 25%) 4px solid !important;\n z-index: 100;\n}\n\n.swh-top-bar a:focus-visible,\nfooter a:focus-visible {\n outline:rgb(226 0 38 / 75%) 3px solid !important;\n}\n\ncode {\n background-color: #f9f2f4;\n}\n\npre code {\n background-color: transparent;\n}\n\nfooter {\n background-color: #262626 !important;\n color: #fff !important;\n font-size: 0.8rem;\n width: 100%;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\nfooter a,\nfooter a:visited,\nfooter a:hover {\n color: #fecd1b;\n}\n\n\npre {\n background-color: #f5f5f5;\n color: #212529;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 9.5px;\n font-size: 0.8rem;\n}\n\n.app-content {\n padding-top: 10px;\n}\n\n.app-main {\n overflow: hidden !important;\n}\n\n.btn.active {\n background-color: #e7e7e7;\n}\n\n.card {\n margin-bottom: 5px !important;\n overflow-x: auto;\n}\n\n\n.navbar-brand {\n padding: 5px;\n margin-right: 0;\n}\n\n.table {\n margin-bottom: 0;\n}\n\n.swh-table thead {\n background-color: #f2f4f5;\n border-top: 1px solid rgb(0 0 0 / 20%);\n font-weight: normal;\n}\n\n.swh-table-striped th {\n border-top: none;\n}\n\n.swh-table-striped tbody tr:nth-child(even) {\n background-color: #f2f4f5 !important;\n}\n\n.swh-table-striped tbody tr:nth-child(odd) {\n background-color: #fff !important;\n}\n\n.table > thead > tr > th {\n border-top: none;\n border-bottom: 1px solid #e20026;\n}\n\n.table > tbody > tr > td {\n border-style: none;\n}\n\n.sitename .first-word,\n.sitename .second-word {\n color: rgb(0 0 0 / 75%);\n font-weight: normal;\n font-size: 1.2rem;\n}\n\n.sitename .first-word {\n font-family: \"Alegreya Sans\", sans-serif;\n}\n\n.sitename .second-word {\n font-family: Alegreya, serif;\n}\n\n.swh-counter {\n font-size: 150%;\n}\n\n@media (max-width: 600px) {\n .swh-counter-container {\n margin-top: 1rem;\n }\n}\n\n.swh-http-error {\n margin: 0 auto;\n text-align: center;\n}\n\n.swh-http-error-head {\n color: #2d353c;\n font-size: 30px;\n}\n\n.swh-http-error-code {\n bottom: 60%;\n color: #2d353c;\n font-size: 96px;\n line-height: 80px;\n margin-bottom: 10px !important;\n}\n\n.swh-http-error-desc {\n font-size: 12px;\n color: #647788;\n text-align: center;\n}\n\n.swh-http-error-desc pre {\n display: inline-block;\n text-align: left;\n max-width: 800px;\n white-space: pre-wrap;\n}\n\n.swh-list-unstyled {\n list-style: none;\n}\n\n.popover {\n max-width: 97%;\n z-index: 40000;\n}\n\n.modal {\n text-align: center;\n padding: 0 !important;\n z-index: 50000;\n}\n\n.modal::before {\n content: \"\";\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n margin-right: -4px;\n}\n\n.modal-dialog {\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n}\n\n.dropdown-submenu {\n position: relative;\n}\n\n.dropdown-submenu .dropdown-menu {\n top: 0;\n left: -100%;\n margin-top: -5px;\n margin-left: -2px;\n}\n\n.dropdown-item:hover,\n.dropdown-item:focus {\n background-color: rgb(0 0 0 / 10%);\n}\n\na.dropdown-left::before {\n content: \"\\f035e\";\n font-family: \"Material Design Icons\";\n display: block;\n width: 20px;\n height: 20px;\n float: left;\n margin-left: 0;\n}\n\n.swh-navbar {\n border-style: solid;\n border-top-style: none;\n border-left-style: none;\n border-right-style: none;\n border-bottom-width: 5px;\n border-image:\n linear-gradient(\n to right,\n rgb(226 0 38) 0%,\n rgb(254 205 27) 100%\n )\n 1 1 1 1;\n width: 100%;\n padding: 5px;\n margin-top: 30px;\n justify-content: normal;\n flex-wrap: nowrap;\n height: 72px;\n overflow: hidden;\n}\n\n.swh-navbar-banner {\n margin-top: 60px !important;\n}\n\n#back-to-top {\n display: none;\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 10;\n}\n\n#back-to-top a img {\n display: block;\n width: 32px;\n height: 32px;\n background-size: 32px 32px;\n text-indent: -999px;\n overflow: hidden;\n}\n\n.swh-top-bar {\n direction: ltr;\n height: 30px;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 99999;\n background-color: #262626;\n color: #fff;\n text-align: center;\n font-size: 14px;\n}\n\n.swh-top-bar ul {\n margin-top: 4px;\n padding-left: 0;\n white-space: nowrap;\n}\n\n.swh-top-bar li {\n display: inline-block;\n margin-left: 10px;\n margin-right: 10px;\n}\n\n.swh-top-bar a,\n.swh-top-bar a:visited {\n color: white;\n}\n\n.swh-top-bar a.swh-current-site,\n.swh-top-bar a.swh-current-site:visited {\n color: #fecd1b;\n}\n\n.swh-banner {\n height: 30px;\n position: fixed;\n top: 30px;\n left: 0;\n width: 100%;\n z-index: 99999;\n border: none;\n}\n\n.swh-banner .row {\n height: 30px;\n background-color: #fecd1b;\n color: #e20026;\n font-size: larger;\n}\n\n.swh-position-left {\n position: absolute;\n left: 0;\n}\n\n.swh-position-right {\n position: absolute;\n right: 0;\n}\n\n.swh-background-gray {\n background: #f6f5f4;\n}\n\n.swh-donate-link {\n border: 1px solid #fecd1b;\n background-color: #e20026;\n color: white !important;\n padding: 3px;\n border-radius: 3px;\n}\n\n.swh-navbar-content h4 {\n padding-top: 11px;\n padding-left: 15px;\n}\n\n.swh-navbar-content .bread-crumbs {\n display: block;\n margin-left: -40px;\n}\n\n.swh-navbar-content .bread-crumbs li.bc-no-root {\n padding-top: 0.7rem;\n}\n\n.app-sidebar {\n background: white;\n top: 30px !important;\n max-height: calc(100vh - 30px) !important;\n}\n\n.app-sidebar-banner {\n margin-top: 60px;\n}\n\n.content-wrapper {\n background: none;\n}\n\n.swh-push-menu {\n padding-top: 5px;\n}\n\n.sidebar-brand {\n padding-top: 18.5px;\n padding-bottom: 18px;\n padding-left: 4px;\n border-bottom: 5px solid #e20026 !important;\n height: 4.5rem;\n font-weight: 500;\n}\n\n.brand-image {\n max-height: 40px;\n}\n\n.sidebar-brand:hover,\n.sidebar-brand:focus {\n color: #323232 !important;\n background-color: #e7e7e7 !important;\n}\n\n.sidebar-menu .nav-link p {\n padding-top: 5px;\n}\n\n.navbar-header a,\nul.dropdown-menu a,\nul.navbar-nav a,\nul.nav.sidebar-menu a {\n border-bottom-style: none;\n color: #323232;\n}\n\n.nav.sidebar-menu .nav-icon\n\n.nav-tabs .nav-link.active {\n border-top: 3px solid #e20026;\n}\n\n.swh-menu-item .nav-icon {\n color: #e20026 !important;\n}\n\n.swh-admin-menu-item .nav-icon {\n color: #fecd1b ! important;\n}\n\n.swh-notification-icon {\n color: #e20026 !important;\n transform: translate(8px, -6px);\n}\n\n.swh-sidebar .nav-link.active,\n.swh-sidebar .nav-link:focus {\n color: #323232 !important;\n background-color: #e7e7e7 !important;\n}\n\n.swh-image-error {\n width: 80px;\n height: auto;\n}\n\n@media (max-width: 600px) {\n .card {\n min-width: 80%;\n }\n\n .swh-image-error {\n width: 40px;\n height: auto;\n }\n\n .swh-donate-link {\n display: none;\n }\n}\n\n.swhid {\n white-space: pre-wrap;\n}\n\n.swhid .swhid-option {\n display: inline-block;\n margin-right: 5px;\n line-height: 1rem;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n color: rgb(0 0 0 / 55%);\n}\n\n.swh-heading-color {\n color: #e20026 !important;\n}\n\n.sidebar-mini.sidebar-collapse .app-sidebar:hover {\n width: 4.6rem;\n\n /* ensure collapsed sidebar is not automatically expanded when hovering it */\n min-width: 4.6rem;\n max-width: 4.6rem;\n}\n\n.sidebar-mini.sidebar-collapse .brand-text {\n display: none !important;\n}\n\n.sidebar-mini.sidebar-collapse .app-sidebar:hover .user-panel > .info,\n.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav.sidebar-menu .nav-link p,\n.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text {\n visibility: hidden !important;\n}\n\n.sidebar-mini.sidebar-collapse .app-sidebar .nav-header {\n display: none;\n}\n\n.swh-words-logo {\n position: absolute;\n top: 0;\n left: 0;\n width: 73px;\n height: 73px;\n text-align: center;\n font-size: 10pt;\n color: rgb(0 0 0 / 75%);\n pointer-events: none;\n}\n\n.swh-words-logo:hover {\n text-decoration: none;\n}\n\n.swh-words-logo-swh {\n line-height: 1;\n padding-top: 13px;\n visibility: hidden;\n}\n\n.sidebar-collapse .swh-words-logo-swh {\n visibility: visible;\n}\n\n.sidebar-open .swh-words-logo-swh {\n visibility: hidden;\n}\n\n.sidebar-open .sidebar-wrapper {\n padding-left: 1.5rem;\n}\n\nhr.swh-faded-line {\n border: 0;\n height: 1px;\n background-image: linear-gradient(to left, #f0f0f0, #8c8b8b, #f0f0f0);\n}\n\n/* Ensure that section title with link is colored like standard section title */\n.swh-readme h1 a,\n.swh-readme h2 a,\n.swh-readme h3 a,\n.swh-readme h4 a,\n.swh-readme h5 a,\n.swh-readme h6 a {\n color: #e20026;\n}\n\n/* Make list compact in reStructuredText rendering */\n.swh-rst li p {\n margin-bottom: 0;\n}\n\n.swh-readme-txt pre {\n background: none;\n border: none;\n white-space: pre-wrap;\n}\n\n.swh-coverage {\n padding-top: 0.3rem;\n border: none;\n overflow: visible;\n}\n\n.swh-coverage a {\n text-decoration: none;\n}\n\n.swh-coverage-col {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.swh-coverage-header {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.swh-coverage-logo {\n display: block;\n width: 100%;\n height: 50px;\n margin-left: auto;\n margin-right: auto;\n object-fit: contain;\n\n /* polyfill for old browsers, see https://github.com/bfred-it/object-fit-images */\n font-family: \"object-fit: contain;\";\n}\n\n.swh-coverage-iframe {\n width: 100%;\n height: 320px;\n border: none;\n}\n\n.swh-coverage-chevron {\n position: absolute;\n right: 0;\n}\n\n.swh-coverage .card-header .mdi {\n transition: 0.3s transform ease-in-out;\n}\n\n.swh-coverage .card-header .collapsed .mdi {\n transform: rotate(90deg);\n}\n\n.swh-coverage-info-body {\n max-height: 150px;\n overflow: auto hidden;\n scrollbar-width: thin; /* Firefox only */\n padding: 0;\n}\n\n/* Thin scrollbar for chromium based browsers */\n\n.swh-coverage-info-body::-webkit-scrollbar {\n width: 4px;\n}\n\n.swh-coverage-info-body::-webkit-scrollbar-track {\n background: #eff0f1;\n}\n\n.swh-coverage-info-body::-webkit-scrollbar-thumb {\n background: #909396;\n}\n\ntr.swh-tr-hover-highlight:hover td {\n background: #ededed;\n}\n\ntr.swh-api-doc-route a {\n text-decoration: none;\n}\n\n.swh-apidoc .col {\n margin: 10px;\n}\n\n.swh-apidoc .swh-rst blockquote {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\na.toggle-col {\n text-decoration: none;\n}\n\na.toggle-col.col-hidden {\n text-decoration: line-through;\n}\n\n.admonition.warning {\n background: #fcf8e3;\n border: 1px solid #faebcc;\n}\n\n.admonition.note {\n background: #dce7fc;\n border: 1px solid #c3d6fa;\n}\n\n.admonition.important {\n background: hsl(28.5deg 74% 90%);\n border: 1px solid hsl(28.5deg 74% 50%);\n}\n\n.admonition.warning,\n.admonition.note,\n.admonition.important {\n padding: 15px;\n border-radius: 4px;\n margin-bottom: 1rem;\n}\n\n.admonition.warning p,\n.admonition.note p,\n.admonition.important p {\n margin-bottom: 0;\n}\n\n.admonition-title {\n font-weight: bold;\n}\n\n.admonition-title::before {\n display: block;\n width: 20px;\n height: 20px;\n float: left;\n margin-left: 0;\n}\n\n.admonition.warning .admonition-title::before {\n content: \"\\f0026\";\n font-family: \"Material Design Icons\";\n}\n\n.admonition.note .admonition-title::before {\n content: \"\\f02fc\";\n font-family: \"Material Design Icons\";\n}\n\n.admonition.important .admonition-title::before {\n content: \"\\f0238\";\n font-family: \"Material Design Icons\";\n}\n\n.swh-popover {\n max-height: 50vh;\n overflow: auto;\n padding: 0;\n}\n\n@media screen and (min-width: 768px) {\n .swh-popover {\n max-width: 50vw;\n }\n}\n\n.swh-popover pre {\n white-space: pre-wrap;\n margin-bottom: 0;\n}\n\n.d3-wrapper {\n position: relative;\n height: 0;\n width: 100%;\n padding: 0;\n\n /* padding-bottom will be overwritten by JavaScript later */\n padding-bottom: 100%;\n}\n\n.d3-wrapper > svg {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\ndiv.d3-tooltip {\n position: absolute;\n text-align: center;\n width: auto;\n height: auto;\n padding: 2px;\n font: 12px sans-serif;\n background: white;\n border: 1px solid black;\n border-radius: 4px;\n pointer-events: none;\n}\n\n.page-link {\n cursor: pointer;\n}\n\n.wrapper {\n overflow: hidden;\n}\n\n/* Material Design icons alignment tweaks */\n\n.mdi {\n display: inline-block;\n}\n\n.mdi-camera {\n transform: translateY(1px);\n}\n\n.mdi-source-commit {\n transform: translateY(2px);\n}\n\n/* To set icons at a fixed width. Great to use when different\n icon widths throw off alignment. Courtesy of Font Awesome. */\n.mdi-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.mdi-stack {\n position: relative;\n display: inline-block;\n width: 1em;\n height: 1em;\n line-height: 1em;\n vertical-align: middle;\n}\n\n.mdi-stack .mdi {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n text-align: center;\n}\n\n.main-header .nav-link {\n height: inherit;\n}\n\n.nav.sidebar-menu .nav-header:not(:first-of-type) {\n padding-top: 1rem;\n}\n\n.nav.sidebar-menu .nav-link {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.nav.sidebar-menu > .nav-item .nav-icon {\n vertical-align: sub;\n}\n\n.swh-search-icon {\n line-height: 1rem;\n vertical-align: middle;\n}\n\n.swh-search-navbar {\n position: absolute;\n top: 1rem;\n right: 4rem;\n z-index: 50000;\n width: 500px;\n}\n\n.swh-corner-ribbon {\n width: 200px;\n background: #f6f5f4;\n color: #e20026;\n position: absolute;\n text-align: center;\n letter-spacing: 1px;\n box-shadow: 0 0 3px rgb(0 0 0 / 30%);\n top: 28px;\n right: -50px;\n left: auto;\n transform: rotate(45deg);\n z-index: 1000;\n}\n\n.swh-corner-ribbon-banner {\n top: 85px;\n}\n\n@media screen and (max-width: 600px) {\n .swh-corner-ribbon {\n top: 24px;\n right: -55px;\n }\n}\n\n.invalid-feedback {\n font-size: 100%;\n}\n\n.swh-required-label::after {\n content: \"*\";\n color: #f00;\n}\n\n.docutils.literal {\n background-color: #f9f2f4;\n color: #c7254e;\n font-family: monospace;\n}\n\n.swh-text-under-logo, .swh-mirror-text-under-logo {\n position: absolute;\n top: 45px;\n}\n\n.swh-text-under-logo {\n left: 30px;\n}\n\n.swh-mirror-text-under-logo {\n left: 33px;\n}\n\n.sidebar-collapse .swh-text-under-logo {\n left: 15px;\n}\n\n.sidebar-collapse .swh-mirror-text-under-logo {\n left: 17px;\n}\n\n.swh-mirror-partner-logo {\n position: absolute;\n top: 0;\n right: 47rem;\n z-index: 50000;\n height: 100%;\n}\n\n.sidebar-collapse .swh-mirror-partner-logo {\n right: 36rem;\n}\n\n.swh-mirror-partner-logo-no-search {\n right: 15rem;\n}\n\n.sidebar-collapse .swh-mirror-partner-logo-no-search {\n right: 5rem;\n}\n\n.sidebar-collapse .swh-origin-save-link .mdi-open-in-new,\n.sidebar-collapse .swh-add-forge-now-link .mdi-open-in-new {\n position: absolute;\n left: 35px;\n top: 5px;\n}\n\n#swh-web-api-link {\n color: #e20026;\n}\n\np a {\n text-decoration: underline;\n}\n\n.skipnav {\n text-align: left;\n}\n\n.skipnav a {\n position: absolute;\n left: -10000px;\n top: 5px;\n width: auto;\n height: auto;\n text-decoration: underline;\n background: black;\n color: white;\n z-index: 100000;\n}\n\n.skipnav a:focus,\n.skipnav a:active {\n left: 5px;\n}\n\n#swh-login,\n#swh-logout {\n text-decoration: underline;\n}\n\n#swh-logout-form {\n display: inline;;\n}\n\n#swh-logout-form button {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n text-decoration: underline;\n color: white !important;\n}\n\n.select-no-arrows {\n background: none !important;\n}\n\n\n\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-history-counter-line {\n fill: none;\n stroke: #ffab00;\n stroke-width: 3;\n}\n\n.swh-history-counter-overlay {\n fill: none;\n pointer-events: all;\n}\n\n.swh-history-counter-focus circle {\n fill: none;\n stroke: #ffab00;\n stroke-width: 3;\n}\n\n.swh-history-counter-focus text {\n font-size: 14px;\n}\n\n.swh-history-counter-tooltip {\n fill: white;\n stroke: #000;\n}\n","/**\n * Copyright (C) 2019-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n/* Adapted from https://github.com/jsvine/nbpreview/blob/master/css/vendor/notebook.css */\n\n.nb-notebook {\n line-height: 1.5;\n padding-left: 6em;\n overflow-y: hidden;\n}\n\n.nb-worksheet {\n width: 99%;\n}\n\n.nb-stdout,\n.nb-stderr {\n white-space: pre-wrap;\n margin: 1em 0;\n padding: 0.1em 0.5em;\n}\n\n.nb-stderr {\n background-color: #faa;\n}\n\n.nb-cell + .nb-cell {\n margin-top: 0.5em;\n}\n\n.nb-output table {\n border: 1px solid #000;\n border-collapse: collapse;\n}\n\n.nb-output th {\n font-weight: bold;\n}\n\n.nb-output th,\n.nb-output td {\n border: 1px solid #000;\n padding: 0.25em;\n text-align: left;\n vertical-align: middle;\n border-collapse: collapse;\n}\n\n.nb-cell {\n position: relative;\n}\n\n.nb-raw-cell {\n white-space: pre-wrap;\n background-color: #f5f2f0;\n font-family: Consolas, Monaco, \"Andale Mono\", monospace;\n padding: 1em;\n margin: 0 0.5em;\n}\n\n.nb-input {\n border: 1px solid #cfcfcf;\n border-radius: 2px;\n background: #f7f7f7;\n margin: 0.4em;\n padding: 0;\n}\n\n.nb-notebook pre {\n margin: 0.4em !important;\n border: none;\n padding: 0;\n background-color: transparent;\n min-height: 1rem;\n}\n\n.nb-output {\n min-height: 1em;\n overflow-x: auto;\n margin-left: 0.5em;\n margin-right: 0.5em;\n}\n\n.nb-output img {\n max-width: 100%;\n}\n\n.nb-output::before,\n.nb-input::before {\n position: absolute;\n font-family: monospace;\n color: #999;\n left: -7.5em;\n width: 7em;\n text-align: right;\n font-size: 14px;\n}\n\n.nb-input::before {\n content: \"In [\" attr(data-prompt-number) \"]:\";\n color: #303f9f;\n}\n\n.nb-output::before {\n content: \"Out [\" attr(data-prompt-number) \"]:\";\n color: #d84315;\n}\n\n.nb-latex-output .MathJax_Display {\n text-align: left !important;\n}\n\n.nb-markdown-cell,\n.nb-heading-cell {\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.nb-code-cell {\n margin: 0.4em;\n}\n\n.nb-output pre {\n margin-top: 0.2em !important;\n}\n\n@media screen and (max-width: 600px) {\n .nb-notebook {\n padding-left: 0;\n }\n\n .nb-input {\n margin-top: 2em !important;\n }\n\n .nb-output::before,\n .nb-input::before {\n text-align: left;\n }\n\n .nb-input::before {\n left: 0.5em;\n top: -2em;\n }\n\n .nb-output::before {\n position: relative;\n left: 0;\n top: 0;\n }\n}\n","/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-current-status-indicator {\n width: 12px;\n height: 12px;\n margin: 0 0 0 5px;\n display: inline-block;\n border-radius: 6px;\n}\n\n.swh-current-status-indicator.small {\n width: 8px;\n height: 8px;\n margin: 0 0 0 5px;\n display: inline-block;\n border-radius: 4px;\n}\n\n.swh-current-status-indicator.green {\n background: #27ae60;\n}\n\n.swh-current-status-indicator.yellow {\n background: #ffa837;\n}\n\n.swh-current-status-indicator.red {\n background: #c44031;\n}\n\n.swh-current-status-indicator.blue {\n background: #00aaf0;\n}\n","/**\n * Copyright (C) 2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n /* to prevent headings being covered by sticky top bar */\n:target::before {\n content: \"\";\n display: block;\n margin-top: -30px;\n height: 30px;\n width: 1px;\n}\n\n.swh-heading-anchor {\n color: #e20026;\n}"],"names":[],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see add_forge_now.e25d1ad2ab6c45e60b67.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.swh=t():(e.swh=e.swh||{},e.swh.add_forge_now=t())}(self,function(){return function(){var __webpack_modules__={887:function(e,t,n){var r=n(16993),o=n(11791);e.exports=function(e,t,n,a,s){return new o(r().w(e,t,n,a),s||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},4373:function(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},4633:function(e,t,n){var r=n(25172),o=n(16993),a=n(55869),s=n(887),i=n(11791),u=n(4373),c=n(30579);function p(){"use strict";var t=o(),n=t.m(p),l=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function d(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function _(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,o,a){return t.resultName=o,n(r.d,c(e),a)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=p=function(){return{wrap:function(e,n,r,o){return t.w(_(e),n,r,o&&o.reverse())},isGeneratorFunction:d,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:i,async:function(e,t,n,r,o){return(d(t)?s:a)(_(e),t,n,r,o)},keys:u,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},8545:function(e,t,n){"use strict";n.d(t,{Eb:function(){return p},Jq:function(){return i},Kb:function(){return u},Tv:function(){return o},XE:function(){return a},jt:function(){return l},lY:function(){return s},wv:function(){return c}});n(54756);var r=n(18987);function o(e){if(!e.ok)throw e;return e}function a(e,t){var n="";try{var r=JSON.parse(e.reason);Object.entries(r).forEach(function(e,t){var r=e[0],o=e[1][0];n+="\n"+r+": "+o})}catch(t){n=e.reason}return n?"Error: "+n:t}function s(e,t){var n="/static/"+e;return n.startsWith("/")&&t&&(n=t+n),n}function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n=null),t["X-CSRFToken"]=r.A.get("csrftoken"),fetch(e,{credentials:"include",headers:t,method:"POST",body:n})}function u(e){var t=document.createElement("textarea");return t.innerText=e,t.innerHTML}function c(e,t){void 0===t&&(t=[]);var n=null,r=!0;try{n=new URL(e)}catch(e){r=!1}return r&&t.length&&(r=void 0!==t.find(function(e){return e===n.protocol})),r?n:null}function p(e){return new Date(e).toLocaleString()}function l(e,t,n,r){if(void 0===n&&(n=!1),void 0===r&&(r=""),"display"===t&&e){var o=encodeURI(e);r||(r=o);var a="";return n&&(a='target="_blank" rel="noopener noreferrer"'),'<a href="'+o+'" '+a+">"+r+"</a>"}return e}},10467:function(e,t,n){"use strict";function r(e,t,n,r,o,a,s){try{var i=e[a](s),u=i.value}catch(e){return void n(e)}i.done?t(u):Promise.resolve(u).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise(function(o,a){var s=e.apply(t,n);function i(e){r(s,o,a,i,u,"next",e)}function u(e){r(s,o,a,i,u,"throw",e)}i(void 0)})}}n.d(t,{A:function(){return o}})},11032:function(e,t,n){"use strict";n.d(t,{JX:function(){return j},gM:function(){return k},sI:function(){return T}});var r,o=n(58168),a=n(10467),s=n(77387),i=n(65579),u=n(54756),c=n.n(u),p=n(8545),l=n(71407),d=n.n(l),f=n(23717),_="swh-add-forge-user-filter",h=d()({inputId:_,checked:!1}),g=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.A)(t,e),t}((0,i.A)(Error));function m(e,t,n){var r=("\n GET "+e+"\n "+n+"\n\n Remove all user/group/repo names.\n Remove everything after both of those.").replace(/^\s+/,"").replace(/\n[ \t]+/g,"\n"),o=("\n "+t+":\n\n "+r).replace(/^\s+/,"").replace(/\n[ \t]+/g,"\n"),a=r.replaceAll("\n\n","\n"),s=(0,p.Kb)(a);throw $("#userMessage").text(t),$("#userMessageDetail").html(s),$("#userMessage").removeClass("text-bg-info"),$("#userMessage").addClass("text-bg-danger"),$("#swh-input-forge-url").get(0).setCustomValidity(o),n}function v(e){var t="GitLab instance has no public projects";throw $("#userMessage").text(e),$("#userMessageDetail").text(t),$("#userMessage").removeClass("text-bg-info"),$("#userMessage").addClass("text-bg-danger"),$("#swh-input-forge-url").get(0).setCustomValidity(t),new g(t)}function b(){$("#userMessage").text("GitLab instance has public projects"),$("#userMessageDetail").empty(),$("#userMessage").removeClass("text-bg-info"),$("#userMessage").addClass("text-bg-success")}function w(){return y.apply(this,arguments)}function y(){return(y=(0,a.A)(c().mark(function e(){var t,n,r,o,a,s;return c().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return $("#userMessage").text("GitLab instance projects API loading"),$("#userMessageDetail").text("Checking available public projects"),$("#userMessage").removeClass("text-bg-danger"),$("#userMessage").removeClass("text-bg-success"),$("#userMessage").addClass("text-bg-info"),t=$("#swh-input-forge-url").val().trim(),n=t+"api/v4/projects?per_page=1",r="GitLab instance projects API issue",e.prev=1,e.next=2,fetch(n);case 2:return(o=e.sent).ok||m(n,r,"HTTP "+o.status+" "+o.statusText),e.next=3,o.json();case 3:a=e.sent,Array.isArray(a)?0===a.length?v(r):b():m(n,r,"JSON data is not an array"),e.next=6;break;case 4:if(e.prev=4,!((s=e.catch(1))instanceof g)){e.next=5;break}throw s;case 5:m(n,r,s);case 6:case"end":return e.stop()}},e,null,[[1,4]])}))).apply(this,arguments)}function x(){return R.apply(this,arguments)}function R(){return(R=(0,a.A)(c().mark(function e(){var t;return c().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=$("#swh-input-forge-type").val(),!["gitlab","heptapod"].includes(t)){e.next=1;break}return e.next=1,w();case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function k(){$(document).ready(function(){$("#requestCreateForm").submit(function(){var e=(0,a.A)(c().mark(function e(t){var n,o,a,s;return c().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.preventDefault(),"on"!==$("#swh-input-forge-validate").val()){e.next=4;break}return e.prev=1,e.next=2,x();case 2:e.next=4;break;case 3:return e.prev=3,e.catch(1),e.abrupt("return");case 4:return e.prev=4,e.next=5,(0,p.Jq)($(this).attr("action"),{"Content-Type":"application/x-www-form-urlencoded"},$(this).serialize());case 5:n=e.sent,(0,p.Tv)(n),$("#userMessageDetail").empty(),$("#userMessage").text("Your request has been submitted"),$("#userMessage").removeClass("text-bg-danger"),$("#userMessage").addClass("text-bg-success"),r.draw(),e.next=8;break;case 6:return e.prev=6,s=e.catch(4),$("#userMessageDetail").empty(),e.next=7,s.json();case 7:a=e.sent,o=409===s.status?a:(0,p.XE)(a,"An unknown error occurred during the request creation"),$("#userMessage").text(o),$("#userMessage").removeClass("text-bg-success"),$("#userMessage").addClass("text-bg-danger");case 8:case"end":return e.stop()}},e,this,[[1,3],[4,6]])}));return function(t){return e.apply(this,arguments)}}()),T()})}function T(){r=$("#add-forge-request-browse").on("error.dt",function(e,t,n,r){$("#add-forge-browse-request-error").text(r)}).DataTable((0,o.A)({},f._k,{retrieve:!0,searching:!0,dom:'<"row mb-2"<"col-sm-3"l><"col-sm-6 text-start user-requests-filter"><"col-sm-3"f>><"row"<"col-sm-12"tr>><"row mt-2"<"col-sm-5"i><"col-sm-7"p>>',ajax:{url:Urls.add_forge_request_list_datatables(),data:function(e){var t=$("#"+_).prop("checked");swh.webapp.isUserLoggedIn()&&(void 0===t||t)&&(e.user_requests_only="1")}},fnInitComplete:function(){swh.webapp.isUserLoggedIn()&&($("div.user-requests-filter").html(h),$("#"+_).on("change",function(){r.draw()}),r.draw())},columns:[{data:"submission_date",name:"submission_date",render:p.Eb},{data:"forge_type",name:"forge_type",render:$.fn.dataTable.render.text()},{data:"forge_url",name:"forge_url",render:function(e,t,n){var r=$.fn.dataTable.render.text().display(e);return(0,p.jt)(r,t,!0)}},{data:"status",name:"status",render:function(e,t,n,r){return swh.add_forge_now.formatRequestStatusName(e)}},{render:function(e,t,n){if("FIRST_ORIGIN_LOADED"===n.status){var r=$.fn.dataTable.render.text().display(n.forge_url),o=Urls.browse_search()+"?q="+encodeURIComponent(r);return'<a href="'+(o+="&with_visit=true&with_content=true")+'" target="_blank" rel="noopener noreferrer" class="swh-search-forge-origins" title="Search for origins listed from that forge"><i class="mdi mdi-magnify" aria-hidden="true"></i></a>'}return""}}],order:[[0,"desc"]]}))}function M(e){return RegExp(e.replace(/\s+|#.*/g,""))}var C=M("\n /\n (\n (projects|users)\n (\n # end of URL path\n |\n /\n (\n # end of URL path\n |\n [^/]+\n (\n # end of URL path\n |\n /repos/[^/]+/browse\n )\n )\n )\n |\n repos\n |\n login\n |\n getting-started\n |\n about\n |\n plugins/servlet/search\n )$"),S=M("\n /\n (\n [^/]+/(refs|log|commit|diff|patch|stats|plain|snapshot)/.*\n )$"),E=M("\n ^\n (\n \\?q=[^;&]+\n )$"),U=M("\n /\n (\n explore\n (\n # end of URL path\n |\n /\n (\n projects\n (\n # end of URL path\n |\n /\n (trending|starred|topics)\n )\n |\n groups\n |\n catalog\n |\n snippets\n )\n )\n |\n help\n (\n # end of URL path\n |\n /\n (\n # end of URL path\n |\n .*\\.md\n )\n )\n |\n users/\n (\n sign_(in|up)\n |\n password/new\n )\n |\n [^/]+/([^/]+/)+(activity|container_registry)\n |\n [^/]+/([^/]+/)+-/(tree|commits?|archive|blob|raw|blame|network|wikis|issues?|\n activity|project_members|labels|boards|milestones|merge_requests|\n branches|tags|starrers|compare|snippets?|pipelines?|jobs?|pipeline_schedules?|\n artifacts?|releases?|ml|environments?|incidents?|graphs|value_stream_analytics)/.*\n )$"),A=M("\n /\n (\n explore\n (\n # end of URL path\n |\n /\n (\n repos\n |\n users\n |\n organizations\n |\n code\n )\n )\n |\n user/(login|forgot_password)\n |\n [^/]+/([^/]+/)+\n (\n \\.rss\n |\n /\n (\n actions|activity|branches|commits?|src|compare|find|forks|issues|packages\n |projects|pulls|labels|milestones|releases|stars|tags|watchers|wiki\n )(|/.*)\n )\n )$"),O=M("\n ^\n (\n \\?format=(TEXT|JSON)\n )$"),L=M("\n /\n (\n login/.*\n |\n [^/]+/\\+\n (\n refs\n |\n /refs/(heads|tags)/.*\n |\n log\n |\n log/refs/(heads|tags)/.*\n |\n log/[a-f0-9]{40}(|/.*)\n |\n blame/[a-f0-9]{40}/.+\n |\n archive/refs/(heads|tags)/.*\n |\n archive/[a-f0-9]{40}\\.tar\\.gz\n |\n /[a-f0-9]{40}(|/.*|\\^|\\^/.*|\\^!|\\^!/.*)\n )\n )$"),F=M("\n (\n \\?\n (\n p=.*\n |\n a=project_list[&;].*\n |\n a=project_index\n |\n a=opml\n )\n )$"),q=M("\n /\n (\n [^/]+/log\\.html\n |\n [^/]+/files\\.html\n |\n [^/]+/refs\\.html\n |\n [^/]+/file/.*\\.html\n |\n [^/]+/commit/[a-f0-9]{40}\\.html\n |\n )$");function j(e){var t="";(0,p.wv)(e.value.trim(),["http:","https:"])||(t="The provided forge URL is not valid."),function(e){var t;try{t=new URL(e)}catch(e){return!1}var n=t.hostname;return!!["github.com","www.github.com"].includes(n)||!!new RegExp("(^|\\.)github\\.(com|org|io)$").test(n)}(e.value.trim())&&(t="The provided forge URL is on GitHub.\nUse Save code now instead."),function(e){var t;try{t=new URL(e)}catch(e){return!1}var n=t.hostname;return!!["gitlab.com","www.gitlab.com"].includes(n)||!!new RegExp("(^|\\.)gitlab\\.(com|org|io)$").test(n)}(e.value.trim())&&(t="The provided forge URL is on GitLab.\nUse Save code now instead."),function(e){var t;try{t=new URL(e)}catch(e){return!1}return t.origin===e}(e.value.trim())&&(t="The provided forge URL was not a canonical URL.\nAdd a forward slash character to the end.");var n=function(e){var t;try{t=new URL(e)}catch(e){return null}var n=null,r=$("#swh-input-forge-type").val();return"bitbucket"===r?n=C.exec(t.pathname):"cgit"===r?n=S.exec(t.pathname)||E.exec(t.search):["gitlab","heptapod"].includes(r)?n=U.exec(t.pathname):["gogs","gitea","forgejo"].includes(r)?n=A.exec(t.pathname):"gitiles"===r?n=L.exec(t.pathname)||O.exec(t.search):"gitweb"===r?n=F.exec(t.search):"stagit"===r&&(n=q.exec(t.pathname)),n?n[1]:null}(e.value.trim());n&&(t=("\n The provided forge URL was not a base URL.\n\n Remove this string from the URL:\n\n "+n+"\n\n Remove all user/group/repo names.\n Remove everything after both of those.").replace(/^\s+/,"").replace(/\n[ \t]+/g,"\n")),e.setCustomValidity(t)}},11791:function(e,t,n){var r=n(25172),o=n(75546);e.exports=function e(t,n){function a(e,o,s,i){try{var u=t[e](o),c=u.value;return c instanceof r?n.resolve(c.v).then(function(e){a("next",e,s,i)},function(e){a("throw",e,s,i)}):n.resolve(c).then(function(e){u.value=e,s(u)},function(e){return a("throw",e,s,i)})}catch(e){i(e)}}var s;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(e,t,r){function o(){return new n(function(t,n){a(e,r,t,n)})}return s=s?s.then(o,o):o()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports},16993:function(e,t,n){var r=n(75546);function o(){var t,n,a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",i=a.toStringTag||"@@toStringTag";function u(e,o,a,s){var i=o&&o.prototype instanceof p?o:p,u=Object.create(i.prototype);return r(u,"_invoke",function(e,r,o){var a,s,i,u=0,p=o||[],l=!1,d={p:0,n:0,v:t,a:f,f:f.bind(t,4),d:function(e,n){return a=e,s=0,i=t,d.n=n,c}};function f(e,r){for(s=e,i=r,n=0;!l&&u&&!o&&n<p.length;n++){var o,a=p[n],f=d.p,_=a[2];e>3?(o=_===r)&&(i=a[(s=a[4])?5:(s=3,3)],a[4]=a[5]=t):a[0]<=f&&((o=e<2&&f<a[1])?(s=0,d.v=r,d.n=a[1]):f<_&&(o=e<3||a[0]>r||r>_)&&(a[4]=e,a[5]=r,d.n=_,s=0))}if(o||e>1)return c;throw l=!0,r}return function(o,p,_){if(u>1)throw TypeError("Generator is already running");for(l&&1===p&&f(p,_),s=p,i=_;(n=s<2?t:i)||!l;){a||(s?s<3?(s>1&&(d.n=-1),f(s,i)):d.n=i:d.v=i);try{if(u=2,a){if(s||(o="next"),n=a[o]){if(!(n=n.call(a,i)))throw TypeError("iterator result is not an object");if(!n.done)return n;i=n.value,s<2&&(s=0)}else 1===s&&(n=a.return)&&n.call(a),s<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),s=1);a=t}else if((n=(l=d.n<0)?i:e.call(r,d))!==c)break}catch(e){a=t,s=1,i=e}finally{u=1}}return{value:n,done:l}}}(e,a,s),!0),u}var c={};function p(){}function l(){}function d(){}n=Object.getPrototypeOf;var f=[][s]?n(n([][s]())):(r(n={},s,function(){return this}),n),_=d.prototype=p.prototype=Object.create(f);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,r(e,i,"GeneratorFunction")),e.prototype=Object.create(_),e}return l.prototype=d,r(_,"constructor",d),r(d,"constructor",l),l.displayName="GeneratorFunction",r(d,i,"GeneratorFunction"),r(_),r(_,i,"Generator"),r(_,s,function(){return this}),r(_,"toString",function(){return"[object Generator]"}),(e.exports=o=function(){return{w:u,m:h}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},18987:function(e,t,n){"use strict";function r(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}n.d(t,{A:function(){return o}});var o=function e(t,n){function o(e,o,a){if("undefined"!=typeof document){"number"==typeof(a=r({},n,a)).expires&&(a.expires=new Date(Date.now()+864e5*a.expires)),a.expires&&(a.expires=a.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var i in a)a[i]&&(s+="; "+i,!0!==a[i]&&(s+="="+a[i].split(";")[0]));return document.cookie=e+"="+t.write(o,e)+s}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],r={},o=0;o<n.length;o++){var a=n[o].split("="),s=a.slice(1).join("=");try{var i=decodeURIComponent(a[0]);if(r[i]=t.read(s,i),e===i)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){o(e,"",r({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,r({},this.attributes,t))},withConverter:function(t){return e(r({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})},23717:function(e,t,n){"use strict";n.d(t,{_k:function(){return r}});var r={serverSide:!0,processing:!0,language:{processing:'<img src="'+(0,n(8545).lY)("img/swh-spinner.gif")+'"></img>'},fixedHeader:!0,lengthMenu:[10,25,50,100,1e3],scrollCollapse:!0,searchDelay:1e3}},25172:function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},30579:function(e,t,n){var r=n(73738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(r(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},36136:function(module){module.exports=function anonymous(locals,escapeFn,include,rethrow){escapeFn=escapeFn||function(e){return null==e?"":String(e).replace(_MATCH_HTML,encode_char)};var _ENCODE_HTML_RULES={"&":"&","<":"<",">":">",'"':""","'":"'"},_MATCH_HTML=/[&<>'"]/g;function encode_char(e){return _ENCODE_HTML_RULES[e]||e}var __output="";function __append(e){null!=e&&(__output+=e)}with(locals||{})__append("\nHello "),__append(escapeFn(forgeAdmin)),__append(",\n\nThe mission of Software Heritage is to collect, preserve and share all\nthe publicly available source code: https://www.softwareheritage.org\n\nWe would like to add the code hosted at the URL below to the list of\nsoftware origins that are regularly archived, and we understand that\nyou are or know the contact person for this site.\n\n"),__append(escapeFn(forgeUrl)),__append('\n\nIn order to archive the code contents, we will have to periodically\npull the public repositories it contains and clone them into the\nSoftware Heritage archive. FAQs for our processes are available:\n\nhttps://docs.softwareheritage.org/user/faq/#add-forge-now\nhttps://www.softwareheritage.org/faq/\n\nPlease let us know if there are any issues to consider before\nwe launch the archival of the public repositories hosted on your\ninfrastructure. Please use "Reply all" to ensure our system will\nprocess your answer properly.\n\nIn the absence of an answer to this message, we will start to\narchive your code in the coming weeks. Only the publicly\naccessible repositories will be archived.\n\nThank you in advance for your help.\n\nKind regards,\nThe Software Heritage team\n');return __output}},36324:function(e,t,n){"use strict";n.d(t,{A:function(){return a}});var r=n(52176),o=n(63662);function a(e,t,n){if((0,r.A)())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,t);var s=new(e.bind.apply(e,a));return n&&(0,o.A)(s,n.prototype),s}},48697:function(e,t,n){"use strict";n.d(t,{R:function(){return p},T:function(){return c}});var r=n(58168),o=n(10467),a=n(54756),s=n.n(a),i=n(8545),u=n(23717);function c(){p()}function p(){return l.apply(this,arguments)}function l(){return(l=(0,o.A)(s().mark(function e(){return s().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:$("#swh-add-forge-now-moderation-list").on("error.dt",function(e,t,n,r){$("#swh-add-forge-now-moderation-list-error").text(r)}).DataTable((0,r.A)({},u._k,{searching:!0,dom:'<"row mb-2"<"col-sm-3"l><"col-sm-6"><"col-sm-3"f>><"row"<"col-sm-12"tr>><"row mt-2"<"col-sm-5"i><"col-sm-7"p>>',ajax:{url:Urls.add_forge_request_list_datatables()},columns:[{data:"id",name:"id",render:function(e,t,n,r){return"<a href="+Urls.add_forge_now_request_dashboard(e)+">"+e+"</a>"}},{data:"submission_date",name:"submission_date",render:i.Eb},{data:"forge_type",name:"forge_type",render:$.fn.dataTable.render.text()},{data:"forge_url",name:"forge_url",render:function(e,t,n){var r=$.fn.dataTable.render.text().display(e);return(0,i.jt)(r,t,!0)}},{data:"last_moderator",name:"last_moderator",render:$.fn.dataTable.render.text()},{data:"last_modified_date",name:"last_modified_date",render:i.Eb},{data:"status",name:"status",render:function(e,t,n,r){return swh.add_forge_now.formatRequestStatusName(e)}},{render:function(e,t,n){var r='<div class="d-flex">';if(r+='<a class="swh-forge-request-dashboard-link" href="'+Urls.add_forge_now_request_dashboard(n.id)+'" title="Go to request dashboard"><i class="mdi mdi-square-edit-outline" aria-hidden="true"></i></a>',"FIRST_ORIGIN_LOADED"===n.status){var o=$.fn.dataTable.render.text().display(n.forge_url),a=Urls.browse_search()+"?q="+encodeURIComponent(o);r+='<a href="'+(a+="&with_visit=true&with_content=true")+'" target="_blank" rel="noopener noreferrer" class="swh-search-forge-origins" title="Search for origins listed from that forge"><i class="mdi mdi-magnify" aria-hidden="true"></i></a>'}return r+="</div>"}}],order:[[0,"desc"]]}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}},52176:function(e,t,n){"use strict";function r(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(r=function(){return!!e})()}n.d(t,{A:function(){return r}})},53954:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{A:function(){return r}})},54756:function(e,t,n){var r=n(4633)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},55869:function(e,t,n){var r=n(887);e.exports=function(e,t,n,o,a){var s=r(e,t,n,o,a);return s.next().then(function(e){return e.done?e.value:s.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},58168:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:function(){return r}})},63662:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{A:function(){return r}})},65579:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53954),o=n(63662),a=n(70202),s=n(36324);function i(e){var t="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||!(0,a.A)(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return(0,s.A)(e,arguments,(0,r.A)(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,o.A)(n,e)},i(e)}},70202:function(e,t,n){"use strict";function r(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}n.d(t,{A:function(){return r}})},71407:function(module){module.exports=function anonymous(locals,escapeFn,include,rethrow){escapeFn=escapeFn||function(e){return null==e?"":String(e).replace(_MATCH_HTML,encode_char)};var _ENCODE_HTML_RULES={"&":"&","<":"<",">":">",'"':""","'":"'"},_MATCH_HTML=/[&<>'"]/g;function encode_char(e){return _ENCODE_HTML_RULES[e]||e}var __output="";function __append(e){null!=e&&(__output+=e)}with(locals||{})__append('\n<div class="form-check swhid-option">\n <input class="form-check-input" value="option-user-requests-filter" type="checkbox"\n '),checked&&__append('\n checked="checked"\n '),__append('\n id="'),__append(escapeFn(inputId)),__append('">\n <label class="form-check-label font-weight-normal" for="'),__append(escapeFn(inputId)),__append('">\n show only your own requests\n </label>\n</div>\n');return __output}},73738:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},75546:function(e){function t(n,r,o,a){var s=Object.defineProperty;try{s({},"",{})}catch(n){s=0}e.exports=t=function(e,n,r,o){function a(n,r){t(e,n,function(e){return this._invoke(n,r,e)})}n?s?s(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r:(a("next",0),a("throw",1),a("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},77387:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(63662);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.A)(e,t)}},83052:function(module){module.exports=function anonymous(locals,escapeFn,include,rethrow){escapeFn=escapeFn||function(e){return null==e?"":String(e).replace(_MATCH_HTML,encode_char)};var _ENCODE_HTML_RULES={"&":"&","<":"<",">":">",'"':""","'":"'"},_MATCH_HTML=/[&<>'"]/g;function encode_char(e){return _ENCODE_HTML_RULES[e]||e}var __output="";function __append(e){null!=e&&(__output+=e)}with(locals||{})__append("Dear forge administrator,\n\nWe are happy to announce to you that your forge is now successfully\narchived.\n\nThe forge repositories are now available in the archive :\nhttps://archive.softwareheritage.org/browse/search/?q="),__append(escapeFn(forgeUrl)),__append("&with_visit=true&with_content=true\n\nKind regards,\n\nThe Software Heritage team");return __output}},93874:function(e,t,n){"use strict";n.d(t,{E:function(){return v},r:function(){return _}});var r,o=n(10467),a=n(54756),s=n.n(a),i=n(8545),u=n(99238),c=n.n(u),p=n(36136),l=n.n(p),d=n(83052),f=n.n(d);function _(e,t){$(document).ready(function(){h(e,t),$("#contactForgeAdmin").click(function(e){!function(){var e=encodeURIComponent($("#contactForgeAdmin").attr("emailTo")),t=encodeURIComponent($("#contactForgeAdmin").attr("emailCc")),n=encodeURIComponent($("#contactForgeAdmin").attr("emailReply")),o=encodeURIComponent($("#contactForgeAdmin").attr("emailSubject")),a="";"PENDING"===r.status&&(a=encodeURIComponent(l()({forgeUrl:r.forge_url,forgeAdmin:r.forge_contact_name}).trim().replace(/\n/g,"\r\n")));"FIRST_ORIGIN_LOADED"===r.status&&(a=encodeURIComponent(f()({forgeUrl:encodeURIComponent(r.forge_url)}).trim().replace(/\n/g,"\r\n")));var s=window.open("","_blank","",!0);s.location.href="mailto:"+e+"?Cc="+t+"&Reply-To="+n+"&Mail-Reply-To="+n+"&Mail-Followup-To="+n+"&Subject="+o+"&body="+a,s.focus()}()}),$("#updateRequestForm").submit(function(){var n=(0,o.A)(s().mark(function n(r){var o;return s().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return r.preventDefault(),n.prev=1,n.next=2,(0,i.Jq)($(this).attr("action"),{"Content-Type":"application/x-www-form-urlencoded"},$(this).serialize());case 2:o=n.sent,(0,i.Tv)(o),$("#userMessage").text("The request status has been updated "),$("#userMessage").removeClass("text-bg-danger"),$("#userMessage").addClass("text-bg-success"),h(e,t),n.next=4;break;case 3:n.prev=3,n.catch(1),$("#userMessage").text("Sorry; Updating the request failed"),$("#userMessage").removeClass("text-bg-success"),$("#userMessage").addClass("text-bg-danger");case 4:case"end":return n.stop()}},n,this,[[1,3]])}));return function(e){return n.apply(this,arguments)}}())})}function h(e,t){return g.apply(this,arguments)}function g(){return(g=(0,o.A)(s().mark(function e(t,n){var o,a,u,c,p,l,d;return s().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=1,fetch(Urls.api_1_add_forge_request_get(t));case 1:return o=e.sent,(0,i.Tv)(o),e.next=2,o.json();case 2:a=e.sent,r=a.request,$("#requestStatus").text(swh.add_forge_now.formatRequestStatusName(r.status)),$("#requestType").text(r.forge_type),u='<a href="'+encodeURI(r.forge_url)+'" target="_blank" rel="noopener noreferrer">'+swh.webapp.filterXSS(r.forge_url)+"</a>",$("#requestURL").html(u),$("#requestContactName").text(r.forge_contact_name),$("#requestContactConsent").text(r.submitter_forward_username),$("#requestContactEmail").text(r.forge_contact_email),$("#submitterMessage").text(r.forge_contact_comment),$("#updateComment").val(""),c=r.forge_contact_name+" <"+r.forge_contact_email+">",p=r.inbound_email_address,l=p+", Software Heritage Archival Moderators <archival@softwareheritage.org>, "+c,$("#contactForgeAdmin").attr("emailTo",c),$("#contactForgeAdmin").attr("emailCc",p),$("#contactForgeAdmin").attr("emailReply",l),$("#contactForgeAdmin").attr("emailSubject","Software Heritage archival notification for "+r.forge_domain),m(a.history),v(r.status,n),e.next=5;break;case 3:if(e.prev=3,!((d=e.catch(0))instanceof Response)){e.next=4;break}$("#fetchError").removeClass("d-none"),$("#requestDetails").addClass("d-none"),e.next=5;break;case 4:throw d;case 5:case"end":return e.stop()}},e,null,[[0,3]])}))).apply(this,arguments)}function m(e){$("#requestHistory").children().remove(),e.forEach(function(e,t){var n=c()({event:e,index:t,getHumanReadableDate:i.Eb});$("#requestHistory").append(n)})}function v(e,t){var n=t[e];$("#decisionOptions").children().remove(),n.forEach(function(e,t){var n=swh.add_forge_now.formatRequestStatusName(e);$("#decisionOptions").append('<option value="'+e+'">'+n+"</option>")}),$("#decisionOptions").append("<option hidden disabled selected value> -- Add a comment -- </option>")}},99238:function(module){module.exports=function anonymous(locals,escapeFn,include,rethrow){escapeFn=escapeFn||function(e){return null==e?"":String(e).replace(_MATCH_HTML,encode_char)};var _ENCODE_HTML_RULES={"&":"&","<":"<",">":">",'"':""","'":"'"},_MATCH_HTML=/[&<>'"]/g;function encode_char(e){return _ENCODE_HTML_RULES[e]||e}var __output="";function __append(e){null!=e&&(__output+=e)}with(locals||{})__append('\n<div class="history-item">\n\t<div class="card border-dark">\n\t\t<div class="card-header" id="historyItem'),__append(escapeFn(index)),__append('">\n\t\t\t<h2 class="mb-0">\n\t\t\t\t<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#historyItemBody'),__append(escapeFn(index)),__append('" aria-expanded="true" aria-controls="collapse$'),__append(escapeFn(index)),__append('">\n\t\t\t\t\t\t\t\tFrom '),__append(escapeFn(event.actor)),__append(" ("),__append(escapeFn(event.actor_role)),__append(") on "),__append(escapeFn(getHumanReadableDate(event.date))),__append("\n\t\t\t\t\t"),null!==event.new_status&&(__append('\n\t\t\t\t\t<span style="padding-left: 10px;">New status:</span> '),__append(escapeFn(swh.add_forge_now.formatRequestStatusName(event.new_status))),__append("\n\t\t\t\t\t")),__append('\n\t\t\t\t</button>\n\t\t\t</h2>\n\t\t</div>\n\t\t<div id="historyItemBody'),__append(escapeFn(index)),__append('" class="collapse" aria-labelledby="historyItem'),__append(escapeFn(index)),__append('" data-parent="#requestHistory">\n\t\t\t<div class="card-body">\n\t\t\t\t'),event.text&&(__append("\n\t\t\t\t<pre>"),__append(escapeFn(event.text)),__append("</pre>\n\t\t\t\t")),__append("\n\t\t\t\t"),null!==event.message_source_url&&(__append('\n\t\t\t\t<p><a href="'),__append(escapeFn(event.message_source_url)),__append('">Open original message in email client</a></p>\n\t\t\t\t')),__append("\n\t\t\t\t"),null!==event.new_status&&(__append("\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<span>Status changed to:</span> <strong>"),__append(escapeFn(swh.add_forge_now.formatRequestStatusName(event.new_status))),__append("</strong>\n\t\t\t\t\t</p>\n\t\t\t\t")),__append("\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n");return __output}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return function(){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{formatRequestStatusName:function(){return r},onCreateRequestPageLoad:function(){return e.gM},onModerationPageLoad:function(){return t.T},onRequestDashboardLoad:function(){return n.r},populateDecisionSelectOption:function(){return n.E},populateModerationList:function(){return t.R},populateRequestBrowseList:function(){return e.sI},validateForgeUrl:function(){return e.JX}});var e=__webpack_require__(11032),t=__webpack_require__(48697),n=__webpack_require__(93874);function r(e){var t={PENDING:"Pending",WAITING_FOR_FEEDBACK:"Waiting for feedback",FEEDBACK_TO_HANDLE:"Feedback to handle",ACCEPTED:"Accepted",SCHEDULED:"Scheduled",FIRST_LISTING_DONE:"First listing done",FIRST_ORIGIN_LOADED:"First origin loaded",REJECTED:"Rejected",SUSPENDED:"Suspended",UNSUCCESSFUL:"Unsuccessful"};return e in t?t[e]:e}}(),__webpack_exports__}()});
|
|
3
|
-
//# sourceMappingURL=add_forge_now.e25d1ad2ab6c45e60b67.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/add_forge_now.e25d1ad2ab6c45e60b67.js","mappings":"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","sources":["webpack://swh/webpack/universalModuleDefinition","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://swh/./assets/src/utils/functions.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://swh/./swh/web/add_forge_now/assets/create-request.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://swh/./assets/src/utils/constants.js","webpack://swh/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./swh/web/add_forge_now/assets/forge-admin-email.ejs","webpack://swh/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://swh/./swh/web/add_forge_now/assets/moderation-dashboard.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://swh/./assets/src/utils/requests-filter-checkbox.ejs","webpack://swh/./node_modules/@babel/runtime/helpers/typeof.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://swh/./swh/web/add_forge_now/assets/forge-success-email.ejs","webpack://swh/./swh/web/add_forge_now/assets/request-dashboard.js","webpack://swh/./swh/web/add_forge_now/assets/add-request-history-item.ejs","webpack://swh/webpack/bootstrap","webpack://swh/webpack/runtime/compat get default export","webpack://swh/webpack/runtime/define property getters","webpack://swh/webpack/runtime/hasOwnProperty shorthand","webpack://swh/webpack/runtime/make namespace object","webpack://swh/./swh/web/add_forge_now/assets/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"add_forge_now\"] = factory();\n})(self, function() {\nreturn ","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset, origin) {\n let url = `${__STATIC__}${asset}`;\n if (url.startsWith('/') && origin) {\n url = origin + url;\n }\n return url;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length)) || url.pathname === '/';\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function textToHTML(text) {\n const textArea = document.createElement('textarea');\n textArea.innerText = text;\n return textArea.innerHTML;\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function validateUrl(url, allowedProtocols = []) {\n let originUrl = null;\n let validUrl = true;\n\n try {\n originUrl = new URL(url);\n } catch (TypeError) {\n validUrl = false;\n }\n\n if (validUrl && allowedProtocols.length) {\n validUrl = (\n allowedProtocols.find(protocol => protocol === originUrl.protocol) !== undefined\n );\n }\n\n return validUrl ? originUrl : null;\n}\n\nexport async function isArchivedOrigin(originPath, visitType) {\n if (!validateUrl(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n let url = `${Urls.api_1_origin_visit_latest(originPath)}?require_snapshot=true`;\n if (visitType && visitType !== 'any') {\n url += `&visit_type=${visitType}`;\n }\n const response = await fetch(url);\n return response.ok;\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?<owner>[^/]+).github.io\\/(?<repo>[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n\nexport function genLink(sanitizedUrl, type, openInNewTab = false, linkText = '') {\n // Display link. It's up to the caller to sanitize sanitizedUrl first.\n if (type === 'display' && sanitizedUrl) {\n const encodedSanitizedUrl = encodeURI(sanitizedUrl);\n if (!linkText) {\n linkText = encodedSanitizedUrl;\n }\n let attrs = '';\n if (openInNewTab) {\n attrs = 'target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return `<a href=\"${encodedSanitizedUrl}\" ${attrs}>${linkText}</a>`;\n }\n return sanitizedUrl;\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","/**\n * Copyright (C) 2022-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {\n csrfPost, errorMessageFromResponse, genLink, getHumanReadableDate,\n handleFetchError, validateUrl, textToHTML\n} from 'utils/functions';\nimport userRequestsFilterCheckboxFn from 'utils/requests-filter-checkbox.ejs';\nimport {dataTableCommonConfig} from 'utils/constants';\n\nlet requestBrowseTable;\n\nconst addForgeCheckboxId = 'swh-add-forge-user-filter';\nconst userRequestsFilterCheckbox = userRequestsFilterCheckboxFn({\n 'inputId': addForgeCheckboxId,\n 'checked': false\n});\n\nclass EmptyGitLabError extends Error { }\n\nfunction apiErrorGitLabInstance(api, apiIssue, error) {\n const errorMsg = `\n GET ${api}\n ${error}\n\n Remove all user/group/repo names.\n Remove everything after both of those.`\n .replace(/^\\s+/, '').replace(/\\n[ \\t]+/g, '\\n');\n const errorVal = `\n ${apiIssue}:\n\n ${errorMsg}`\n .replace(/^\\s+/, '').replace(/\\n[ \\t]+/g, '\\n');\n const errorTxt = errorMsg.replaceAll('\\n\\n', '\\n');\n const errorHTML = textToHTML(errorTxt);\n\n $('#userMessage').text(apiIssue);\n $('#userMessageDetail').html(errorHTML);\n $('#userMessage').removeClass('text-bg-info');\n $('#userMessage').addClass('text-bg-danger');\n $('#swh-input-forge-url').get(0).setCustomValidity(errorVal);\n throw error;\n}\n\nfunction emptyGitLabInstance(apiIssue) {\n const error = 'GitLab instance has no public projects';\n $('#userMessage').text(apiIssue);\n $('#userMessageDetail').text(error);\n $('#userMessage').removeClass('text-bg-info');\n $('#userMessage').addClass('text-bg-danger');\n $('#swh-input-forge-url').get(0).setCustomValidity(error);\n throw new EmptyGitLabError(error);\n}\n\nfunction nonEmptyGitLabInstance() {\n $('#userMessage').text('GitLab instance has public projects');\n $('#userMessageDetail').empty();\n $('#userMessage').removeClass('text-bg-info');\n $('#userMessage').addClass('text-bg-success');\n}\n\nasync function validateGitLabContents() {\n $('#userMessage').text('GitLab instance projects API loading');\n $('#userMessageDetail').text('Checking available public projects');\n $('#userMessage').removeClass('text-bg-danger');\n $('#userMessage').removeClass('text-bg-success');\n $('#userMessage').addClass('text-bg-info');\n\n const url = $('#swh-input-forge-url').val().trim();\n const api = `${url}api/v4/projects?per_page=1`;\n const apiIssue = 'GitLab instance projects API issue';\n try {\n const response = await fetch(api);\n if (!response.ok) {\n apiErrorGitLabInstance(api, apiIssue, `HTTP ${response.status} ${response.statusText}`);\n }\n const json = await response.json();\n if (Array.isArray(json)) {\n if (json.length === 0) {\n emptyGitLabInstance(apiIssue);\n } else {\n nonEmptyGitLabInstance();\n }\n } else {\n apiErrorGitLabInstance(api, apiIssue, 'JSON data is not an array');\n }\n } catch (error) {\n if (error instanceof EmptyGitLabError) {\n // Not an API error\n throw error;\n } else {\n apiErrorGitLabInstance(api, apiIssue, error);\n }\n }\n}\n\nasync function validateForgeContents() {\n const forgeType = $('#swh-input-forge-type').val();\n if (['gitlab', 'heptapod'].includes(forgeType)) {\n await validateGitLabContents();\n }\n}\n\nexport function onCreateRequestPageLoad() {\n $(document).ready(() => {\n $('#requestCreateForm').submit(async function(event) {\n event.preventDefault();\n if ($('#swh-input-forge-validate').val() === 'on') {\n try {\n await validateForgeContents();\n } catch (error) {\n return;\n }\n }\n try {\n const response = await csrfPost($(this).attr('action'),\n {'Content-Type': 'application/x-www-form-urlencoded'},\n $(this).serialize());\n handleFetchError(response);\n $('#userMessageDetail').empty();\n $('#userMessage').text('Your request has been submitted');\n $('#userMessage').removeClass('text-bg-danger');\n $('#userMessage').addClass('text-bg-success');\n requestBrowseTable.draw(); // redraw the table to update the list\n } catch (errorResponse) {\n $('#userMessageDetail').empty();\n\n let errorMessage;\n const errorData = await errorResponse.json();\n // if (errorResponse.content_type === 'text/plain') { // does not work?\n if (errorResponse.status === 409) {\n errorMessage = errorData;\n } else { // assuming json response\n // const exception = errorData['exception'];\n errorMessage = errorMessageFromResponse(\n errorData, 'An unknown error occurred during the request creation');\n }\n $('#userMessage').text(errorMessage);\n $('#userMessage').removeClass('text-bg-success');\n $('#userMessage').addClass('text-bg-danger');\n }\n });\n\n populateRequestBrowseList(); // Load existing requests\n });\n}\n\nexport function populateRequestBrowseList() {\n requestBrowseTable = $('#add-forge-request-browse')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#add-forge-browse-request-error').text(message);\n })\n .DataTable({\n ...dataTableCommonConfig,\n retrieve: true,\n searching: true,\n // Layout configuration, see [1] for more details\n // [1] https://datatables.net/reference/option/dom\n dom: '<\"row mb-2\"<\"col-sm-3\"l><\"col-sm-6 text-start user-requests-filter\"><\"col-sm-3\"f>>' +\n '<\"row\"<\"col-sm-12\"tr>>' +\n '<\"row mt-2\"<\"col-sm-5\"i><\"col-sm-7\"p>>',\n ajax: {\n 'url': Urls.add_forge_request_list_datatables(),\n data: (d) => {\n const checked = $(`#${addForgeCheckboxId}`).prop('checked');\n // If this function is called while the page is loading, 'checked' is\n // undefined. As the checkbox defaults to being checked, coerce this to true.\n if (swh.webapp.isUserLoggedIn() && (checked === undefined || checked)) {\n d.user_requests_only = '1';\n }\n }\n },\n fnInitComplete: function() {\n if (swh.webapp.isUserLoggedIn()) {\n $('div.user-requests-filter').html(userRequestsFilterCheckbox);\n $(`#${addForgeCheckboxId}`).on('change', () => {\n requestBrowseTable.draw();\n });\n requestBrowseTable.draw();\n }\n },\n columns: [\n {\n data: 'submission_date',\n name: 'submission_date',\n render: getHumanReadableDate\n },\n {\n data: 'forge_type',\n name: 'forge_type',\n render: $.fn.dataTable.render.text()\n },\n {\n data: 'forge_url',\n name: 'forge_url',\n render: (data, type, row) => {\n const sanitizedURL = $.fn.dataTable.render.text().display(data);\n return genLink(sanitizedURL, type, true);\n }\n },\n {\n data: 'status',\n name: 'status',\n render: function(data, type, row, meta) {\n return swh.add_forge_now.formatRequestStatusName(data);\n }\n },\n {\n render: (data, type, row) => {\n if (row.status === 'FIRST_ORIGIN_LOADED') {\n const sanitizedURL = $.fn.dataTable.render.text().display(row.forge_url);\n let originsSearchUrl = `${Urls.browse_search()}?q=${encodeURIComponent(sanitizedURL)}`;\n originsSearchUrl += '&with_visit=true&with_content=true';\n return `<a href=\"${originsSearchUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" ` +\n 'class=\"swh-search-forge-origins\" title=\"Search for origins listed from that forge\">' +\n '<i class=\"mdi mdi-magnify\" aria-hidden=\"true\"></i></a>';\n }\n return '';\n }\n }\n ],\n order: [[0, 'desc']]\n });\n}\n\nfunction isGitHubUrl(url) {\n let originUrl;\n try {\n originUrl = new URL(url);\n } catch (_) {\n return false;\n }\n const hostname = originUrl.hostname;\n\n const github = ['github.com', 'www.github.com'];\n if (github.includes(hostname)) {\n return true;\n }\n\n const githubRe = new RegExp('(^|\\\\.)github\\\\.(com|org|io)$');\n if (githubRe.test(hostname)) {\n return true;\n }\n\n return false;\n}\n\nfunction isGitLabUrl(url) {\n let originUrl;\n try {\n originUrl = new URL(url);\n } catch (_) {\n return false;\n }\n const hostname = originUrl.hostname;\n\n const gitlab = ['gitlab.com', 'www.gitlab.com'];\n if (gitlab.includes(hostname)) {\n return true;\n }\n\n const gitlabRe = new RegExp('(^|\\\\.)gitlab\\\\.(com|org|io)$');\n if (gitlabRe.test(hostname)) {\n return true;\n }\n\n return false;\n}\n\nfunction isMissingSlash(url) {\n let originUrl;\n try {\n originUrl = new URL(url);\n } catch (_) {\n return false;\n }\n return originUrl.origin === url;\n}\n\nfunction RegExpX(re) {\n return RegExp(re.replace(/\\s+|#.*/g, ''));\n}\n\nconst bitbucketPathnameExtraRe = RegExpX(`\n /\n (\n (projects|users)\n (\n # end of URL path\n |\n /\n (\n # end of URL path\n |\n [^/]+\n (\n # end of URL path\n |\n /repos/[^/]+/browse\n )\n )\n )\n |\n repos\n |\n login\n |\n getting-started\n |\n about\n |\n plugins/servlet/search\n )$`);\n\nconst cgitPathnameExtraRe = RegExpX(`\n /\n (\n [^/]+/(refs|log|commit|diff|patch|stats|plain|snapshot)/.*\n )$`);\n\nconst cgitSearchExtraRe = RegExpX(`\n ^\n (\n \\\\?q=[^;&]+\n )$`);\n\nconst gitlabPathnameExtraRe = RegExpX(`\n /\n (\n explore\n (\n # end of URL path\n |\n /\n (\n projects\n (\n # end of URL path\n |\n /\n (trending|starred|topics)\n )\n |\n groups\n |\n catalog\n |\n snippets\n )\n )\n |\n help\n (\n # end of URL path\n |\n /\n (\n # end of URL path\n |\n .*\\\\.md\n )\n )\n |\n users/\n (\n sign_(in|up)\n |\n password/new\n )\n |\n [^/]+/([^/]+/)+(activity|container_registry)\n |\n [^/]+/([^/]+/)+-/(tree|commits?|archive|blob|raw|blame|network|wikis|issues?|\n activity|project_members|labels|boards|milestones|merge_requests|\n branches|tags|starrers|compare|snippets?|pipelines?|jobs?|pipeline_schedules?|\n artifacts?|releases?|ml|environments?|incidents?|graphs|value_stream_analytics)/.*\n )$`);\n\nconst giteaPathnameExtraRe = RegExpX(`\n /\n (\n explore\n (\n # end of URL path\n |\n /\n (\n repos\n |\n users\n |\n organizations\n |\n code\n )\n )\n |\n user/(login|forgot_password)\n |\n [^/]+/([^/]+/)+\n (\n \\\\.rss\n |\n /\n (\n actions|activity|branches|commits?|src|compare|find|forks|issues|packages\n |projects|pulls|labels|milestones|releases|stars|tags|watchers|wiki\n )(|/.*)\n )\n )$`);\n\nconst gitilesSearchExtraRe = RegExpX(`\n ^\n (\n \\\\?format=(TEXT|JSON)\n )$`);\n\nconst gitilesPathnameExtraRe = RegExpX(`\n /\n (\n login/.*\n |\n [^/]+/\\\\+\n (\n refs\n |\n /refs/(heads|tags)/.*\n |\n log\n |\n log/refs/(heads|tags)/.*\n |\n log/[a-f0-9]{40}(|/.*)\n |\n blame/[a-f0-9]{40}/.+\n |\n archive/refs/(heads|tags)/.*\n |\n archive/[a-f0-9]{40}\\\\.tar\\\\.gz\n |\n /[a-f0-9]{40}(|/.*|\\\\^|\\\\^/.*|\\\\^!|\\\\^!/.*)\n )\n )$`);\n\nconst gitwebSearchExtraRe = RegExpX(`\n (\n \\\\?\n (\n p=.*\n |\n a=project_list[&;].*\n |\n a=project_index\n |\n a=opml\n )\n )$`);\n\nconst stagitPathnameExtraRe = RegExpX(`\n /\n (\n [^/]+/log\\\\.html\n |\n [^/]+/files\\\\.html\n |\n [^/]+/refs\\\\.html\n |\n [^/]+/file/.*\\\\.html\n |\n [^/]+/commit/[a-f0-9]{40}\\\\.html\n |\n )$`);\n\nfunction getUrlExtra(url) {\n let originUrl;\n try {\n originUrl = new URL(url);\n } catch (_) {\n return null;\n }\n let m = null;\n const forgeType = $('#swh-input-forge-type').val();\n if (forgeType === 'bitbucket') {\n m = bitbucketPathnameExtraRe.exec(originUrl.pathname);\n } else if (forgeType === 'cgit') {\n m = cgitPathnameExtraRe.exec(originUrl.pathname) ||\n cgitSearchExtraRe.exec(originUrl.search);\n } else if (['gitlab', 'heptapod'].includes(forgeType)) {\n m = gitlabPathnameExtraRe.exec(originUrl.pathname);\n } else if (['gogs', 'gitea', 'forgejo'].includes(forgeType)) {\n m = giteaPathnameExtraRe.exec(originUrl.pathname);\n } else if (forgeType === 'gitiles') {\n m = gitilesPathnameExtraRe.exec(originUrl.pathname) ||\n gitilesSearchExtraRe.exec(originUrl.search);\n } else if (forgeType === 'gitweb') {\n m = gitwebSearchExtraRe.exec(originUrl.search);\n } else if (forgeType === 'stagit') {\n m = stagitPathnameExtraRe.exec(originUrl.pathname);\n }\n return m ? m[1] : null;\n}\n\nexport function validateForgeUrl(input) {\n let customValidity = '';\n if (!validateUrl(input.value.trim(), ['http:', 'https:'])) {\n customValidity = 'The provided forge URL is not valid.';\n }\n if (isGitHubUrl(input.value.trim())) {\n customValidity = 'The provided forge URL is on GitHub.\\nUse Save code now instead.';\n }\n if (isGitLabUrl(input.value.trim())) {\n customValidity = 'The provided forge URL is on GitLab.\\nUse Save code now instead.';\n }\n if (isMissingSlash(input.value.trim())) {\n customValidity = 'The provided forge URL was not a canonical URL.\\nAdd a forward slash character to the end.';\n }\n const extra = getUrlExtra(input.value.trim());\n if (extra) {\n customValidity = `\n The provided forge URL was not a base URL.\n\n Remove this string from the URL:\n\n ${extra}\n\n Remove all user/group/repo names.\n Remove everything after both of those.`\n .replace(/^\\s+/, '').replace(/\\n[ \\t]+/g, '\\n');\n }\n input.setCustomValidity(customValidity);\n}\n","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n\nexport const dataTableCommonConfig = {\n serverSide: true,\n processing: true,\n language: {\n processing: `<img src=\"${swhSpinnerSrc}\"></img>`\n },\n fixedHeader: true,\n lengthMenu: [10, 25, 50, 100, 1000],\n scrollCollapse: true,\n searchDelay: 1000\n};\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = function anonymous(locals, escapeFn, include, rethrow\n) {\nescapeFn = escapeFn || function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nvar _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n;\n var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n with (locals || {}) {\n ; __append(\"\\nHello \")\n ; __append(escapeFn( forgeAdmin ))\n ; __append(\",\\n\\nThe mission of Software Heritage is to collect, preserve and share all\\nthe publicly available source code: https://www.softwareheritage.org\\n\\nWe would like to add the code hosted at the URL below to the list of\\nsoftware origins that are regularly archived, and we understand that\\nyou are or know the contact person for this site.\\n\\n\")\n ; __append(escapeFn( forgeUrl ))\n ; __append(\"\\n\\nIn order to archive the code contents, we will have to periodically\\npull the public repositories it contains and clone them into the\\nSoftware Heritage archive. FAQs for our processes are available:\\n\\nhttps://docs.softwareheritage.org/user/faq/#add-forge-now\\nhttps://www.softwareheritage.org/faq/\\n\\nPlease let us know if there are any issues to consider before\\nwe launch the archival of the public repositories hosted on your\\ninfrastructure. Please use \\\"Reply all\\\" to ensure our system will\\nprocess your answer properly.\\n\\nIn the absence of an answer to this message, we will start to\\narchive your code in the coming weeks. Only the publicly\\naccessible repositories will be archived.\\n\\nThank you in advance for your help.\\n\\nKind regards,\\nThe Software Heritage team\\n\")\n }\n return __output;\n\n}","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","/**\n * Copyright (C) 2022-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {genLink, getHumanReadableDate} from 'utils/functions';\nimport {dataTableCommonConfig} from 'utils/constants';\n\nexport function onModerationPageLoad() {\n populateModerationList();\n}\n\nexport async function populateModerationList() {\n $('#swh-add-forge-now-moderation-list')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#swh-add-forge-now-moderation-list-error').text(message);\n })\n .DataTable({\n ...dataTableCommonConfig,\n searching: true,\n dom: '<\"row mb-2\"<\"col-sm-3\"l><\"col-sm-6\"><\"col-sm-3\"f>>' +\n '<\"row\"<\"col-sm-12\"tr>>' +\n '<\"row mt-2\"<\"col-sm-5\"i><\"col-sm-7\"p>>',\n ajax: {\n 'url': Urls.add_forge_request_list_datatables()\n },\n columns: [\n {\n data: 'id',\n name: 'id',\n render: function(data, type, row, meta) {\n const dashboardUrl = Urls.add_forge_now_request_dashboard(data);\n return `<a href=${dashboardUrl}>${data}</a>`;\n }\n },\n {\n data: 'submission_date',\n name: 'submission_date',\n render: getHumanReadableDate\n },\n {\n data: 'forge_type',\n name: 'forge_type',\n render: $.fn.dataTable.render.text()\n },\n {\n data: 'forge_url',\n name: 'forge_url',\n render: (data, type, row) => {\n const sanitizedURL = $.fn.dataTable.render.text().display(data);\n return genLink(sanitizedURL, type, true);\n }\n },\n {\n data: 'last_moderator',\n name: 'last_moderator',\n render: $.fn.dataTable.render.text()\n },\n {\n data: 'last_modified_date',\n name: 'last_modified_date',\n render: getHumanReadableDate\n },\n {\n data: 'status',\n name: 'status',\n render: function(data, type, row, meta) {\n return swh.add_forge_now.formatRequestStatusName(data);\n }\n },\n {\n render: (data, type, row) => {\n let html = '<div class=\"d-flex\">';\n const dashboardUrl = Urls.add_forge_now_request_dashboard(row.id);\n html += `<a class=\"swh-forge-request-dashboard-link\" href=\"${dashboardUrl}\" title=\"Go to request dashboard\">` +\n '<i class=\"mdi mdi-square-edit-outline\" aria-hidden=\"true\"></i></a>';\n if (row.status === 'FIRST_ORIGIN_LOADED') {\n const sanitizedURL = $.fn.dataTable.render.text().display(row.forge_url);\n let originsSearchUrl = `${Urls.browse_search()}?q=${encodeURIComponent(sanitizedURL)}`;\n originsSearchUrl += '&with_visit=true&with_content=true';\n html += `<a href=\"${originsSearchUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" ` +\n 'class=\"swh-search-forge-origins\" title=\"Search for origins listed from that forge\">' +\n '<i class=\"mdi mdi-magnify\" aria-hidden=\"true\"></i></a>';\n }\n html += '</div>';\n return html;\n }\n }\n ],\n order: [[0, 'desc']]\n });\n}\n","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","module.exports = function anonymous(locals, escapeFn, include, rethrow\n) {\nescapeFn = escapeFn || function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nvar _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n;\n var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n with (locals || {}) {\n ; __append(\"\\n<div class=\\\"form-check swhid-option\\\">\\n <input class=\\\"form-check-input\\\" value=\\\"option-user-requests-filter\\\" type=\\\"checkbox\\\"\\n \")\n ; if (checked) { \n ; __append(\"\\n checked=\\\"checked\\\"\\n \")\n ; } \n ; __append(\"\\n id=\\\"\")\n ; __append(escapeFn( inputId ))\n ; __append(\"\\\">\\n <label class=\\\"form-check-label font-weight-normal\\\" for=\\\"\")\n ; __append(escapeFn( inputId ))\n ; __append(\"\\\">\\n show only your own requests\\n </label>\\n</div>\\n\")\n }\n return __output;\n\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","module.exports = function anonymous(locals, escapeFn, include, rethrow\n) {\nescapeFn = escapeFn || function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nvar _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n;\n var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n with (locals || {}) {\n ; __append(\"Dear forge administrator,\\n\\nWe are happy to announce to you that your forge is now successfully\\narchived.\\n\\nThe forge repositories are now available in the archive :\\nhttps://archive.softwareheritage.org/browse/search/?q=\")\n ; __append(escapeFn( forgeUrl ))\n ; __append(\"&with_visit=true&with_content=true\\n\\nKind regards,\\n\\nThe Software Heritage team\")\n }\n return __output;\n\n}","/**\n * Copyright (C) 2022-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {csrfPost, getHumanReadableDate, handleFetchError} from 'utils/functions';\nimport requestHistoryItem from './add-request-history-item.ejs';\nimport initialEmailTempate from './forge-admin-email.ejs';\nimport successEmailTempate from './forge-success-email.ejs';\n\nlet forgeRequest;\n\nexport function onRequestDashboardLoad(requestId, nextStatusesFor) {\n $(document).ready(() => {\n populateRequestDetails(requestId, nextStatusesFor);\n\n $('#contactForgeAdmin').click((event) => {\n contactForgeAdmin(event);\n });\n\n $('#updateRequestForm').submit(async function(event) {\n event.preventDefault();\n try {\n const response = await csrfPost($(this).attr('action'),\n {'Content-Type': 'application/x-www-form-urlencoded'},\n $(this).serialize());\n handleFetchError(response);\n $('#userMessage').text('The request status has been updated ');\n $('#userMessage').removeClass('text-bg-danger');\n $('#userMessage').addClass('text-bg-success');\n populateRequestDetails(requestId, nextStatusesFor);\n } catch (response) {\n $('#userMessage').text('Sorry; Updating the request failed');\n $('#userMessage').removeClass('text-bg-success');\n $('#userMessage').addClass('text-bg-danger');\n }\n });\n });\n}\n\nasync function populateRequestDetails(requestId, nextStatusesFor) {\n try {\n const response = await fetch(Urls.api_1_add_forge_request_get(requestId));\n handleFetchError(response);\n const data = await response.json();\n forgeRequest = data.request;\n\n $('#requestStatus').text(swh.add_forge_now.formatRequestStatusName(forgeRequest.status));\n $('#requestType').text(forgeRequest.forge_type);\n const htmlForgeURL =\n `<a href=\"${encodeURI(forgeRequest.forge_url)}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n `${swh.webapp.filterXSS(forgeRequest.forge_url)}</a>`;\n $('#requestURL').html(htmlForgeURL);\n $('#requestContactName').text(forgeRequest.forge_contact_name);\n $('#requestContactConsent').text(forgeRequest.submitter_forward_username);\n $('#requestContactEmail').text(forgeRequest.forge_contact_email);\n $('#submitterMessage').text(forgeRequest.forge_contact_comment);\n $('#updateComment').val('');\n\n // Setting data for the email, now adding static data\n const mods = 'Software Heritage Archival Moderators <archival@softwareheritage.org>';\n const emailTo = `${forgeRequest.forge_contact_name} <${forgeRequest.forge_contact_email}>`;\n const emailCc = forgeRequest.inbound_email_address;\n const emailReply = `${emailCc}, ${mods}, ${emailTo}`;\n $('#contactForgeAdmin').attr('emailTo', emailTo);\n $('#contactForgeAdmin').attr('emailCc', emailCc);\n $('#contactForgeAdmin').attr('emailReply', emailReply);\n $('#contactForgeAdmin').attr('emailSubject', `Software Heritage archival notification for ${forgeRequest.forge_domain}`);\n populateRequestHistory(data.history);\n populateDecisionSelectOption(forgeRequest.status, nextStatusesFor);\n } catch (e) {\n if (e instanceof Response) {\n // The fetch request failed (in handleFetchError), show the error message\n $('#fetchError').removeClass('d-none');\n $('#requestDetails').addClass('d-none');\n } else {\n // Unknown exception, pass it through\n throw e;\n }\n }\n}\n\nfunction populateRequestHistory(history) {\n $('#requestHistory').children().remove();\n\n history.forEach((event, index) => {\n const historyEvent = requestHistoryItem({\n 'event': event,\n 'index': index,\n 'getHumanReadableDate': getHumanReadableDate\n });\n $('#requestHistory').append(historyEvent);\n });\n}\n\nexport function populateDecisionSelectOption(currentStatus, nextStatusesFor) {\n\n // Determine the possible next status out of the current one\n const nextStatuses = nextStatusesFor[currentStatus];\n\n function addStatusOption(status, index) {\n // Push the next possible status options\n const label = swh.add_forge_now.formatRequestStatusName(status);\n $('#decisionOptions').append(\n `<option value=\"${status}\">${label}</option>`\n );\n }\n // Remove all the options and add new ones\n $('#decisionOptions').children().remove();\n nextStatuses.forEach(addStatusOption);\n $('#decisionOptions').append(\n '<option hidden disabled selected value> -- Add a comment -- </option>'\n );\n}\n\nfunction contactForgeAdmin(event) {\n // Open the mailclient with pre-filled text\n const mailTo = encodeURIComponent($('#contactForgeAdmin').attr('emailTo'));\n const mailCc = encodeURIComponent($('#contactForgeAdmin').attr('emailCc'));\n const mailReply = encodeURIComponent($('#contactForgeAdmin').attr('emailReply'));\n const subject = encodeURIComponent($('#contactForgeAdmin').attr('emailSubject'));\n // select email template according to the status:\n let emailText = '';\n if (forgeRequest.status === 'PENDING') {\n emailText = encodeURIComponent(initialEmailTempate({'forgeUrl': forgeRequest.forge_url, 'forgeAdmin': forgeRequest.forge_contact_name}).trim().replace(/\\n/g, '\\r\\n'));\n }\n if (forgeRequest.status === 'FIRST_ORIGIN_LOADED') {\n emailText = encodeURIComponent(successEmailTempate({'forgeUrl': encodeURIComponent(forgeRequest.forge_url)}).trim().replace(/\\n/g, '\\r\\n'));\n }\n const w = window.open('', '_blank', '', true);\n w.location.href = `mailto:${mailTo}?Cc=${mailCc}&Reply-To=${mailReply}&Mail-Reply-To=${mailReply}&Mail-Followup-To=${mailReply}&Subject=${subject}&body=${emailText}`;\n w.focus();\n}\n","module.exports = function anonymous(locals, escapeFn, include, rethrow\n) {\nescapeFn = escapeFn || function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nvar _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n;\n var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n with (locals || {}) {\n ; __append(\"\\n<div class=\\\"history-item\\\">\\n\t<div class=\\\"card border-dark\\\">\\n\t\t<div class=\\\"card-header\\\" id=\\\"historyItem\")\n ; __append(escapeFn( index ))\n ; __append(\"\\\">\\n\t\t\t<h2 class=\\\"mb-0\\\">\\n\t\t\t\t<button class=\\\"btn btn-link\\\" type=\\\"button\\\" data-bs-toggle=\\\"collapse\\\" data-bs-target=\\\"#historyItemBody\")\n ; __append(escapeFn( index ))\n ; __append(\"\\\" aria-expanded=\\\"true\\\" aria-controls=\\\"collapse$\")\n ; __append(escapeFn( index ))\n ; __append(\"\\\">\\n\t\t\t\t\t\t\t\tFrom \")\n ; __append(escapeFn( event.actor ))\n ; __append(\" (\")\n ; __append(escapeFn( event.actor_role ))\n ; __append(\") on \")\n ; __append(escapeFn( getHumanReadableDate(event.date) ))\n ; __append(\"\\n\t\t\t\t\t\")\n ; if (event.new_status !== null) { \n ; __append(\"\\n\t\t\t\t\t<span style=\\\"padding-left: 10px;\\\">New status:</span> \")\n ; __append(escapeFn( swh.add_forge_now.formatRequestStatusName(event.new_status) ))\n ; __append(\"\\n\t\t\t\t\t\")\n ; } \n ; __append(\"\\n\t\t\t\t</button>\\n\t\t\t</h2>\\n\t\t</div>\\n\t\t<div id=\\\"historyItemBody\")\n ; __append(escapeFn( index))\n ; __append(\"\\\" class=\\\"collapse\\\" aria-labelledby=\\\"historyItem\")\n ; __append(escapeFn( index ))\n ; __append(\"\\\" data-parent=\\\"#requestHistory\\\">\\n\t\t\t<div class=\\\"card-body\\\">\\n\t\t\t\t\")\n ; if (event.text) { \n ; __append(\"\\n\t\t\t\t<pre>\")\n ; __append(escapeFn( event.text ))\n ; __append(\"</pre>\\n\t\t\t\t\")\n ; } \n ; __append(\"\\n\t\t\t\t\")\n ; if (event.message_source_url !== null) { \n ; __append(\"\\n\t\t\t\t<p><a href=\\\"\")\n ; __append(escapeFn( event.message_source_url ))\n ; __append(\"\\\">Open original message in email client</a></p>\\n\t\t\t\t\")\n ; } \n ; __append(\"\\n\t\t\t\t\")\n ; if (event.new_status !== null) { \n ; __append(\"\\n\t\t\t\t\t<p>\\n\t\t\t\t\t\t<span>Status changed to:</span> <strong>\")\n ; __append(escapeFn( swh.add_forge_now.formatRequestStatusName(event.new_status) ))\n ; __append(\"</strong>\\n\t\t\t\t\t</p>\\n\t\t\t\t\")\n ; } \n ; __append(\"\\n\t\t\t</div>\\n\t\t</div>\\n\t</div>\\n</div>\\n\")\n }\n return __output;\n\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright (C) 2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// bundle for add forge views\n\nexport * from './add-forge.css';\nexport * from './create-request';\nexport * from './moderation-dashboard';\nexport * from './request-dashboard';\n\nexport function formatRequestStatusName(status) {\n // Mapping to format the request status to a human readable text\n const statusLabel = {\n 'PENDING': 'Pending',\n 'WAITING_FOR_FEEDBACK': 'Waiting for feedback',\n 'FEEDBACK_TO_HANDLE': 'Feedback to handle',\n 'ACCEPTED': 'Accepted',\n 'SCHEDULED': 'Scheduled',\n 'FIRST_LISTING_DONE': 'First listing done',\n 'FIRST_ORIGIN_LOADED': 'First origin loaded',\n 'REJECTED': 'Rejected',\n 'SUSPENDED': 'Suspended',\n 'UNSUCCESSFUL': 'Unsuccessful'\n };\n return status in statusLabel ? statusLabel[status] : status;\n}\n"],"names":["root","factory","exports","module","define","amd","self","regenerator","regeneratorAsyncIterator","r","e","t","o","n","w","Promise","__esModule","Object","unshift","length","pop","value","done","OverloadYield","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","_regeneratorRuntime","m","getPrototypeOf","__proto__","constructor","displayName","name","a","stop","v","abrupt","delegateYield","resultName","d","finish","f","_t","p","prev","next","sent","call","this","wrap","reverse","isGeneratorFunction","mark","awrap","AsyncIterator","async","u","keys","values","handleFetchError","response","ok","errorMessageFromResponse","errorData","defaultMessage","errorMessage","reason","JSON","parse","entries","forEach","_","key","message","staticAsset","asset","origin","url","__STATIC__","startsWith","csrfPost","headers","body","Cookies","get","fetch","credentials","method","textToHTML","text","textArea","document","createElement","innerText","innerHTML","validateUrl","allowedProtocols","originUrl","validUrl","URL","TypeError","undefined","find","protocol","getHumanReadableDate","data","Date","toLocaleString","genLink","sanitizedUrl","type","openInNewTab","linkText","encodedSanitizedUrl","encodeURI","attrs","asyncGeneratorStep","c","i","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","requestBrowseTable","addForgeCheckboxId","userRequestsFilterCheckbox","userRequestsFilterCheckboxFn","EmptyGitLabError","_Error","_inheritsLoose","_wrapNativeSuper","Error","apiErrorGitLabInstance","api","apiIssue","error","errorMsg","replace","errorVal","errorTxt","replaceAll","errorHTML","$","html","removeClass","addClass","setCustomValidity","emptyGitLabInstance","nonEmptyGitLabInstance","empty","validateGitLabContents","_validateGitLabContents","_callee2","json","_t3","_context2","val","trim","status","statusText","Array","isArray","validateForgeContents","_validateForgeContents","_callee3","forgeType","_context3","includes","onCreateRequestPageLoad","ready","submit","_ref","_callee","event","_t2","_context","preventDefault","attr","serialize","draw","_x","populateRequestBrowseList","on","settings","techNote","DataTable","_extends","dataTableCommonConfig","retrieve","searching","dom","ajax","Urls","add_forge_request_list_datatables","checked","prop","swh","webapp","isUserLoggedIn","user_requests_only","fnInitComplete","columns","render","fn","dataTable","row","sanitizedURL","display","meta","add_forge_now","formatRequestStatusName","forge_url","originsSearchUrl","browse_search","encodeURIComponent","order","RegExpX","re","RegExp","bitbucketPathnameExtraRe","cgitPathnameExtraRe","cgitSearchExtraRe","gitlabPathnameExtraRe","giteaPathnameExtraRe","gitilesSearchExtraRe","gitilesPathnameExtraRe","gitwebSearchExtraRe","stagitPathnameExtraRe","validateForgeUrl","input","customValidity","hostname","test","isGitHubUrl","isGitLabUrl","isMissingSlash","extra","exec","pathname","search","getUrlExtra","regeneratorDefine","prototype","Symbol","asyncIterator","_regenerator","iterator","toStringTag","Generator","create","y","G","bind","l","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","assign","target","source","init","converter","defaultAttributes","set","attributes","expires","now","toUTCString","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","slice","join","found","read","remove","withAttributes","withConverter","freeze","path","serverSide","processing","language","fixedHeader","lengthMenu","scrollCollapse","searchDelay","k","_typeof","isNaN","anonymous","locals","escapeFn","include","rethrow","markup","String","_MATCH_HTML","encode_char","_ENCODE_HTML_RULES","__output","__append","s","forgeAdmin","forgeUrl","_construct","Reflect","construct","push","onModerationPageLoad","populateModerationList","_populateModerationList","add_forge_now_request_dashboard","id","_isNativeReflectConstruct","Boolean","valueOf","_getPrototypeOf","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","hasOwnProperty","_setPrototypeOf","Map","has","Wrapper","enumerable","writable","configurable","_isNativeFunction","toString","indexOf","inputId","_regeneratorDefine","defineProperty","_invoke","forgeRequest","onRequestDashboardLoad","requestId","nextStatusesFor","populateRequestDetails","click","mailTo","mailCc","mailReply","subject","emailText","initialEmailTempate","forge_contact_name","successEmailTempate","window","open","location","href","focus","contactForgeAdmin","_x2","_x3","_populateRequestDetails","htmlForgeURL","emailTo","emailCc","emailReply","api_1_add_forge_request_get","request","forge_type","filterXSS","submitter_forward_username","forge_contact_email","forge_contact_comment","inbound_email_address","forge_domain","populateRequestHistory","history","populateDecisionSelectOption","Response","children","index","historyEvent","requestHistoryItem","append","currentStatus","nextStatuses","label","actor","actor_role","date","new_status","message_source_url","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj","statusLabel"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see auth.bd2f475f49caa9f84e99.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.swh=t():(e.swh=e.swh||{},e.swh.auth=t())}(self,function(){return function(){var e={887:function(e,t,n){var r=n(16993),o=n(11791);e.exports=function(e,t,n,i,u){return new o(r().w(e,t,n,i),u||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},4373:function(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},4633:function(e,t,n){var r=n(25172),o=n(16993),i=n(55869),u=n(887),s=n(11791),a=n(4373),c=n(30579);function f(){"use strict";var t=o(),n=t.m(f),l=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var d={throw:1,return:2,break:3,continue:3};function v(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,d[e],t)},delegateYield:function(e,o,i){return t.resultName=o,n(r.d,c(e),i)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=f=function(){return{wrap:function(e,n,r,o){return t.w(v(e),n,r,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:s,async:function(e,t,n,r,o){return(p(t)?u:i)(v(e),t,n,r,o)},keys:a,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=f,e.exports.__esModule=!0,e.exports.default=e.exports},8545:function(e,t,n){"use strict";n.d(t,{Iq:function(){return s},Jq:function(){return u},Tv:function(){return o},lY:function(){return i}});n(54756);var r=n(18987);function o(e){if(!e.ok)throw e;return e}function i(e,t){var n="/static/"+e;return n.startsWith("/")&&t&&(n=t+n),n}function u(e,t,n){return void 0===t&&(t={}),void 0===n&&(n=null),t["X-CSRFToken"]=r.A.get("csrftoken"),fetch(e,{credentials:"include",headers:t,method:"POST",body:n})}function s(){history.replaceState("",document.title,window.location.pathname+window.location.search)}},10467:function(e,t,n){"use strict";function r(e,t,n,r,o,i,u){try{var s=e[i](u),a=s.value}catch(e){return void n(e)}s.done?t(a):Promise.resolve(a).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise(function(o,i){var u=e.apply(t,n);function s(e){r(u,o,i,s,a,"next",e)}function a(e){r(u,o,i,s,a,"throw",e)}s(void 0)})}}n.d(t,{A:function(){return o}})},11791:function(e,t,n){var r=n(25172),o=n(75546);e.exports=function e(t,n){function i(e,o,u,s){try{var a=t[e](o),c=a.value;return c instanceof r?n.resolve(c.v).then(function(e){i("next",e,u,s)},function(e){i("throw",e,u,s)}):n.resolve(c).then(function(e){a.value=e,u(a)},function(e){return i("throw",e,u,s)})}catch(e){s(e)}}var u;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(e,t,r){function o(){return new n(function(t,n){i(e,r,t,n)})}return u=u?u.then(o,o):o()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports},16993:function(e,t,n){var r=n(75546);function o(){var t,n,i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",s=i.toStringTag||"@@toStringTag";function a(e,o,i,u){var s=o&&o.prototype instanceof f?o:f,a=Object.create(s.prototype);return r(a,"_invoke",function(e,r,o){var i,u,s,a=0,f=o||[],l=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return i=e,u=0,s=t,p.n=n,c}};function d(e,r){for(u=e,s=r,n=0;!l&&a&&!o&&n<f.length;n++){var o,i=f[n],d=p.p,v=i[2];e>3?(o=v===r)&&(s=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=e<2&&d<i[1])?(u=0,p.v=r,p.n=i[1]):d<v&&(o=e<3||i[0]>r||r>v)&&(i[4]=e,i[5]=r,p.n=v,u=0))}if(o||e>1)return c;throw l=!0,r}return function(o,f,v){if(a>1)throw TypeError("Generator is already running");for(l&&1===f&&d(f,v),u=f,s=v;(n=u<2?t:s)||!l;){i||(u?u<3?(u>1&&(p.n=-1),d(u,s)):p.n=s:p.v=s);try{if(a=2,i){if(u||(o="next"),n=i[o]){if(!(n=n.call(i,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,u<2&&(u=0)}else 1===u&&(n=i.return)&&n.call(i),u<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((n=(l=p.n<0)?s:e.call(r,p))!==c)break}catch(e){i=t,u=1,s=e}finally{a=1}}return{value:n,done:l}}}(e,i,u),!0),a}var c={};function f(){}function l(){}function p(){}n=Object.getPrototypeOf;var d=[][u]?n(n([][u]())):(r(n={},u,function(){return this}),n),v=p.prototype=f.prototype=Object.create(d);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,r(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,r(v,"constructor",p),r(p,"constructor",l),l.displayName="GeneratorFunction",r(p,s,"GeneratorFunction"),r(v),r(v,s,"Generator"),r(v,u,function(){return this}),r(v,"toString",function(){return"[object Generator]"}),(e.exports=o=function(){return{w:a,m:h}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},18987:function(e,t,n){"use strict";function r(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}n.d(t,{A:function(){return o}});var o=function e(t,n){function o(e,o,i){if("undefined"!=typeof document){"number"==typeof(i=r({},n,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var u="";for(var s in i)i[s]&&(u+="; "+s,!0!==i[s]&&(u+="="+i[s].split(";")[0]));return document.cookie=e+"="+t.write(o,e)+u}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],r={},o=0;o<n.length;o++){var i=n[o].split("="),u=i.slice(1).join("=");try{var s=decodeURIComponent(i[0]);if(r[s]=t.read(u,s),e===s)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){o(e,"",r({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,r({},this.attributes,t))},withConverter:function(t){return e(r({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})},23717:function(e,t,n){"use strict";n.d(t,{_k:function(){return r}});var r={serverSide:!0,processing:!0,language:{processing:'<img src="'+(0,n(8545).lY)("img/swh-spinner.gif")+'"></img>'},fixedHeader:!0,lengthMenu:[10,25,50,100,1e3],scrollCollapse:!0,searchDelay:1e3}},25172:function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},30579:function(e,t,n){var r=n(73738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(r(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},54756:function(e,t,n){var r=n(4633)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},55869:function(e,t,n){var r=n(887);e.exports=function(e,t,n,o,i){var u=r(e,t,n,o,i);return u.next().then(function(e){return e.done?e.value:u.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},58168:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:function(){return r}})},73738:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},75546:function(e){function t(n,r,o,i){var u=Object.defineProperty;try{u({},"",{})}catch(n){u=0}e.exports=t=function(e,n,r,o){function i(n,r){t(e,n,function(e){return this._invoke(n,r,e)})}n?u?u(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r:(i("next",0),i("throw",1),i("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,i)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return function(){"use strict";n.r(r),n.d(r,{applyTokenAction:function(){return y},initProfilePage:function(){return w}});var e,t=n(58168),o=n(10467),i=n(54756),u=n.n(i),s=n(8545),a=n(23717);function c(e){return'<p id="swh-token-error-message" class="mt-3 swh-token-form-message">'+e+"</p>"}function f(e){return'<p id="swh-token-success-message" class="mt-3 swh-token-form-message">'+e+"</p>"}function l(){$("#swh-token-form-submit").prop("disabled",!0)}function p(){window.location=Urls.oidc_generate_bearer_token()}function d(e){return v.apply(this,arguments)}function v(){return(v=(0,o.A)(u().mark(function e(t){var n,r,o,i,a,f,l;return u().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n={token_id:t},e.prev=1,e.next=2,(0,s.Jq)(Urls.oidc_get_bearer_token(),{},JSON.stringify(n));case 2:return r=e.sent,(0,s.Tv)(r),e.next=3,r.text();case 3:o=e.sent,i='<p>Below is your token.</p>\n <pre id="swh-bearer-token" class="mt-3">'+o+"</pre>",swh.webapp.showModalHtml("Display bearer token",i),e.next=6;break;case 4:return e.prev=4,l=e.catch(1),e.next=5,l.text();case 5:a=e.sent,f="Internal server error.",400===l.status&&(f=a),swh.webapp.showModalHtml("Display bearer token",c(f));case 6:case"end":return e.stop()}},e,null,[[1,4]])}))).apply(this,arguments)}function h(e){return b.apply(this,arguments)}function b(){return(b=(0,o.A)(u().mark(function t(n){var r,o;return u().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r={token_ids:n},t.prev=1,t.next=2,(0,s.Jq)(Urls.oidc_revoke_bearer_tokens(),{},JSON.stringify(r));case 2:o=t.sent,(0,s.Tv)(o),l(),$("#swh-token-form-message").html(f("Bearer token"+(n.length>1?"s":"")+" successfully revoked.")),e.draw(),t.next=4;break;case 3:t.prev=3,t.catch(1),$("#swh-token-form-message").html(c("Internal server error."));case 4:case"end":return t.stop()}},t,null,[[1,3]])}))).apply(this,arguments)}function x(e){h([e])}function m(){for(var t=[],n=e.rows().data(),r=0;r<n.length;++r)t.push(n[r].id);h(t)}function y(e,t){var n,r,o={display:{submitCallback:d},generate:{modalTitle:"Bearer token generation",infoText:"Click on the button to generate the token. You will be redirected to Software Heritage Authentication Service and might be asked to enter your password again.",buttonText:"Generate token",submitCallback:p},revoke:{modalTitle:"Revoke bearer token",infoText:"Click on the button to revoke the token.",buttonText:"Revoke token",submitCallback:x},revokeAll:{modalTitle:"Revoke all bearer tokens",infoText:"Click on the button to revoke all tokens.",buttonText:"Revoke tokens",submitCallback:m}};if(o[e])if("display"!==e){var i=(n=o[e].infoText,r=o[e].buttonText,'<form id="swh-token-form" class="text-center">\n <p id="swh-token-form-text">'+n+'</p>\n <input id="swh-token-form-submit" type="submit" value="'+r+'">\n <div id="swh-token-form-message"></div>\n </form>');swh.webapp.showModalHtml(o[e].modalTitle,i),$("#swh-token-form").submit(function(n){n.preventDefault(),n.stopPropagation(),o[e].submitCallback(t)})}else o[e].submitCallback(t)}function w(){$(document).ready(function(){e=$("#swh-bearer-tokens-table").on("error.dt",function(e,t,n,r){$("#swh-origin-save-request-list-error").text("An error occurred while retrieving the tokens list"),console.log(r)}).DataTable((0,t.A)({},a._k,{ajax:Urls.oidc_list_bearer_tokens(),columns:[{data:"creation_date",name:"creation_date",render:function(e,t,n){return"display"===t?new Date(e).toLocaleString():e}},{render:function(e,t,n){return'<button class="btn btn-secondary btn-sm"\n onclick="swh.auth.applyTokenAction(\'display\', '+n.id+')">\n Display token\n </button>\n <button class="btn btn-secondary btn-sm"\n onclick="swh.auth.applyTokenAction(\'revoke\', '+n.id+')">\n Revoke token\n </button>'}}],ordering:!1,searching:!1})),$("#swh-oidc-profile-tokens-tab").on("shown.bs.tab",function(){e.draw(),window.location.hash="#tokens"}),$("#swh-oidc-profile-account-tab").on("shown.bs.tab",function(){(0,s.Iq)()}),"#tokens"===window.location.hash&&$('.nav-tabs a[href="#swh-oidc-profile-tokens"]').tab("show")})}}(),r}()});
|
|
3
|
-
//# sourceMappingURL=auth.bd2f475f49caa9f84e99.js.map
|