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":"js/save_code_now.4211098f5dd740dc49b4.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/./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/save_code_now/assets/origin-save.js","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./swh/web/save_code_now/assets/artifact-form-row.ejs","webpack://swh/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://swh/./swh/web/save_code_now/assets/origin-save-admin.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/inherits.js","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"],"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\"][\"save_code_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 };","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;","/**\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\nimport {swhSpinnerSrc, dataTableCommonConfig} from 'utils/constants';\nimport {\n csrfPost, getCanonicalOriginURL, getHumanReadableDate, handleFetchError,\n htmlAlert, isGitRepoUrl, validateUrl\n} from 'utils/functions';\nimport userRequestsFilterCheckboxFn from 'utils/requests-filter-checkbox.ejs';\nimport artifactFormRowTemplate from './artifact-form-row.ejs';\n\nlet saveRequestsTable;\n\nasync function originSaveRequest(\n originType, originUrl, extraData,\n acceptedCallback, pendingCallback, errorCallback\n) {\n // Actually trigger the origin save request\n let addSaveOriginRequestUrl = Urls.api_1_save_origin();\n addSaveOriginRequestUrl += `?visit_type=${originType}`;\n addSaveOriginRequestUrl += `&origin_url=${encodeURIComponent(originUrl)}`;\n $('.swh-processing-save-request').css('display', 'block');\n let headers = {};\n let body = null;\n if (extraData !== {}) {\n body = JSON.stringify(extraData);\n headers = {\n 'Content-Type': 'application/json'\n };\n };\n\n try {\n const response = await csrfPost(addSaveOriginRequestUrl, headers, body);\n handleFetchError(response);\n const data = await response.json();\n $('.swh-processing-save-request').css('display', 'none');\n if (data.save_request_status === 'accepted') {\n acceptedCallback();\n } else {\n pendingCallback();\n }\n } catch (response) {\n $('.swh-processing-save-request').css('display', 'none');\n const errorData = await response.json();\n errorCallback(response.status, errorData);\n };\n}\n\nfunction addArtifactVersionAutofillHandler(formId) {\n // autofill artifact version input with the filename from\n // the artifact url without extensions\n $(`#swh-input-artifact-url-${formId}`).on('input', function(event) {\n const artifactUrl = $(this).val().trim();\n let filename = artifactUrl.split('/').slice(-1)[0];\n if (filename !== artifactUrl) {\n filename = filename.replace(/tar.*$/, 'tar');\n const filenameNoExt = filename.split('.').slice(0, -1).join('.');\n const artifactVersion = $(`#swh-input-artifact-version-${formId}`);\n if (filenameNoExt !== filename) {\n artifactVersion.val(filenameNoExt);\n }\n }\n });\n}\n\nexport function maybeRequireExtraInputs() {\n // Read the actual selected value and depending on the origin type, display some extra\n // inputs or hide them. This makes the extra inputs disabled when not displayed.\n const originType = $('#swh-input-visit-type').val();\n let display = 'none';\n let disabled = true;\n\n if (originType === 'archives') {\n display = 'flex';\n disabled = false;\n }\n $('.swh-save-origin-archives-form').css('display', display);\n if (!disabled) {\n // help paragraph must have block display for proper rendering\n $('#swh-save-origin-archives-help').css('display', 'block');\n }\n $('.swh-save-origin-archives-form .form-control').prop('disabled', disabled);\n\n if (originType === 'archives' && $('.swh-save-origin-archives-form').length === 1) {\n // insert first artifact row when the archives visit type is selected for the first time\n $('.swh-save-origin-archives-form').last().after(\n artifactFormRowTemplate({deletableRow: false, formId: 0}));\n addArtifactVersionAutofillHandler(0);\n }\n}\n\nexport function addArtifactFormRow() {\n const formId = $('.swh-save-origin-artifact-form').length;\n $('.swh-save-origin-artifact-form').last().after(\n artifactFormRowTemplate({\n deletableRow: true,\n formId: formId\n })\n );\n addArtifactVersionAutofillHandler(formId);\n}\n\nexport function deleteArtifactFormRow(event) {\n $(event.target).closest('.swh-save-origin-artifact-form').remove();\n}\n\nconst saveRequestCheckboxId = 'swh-save-requests-user-filter';\nconst userRequestsFilterCheckbox = userRequestsFilterCheckboxFn({\n 'inputId': saveRequestCheckboxId,\n 'checked': false // no filtering by default on that view\n});\n\nconst csvExportButton = `\n<a href=\"${Urls.admin_origin_save_requests_csv()}\"\n class=\"btn btn-secondary btn-sm swh-tr-link\"\n role=\"button\">\n <i class=\"mdi mdi-table mdi-fw\" aria-hidden=\"true\"></i>\n CSV export\n</a>\n`;\n\nexport function initOriginSave() {\n\n $(document).ready(() => {\n\n $.fn.dataTable.ext.errMode = 'none';\n\n // set git as the default value as before\n $('#swh-input-visit-type').val('git');\n\n saveRequestsTable = $('#swh-origin-save-requests')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#swh-origin-save-request-list-error').text('An error occurred while retrieving the save requests list');\n console.log(message);\n })\n .DataTable({\n ...dataTableCommonConfig,\n ajax: {\n url: Urls.origin_save_requests_list('all'),\n data: (d) => {\n if (swh.webapp.isUserLoggedIn() && $(`#${saveRequestCheckboxId}`).prop('checked')) {\n d.user_requests_only = '1';\n }\n }\n },\n // see https://datatables.net/examples/advanced_init/dom_toolbar.html and the comments section\n // this option customizes datatables UI components by adding an extra checkbox above the table\n // while keeping bootstrap layout\n dom: '<\"row mb-2\"<\"col-sm-3\"l><\"col-sm-3 text-start user-requests-filter\">' +\n '<\"col-sm-3 requests-csv-export\"><\"col-sm-3\"f>>' +\n '<\"row\"<\"col-sm-12\"tr>>' +\n '<\"row mt-2\"<\"col-sm-5\"i><\"col-sm-7\"p>>',\n fnInitComplete: function() {\n if (swh.webapp.isUserLoggedIn()) {\n $('div.user-requests-filter').html(userRequestsFilterCheckbox);\n if (swh.webapp.isStaffUser()) {\n $('div.requests-csv-export').html(csvExportButton);\n }\n $(`#${saveRequestCheckboxId}`).on('change', () => {\n saveRequestsTable.draw();\n });\n }\n },\n columns: [\n {\n data: 'save_request_date',\n name: 'request_date',\n render: getHumanReadableDate\n },\n {\n data: 'visit_type',\n name: 'visit_type'\n },\n {\n data: 'origin_url',\n name: 'origin_url',\n render: (data, type, row) => {\n if (type === 'display') {\n let html = '';\n const sanitizedURL = $.fn.dataTable.render.text().display(data);\n const parsedURL = new URL(sanitizedURL);\n if (row.save_task_status === 'succeeded') {\n if (row.visit_status === 'full' || row.visit_status === 'partial') {\n let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(sanitizedURL)}`;\n if (row.visit_date) {\n browseOriginUrl += `&timestamp=${encodeURIComponent(row.visit_date)}`;\n }\n html += `<a href=\"${browseOriginUrl}\">${sanitizedURL}</a>`;\n } else {\n const tooltip = 'origin was successfully loaded, waiting for data to be available in database';\n html += `<span title=\"${tooltip}\">${sanitizedURL}</span>`;\n }\n } else {\n html += sanitizedURL;\n }\n if (parsedURL.protocol.startsWith('http')) {\n html += ` <a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\n }\n return html;\n }\n return data;\n }\n },\n {\n data: 'save_request_status',\n name: 'status'\n },\n {\n data: 'save_task_status',\n name: 'loading_task_status'\n },\n {\n name: 'info',\n render: (data, type, row) => {\n let info = '';\n if (row.save_task_status === 'succeeded' || row.save_task_status === 'failed' ||\n row.note != null) {\n info += `<i class=\"mdi mdi-information-outline swh-save-request-info\"\n aria-hidden=\"true\" style=\"cursor: pointer\"\n onclick=\"swh.save_code_now.displaySaveRequestInfo(event, ${row.id})\"></i>`;\n }\n if (row.from_webhook) {\n info += `<i class=\"mdi mdi-webhook\" aria-hidden=\"true\"\n title=\"save request created from webhook\"></i>`;\n }\n return info;\n\n }\n },\n {\n render: (data, type, row) => {\n if (row.save_request_status === 'accepted') {\n const saveAgainButton =\n '<button class=\"btn btn-secondary btn-sm swh-save-origin-again\" type=\"button\" ' +\n `onclick=\"swh.save_code_now.fillSaveRequestFormAndScroll(` +\n `'${row.visit_type}', '${row.origin_url}');\">` +\n '<i class=\"mdi mdi-camera mdi-fw\" aria-hidden=\"true\"></i>' +\n 'Save again</button>';\n return saveAgainButton;\n } else {\n return '';\n }\n }\n }\n ],\n\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n\n swh.webapp.addJumpToPagePopoverToDataTable(saveRequestsTable);\n\n if (window.location.pathname === Urls.origin_save() && window.location.hash === '#requests') {\n // Keep old URLs to the save list working\n window.location = Urls.origin_save_list();\n } else if ($('#swh-origin-save-requests')) {\n saveRequestsTable.draw();\n }\n\n const saveRequestAcceptedAlert = htmlAlert(\n 'success',\n 'The \"save code now\" request has been accepted and will be processed as soon as possible.',\n true\n );\n\n const saveRequestPendingAlert = htmlAlert(\n 'warning',\n 'The \"save code now\" request has been put in pending state and may be accepted for processing after manual review.',\n true\n );\n\n const saveRequestRateLimitedAlert = htmlAlert(\n 'danger',\n 'The rate limit for \"save code now\" requests has been reached. Please try again later.',\n true\n );\n\n const saveRequestUnknownErrorAlert = htmlAlert(\n 'danger',\n 'An unexpected error happened when submitting the \"save code now request\".',\n true\n );\n\n updateVisitType();\n\n $('#swh-save-origin-form').submit(async event => {\n event.preventDefault();\n event.stopPropagation();\n $('.alert').alert('close');\n if (event.target.checkValidity()) {\n $(event.target).removeClass('was-validated');\n const originType = $('#swh-input-visit-type').val();\n let originUrl = $('#swh-input-origin-url').val();\n\n originUrl = await getCanonicalOriginURL(originUrl);\n\n // read the extra inputs for the 'archives' type\n const extraData = {};\n if (originType === 'archives') {\n extraData['archives_data'] = [];\n for (let i = 0; i < $('.swh-save-origin-artifact-form').length; ++i) {\n extraData['archives_data'].push({\n 'artifact_url': $(`#swh-input-artifact-url-${i}`).val(),\n 'artifact_version': $(`#swh-input-artifact-version-${i}`).val()\n });\n }\n }\n\n originSaveRequest(originType, originUrl, extraData,\n () => $('#swh-origin-save-request-status').html(saveRequestAcceptedAlert),\n () => $('#swh-origin-save-request-status').html(saveRequestPendingAlert),\n (statusCode, errorData) => {\n $('#swh-origin-save-request-status').css('color', 'red');\n if (statusCode === 403) {\n const errorAlert = htmlAlert('danger', `Error: ${errorData['reason']}`);\n $('#swh-origin-save-request-status').html(errorAlert);\n } else if (statusCode === 429) {\n $('#swh-origin-save-request-status').html(saveRequestRateLimitedAlert);\n } else if (statusCode === 400) {\n const errorAlert = htmlAlert('danger', errorData['reason']);\n $('#swh-origin-save-request-status').html(errorAlert);\n } else {\n $('#swh-origin-save-request-status').html(saveRequestUnknownErrorAlert);\n }\n });\n } else {\n $(event.target).addClass('was-validated');\n }\n });\n\n $('#swh-show-origin-save-requests-list').on('click', (event) => {\n event.preventDefault();\n $('.nav-tabs a[href=\"#swh-origin-save-requests-list\"]').tab('show');\n });\n\n $('#swh-input-origin-url').on('input', function(event) {\n updateVisitType();\n });\n\n if (window.location.hash === '#requests') {\n $('.nav-tabs a[href=\"#swh-origin-save-requests-list\"]').tab('show');\n }\n\n $(window).on('hashchange', () => {\n if (window.location.hash === '#requests') {\n $('.nav-tabs a[href=\"#swh-origin-save-requests-list\"]').tab('show');\n } else {\n $('.nav-tabs a[href=\"#swh-origin-save-requests-create\"]').tab('show');\n }\n });\n\n });\n\n}\n\nconst tarballExtensions = [\n '.jar', '.tar', '.tar.bz2', '.tbz', '.tbz2', '.tar.gz', '.tgz', '.tar.lz',\n '.tar.xz', '.tar.zst', '.zip'\n];\n\nfunction updateVisitType() {\n const originUrl = $('#swh-input-origin-url').val().trim();\n $(this).val(originUrl);\n $('#swh-input-visit-type option').each(function() {\n const val = $(this).val();\n if (val && val !== 'tarball' && originUrl.includes(val)) {\n $(this).prop('selected', true);\n // origin URL input need to be validated once new visit type set\n validateSaveOriginUrl($('#swh-input-origin-url')[0]);\n } else if (val === 'tarball') {\n for (const ext of tarballExtensions) {\n if (originUrl.includes(ext)) {\n $(this).prop('selected', true);\n // origin URL input need to be validated once new visit type set\n validateSaveOriginUrl($('#swh-input-origin-url')[0]);\n break;\n }\n }\n }\n });\n}\n\nexport function validateSaveOriginUrl(input) {\n const originType = $('#swh-input-visit-type').val();\n const allowedProtocols = ['http:', 'https:', 'svn:', 'git:', 'rsync:',\n 'pserver:', 'ssh:', 'bzr:'];\n const originUrl = validateUrl(input.value.trim(), allowedProtocols);\n\n let validUrl = originUrl !== null;\n\n if (validUrl && originType === 'git') {\n validUrl = isGitRepoUrl(originUrl);\n }\n\n let customValidity = '';\n if (validUrl) {\n if (['', 'anonymous', 'guest', 'password'].indexOf(originUrl.password) === -1) {\n customValidity = 'The origin url contains a password and cannot be accepted for security reasons';\n }\n } else {\n customValidity = 'The origin url is not valid or does not reference a code repository';\n }\n input.setCustomValidity(customValidity);\n $(input).siblings('.invalid-feedback').text(customValidity);\n}\n\nexport function initTakeNewSnapshot() {\n\n const newSnapshotRequestAcceptedAlert = htmlAlert(\n 'success',\n 'The \"take new snapshot\" request has been accepted and will be processed as soon as possible.',\n true\n );\n\n const newSnapshotRequestPendingAlert = htmlAlert(\n 'warning',\n 'The \"take new snapshot\" request has been put in pending state and may be accepted for processing after manual review.',\n true\n );\n\n const newSnapshotRequestRateLimitAlert = htmlAlert(\n 'danger',\n 'The rate limit for \"take new snapshot\" requests has been reached. Please try again later.',\n true\n );\n\n const newSnapshotRequestUnknownErrorAlert = htmlAlert(\n 'danger',\n 'An unexpected error happened when submitting the \"save code now request\".',\n true\n );\n\n $(document).ready(() => {\n $('#swh-take-new-snapshot-form').submit(event => {\n event.preventDefault();\n event.stopPropagation();\n\n const originType = $('#swh-input-visit-type').val();\n const originUrl = $('#swh-input-origin-url').val();\n const extraData = {};\n\n originSaveRequest(originType, originUrl, extraData,\n () => $('#swh-take-new-snapshot-request-status').html(newSnapshotRequestAcceptedAlert),\n () => $('#swh-take-new-snapshot-request-status').html(newSnapshotRequestPendingAlert),\n (statusCode, errorData) => {\n $('#swh-take-new-snapshot-request-status').css('color', 'red');\n if (statusCode === 403) {\n const errorAlert = htmlAlert('danger', `Error: ${errorData['detail']}`, true);\n $('#swh-take-new-snapshot-request-status').html(errorAlert);\n } else if (statusCode === 429) {\n $('#swh-take-new-snapshot-request-status').html(newSnapshotRequestRateLimitAlert);\n } else {\n $('#swh-take-new-snapshot-request-status').html(newSnapshotRequestUnknownErrorAlert);\n }\n });\n });\n });\n}\n\nexport function formatValuePerType(type, value) {\n // Given some typed value, format and return accordingly formatted value\n const mapFormatPerTypeFn = {\n 'json': (v) => JSON.stringify(v, null, 2),\n 'date': (v) => new Date(v).toLocaleString(),\n 'raw': (v) => v,\n 'duration': (v) => v + ' seconds'\n };\n\n return value === null ? null : mapFormatPerTypeFn[type](value);\n}\n\nexport async function displaySaveRequestInfo(event, saveRequestId) {\n event.stopPropagation();\n const saveRequestTaskInfoUrl = Urls.origin_save_task_info(saveRequestId);\n // close popover when clicking again on the info icon\n if ($(event.target).data('has.popover')) {\n $(event.target).data('has.popover', false);\n $(event.target).popover('dispose');\n return;\n }\n $('.swh-save-request-info').popover('dispose');\n $(event.target).data('has.popover', true);\n $(event.target).popover({\n animation: false,\n boundary: 'viewport',\n container: 'body',\n title: 'Save request task information',\n content: `<div class=\"swh-popover swh-save-request-info-popover\">\n <div class=\"text-center\">\n <img src=${swhSpinnerSrc}></img>\n <p>Fetching task information ...</p>\n </div>\n </div>`,\n html: true,\n placement: 'left',\n sanitizeFn: swh.webapp.filterXSS\n });\n\n $(event.target).popover('show');\n const response = await fetch(saveRequestTaskInfoUrl);\n const saveRequestTaskInfo = await response.json();\n\n let content;\n if ($.isEmptyObject(saveRequestTaskInfo)) {\n content = 'Not available';\n\n } else if (saveRequestTaskInfo.note != null) {\n content = `<pre>${saveRequestTaskInfo.note}</pre>`;\n } else {\n const saveRequestInfo = [];\n const taskData = {\n 'Type': ['raw', 'type'],\n 'Visit status': ['raw', 'visit_status'],\n 'Arguments': ['json', 'arguments'],\n 'Metadata': ['json', 'metadata'],\n 'Id': ['raw', 'id'],\n 'Backend id': ['raw', 'backend_id'],\n 'Scheduling date': ['date', 'scheduled'],\n 'Start date': ['date', 'started'],\n 'Completion date': ['date', 'ended'],\n 'Duration': ['duration', 'duration'],\n 'Runner': ['raw', 'worker'],\n 'Log': ['raw', 'message']\n };\n for (const [title, [type, property]] of Object.entries(taskData)) {\n if (saveRequestTaskInfo.hasOwnProperty(property)) {\n saveRequestInfo.push({\n key: title,\n value: formatValuePerType(type, saveRequestTaskInfo[property])\n });\n }\n }\n content = '<table class=\"table\"><tbody>';\n for (const info of saveRequestInfo) {\n content +=\n `<tr>\n <th class=\"swh-metadata-table-row swh-metadata-table-key\">${info.key}</th>\n <td class=\"swh-metadata-table-row swh-metadata-table-value\">\n <pre>${info.value}</pre>\n </td>\n </tr>`;\n }\n content += '</tbody></table>';\n }\n $('.swh-popover').html(content);\n $(event.target).popover('update');\n}\n\nexport function fillSaveRequestFormAndScroll(visitType, originUrl) {\n $('#swh-input-origin-url').val(originUrl);\n let originTypeFound = false;\n $('#swh-input-visit-type option').each(function() {\n const val = $(this).val();\n if (val && originUrl.includes(val)) {\n $(this).prop('selected', true);\n originTypeFound = true;\n }\n });\n if (!originTypeFound) {\n $('#swh-input-visit-type option').each(function() {\n const val = $(this).val();\n if (val === visitType) {\n $(this).prop('selected', true);\n }\n });\n }\n window.scrollTo(0, 0);\n}\n","// 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;","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\\n<div class=\\\"swh-save-origin-archives-form swh-save-origin-artifact-form row g-3 mb-3\\\">\\n <div class=\\\"col-md-7\\\">\\n <label class=\\\"form-label\\\" for=\\\"swh-input-artifact-url-\")\n ; __append(escapeFn( formId ))\n ; __append(\"\\\">Artifact url</label>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"swh-input-artifact-url-\")\n ; __append(escapeFn( formId ))\n ; __append(\"\\\" required>\\n <div class=\\\"invalid-feedback\\\">The artifact url is mandatory</div>\\n </div>\\n <div class=\\\"col-md-2\\\">\\n <label class=\\\"form-label\\\" for=\\\"swh-input-artifact-version-\")\n ; __append(escapeFn( formId ))\n ; __append(\"\\\">Artifact version</label>\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"swh-input-artifact-version-\")\n ; __append(escapeFn( formId ))\n ; __append(\"\\\" required>\\n <div class=\\\"invalid-feedback\\\">The artifact version is mandatory</div>\\n </div>\\n <div class=\\\"col-md-2\\\">\\n \")\n ; if (deletableRow) { \n ; __append(\"\\n <label class=\\\"form-label\\\" for=\\\"swh-remove-archive-artifact-\")\n ; __append(escapeFn( formId ))\n ; __append(\"\\\"> </label>\\n <button id=\\\"swh-remove-archive-artifact-\")\n ; __append(escapeFn( formId ))\n ; __append(\"\\\" type=\\\"button\\\" class=\\\"form-control btn btn-secondary\\\" onclick=\\\"swh.save_code_now.deleteArtifactFormRow(event)\\\">\\n <i class=\\\"mdi mdi-file-remove mdi-fw\\\" aria-hidden=\\\"true\\\"></i>Remove artifact\\n </button>\\n \")\n ; } else { \n ; __append(\"\\n <label class=\\\"form-label\\\" for=\\\"swh-add-archive-artifact\\\"> </label>\\n <button id=\\\"swh-add-archive-artifact\\\" type=\\\"button\\\" class=\\\"form-control btn btn-secondary\\\" onclick=\\\"swh.save_code_now.addArtifactFormRow()\\\">\\n <i class=\\\"mdi mdi-file-plus mdi-fw\\\" aria-hidden=\\\"true\\\"></i>Add artifact\\n </button>\\n \")\n ; } \n ; __append(\"\\n </div>\\n</div>\")\n }\n return __output;\n\n}","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 };","/**\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\nimport {csrfPost, getHumanReadableDate, handleFetchError, htmlAlert} from 'utils/functions';\nimport {dataTableCommonConfig} from 'utils/constants';\n\nlet authorizedOriginTable;\nlet unauthorizedOriginTable;\nlet pendingSaveRequestsTable;\nlet acceptedSaveRequestsTable;\nlet rejectedSaveRequestsTable;\n\nfunction enableRowSelection(tableSel) {\n $(`${tableSel} tbody`).on('click', 'tr', function() {\n if ($(this).hasClass('selected')) {\n $(this).removeClass('selected');\n $(tableSel).closest('.tab-pane').find('.swh-action-need-selection').prop('disabled', true);\n } else {\n $(`${tableSel} tr.selected`).removeClass('selected');\n $(this).addClass('selected');\n $(tableSel).closest('.tab-pane').find('.swh-action-need-selection').prop('disabled', false);\n }\n });\n}\n\nexport function initOriginSaveAdmin() {\n $(document).ready(() => {\n\n $.fn.dataTable.ext.errMode = 'throw';\n\n authorizedOriginTable = $('#swh-authorized-origin-urls').DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.admin_origin_save_authorized_urls_list(),\n columns: [{data: 'url', name: 'url'}],\n info: false\n });\n enableRowSelection('#swh-authorized-origin-urls');\n swh.webapp.addJumpToPagePopoverToDataTable(authorizedOriginTable);\n\n unauthorizedOriginTable = $('#swh-unauthorized-origin-urls').DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.admin_origin_save_unauthorized_urls_list(),\n columns: [{data: 'url', name: 'url'}],\n info: false\n });\n enableRowSelection('#swh-unauthorized-origin-urls');\n swh.webapp.addJumpToPagePopoverToDataTable(unauthorizedOriginTable);\n\n const columnsData = [\n {\n data: 'id',\n name: 'id',\n visible: false,\n searchable: false\n },\n {\n data: 'save_request_date',\n name: 'request_date',\n render: getHumanReadableDate\n },\n {\n data: 'visit_type',\n name: 'visit_type'\n },\n {\n data: 'origin_url',\n name: 'origin_url',\n render: (data, type, row) => {\n if (type === 'display') {\n let html = '';\n const sanitizedURL = $.fn.dataTable.render.text().display(data);\n const parsedURL = new URL(sanitizedURL);\n if (row.save_task_status === 'succeeded') {\n let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(sanitizedURL)}`;\n if (row.visit_date) {\n browseOriginUrl += `&timestamp=${encodeURIComponent(row.visit_date)}`;\n }\n html += `<a href=\"${browseOriginUrl}\">${sanitizedURL}</a>`;\n } else {\n html += sanitizedURL;\n }\n if (parsedURL.protocol.startsWith('http')) {\n html += ` <a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\n }\n return html;\n }\n return data;\n }\n }\n ];\n\n pendingSaveRequestsTable = $('#swh-origin-save-pending-requests').DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.origin_save_requests_list('pending'),\n columns: columnsData,\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n enableRowSelection('#swh-origin-save-pending-requests');\n swh.webapp.addJumpToPagePopoverToDataTable(pendingSaveRequestsTable);\n\n columnsData.push({\n name: 'info',\n render: (data, type, row) => {\n let info = '';\n if (row.save_task_status === 'succeeded' || row.save_task_status === 'failed' ||\n row.note != null) {\n info += `<i class=\"mdi mdi-information-outline swh-save-request-info\" aria-hidden=\"true\"\n style=\"cursor: pointer\"\n onclick=\"swh.save_code_now.displaySaveRequestInfo(event, ${row.id})\"></i>`;\n }\n if (row.from_webhook) {\n info += `<i class=\"mdi mdi-webhook\" aria-hidden=\"true\"\n title=\"save request created from webhook\"></i>`;\n }\n return info;\n }\n });\n\n rejectedSaveRequestsTable = $('#swh-origin-save-rejected-requests').DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.origin_save_requests_list('rejected'),\n columns: columnsData,\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n enableRowSelection('#swh-origin-save-rejected-requests');\n swh.webapp.addJumpToPagePopoverToDataTable(rejectedSaveRequestsTable);\n\n columnsData.splice(columnsData.length - 1, 0, {\n data: 'save_task_status',\n name: 'save_task_status'\n });\n\n acceptedSaveRequestsTable = $('#swh-origin-save-accepted-requests').DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.origin_save_requests_list('accepted'),\n columns: columnsData,\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n enableRowSelection('#swh-origin-save-accepted-requests');\n swh.webapp.addJumpToPagePopoverToDataTable(acceptedSaveRequestsTable);\n\n $('#swh-authorized-origins-tab').on('shown.bs.tab', () => {\n authorizedOriginTable.draw();\n });\n\n $('#swh-unauthorized-origins-tab').on('shown.bs.tab', () => {\n unauthorizedOriginTable.draw();\n });\n\n $('#swh-save-requests-pending-tab').on('shown.bs.tab', () => {\n pendingSaveRequestsTable.draw();\n });\n\n $('#swh-save-requests-accepted-tab').on('shown.bs.tab', () => {\n acceptedSaveRequestsTable.draw();\n });\n\n $('#swh-save-requests-rejected-tab').on('shown.bs.tab', () => {\n rejectedSaveRequestsTable.draw();\n });\n\n $('#swh-save-requests-pending-tab').click(() => {\n pendingSaveRequestsTable.ajax.reload(null, false);\n });\n\n $('#swh-save-requests-accepted-tab').click(() => {\n acceptedSaveRequestsTable.ajax.reload(null, false);\n });\n\n $('#swh-save-requests-rejected-tab').click(() => {\n rejectedSaveRequestsTable.ajax.reload(null, false);\n });\n\n $('body').on('click', e => {\n if ($(e.target).parents('.popover').length > 0) {\n e.stopPropagation();\n } else if ($(e.target).parents('.swh-save-request-info').length === 0) {\n $('.swh-save-request-info').popover('dispose');\n }\n });\n\n });\n}\n\nexport async function addAuthorizedOriginUrl() {\n const originUrl = $('#swh-authorized-url-prefix').val();\n const addOriginUrl = Urls.admin_origin_save_add_authorized_url(encodeURIComponent(originUrl));\n try {\n const response = await csrfPost(addOriginUrl);\n handleFetchError(response);\n authorizedOriginTable.row.add({'url': originUrl}).draw();\n $('.swh-add-authorized-origin-status').html(\n htmlAlert('success', 'The origin url prefix has been successfully added in the authorized list.', true)\n );\n } catch (_) {\n $('.swh-add-authorized-origin-status').html(\n htmlAlert('warning', 'The provided origin url prefix is already registered in the authorized list.', true)\n );\n }\n}\n\nexport async function removeAuthorizedOriginUrl() {\n const originUrl = $('#swh-authorized-origin-urls tr.selected').text();\n if (originUrl) {\n const removeOriginUrl = Urls.admin_origin_save_remove_authorized_url(encodeURIComponent(originUrl));\n try {\n const response = await csrfPost(removeOriginUrl);\n handleFetchError(response);\n authorizedOriginTable.row('.selected').remove().draw();\n } catch (_) {}\n }\n}\n\nexport async function addUnauthorizedOriginUrl() {\n const originUrl = $('#swh-unauthorized-url-prefix').val();\n const addOriginUrl = Urls.admin_origin_save_add_unauthorized_url(encodeURIComponent(originUrl));\n try {\n const response = await csrfPost(addOriginUrl);\n handleFetchError(response);\n unauthorizedOriginTable.row.add({'url': originUrl}).draw();\n $('.swh-add-unauthorized-origin-status').html(\n htmlAlert('success', 'The origin url prefix has been successfully added in the unauthorized list.', true)\n );\n } catch (_) {\n $('.swh-add-unauthorized-origin-status').html(\n htmlAlert('warning', 'The provided origin url prefix is already registered in the unauthorized list.', true)\n );\n }\n}\n\nexport async function removeUnauthorizedOriginUrl() {\n const originUrl = $('#swh-unauthorized-origin-urls tr.selected').text();\n if (originUrl) {\n const removeOriginUrl = Urls.admin_origin_save_remove_unauthorized_url(encodeURIComponent(originUrl));\n try {\n const response = await csrfPost(removeOriginUrl);\n handleFetchError(response);\n unauthorizedOriginTable.row('.selected').remove().draw();\n } catch (_) {};\n }\n}\n\nexport function acceptOriginSaveRequest() {\n const selectedRow = pendingSaveRequestsTable.row('.selected');\n if (selectedRow.length) {\n const acceptOriginSaveRequestCallback = async() => {\n const rowData = selectedRow.data();\n const acceptSaveRequestUrl =\n Urls.admin_origin_save_request_accept(rowData['visit_type'], encodeURIComponent(rowData['origin_url']));\n await csrfPost(acceptSaveRequestUrl);\n pendingSaveRequestsTable.ajax.reload(null, false);\n // ensure to remove notification icon in sidebar admin menu when\n // there is no remaining pending requests\n setTimeout(() => {\n if ($('td.dt-empty').is(':visible')) {\n location.reload(true);\n }\n }, 100);\n };\n\n swh.webapp.showModalConfirm(\n 'Accept origin save request ?',\n 'Are you sure to accept this origin save request ?',\n acceptOriginSaveRequestCallback);\n }\n}\n\nconst rejectModalHtml = `\n<form id=\"swh-rejection-form\">\n <div class=\"row\">\n <label for=\"swh-rejection-reason\" class=\"col-4 col-form-label\">\n Rejection reason:\n </label>\n <div class=\"col-8\">\n <select class=\"form-select\" id=\"swh-rejection-reason\">\n <option value=\"custom\" selected>Custom</option>\n <option value=\"invalid-origin\">Invalid origin</option>\n <option value=\"invalid-origin-type\">Invalid origin type</option>\n <option value=\"origin-not-found\">Origin not found</option>\n </select>\n </div>\n </div>\n <div class=\"row mt-3 mb-3\">\n <textarea class=\"form-control\" id=\"swh-rejection-text\"></textarea>\n </div>\n <button type=\"submit\" class=\"btn btn-secondary float-end\" id=\"swh-rejection-submit\">\n Reject\n </button>\n</form>\n`;\n\nexport function rejectOriginSaveRequest() {\n const selectedRow = pendingSaveRequestsTable.row('.selected');\n const rowData = selectedRow.data();\n if (selectedRow.length) {\n const rejectOriginSaveRequestCallback = async() => {\n $('#swh-web-modal-html').modal('hide');\n const rejectSaveRequestUrl = Urls.admin_origin_save_request_reject(\n rowData['visit_type'], encodeURIComponent(rowData['origin_url']));\n await csrfPost(rejectSaveRequestUrl, {},\n JSON.stringify({note: $('#swh-rejection-text').val()}));\n pendingSaveRequestsTable.ajax.reload(null, false);\n };\n\n let currentRejectionReason = 'custom';\n const rejectionTexts = {};\n swh.webapp.showModalHtml('Reject origin save request ?', rejectModalHtml);\n $('#swh-rejection-reason').on('change', (event) => {\n // backup current textarea value\n rejectionTexts[currentRejectionReason] = $('#swh-rejection-text').val();\n currentRejectionReason = event.target.value;\n let newRejectionText = '';\n if (rejectionTexts.hasOwnProperty(currentRejectionReason)) {\n // restore previous textarea value\n newRejectionText = rejectionTexts[currentRejectionReason];\n } else {\n // fill textarea with default text according to rejection type\n if (currentRejectionReason === 'invalid-origin') {\n newRejectionText = `The origin with URL ${rowData['origin_url']} is not ` +\n `a link to a ${rowData['visit_type']} repository.`;\n } else if (currentRejectionReason === 'invalid-origin-type') {\n newRejectionText = `The origin with URL ${rowData['origin_url']} is not ` +\n `of type ${rowData['visit_type']}.`;\n } else if (currentRejectionReason === 'origin-not-found') {\n newRejectionText = `The origin with URL ${rowData['origin_url']} cannot be found.`;\n }\n }\n $('#swh-rejection-text').val(newRejectionText);\n });\n $('#swh-rejection-form').on('submit', (event) => {\n event.preventDefault();\n event.stopPropagation();\n // ensure confirmation modal will be displayed above the html modal\n $('#swh-web-modal-html').css('z-index', 4000);\n swh.webapp.showModalConfirm(\n 'Reject origin save request ?',\n 'Are you sure to reject this origin save request ?',\n rejectOriginSaveRequestCallback);\n });\n }\n}\n\nfunction removeOriginSaveRequest(requestTable) {\n const selectedRow = requestTable.row('.selected');\n if (selectedRow.length) {\n const requestId = selectedRow.data()['id'];\n const removeOriginSaveRequestCallback = async() => {\n const removeSaveRequestUrl = Urls.admin_origin_save_request_remove(requestId);\n await csrfPost(removeSaveRequestUrl);\n requestTable.ajax.reload(null, false);\n };\n\n swh.webapp.showModalConfirm(\n 'Remove origin save request ?',\n 'Are you sure to remove this origin save request ?',\n removeOriginSaveRequestCallback);\n }\n}\n\nexport function removePendingOriginSaveRequest() {\n removeOriginSaveRequest(pendingSaveRequestsTable);\n}\n\nexport function removeAcceptedOriginSaveRequest() {\n removeOriginSaveRequest(acceptedSaveRequestsTable);\n}\n\nexport function removeRejectedOriginSaveRequest() {\n removeOriginSaveRequest(rejectedSaveRequestsTable);\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=\\\"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 _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","// 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};"],"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","staticAsset","asset","origin","url","__STATIC__","startsWith","csrfPost","headers","body","Cookies","get","fetch","credentials","method","isGitRepoUrl","pathPrefix","undefined","find","protocol","pathname","RegExp","test","slice","htmlAlert","type","message","closable","closeButton","extraClasses","validateUrl","allowedProtocols","originUrl","validUrl","URL","TypeError","getCanonicalGithubOriginURL","_x3","_getCanonicalGithubOriginURL","apply","arguments","_asyncToGenerator","_callee2","ownerRepo","ghApiResponse","ghApiResponseData","_context2","status","json","html_url","getCanonicalOriginURL","_x4","_getCanonicalOriginURL","_callee3","originUrlLower","ghUrlRegex","ghpagesUrlRegex","parsedUrl","_ownerRepo","_url","_context3","toLowerCase","match","endsWith","replace","_wrapRegExp","owner","repo","groups","getHumanReadableDate","data","Date","toLocaleString","asyncGeneratorStep","c","i","resolve","then","_next","_throw","regeneratorDefine","prototype","Symbol","asyncIterator","_regenerator","iterator","toStringTag","Generator","create","y","G","bind","l","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","assign","target","source","key","api","init","converter","defaultAttributes","set","attributes","document","expires","now","toUTCString","encodeURIComponent","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","join","found","read","remove","withAttributes","withConverter","freeze","path","swhSpinnerSrc","dataTableCommonConfig","serverSide","processing","language","fixedHeader","lengthMenu","scrollCollapse","searchDelay","k","_typeof","isNaN","saveRequestsTable","originSaveRequest","_x","_x2","_x5","_x6","_originSaveRequest","originType","extraData","acceptedCallback","pendingCallback","errorCallback","addSaveOriginRequestUrl","errorData","Urls","api_1_save_origin","$","css","JSON","stringify","save_request_status","addArtifactVersionAutofillHandler","formId","on","event","artifactUrl","val","trim","filename","filenameNoExt","artifactVersion","maybeRequireExtraInputs","display","disabled","prop","last","after","artifactFormRowTemplate","deletableRow","addArtifactFormRow","deleteArtifactFormRow","closest","saveRequestCheckboxId","userRequestsFilterCheckbox","userRequestsFilterCheckboxFn","csvExportButton","admin_origin_save_requests_csv","initOriginSave","ready","fn","dataTable","ext","errMode","settings","techNote","text","console","log","DataTable","_extends","ajax","origin_save_requests_list","swh","webapp","isUserLoggedIn","user_requests_only","dom","fnInitComplete","html","isStaffUser","draw","columns","render","row","sanitizedURL","parsedURL","save_task_status","visit_status","browseOriginUrl","browse_origin","visit_date","info","note","id","from_webhook","visit_type","origin_url","order","responsive","details","addJumpToPagePopoverToDataTable","window","location","origin_save","hash","origin_save_list","saveRequestAcceptedAlert","saveRequestPendingAlert","saveRequestRateLimitedAlert","saveRequestUnknownErrorAlert","updateVisitType","submit","_ref","_callee","_context","preventDefault","stopPropagation","alert","checkValidity","removeClass","push","statusCode","errorAlert","addClass","_x7","tab","tarballExtensions","each","includes","validateSaveOriginUrl","_step","_iterator","_createForOfIteratorHelperLoose","input","customValidity","indexOf","password","setCustomValidity","siblings","initTakeNewSnapshot","newSnapshotRequestAcceptedAlert","newSnapshotRequestPendingAlert","newSnapshotRequestRateLimitAlert","newSnapshotRequestUnknownErrorAlert","formatValuePerType","displaySaveRequestInfo","_x8","_x9","_displaySaveRequestInfo","saveRequestId","saveRequestTaskInfoUrl","saveRequestTaskInfo","content","saveRequestInfo","taskData","_i","_Object$entries","_Object$entries$_i","title","_Object$entries$_i$","property","_i2","_saveRequestInfo","origin_save_task_info","popover","animation","boundary","container","placement","sanitizeFn","filterXSS","isEmptyObject","entries","hasOwnProperty","fillSaveRequestFormAndScroll","visitType","originTypeFound","scrollTo","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","anonymous","locals","escapeFn","include","rethrow","markup","String","_MATCH_HTML","encode_char","_ENCODE_HTML_RULES","__output","__append","s","_setPrototypeOf","authorizedOriginTable","unauthorizedOriginTable","pendingSaveRequestsTable","acceptedSaveRequestsTable","rejectedSaveRequestsTable","enableRowSelection","tableSel","hasClass","initOriginSaveAdmin","admin_origin_save_authorized_urls_list","admin_origin_save_unauthorized_urls_list","columnsData","visible","searchable","splice","click","reload","parents","addAuthorizedOriginUrl","_addAuthorizedOriginUrl","_callee4","addOriginUrl","_context4","admin_origin_save_add_authorized_url","add","removeAuthorizedOriginUrl","_removeAuthorizedOriginUrl","_callee5","removeOriginUrl","_context5","admin_origin_save_remove_authorized_url","addUnauthorizedOriginUrl","_addUnauthorizedOriginUrl","_callee6","_context6","admin_origin_save_add_unauthorized_url","removeUnauthorizedOriginUrl","_removeUnauthorizedOriginUrl","_callee7","_context7","admin_origin_save_remove_unauthorized_url","acceptOriginSaveRequest","selectedRow","acceptOriginSaveRequestCallback","rowData","acceptSaveRequestUrl","admin_origin_save_request_accept","setTimeout","is","showModalConfirm","rejectModalHtml","rejectOriginSaveRequest","rejectOriginSaveRequestCallback","_ref2","rejectSaveRequestUrl","modal","admin_origin_save_request_reject","currentRejectionReason","rejectionTexts","showModalHtml","newRejectionText","removeOriginSaveRequest","requestTable","requestId","removeOriginSaveRequestCallback","_ref3","removeSaveRequestUrl","admin_origin_save_request_remove","removePendingOriginSaveRequest","removeAcceptedOriginSaveRequest","removeRejectedOriginSaveRequest","checked","inputId","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","_inherits","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see vault.4eaa8dbf376ebe9cdc7f.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.vault=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,i){return new o(r().w(e,t,n,a),i||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),i=n(887),s=n(11791),c=n(4373),u=n(30579);function l(){"use strict";var t=o(),n=t.m(l),p=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function d(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"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,u(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=l=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:s,async:function(e,t,n,r,o){return(d(t)?i:a)(_(e),t,n,r,o)},keys:c,values:u}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=l,e.exports.__esModule=!0,e.exports.default=e.exports},8545:function(e,t,n){"use strict";n.d(t,{EQ:function(){return a},Iu:function(){return s},Jq:function(){return i},Tv:function(){return o}});n(54756);var r=n(18987);function o(e){if(!e.ok)throw e;return e}function a(e){for(var t=0;t<e.length;++t)if(!e[t].ok)throw e[t];return e}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 s(e,t,n){void 0===n&&(n=!1);var r="",o="";return n&&(r='<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>',o="alert-dismissible"),'<div class="alert alert-'+e+" "+o+'" role="alert">'+t+r+"</div>"}},10467:function(e,t,n){"use strict";function r(e,t,n,r,o,a,i){try{var s=e[a](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise(function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,c,"next",e)}function c(e){r(i,o,a,s,c,"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 a(e,o,i,s){try{var c=t[e](o),u=c.value;return u instanceof r?n.resolve(u.v).then(function(e){a("next",e,i,s)},function(e){a("throw",e,i,s)}):n.resolve(u).then(function(e){c.value=e,i(c)},function(e){return a("throw",e,i,s)})}catch(e){s(e)}}var i;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 i=i?i.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:{},i=a.iterator||"@@iterator",s=a.toStringTag||"@@toStringTag";function c(e,o,a,i){var s=o&&o.prototype instanceof l?o:l,c=Object.create(s.prototype);return r(c,"_invoke",function(e,r,o){var a,i,s,c=0,l=o||[],p=!1,d={p:0,n:0,v:t,a:f,f:f.bind(t,4),d:function(e,n){return a=e,i=0,s=t,d.n=n,u}};function f(e,r){for(i=e,s=r,n=0;!p&&c&&!o&&n<l.length;n++){var o,a=l[n],f=d.p,_=a[2];e>3?(o=_===r)&&(s=a[(i=a[4])?5:(i=3,3)],a[4]=a[5]=t):a[0]<=f&&((o=e<2&&f<a[1])?(i=0,d.v=r,d.n=a[1]):f<_&&(o=e<3||a[0]>r||r>_)&&(a[4]=e,a[5]=r,d.n=_,i=0))}if(o||e>1)return u;throw p=!0,r}return function(o,l,_){if(c>1)throw TypeError("Generator is already running");for(p&&1===l&&f(l,_),i=l,s=_;(n=i<2?t:s)||!p;){a||(i?i<3?(i>1&&(d.n=-1),f(i,s)):d.n=s:d.v=s);try{if(c=2,a){if(i||(o="next"),n=a[o]){if(!(n=n.call(a,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,i<2&&(i=0)}else 1===i&&(n=a.return)&&n.call(a),i<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),i=1);a=t}else if((n=(p=d.n<0)?s:e.call(r,d))!==u)break}catch(e){a=t,i=1,s=e}finally{c=1}}return{value:n,done:p}}}(e,a,i),!0),c}var u={};function l(){}function p(){}function d(){}n=Object.getPrototypeOf;var f=[][i]?n(n([][i]())):(r(n={},i,function(){return this}),n),_=d.prototype=l.prototype=Object.create(f);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,r(e,s,"GeneratorFunction")),e.prototype=Object.create(_),e}return p.prototype=d,r(_,"constructor",d),r(d,"constructor",p),p.displayName="GeneratorFunction",r(d,s,"GeneratorFunction"),r(_),r(_,s,"Generator"),r(_,i,function(){return this}),r(_,"toString",function(){return"[object Generator]"}),(e.exports=o=function(){return{w:c,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 i="";for(var s in a)a[s]&&(i+="; "+s,!0!==a[s]&&(i+="="+a[s].split(";")[0]));return document.cookie=e+"="+t.write(o,e)+i}}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("="),i=a.slice(1).join("=");try{var s=decodeURIComponent(a[0]);if(r[s]=t.read(i,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:"/"})},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},38556:function(e,t){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.t=function(e){if(!e)return!1;if(e.length>254)return!1;if(!n.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some(function(e){return e.length>63})}},53056: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\n"),cookingTask.swhid.match(/^swh:1:dir:.*/)?(__append('\n <tr id="vault-task-'),__append(escapeFn(cookingTask.swhid)),__append('" title="Once downloaded, the directory can be extracted with the following command:\n\n$ tar xvzf '),__append(escapeFn(cookingTask.swhid.replaceAll(":","_"))),__append('.tar.gz">\n')):(__append('\n </tr><tr id="vault-task-'),__append(escapeFn(cookingTask.swhid)),__append("\" title=\"Once downloaded, the git repository can be imported to a 'new_repository' directory with the following commands:\n\n$ tar xvf "),__append(escapeFn(cookingTask.swhid.replaceAll(":","_"))),__append(".git.tar\n$ git clone "),__append(escapeFn(cookingTask.swhid)),__append('.git new_repository\n$ cd new_repository/">\n')),__append('\n <td>\n <div class="form-check">\n <input type="checkbox" class="form-check-input vault-task-toggle-selection" id="vault-task-toggle-selection-'),__append(escapeFn(cookingTask.swhid)),__append('">\n <label class="form-check-label" for="vault-task-toggle-selection-'),__append(escapeFn(cookingTask.swhid)),__append('">\n </label>\n </div></td>\n '),cookingTask.origin?(__append('\n <td class="vault-origin">\n <a href="'),__append(escapeFn(Urls.browse_origin())),__append("?origin_url="),__append(escapeFn(cookingTask.origin)),__append('">\n '),__append(escapeFn(decodeURIComponent(cookingTask.origin))),__append("\n </a>\n </td>\n ")):__append('\n <td class="vault-origin">unknown</td>\n '),__append('\n <td>\n <i class="'),__append(escapeFn(swh.webapp.getSwhObjectIcon(cookingTask.swhid.match(/swh:1:([a-z]+):/)[1]))),__append(' mdi-fw"></i>\n '),__append(escapeFn(cookingTask.bundle_type)),__append('\n </td>\n <td class="vault-object-info" data-swhid="'),__append(escapeFn(cookingTask.swhid)),__append('">\n <b>id:</b> <a href="'),__append(escapeFn(browseUrl)),__append('">'),__append(escapeFn(cookingTask.swhid)),__append("</a>\n "),cookingTask.path&&(__append("\n <br><b>path:</b> "),__append(escapeFn(cookingTask.path)),__append("\n ")),__append("\n </td>\n <td>"),__append(progressBar.outerHTML),__append('</td>\n <td class="vault-dl-link">\n '),"done"===cookingTask.status&&(__append('\n <button class="btn btn-secondary btn-sm" onclick="swh.vault.fetchCookedObject(\''),__append(escapeFn(cookingTask.fetch_url)),__append('\')">\n <i class="mdi mdi-download mdi-fw" aria-hidden="true"></i>Download\n </button>\n ')),__append("\n </td>\n </tr>\n");return __output}},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 i=r(e,t,n,o,a);return i.next().then(function(e){return e.done?e.value:i.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},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},75097:function(e,t,n){"use strict";n.d(t,{Bn:function(){return h},hm:function(){return f},iF:function(){return w},jh:function(){return g}});var r=n(10467),o=n(54756),a=n.n(o),i=n(8545),s=n(53056),c=n.n(s);var u,l,p=5e3;function d(e,t){"new"===t.status?e.css("background-color","rgba(128, 128, 128, 0.5)"):"pending"===t.status?e.css("background-color","rgba(0, 0, 255, 0.5)"):"done"===t.status?e.css("background-color","#5cb85c"):"failed"===t.status&&(e.css("background-color","rgba(255, 0, 0, 0.5)"),e.css("background-image","none"));var n,r,o=(t.progress_message||t.status).split("\n",2);n=o[0],r=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}(o).slice(1),e.text(n),r.length&&e.prop("title",r[0]),"new"===t.status||"pending"===t.status?e.addClass("progress-bar-animated"):e.removeClass("progress-bar-striped")}function f(e){return _.apply(this,arguments)}function _(){return(_=(0,r.A)(a().mark(function e(t){var n,r;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l=null,e.next=1,fetch(t);case 1:if(!e.sent.ok){e.next=2;break}$("#vault-download-iframe").attr("src",t),e.next=6;break;case 2:if(!(n=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks")))){e.next=5;break}r=0;case 3:if(!(r<n.length)){e.next=5;break}if(n[r].fetch_url!==t){e.next=4;break}return l=n[r],e.abrupt("continue",5);case 4:++r,e.next=3;break;case 5:$("#vault-recook-object-modal").modal("show");case 6:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(){return v.apply(this,arguments)}function v(){return(v=(0,r.A)(a().mark(function e(){var t,n,r,o,s,c;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!l){e.next=8;break}return clearTimeout(u),t="flat"===l.bundle_type?Urls.api_1_vault_cook_flat(l.swhid):Urls.api_1_vault_cook_git_bare(l.swhid),l.email&&(t+="?email="+l.email),e.prev=1,e.next=2,(0,i.Jq)(t);case 2:n=e.sent,(0,i.Tv)(n),l.status="new",r=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks")),o=0;case 3:if(!(o<r.length)){e.next=5;break}if(r[o].swhid!==l.swhid){e.next=4;break}return r[o]=l,e.abrupt("continue",5);case 4:++o,e.next=3;break;case 5:localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(r)),swh.vault.displayCookingTaskCreatedAlert(),e.next=7;break;case 6:e.prev=6,e.catch(1),swh.vault.displayCookingTaskCreationFailedAlert();case 7:e.next=9;break;case 8:s=$("#vault-recook-object-modal").attr("swh-object-type"),c=$("#vault-recook-object-modal").attr("swh-object-swhid"),"directory"===s?swh.vault.cookDirectoryArchive(null,c):"revision"===s&&swh.vault.cookRevisionArchive(null,c);case 9:return $("#vault-recook-object-modal").modal("hide"),e.next=10,b();case 10:case"end":return e.stop()}},e,null,[[1,6]])}))).apply(this,arguments)}function b(){return k.apply(this,arguments)}function k(){return(k=(0,r.A)(a().mark(function e(){var t,n,r,o,s,l,f,_,h,v,k,w,g,m,y,x,j,T,S;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((t=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks")))&&0!==t.length){e.next=1;break}return $(".swh-vault-table tbody tr").remove(),u=setTimeout(b,p),e.abrupt("return");case 1:n=[],r={},o=[],s=0;case 2:if(!(s<t.length)){e.next=8;break}if(void 0===(l=t[s]).object_type){e.next=6;break}if("directory"!==l.object_type){e.next=3;break}l.swhid="swh:1:dir:"+l.object_id,l.bundle_type="flat",l.fetch_url=Urls.api_1_vault_download_flat(l.swhid),e.next=5;break;case 3:if("revision"!==l.object_type){e.next=4;break}l.swhid="swh:1:rev:"+l.object_id,l.bundle_type="git_bare",l.fetch_url=Urls.api_1_vault_download_git_bare(l.swhid),e.next=5;break;case 4:return console.error("Unexpected cookingTask.object_type: "+l.object_type),e.abrupt("continue",7);case 5:delete l.object_type,delete l.object_id;case 6:o.push(l.swhid),r[l.swhid]=l,f=void 0,f="flat"===l.bundle_type?Urls.api_1_vault_cook_flat(l.swhid):Urls.api_1_vault_cook_git_bare(l.swhid),"done"!==l.status&&"failed"!==l.status&&n.push(fetch(f));case 7:++s,e.next=2;break;case 8:return $(".swh-vault-table tbody tr").each(function(e,t){var n=$(t).find(".vault-object-info").data("swhid");-1===$.inArray(n,o)&&$(t).remove()}),e.prev=9,e.next=10,Promise.all(n);case 10:return _=e.sent,(0,i.EQ)(_),e.next=11,Promise.all(_.map(function(e){return e.json()}));case 11:for(h=e.sent,v=$("#vault-cooking-tasks tbody"),k=0;k<h.length;++k)(w=r[h[k].swhid]).status=h[k].status,w.fetch_url=h[k].fetch_url,w.progress_message=h[k].progress_message;for(g=0;g<t.length;++g)m=t[g],(y=$("#vault-task-"+CSS.escape(m.swhid))).length?(d(y.find(".progress-bar"),m),T=y.find(".vault-dl-link"),"done"===m.status?T[0].innerHTML='<button class="btn btn-secondary btn-sm" onclick="swh.vault.fetchCookedObject(\''+m.fetch_url+'\')"><i class="mdi mdi-download mdi-fw" aria-hidden="true"></i>Download</button>':T[0].innerHTML=""):((x=m.browse_url)||(x=Urls.browse_swhid(m.swhid)),j=$.parseHTML('<div class="progress">\n <div class="progress-bar progress-bar-success progress-bar-striped"\n role="progressbar" aria-valuenow="100" aria-valuemin="0"\n aria-valuemax="100" style="width: 100%;height: 100%;">\n </div>\n </div>;')[0],d($(j).find(".progress-bar"),m),v.prepend(c()({browseUrl:x,cookingTask:m,progressBar:j,Urls:Urls,swh:swh})));localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(t)),u=setTimeout(b,p),e.next=13;break;case 12:e.prev=12,S=e.catch(9),console.log("Error when fetching vault cooking tasks:",S);case 13:case"end":return e.stop()}},e,null,[[9,12]])}))).apply(this,arguments)}function w(e){var t=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks"));t&&(t=$.grep(t,function(t){return-1===$.inArray(t.swhid,e)}),localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(t)))}function g(){$("#vault-tasks-toggle-selection").change(function(e){$(".vault-task-toggle-selection").prop("checked",e.currentTarget.checked)}),$("#vault-remove-tasks").click(function(){clearTimeout(u);var e=[];$(".swh-vault-table tbody tr").each(function(t,n){if($(n).find(".vault-task-toggle-selection").prop("checked")){var r=$(n).find(".vault-object-info").data("swhid");e.push(r),$(n).remove()}}),w(e),$("#vault-tasks-toggle-selection").prop("checked",!1),u=setTimeout(b,p)}),b(),window.onfocus=function(){clearTimeout(u),b()}}},75546:function(e){function t(n,r,o,a){var i=Object.defineProperty;try{i({},"",{})}catch(n){i=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?i?i(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},94196:function(e,t,n){"use strict";n.d(t,{Ib:function(){return u},MO:function(){return k},OH:function(){return h},SI:function(){return l},aS:function(){return w},eo:function(){return v},mE:function(){return p}});var r=n(10467),o=n(54756),a=n.n(o),i=n(38556),s=n(8545),c={position:"fixed",left:"1rem",bottom:"1rem","z-index":"100000"};function u(){var e=$((0,s.Iu)("success",'Archive cooking request successfully submitted.<br/>Go to the <a class="alert-link" href="'+Urls.vault()+'">Downloads</a> page to get the download link once it is ready.',!0));e.css(c),$("body").append(e)}function l(){var e=$((0,s.Iu)("danger","Archive cooking request submission failed.",!0));e.css(c),$("body").append(e)}function p(e,t){return d.apply(this,arguments)}function d(){return(d=(0,r.A)(a().mark(function e(t,n){var r,o,i,u,l;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r="directory"===t?Urls.api_1_vault_cook_flat(n):Urls.api_1_vault_cook_git_bare(n),e.next=1,fetch(r);case 1:return o=e.sent,e.next=2,o.json();case 2:i=e.sent,u=["failed","pending","new"],"NotFoundExc"===i.exception||u.includes(i.status)?(swh.vault.removeCookingTaskInfo([n]),$("#vault-cook-"+t+"-modal").modal("show")):"done"===i.status?$("#vault-download-"+t+"-modal").modal("show"):((l=$((0,s.Iu)("danger","Something unexpected happened when requesting the archive cooking service.<br/>Please try again later.",!0))).css(c),$("body").append(l));case 3:case"end":return e.stop()}},e)}))).apply(this,arguments)}function f(e,t){return _.apply(this,arguments)}function _(){return(_=(0,r.A)(a().mark(function e(t,n){var r,o,i,c;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=swh.webapp.getSwhIdsContext(),n.origin=r[t].context.origin,n.path=r[t].context.path,n.browse_url=r[t].swhid_with_context_url,n.browse_url||(n.browse_url=r[t].swhid_url),(o=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks")))||(o=[]),void 0!==o.find(function(e){return e.bundle_type===n.bundle_type&&e.swhid===n.swhid})){e.next=4;break}return i="flat"===n.bundle_type?Urls.api_1_vault_cook_flat(n.swhid):Urls.api_1_vault_cook_git_bare(n.swhid),n.email&&(i+="?email="+encodeURIComponent(n.email)),e.prev=1,e.next=2,(0,s.Jq)(i);case 2:c=e.sent,(0,s.Tv)(c),o.push(n),localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(o)),$("#vault-cook-directory-modal").modal("hide"),$("#vault-cook-revision-modal").modal("hide"),u(),e.next=4;break;case 3:e.prev=3,e.catch(1),$("#vault-cook-directory-modal").modal("hide"),$("#vault-cook-revision-modal").modal("hide"),l();case 4:case"end":return e.stop()}},e,null,[[1,3]])}))).apply(this,arguments)}function h(e,t){e&&e.preventDefault();var n=$("#swh-vault-directory-email").val().trim();!n||i.t(n)?f("directory",{bundle_type:"flat",swhid:t,email:n,status:"new"}):$("#invalid-email-modal").modal("show")}function v(e){return b.apply(this,arguments)}function b(){return(b=(0,r.A)(a().mark(function e(t){var n,r,o;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return $("#vault-download-directory-modal").modal("hide"),$("#vault-recook-object-modal").attr("swh-object-type","directory"),$("#vault-recook-object-modal").attr("swh-object-swhid",t),n=Urls.api_1_vault_cook_flat(t),e.next=1,fetch(n);case 1:return r=e.sent,e.next=2,r.json();case 2:o=e.sent,swh.vault.fetchCookedObject(o.fetch_url);case 3:case"end":return e.stop()}},e)}))).apply(this,arguments)}function k(e,t){e&&e.preventDefault();var n=$("#swh-vault-revision-email").val().trim();!n||i.t(n)?f("revision",{bundle_type:"git_bare",swhid:t,email:n,status:"new"}):$("#invalid-email-modal").modal("show")}function w(e){return g.apply(this,arguments)}function g(){return(g=(0,r.A)(a().mark(function e(t){var n,r,o;return a().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return $("#vault-download-revision-modal").modal("hide"),$("#vault-recook-object-modal").attr("swh-object-type","revision"),$("#vault-recook-object-modal").attr("swh-object-swhid",t),n=Urls.api_1_vault_cook_git_bare(t),e.next=1,fetch(n);case 1:return r=e.sent,e.next=2,r.json();case 2:o=e.sent,swh.vault.fetchCookedObject(o.fetch_url);case 3:case"end":return e.stop()}},e)}))).apply(this,arguments)}}},__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__,{cookDirectoryArchive:function(){return t.OH},cookRevisionArchive:function(){return t.MO},displayCookingTaskCreatedAlert:function(){return t.Ib},displayCookingTaskCreationFailedAlert:function(){return t.SI},fetchCookedObject:function(){return e.hm},fetchDirectoryArchive:function(){return t.eo},fetchRevisionArchive:function(){return t.aS},initUi:function(){return e.jh},recookObject:function(){return e.Bn},removeCookingTaskInfo:function(){return e.iF},vaultRequest:function(){return t.mE}});var e=__webpack_require__(75097),t=__webpack_require__(94196)}(),__webpack_exports__}()});
|
|
3
|
-
//# sourceMappingURL=vault.4eaa8dbf376ebe9cdc7f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/vault.4eaa8dbf376ebe9cdc7f.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/./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/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./node_modules/email-validator/index.js","webpack://swh/./swh/web/vault/assets/vault-table-row.ejs","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/typeof.js","webpack://swh/./swh/web/vault/assets/vault-ui.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://swh/./swh/web/vault/assets/vault-create-tasks.js","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"],"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\"][\"vault\"] = 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 };","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","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;","\"use strict\";\r\n\r\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\r\n// Thanks to:\r\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\r\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\r\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\r\nexports.validate = function(email)\r\n{\r\n\tif (!email)\r\n\t\treturn false;\r\n\t\t\r\n\tif(email.length>254)\r\n\t\treturn false;\r\n\r\n\tvar valid = tester.test(email);\r\n\tif(!valid)\r\n\t\treturn false;\r\n\r\n\t// Further checking of some things regex can't handle\r\n\tvar parts = email.split(\"@\");\r\n\tif(parts[0].length>64)\r\n\t\treturn false;\r\n\r\n\tvar domainParts = parts[1].split(\".\");\r\n\tif(domainParts.some(function(part) { return part.length>63; }))\r\n\t\treturn false;\r\n\r\n\treturn true;\r\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\\n\")\n ; if (cookingTask.swhid.match(/^swh:1:dir:.*/)) { \n ; __append(\"\\n <tr id=\\\"vault-task-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\" title=\\\"Once downloaded, the directory can be extracted with the following command:\\n\\n$ tar xvzf \")\n ; __append(escapeFn( cookingTask.swhid.replaceAll(':', '_') ))\n ; __append(\".tar.gz\\\">\\n\")\n ; } else { \n ; __append(\"\\n </tr><tr id=\\\"vault-task-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\" title=\\\"Once downloaded, the git repository can be imported to a 'new_repository' directory with the following commands:\\n\\n$ tar xvf \")\n ; __append(escapeFn( cookingTask.swhid.replaceAll(':', '_') ))\n ; __append(\".git.tar\\n$ git clone \")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\".git new_repository\\n$ cd new_repository/\\\">\\n\")\n ; } \n ; __append(\"\\n <td>\\n <div class=\\\"form-check\\\">\\n <input type=\\\"checkbox\\\" class=\\\"form-check-input vault-task-toggle-selection\\\" id=\\\"vault-task-toggle-selection-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"vault-task-toggle-selection-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n </label>\\n </div></td>\\n \")\n ; if (cookingTask.origin) { \n ; __append(\"\\n <td class=\\\"vault-origin\\\">\\n <a href=\\\"\")\n ; __append(escapeFn( Urls.browse_origin() ))\n ; __append(\"?origin_url=\")\n ; __append(escapeFn( cookingTask.origin ))\n ; __append(\"\\\">\\n \")\n ; __append(escapeFn( decodeURIComponent(cookingTask.origin) ))\n ; __append(\"\\n </a>\\n </td>\\n \")\n ; } else { \n ; __append(\"\\n <td class=\\\"vault-origin\\\">unknown</td>\\n \")\n ; } \n ; __append(\"\\n <td>\\n <i class=\\\"\")\n ; __append(escapeFn( swh.webapp.getSwhObjectIcon(cookingTask.swhid.match(/swh:1:([a-z]+):/)[1]) ))\n ; __append(\" mdi-fw\\\"></i>\\n \")\n ; __append(escapeFn( cookingTask.bundle_type ))\n ; __append(\"\\n </td>\\n <td class=\\\"vault-object-info\\\" data-swhid=\\\"\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n <b>id:</b> <a href=\\\"\")\n ; __append(escapeFn( browseUrl ))\n ; __append(\"\\\">\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"</a>\\n \")\n ; if (cookingTask.path) { \n ; __append(\"\\n <br><b>path:</b> \")\n ; __append(escapeFn( cookingTask.path ))\n ; __append(\"\\n \")\n ; } \n ; __append(\"\\n </td>\\n <td>\")\n ; __append( progressBar.outerHTML )\n ; __append(\"</td>\\n <td class=\\\"vault-dl-link\\\">\\n \")\n ; if (cookingTask.status === 'done') { \n ; __append(\"\\n <button class=\\\"btn btn-secondary btn-sm\\\" onclick=\\\"swh.vault.fetchCookedObject('\")\n ; __append(escapeFn( cookingTask.fetch_url ))\n ; __append(\"')\\\">\\n <i class=\\\"mdi mdi-download mdi-fw\\\" aria-hidden=\\\"true\\\"></i>Download\\n </button>\\n \")\n ; } \n ; __append(\"\\n </td>\\n </tr>\\n\")\n }\n return __output;\n\n}","// 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 _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;","/**\n * Copyright (C) 2018-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 {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions';\nimport vaultTableRowTemplate from './vault-table-row.ejs';\n\nconst progress =\n `<div class=\"progress\">\n <div class=\"progress-bar progress-bar-success progress-bar-striped\"\n role=\"progressbar\" aria-valuenow=\"100\" aria-valuemin=\"0\"\n aria-valuemax=\"100\" style=\"width: 100%;height: 100%;\">\n </div>\n </div>;`;\n\nconst pollingInterval = 5000;\nlet checkVaultId;\n\nfunction updateProgressBar(progressBar, cookingTask) {\n if (cookingTask.status === 'new') {\n progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)');\n } else if (cookingTask.status === 'pending') {\n progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)');\n } else if (cookingTask.status === 'done') {\n progressBar.css('background-color', '#5cb85c');\n } else if (cookingTask.status === 'failed') {\n progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)');\n progressBar.css('background-image', 'none');\n }\n var text = cookingTask.progress_message || cookingTask.status;\n var firstLine, rest;\n [firstLine, ...rest] = text.split('\\n', 2);\n progressBar.text(firstLine);\n if (rest.length) {\n progressBar.prop('title', rest[0]);\n }\n if (cookingTask.status === 'new' || cookingTask.status === 'pending') {\n progressBar.addClass('progress-bar-animated');\n } else {\n progressBar.removeClass('progress-bar-striped');\n }\n}\n\nlet recookTask;\n\n// called when the user wants to download a cooked archive\nexport async function fetchCookedObject(fetchUrl) {\n recookTask = null;\n // first, check if the link is still available from the vault\n const response = await fetch(fetchUrl);\n\n // link is still alive, proceed to download\n if (response.ok) {\n $('#vault-download-iframe').attr('src', fetchUrl);\n // link is dead\n } else {\n // get the associated cooking task\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (vaultCookingTasks) {\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].fetch_url === fetchUrl) {\n recookTask = vaultCookingTasks[i];\n break;\n }\n }\n }\n // display a modal asking the user if he wants to recook the archive\n $('#vault-recook-object-modal').modal('show');\n }\n}\n\n// called when the user wants to recook an archive\n// for which the download link is no longer available\nexport async function recookObject() {\n if (recookTask) {\n // previous cooking task already present in local storage, request\n // new cooking and update task status\n\n // stop cooking tasks status polling\n clearTimeout(checkVaultId);\n // build cook request url\n let cookingUrl;\n if (recookTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(recookTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(recookTask.swhid);\n }\n if (recookTask.email) {\n cookingUrl += '?email=' + recookTask.email;\n }\n try {\n // request archive cooking\n const response = await csrfPost(cookingUrl);\n handleFetchError(response);\n\n // update task status\n recookTask.status = 'new';\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].swhid === recookTask.swhid) {\n vaultCookingTasks[i] = recookTask;\n break;\n }\n }\n // save updated tasks to local storage\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n swh.vault.displayCookingTaskCreatedAlert();\n } catch (_) {\n swh.vault.displayCookingTaskCreationFailedAlert();\n }\n } else {\n // previous cooking task not present in local storage, request cooking\n const objectType = $('#vault-recook-object-modal').attr('swh-object-type');\n const objectSwhid = $('#vault-recook-object-modal').attr('swh-object-swhid');\n if (objectType === 'directory') {\n swh.vault.cookDirectoryArchive(null, objectSwhid);\n } else if (objectType === 'revision') {\n swh.vault.cookRevisionArchive(null, objectSwhid);\n }\n }\n // hide recook archive modal\n $('#vault-recook-object-modal').modal('hide');\n // restart cooking tasks status polling\n await checkVaultCookingTasks();\n}\n\nasync function checkVaultCookingTasks() {\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks || vaultCookingTasks.length === 0) {\n $('.swh-vault-table tbody tr').remove();\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n return;\n }\n const cookingTaskRequests = [];\n const tasks = {};\n const currentObjectIds = [];\n\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n const cookingTask = vaultCookingTasks[i];\n\n if (typeof cookingTask.object_type !== 'undefined') {\n // Legacy cooking task, upgrade it to the new schema\n if (cookingTask.object_type === 'directory') {\n cookingTask.swhid = `swh:1:dir:${cookingTask.object_id}`;\n cookingTask.bundle_type = 'flat';\n cookingTask.fetch_url = Urls.api_1_vault_download_flat(cookingTask.swhid);\n } else if (cookingTask.object_type === 'revision') {\n cookingTask.swhid = `swh:1:rev:${cookingTask.object_id}`;\n cookingTask.bundle_type = 'git_bare';\n cookingTask.fetch_url = Urls.api_1_vault_download_git_bare(cookingTask.swhid);\n } else {\n // Log to the console + Sentry\n console.error(`Unexpected cookingTask.object_type: ${cookingTask.object_type}`);\n // Ignore it for now and hope a future version will fix it\n continue;\n }\n delete cookingTask.object_type;\n delete cookingTask.object_id;\n }\n\n currentObjectIds.push(cookingTask.swhid);\n tasks[cookingTask.swhid] = cookingTask;\n let cookingUrl;\n if (cookingTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(cookingTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(cookingTask.swhid);\n }\n if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') {\n cookingTaskRequests.push(fetch(cookingUrl));\n }\n }\n $('.swh-vault-table tbody tr').each((i, row) => {\n const swhid = $(row).find('.vault-object-info').data('swhid');\n if ($.inArray(swhid, currentObjectIds) === -1) {\n $(row).remove();\n }\n });\n try {\n const responses = await Promise.all(cookingTaskRequests);\n handleFetchErrors(responses);\n const cookingTasks = await Promise.all(responses.map(r => r.json()));\n\n const table = $('#vault-cooking-tasks tbody');\n for (let i = 0; i < cookingTasks.length; ++i) {\n const cookingTask = tasks[cookingTasks[i].swhid];\n cookingTask.status = cookingTasks[i].status;\n cookingTask.fetch_url = cookingTasks[i].fetch_url;\n cookingTask.progress_message = cookingTasks[i].progress_message;\n }\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n const cookingTask = vaultCookingTasks[i];\n const rowTask = $(`#vault-task-${CSS.escape(cookingTask.swhid)}`);\n\n if (!rowTask.length) {\n\n let browseUrl = cookingTask.browse_url;\n if (!browseUrl) {\n browseUrl = Urls.browse_swhid(cookingTask.swhid);\n }\n\n const progressBar = $.parseHTML(progress)[0];\n const progressBarContent = $(progressBar).find('.progress-bar');\n updateProgressBar(progressBarContent, cookingTask);\n table.prepend(vaultTableRowTemplate({\n browseUrl: browseUrl,\n cookingTask: cookingTask,\n progressBar: progressBar,\n Urls: Urls,\n swh: swh\n }));\n } else {\n const progressBar = rowTask.find('.progress-bar');\n updateProgressBar(progressBar, cookingTask);\n const downloadLink = rowTask.find('.vault-dl-link');\n if (cookingTask.status === 'done') {\n downloadLink[0].innerHTML =\n '<button class=\"btn btn-secondary btn-sm\" ' +\n `onclick=\"swh.vault.fetchCookedObject('${cookingTask.fetch_url}')\">` +\n '<i class=\"mdi mdi-download mdi-fw\" aria-hidden=\"true\"></i>Download</button>';\n } else {\n downloadLink[0].innerHTML = '';\n }\n }\n }\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n\n } catch (error) {\n console.log('Error when fetching vault cooking tasks:', error);\n }\n}\n\nexport function removeCookingTaskInfo(tasksToRemove) {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n return;\n }\n vaultCookingTasks = $.grep(vaultCookingTasks, task => {\n return $.inArray(task.swhid, tasksToRemove) === -1;\n });\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n}\n\nexport function initUi() {\n\n $('#vault-tasks-toggle-selection').change(event => {\n $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked);\n });\n\n $('#vault-remove-tasks').click(() => {\n clearTimeout(checkVaultId);\n const tasksToRemove = [];\n $('.swh-vault-table tbody tr').each((i, row) => {\n const taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked');\n if (taskSelected) {\n const swhid = $(row).find('.vault-object-info').data('swhid');\n tasksToRemove.push(swhid);\n $(row).remove();\n }\n });\n removeCookingTaskInfo(tasksToRemove);\n $('#vault-tasks-toggle-selection').prop('checked', false);\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n });\n\n checkVaultCookingTasks();\n\n window.onfocus = () => {\n clearTimeout(checkVaultId);\n checkVaultCookingTasks();\n };\n\n}\n","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;","/**\n * Copyright (C) 2018-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\nimport * as EmailValidator from 'email-validator';\n\nimport {csrfPost, handleFetchError, htmlAlert} from 'utils/functions';\n\nconst alertStyle = {\n 'position': 'fixed',\n 'left': '1rem',\n 'bottom': '1rem',\n 'z-index': '100000'\n};\n\nexport function displayCookingTaskCreatedAlert() {\n const cookingTaskCreatedAlert =\n $(htmlAlert('success',\n 'Archive cooking request successfully submitted.<br/>' +\n `Go to the <a class=\"alert-link\" href=\"${Urls.vault()}\">Downloads</a> page ` +\n 'to get the download link once it is ready.',\n true));\n cookingTaskCreatedAlert.css(alertStyle);\n $('body').append(cookingTaskCreatedAlert);\n}\n\nexport function displayCookingTaskCreationFailedAlert() {\n const cookingTaskFailedAlert =\n $(htmlAlert('danger',\n 'Archive cooking request submission failed.',\n true));\n cookingTaskFailedAlert.css(alertStyle);\n $('body').append(cookingTaskFailedAlert);\n}\n\nexport async function vaultRequest(objectType, swhid) {\n let vaultUrl;\n if (objectType === 'directory') {\n vaultUrl = Urls.api_1_vault_cook_flat(swhid);\n } else {\n vaultUrl = Urls.api_1_vault_cook_git_bare(swhid);\n }\n // check if object has already been cooked\n const response = await fetch(vaultUrl);\n const data = await response.json();\n\n // object needs to be cooked\n const statusForCooking = ['failed', 'pending', 'new'];\n if (data.exception === 'NotFoundExc' || statusForCooking.includes(data.status)) {\n // if last cooking has failed, remove previous task info from localStorage\n // in order to force the recooking of the object\n swh.vault.removeCookingTaskInfo([swhid]);\n const vaultModalId = `#vault-cook-${objectType}-modal`;\n $(vaultModalId).modal('show');\n } else if (data.status === 'done') {\n // object has been cooked but is no longer in the vault cache,\n // it will be asked to cook it again\n const vaultModalId = `#vault-download-${objectType}-modal`;\n $(vaultModalId).modal('show');\n } else {\n const cookingServiceDownAlert =\n $(htmlAlert('danger',\n 'Something unexpected happened when requesting the archive cooking service.<br/>' +\n 'Please try again later.',\n true));\n cookingServiceDownAlert.css(alertStyle);\n $('body').append(cookingServiceDownAlert);\n }\n}\n\nasync function addVaultCookingTask(objectType, cookingTask) {\n\n const swhidsContext = swh.webapp.getSwhIdsContext();\n cookingTask.origin = swhidsContext[objectType].context.origin;\n cookingTask.path = swhidsContext[objectType].context.path;\n cookingTask.browse_url = swhidsContext[objectType].swhid_with_context_url;\n if (!cookingTask.browse_url) {\n cookingTask.browse_url = swhidsContext[objectType].swhid_url;\n }\n\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n vaultCookingTasks = [];\n }\n if (vaultCookingTasks.find(val => {\n return val.bundle_type === cookingTask.bundle_type &&\n val.swhid === cookingTask.swhid;\n }) === undefined) {\n let cookingUrl;\n if (cookingTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(cookingTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(cookingTask.swhid);\n }\n if (cookingTask.email) {\n cookingUrl += '?email=' + encodeURIComponent(cookingTask.email);\n }\n\n try {\n const response = await csrfPost(cookingUrl);\n handleFetchError(response);\n vaultCookingTasks.push(cookingTask);\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n displayCookingTaskCreatedAlert();\n } catch (_) {\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n displayCookingTaskCreationFailedAlert();\n }\n }\n}\n\nexport function cookDirectoryArchive(event, swhid) {\n if (event) {\n event.preventDefault();\n }\n const email = $('#swh-vault-directory-email').val().trim();\n if (!email || EmailValidator.validate(email)) {\n const cookingTask = {\n 'bundle_type': 'flat',\n 'swhid': swhid,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask('directory', cookingTask);\n\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport async function fetchDirectoryArchive(directorySwhid) {\n $('#vault-download-directory-modal').modal('hide');\n $('#vault-recook-object-modal').attr('swh-object-type', 'directory');\n $('#vault-recook-object-modal').attr('swh-object-swhid', directorySwhid);\n const vaultUrl = Urls.api_1_vault_cook_flat(directorySwhid);\n const response = await fetch(vaultUrl);\n const data = await response.json();\n swh.vault.fetchCookedObject(data.fetch_url);\n}\n\nexport function cookRevisionArchive(event, revisionId) {\n if (event) {\n event.preventDefault();\n }\n const email = $('#swh-vault-revision-email').val().trim();\n if (!email || EmailValidator.validate(email)) {\n const cookingTask = {\n 'bundle_type': 'git_bare',\n 'swhid': revisionId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask('revision', cookingTask);\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport async function fetchRevisionArchive(revisionSwhid) {\n $('#vault-download-revision-modal').modal('hide');\n $('#vault-recook-object-modal').attr('swh-object-type', 'revision');\n $('#vault-recook-object-modal').attr('swh-object-swhid', revisionSwhid);\n const vaultUrl = Urls.api_1_vault_cook_git_bare(revisionSwhid);\n const response = await fetch(vaultUrl);\n const data = await response.json();\n swh.vault.fetchCookedObject(data.fetch_url);\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};"],"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","handleFetchErrors","responses","i","csrfPost","url","headers","body","Cookies","get","fetch","credentials","method","htmlAlert","type","message","closable","closeButton","extraClasses","asyncGeneratorStep","c","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","regeneratorDefine","prototype","Symbol","asyncIterator","_regenerator","iterator","toStringTag","Generator","create","y","G","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","assign","target","source","key","api","init","converter","defaultAttributes","set","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","slice","join","found","read","remove","withAttributes","withConverter","freeze","path","k","_typeof","isNaN","tester","email","test","some","part","anonymous","locals","escapeFn","include","rethrow","markup","undefined","String","_MATCH_HTML","encode_char","_ENCODE_HTML_RULES","__output","__append","s","cookingTask","swhid","match","replaceAll","origin","Urls","browse_origin","swh","webapp","getSwhObjectIcon","bundle_type","browseUrl","progressBar","outerHTML","status","fetch_url","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","checkVaultId","recookTask","pollingInterval","updateProgressBar","css","firstLine","rest","_text$split","progress_message","_arrayLikeToArray","text","prop","addClass","removeClass","fetchCookedObject","_x","_fetchCookedObject","_callee","fetchUrl","vaultCookingTasks","_context","$","attr","JSON","parse","localStorage","getItem","modal","recookObject","_recookObject","_callee2","cookingUrl","objectType","objectSwhid","_context2","clearTimeout","api_1_vault_cook_flat","api_1_vault_cook_git_bare","setItem","stringify","vault","displayCookingTaskCreatedAlert","displayCookingTaskCreationFailedAlert","cookDirectoryArchive","cookRevisionArchive","checkVaultCookingTasks","_checkVaultCookingTasks","_callee3","cookingTaskRequests","tasks","currentObjectIds","cookingTasks","table","_i","_cookingTask","_i2","_cookingTask2","rowTask","downloadLink","_t2","_context3","setTimeout","object_type","object_id","api_1_vault_download_flat","api_1_vault_download_git_bare","console","error","push","each","row","find","data","inArray","all","map","json","CSS","innerHTML","browse_url","browse_swhid","parseHTML","prepend","vaultTableRowTemplate","log","removeCookingTaskInfo","tasksToRemove","grep","task","initUi","change","event","currentTarget","checked","click","window","onfocus","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","alertStyle","cookingTaskCreatedAlert","append","cookingTaskFailedAlert","vaultRequest","_x2","_vaultRequest","vaultUrl","statusForCooking","cookingServiceDownAlert","exception","includes","addVaultCookingTask","_x3","_x4","_addVaultCookingTask","swhidsContext","getSwhIdsContext","context","swhid_with_context_url","swhid_url","val","preventDefault","trim","EmailValidator","fetchDirectoryArchive","_x5","_fetchDirectoryArchive","directorySwhid","revisionId","fetchRevisionArchive","_x6","_fetchRevisionArchive","_callee4","revisionSwhid","_context4","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj","hasOwnProperty"],"sourceRoot":""}
|