swh.web 0.14.2__py3-none-any.whl → 0.15.0__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/alter/forms.py +16 -16
- swh/web/alter/templates/admin_alteration.html +5 -5
- swh/web/alter/templates/alteration_details.html +2 -2
- swh/web/alter/templates/assistant_category.html +21 -19
- swh/web/alter/templates/assistant_email.html +3 -4
- swh/web/alter/templates/assistant_origins.html +1 -2
- swh/web/alter/templates/assistant_reasons.html +1 -2
- swh/web/alter/templates/assistant_summary.html +3 -4
- swh/web/alter/templates/content_policies.html +8 -15
- swh/web/alter/templates/includes/swh_legal.html +1 -1
- swh/web/alter/tests/test_views.py +2 -2
- swh/web/alter/urls.py +1 -1
- swh/web/alter/views.py +2 -2
- swh/web/browse/assets/browse/browse.css +10 -0
- swh/web/browse/assets/browse/sidetabs.js +22 -2
- swh/web/browse/templates/includes/sidetabs.html +20 -16
- swh/web/browse/templates/includes/snapshot-context.html +3 -1
- swh/web/save_code_now/templates/includes/take-new-snapshot.html +1 -1
- swh/web/static/css/browse.0a250d3b07ce628588a5.css +2 -0
- swh/web/static/css/browse.0a250d3b07ce628588a5.css.map +1 -0
- swh/web/static/js/add_forge_now.f8fa8235350a7875b4b2.js.map +1 -1
- swh/web/static/js/archive_coverage.71f6961fbdc0d76c313b.js +3 -0
- swh/web/static/js/{archive_coverage.b37e2158e800bc69180b.js.LICENSE.txt → archive_coverage.71f6961fbdc0d76c313b.js.LICENSE.txt} +1 -1
- swh/web/static/js/archive_coverage.71f6961fbdc0d76c313b.js.map +1 -0
- swh/web/static/js/auth.971392ebe3f22c222189.js.map +1 -1
- swh/web/static/js/{browse.b150f8992236375f2e9b.js → browse.d5014e5cae44a2cd3e6e.js} +3 -3
- swh/web/static/js/browse.d5014e5cae44a2cd3e6e.js.map +1 -0
- swh/web/static/js/deposit.060ba94288f399dfe89e.js.map +1 -1
- swh/web/static/js/guided_tour.3a7a41181c43663f866b.js.map +1 -1
- swh/web/static/js/highlightjs.19cb5fa8879fdc8357d7.js.map +1 -1
- swh/web/static/js/mailmap.5dc62b52b8eb18e2e8b0.js.map +1 -1
- swh/web/static/js/origin_visits.679992a2a951f67a08bc.js.map +1 -1
- swh/web/static/js/pdf.worker.min.js +1 -1
- swh/web/static/js/pdfjs.97ecbde9d93314dba75a.js +3 -0
- swh/web/static/js/pdfjs.97ecbde9d93314dba75a.js.map +1 -0
- swh/web/static/js/revision.c5f4750ef7caee355fd9.js.map +1 -1
- swh/web/static/js/save_code_now.3db9c75765eb44fe774a.js.map +1 -1
- swh/web/static/js/showdown.8be01722fe56f5a7c2db.js.map +1 -1
- swh/web/static/js/vault.8c6e8e445d128eb30488.js.map +1 -1
- swh/web/static/js/{vendors.076b42bbe0326fc632ae.js → vendors.532425b092b95d43a1d6.js} +3 -3
- swh/web/static/js/vendors.532425b092b95d43a1d6.js.map +1 -0
- swh/web/static/js/webapp.5427bd8b32cec7de0951.js +3 -0
- swh/web/static/js/{webapp.ec7025df24c9f358f1cc.js.LICENSE.txt → webapp.5427bd8b32cec7de0951.js.LICENSE.txt} +1 -1
- swh/web/static/js/webapp.5427bd8b32cec7de0951.js.map +1 -0
- swh/web/static/jssources/@iframe-resizer/child/index.umd.js +2 -2
- swh/web/static/jssources/@iframe-resizer/parent/index.umd.js +2 -2
- swh/web/static/jssources/core-js/internals/array-to-reversed.js +2 -2
- swh/web/static/jssources/core-js/internals/array-with.js +2 -2
- swh/web/static/jssources/core-js/internals/async-iterator-iteration.js +6 -1
- swh/web/static/jssources/core-js/internals/flatten-into-array.js +1 -1
- swh/web/static/jssources/core-js/internals/get-iterator-direct.js +1 -1
- swh/web/static/jssources/core-js/internals/install-error-cause.js +1 -1
- swh/web/static/jssources/core-js/internals/iterator-create-proxy.js +1 -1
- swh/web/static/jssources/core-js/internals/set-difference.js +1 -1
- swh/web/static/jssources/core-js/internals/set-intersection.js +1 -1
- swh/web/static/jssources/core-js/internals/set-is-disjoint-from.js +1 -1
- swh/web/static/jssources/core-js/internals/set-is-subset-of.js +1 -1
- swh/web/static/jssources/core-js/internals/set-is-superset-of.js +1 -1
- swh/web/static/jssources/core-js/internals/set-method-get-keys-before-cloning-detection.js +1 -1
- swh/web/static/jssources/core-js/internals/set-symmetric-difference.js +1 -1
- swh/web/static/jssources/core-js/internals/set-union.js +1 -1
- swh/web/static/jssources/core-js/internals/shared-store.js +2 -2
- swh/web/static/jssources/core-js/internals/string-pad.js +0 -1
- swh/web/static/jssources/core-js/modules/es.array-buffer.transfer-to-fixed-length.js +1 -1
- swh/web/static/jssources/core-js/modules/es.array-buffer.transfer.js +1 -1
- swh/web/static/jssources/core-js/modules/es.error.is-error.js +1 -1
- swh/web/static/jssources/core-js/modules/es.symbol.constructor.js +1 -1
- swh/web/static/jssources/jslicenses.json +1 -1
- swh/web/static/jssources/pdfjs-dist/build/pdf.worker.mjs +299 -13
- swh/web/static/jssources/pdfjs-dist/legacy/build/pdf.mjs +492 -113
- swh/web/static/jssources/swh/web/browse/assets/browse/sidetabs.js +22 -2
- swh/web/static/jssources/swh/web/webapp/assets/webapp/webapp-utils.js +10 -0
- swh/web/static/webpack-stats.json +73 -73
- swh/web/utils/archive.py +12 -0
- swh/web/utils/tests/test_archive.py +32 -15
- swh/web/vault/templates/includes/vault-common.html +1 -1
- swh/web/vault/templates/includes/vault-create-tasks.html +5 -5
- swh/web/webapp/assets/webapp/webapp-utils.js +10 -0
- swh/web/webapp/templates/includes/footer.html +1 -1
- swh/web/webapp/templates/includes/global-modals.html +3 -3
- {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/METADATA +1 -1
- {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/RECORD +89 -89
- swh/web/static/css/browse.5775e0a313f4ccb8aef5.css +0 -2
- swh/web/static/css/browse.5775e0a313f4ccb8aef5.css.map +0 -1
- swh/web/static/js/archive_coverage.b37e2158e800bc69180b.js +0 -3
- swh/web/static/js/archive_coverage.b37e2158e800bc69180b.js.map +0 -1
- swh/web/static/js/browse.b150f8992236375f2e9b.js.map +0 -1
- swh/web/static/js/pdfjs.ca88359f90430972e38c.js +0 -3
- swh/web/static/js/pdfjs.ca88359f90430972e38c.js.map +0 -1
- swh/web/static/js/vendors.076b42bbe0326fc632ae.js.map +0 -1
- swh/web/static/js/webapp.ec7025df24c9f358f1cc.js +0 -3
- swh/web/static/js/webapp.ec7025df24c9f358f1cc.js.map +0 -1
- /swh/web/static/js/{browse.b150f8992236375f2e9b.js.LICENSE.txt → browse.d5014e5cae44a2cd3e6e.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{pdfjs.ca88359f90430972e38c.js.LICENSE.txt → pdfjs.97ecbde9d93314dba75a.js.LICENSE.txt} +0 -0
- /swh/web/static/js/{vendors.076b42bbe0326fc632ae.js.LICENSE.txt → vendors.532425b092b95d43a1d6.js.LICENSE.txt} +0 -0
- {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/WHEEL +0 -0
- {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/licenses/AUTHORS +0 -0
- {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/licenses/LICENSE +0 -0
- {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/top_level.txt +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js/save_code_now.3db9c75765eb44fe774a.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) {\n return `${__STATIC__}${asset}`;\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));\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 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 html += ` <a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\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', '.tar.gz', '.tar.lz', '.tar.xz', '.tar.zst', '.zip'];\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 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 html += ` <a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\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 if (r) i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n;else {\n var o = function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n };\n o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2);\n }\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","__STATIC__","csrfPost","url","headers","body","Cookies","get","fetch","credentials","method","isGitRepoUrl","pathPrefix","undefined","find","protocol","pathname","startsWith","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","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","enumerable","configurable","writable","_invoke","_inherits","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"js/save_code_now.3db9c75765eb44fe774a.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) {\n return `${__STATIC__}${asset}`;\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));\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 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 html += ` <a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\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', '.tar.gz', '.tar.lz', '.tar.xz', '.tar.zst', '.zip'];\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 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 html += ` <a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\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 if (r) i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n;else {\n var o = function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n };\n o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2);\n }\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","__STATIC__","csrfPost","url","headers","body","Cookies","get","fetch","credentials","method","isGitRepoUrl","pathPrefix","undefined","find","protocol","pathname","startsWith","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","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","enumerable","configurable","writable","_invoke","_inherits","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj"],"sourceRoot":""}
|