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/vault.8c6e8e445d128eb30488.js","mappings":"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","sources":["webpack://swh/webpack/universalModuleDefinition","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://swh/./assets/src/utils/functions.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://swh/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./node_modules/email-validator/index.js","webpack://swh/./swh/web/vault/assets/vault-table-row.ejs","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./node_modules/@babel/runtime/helpers/typeof.js","webpack://swh/./swh/web/vault/assets/vault-ui.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://swh/./swh/web/vault/assets/vault-create-tasks.js","webpack://swh/webpack/bootstrap","webpack://swh/webpack/runtime/compat get default export","webpack://swh/webpack/runtime/define property getters","webpack://swh/webpack/runtime/hasOwnProperty shorthand","webpack://swh/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"vault\"] = factory();\n})(self, function() {\nreturn ","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\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","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\r\n\r\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\r\n// Thanks to:\r\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\r\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\r\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\r\nexports.validate = function(email)\r\n{\r\n\tif (!email)\r\n\t\treturn false;\r\n\t\t\r\n\tif(email.length>254)\r\n\t\treturn false;\r\n\r\n\tvar valid = tester.test(email);\r\n\tif(!valid)\r\n\t\treturn false;\r\n\r\n\t// Further checking of some things regex can't handle\r\n\tvar parts = email.split(\"@\");\r\n\tif(parts[0].length>64)\r\n\t\treturn false;\r\n\r\n\tvar domainParts = parts[1].split(\".\");\r\n\tif(domainParts.some(function(part) { return part.length>63; }))\r\n\t\treturn false;\r\n\r\n\treturn true;\r\n}","module.exports = function anonymous(locals, escapeFn, include, rethrow\n) {\nescapeFn = escapeFn || function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nvar _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n;\n var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n with (locals || {}) {\n ; __append(\"\\n\\n\")\n ; if (cookingTask.swhid.match(/^swh:1:dir:.*/)) { \n ; __append(\"\\n <tr id=\\\"vault-task-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\" title=\\\"Once downloaded, the directory can be extracted with the following command:\\n\\n$ tar xvzf \")\n ; __append(escapeFn( cookingTask.swhid.replaceAll(':', '_') ))\n ; __append(\".tar.gz\\\">\\n\")\n ; } else { \n ; __append(\"\\n </tr><tr id=\\\"vault-task-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\" title=\\\"Once downloaded, the git repository can be imported to a 'new_repository' directory with the following commands:\\n\\n$ tar xvf \")\n ; __append(escapeFn( cookingTask.swhid.replaceAll(':', '_') ))\n ; __append(\".git.tar\\n$ git clone \")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\".git new_repository\\n$ cd new_repository/\\\">\\n\")\n ; } \n ; __append(\"\\n <td>\\n <div class=\\\"form-check\\\">\\n <input type=\\\"checkbox\\\" class=\\\"form-check-input vault-task-toggle-selection\\\" id=\\\"vault-task-toggle-selection-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"vault-task-toggle-selection-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n </label>\\n </div></td>\\n \")\n ; if (cookingTask.origin) { \n ; __append(\"\\n <td class=\\\"vault-origin\\\">\\n <a href=\\\"\")\n ; __append(escapeFn( Urls.browse_origin() ))\n ; __append(\"?origin_url=\")\n ; __append(escapeFn( cookingTask.origin ))\n ; __append(\"\\\">\\n \")\n ; __append(escapeFn( decodeURIComponent(cookingTask.origin) ))\n ; __append(\"\\n </a>\\n </td>\\n \")\n ; } else { \n ; __append(\"\\n <td class=\\\"vault-origin\\\">unknown</td>\\n \")\n ; } \n ; __append(\"\\n <td>\\n <i class=\\\"\")\n ; __append(escapeFn( swh.webapp.getSwhObjectIcon(cookingTask.swhid.match(/swh:1:([a-z]+):/)[1]) ))\n ; __append(\" mdi-fw\\\"></i>\\n \")\n ; __append(escapeFn( cookingTask.bundle_type ))\n ; __append(\"\\n </td>\\n <td class=\\\"vault-object-info\\\" data-swhid=\\\"\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n <b>id:</b> <a href=\\\"\")\n ; __append(escapeFn( browseUrl ))\n ; __append(\"\\\">\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"</a>\\n \")\n ; if (cookingTask.path) { \n ; __append(\"\\n <br><b>path:</b> \")\n ; __append(escapeFn( cookingTask.path ))\n ; __append(\"\\n \")\n ; } \n ; __append(\"\\n </td>\\n <td>\")\n ; __append( progressBar.outerHTML )\n ; __append(\"</td>\\n <td class=\\\"vault-dl-link\\\">\\n \")\n ; if (cookingTask.status === 'done') { \n ; __append(\"\\n <button class=\\\"btn btn-secondary btn-sm\\\" onclick=\\\"swh.vault.fetchCookedObject('\")\n ; __append(escapeFn( cookingTask.fetch_url ))\n ; __append(\"')\\\">\\n <i class=\\\"mdi mdi-download mdi-fw\\\" aria-hidden=\\\"true\\\"></i>Download\\n </button>\\n \")\n ; } \n ; __append(\"\\n </td>\\n </tr>\\n\")\n }\n return __output;\n\n}","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions';\nimport vaultTableRowTemplate from './vault-table-row.ejs';\n\nconst progress =\n `<div class=\"progress\">\n <div class=\"progress-bar progress-bar-success progress-bar-striped\"\n role=\"progressbar\" aria-valuenow=\"100\" aria-valuemin=\"0\"\n aria-valuemax=\"100\" style=\"width: 100%;height: 100%;\">\n </div>\n </div>;`;\n\nconst pollingInterval = 5000;\nlet checkVaultId;\n\nfunction updateProgressBar(progressBar, cookingTask) {\n if (cookingTask.status === 'new') {\n progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)');\n } else if (cookingTask.status === 'pending') {\n progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)');\n } else if (cookingTask.status === 'done') {\n progressBar.css('background-color', '#5cb85c');\n } else if (cookingTask.status === 'failed') {\n progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)');\n progressBar.css('background-image', 'none');\n }\n var text = cookingTask.progress_message || cookingTask.status;\n var firstLine, rest;\n [firstLine, ...rest] = text.split('\\n', 2);\n progressBar.text(firstLine);\n if (rest.length) {\n progressBar.prop('title', rest[0]);\n }\n if (cookingTask.status === 'new' || cookingTask.status === 'pending') {\n progressBar.addClass('progress-bar-animated');\n } else {\n progressBar.removeClass('progress-bar-striped');\n }\n}\n\nlet recookTask;\n\n// called when the user wants to download a cooked archive\nexport async function fetchCookedObject(fetchUrl) {\n recookTask = null;\n // first, check if the link is still available from the vault\n const response = await fetch(fetchUrl);\n\n // link is still alive, proceed to download\n if (response.ok) {\n $('#vault-download-iframe').attr('src', fetchUrl);\n // link is dead\n } else {\n // get the associated cooking task\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (vaultCookingTasks) {\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].fetch_url === fetchUrl) {\n recookTask = vaultCookingTasks[i];\n break;\n }\n }\n }\n // display a modal asking the user if he wants to recook the archive\n $('#vault-recook-object-modal').modal('show');\n }\n}\n\n// called when the user wants to recook an archive\n// for which the download link is no longer available\nexport async function recookObject() {\n if (recookTask) {\n // previous cooking task already present in local storage, request\n // new cooking and update task status\n\n // stop cooking tasks status polling\n clearTimeout(checkVaultId);\n // build cook request url\n let cookingUrl;\n if (recookTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(recookTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(recookTask.swhid);\n }\n if (recookTask.email) {\n cookingUrl += '?email=' + recookTask.email;\n }\n try {\n // request archive cooking\n const response = await csrfPost(cookingUrl);\n handleFetchError(response);\n\n // update task status\n recookTask.status = 'new';\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].swhid === recookTask.swhid) {\n vaultCookingTasks[i] = recookTask;\n break;\n }\n }\n // save updated tasks to local storage\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n swh.vault.displayCookingTaskCreatedAlert();\n } catch (_) {\n swh.vault.displayCookingTaskCreationFailedAlert();\n }\n } else {\n // previous cooking task not present in local storage, request cooking\n const objectType = $('#vault-recook-object-modal').attr('swh-object-type');\n const objectSwhid = $('#vault-recook-object-modal').attr('swh-object-swhid');\n if (objectType === 'directory') {\n swh.vault.cookDirectoryArchive(null, objectSwhid);\n } else if (objectType === 'revision') {\n swh.vault.cookRevisionArchive(null, objectSwhid);\n }\n }\n // hide recook archive modal\n $('#vault-recook-object-modal').modal('hide');\n // restart cooking tasks status polling\n await checkVaultCookingTasks();\n}\n\nasync function checkVaultCookingTasks() {\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks || vaultCookingTasks.length === 0) {\n $('.swh-vault-table tbody tr').remove();\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n return;\n }\n const cookingTaskRequests = [];\n const tasks = {};\n const currentObjectIds = [];\n\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n const cookingTask = vaultCookingTasks[i];\n\n if (typeof cookingTask.object_type !== 'undefined') {\n // Legacy cooking task, upgrade it to the new schema\n if (cookingTask.object_type === 'directory') {\n cookingTask.swhid = `swh:1:dir:${cookingTask.object_id}`;\n cookingTask.bundle_type = 'flat';\n cookingTask.fetch_url = Urls.api_1_vault_download_flat(cookingTask.swhid);\n } else if (cookingTask.object_type === 'revision') {\n cookingTask.swhid = `swh:1:rev:${cookingTask.object_id}`;\n cookingTask.bundle_type = 'git_bare';\n cookingTask.fetch_url = Urls.api_1_vault_download_git_bare(cookingTask.swhid);\n } else {\n // Log to the console + Sentry\n console.error(`Unexpected cookingTask.object_type: ${cookingTask.object_type}`);\n // Ignore it for now and hope a future version will fix it\n continue;\n }\n delete cookingTask.object_type;\n delete cookingTask.object_id;\n }\n\n currentObjectIds.push(cookingTask.swhid);\n tasks[cookingTask.swhid] = cookingTask;\n let cookingUrl;\n if (cookingTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(cookingTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(cookingTask.swhid);\n }\n if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') {\n cookingTaskRequests.push(fetch(cookingUrl));\n }\n }\n $('.swh-vault-table tbody tr').each((i, row) => {\n const swhid = $(row).find('.vault-object-info').data('swhid');\n if ($.inArray(swhid, currentObjectIds) === -1) {\n $(row).remove();\n }\n });\n try {\n const responses = await Promise.all(cookingTaskRequests);\n handleFetchErrors(responses);\n const cookingTasks = await Promise.all(responses.map(r => r.json()));\n\n const table = $('#vault-cooking-tasks tbody');\n for (let i = 0; i < cookingTasks.length; ++i) {\n const cookingTask = tasks[cookingTasks[i].swhid];\n cookingTask.status = cookingTasks[i].status;\n cookingTask.fetch_url = cookingTasks[i].fetch_url;\n cookingTask.progress_message = cookingTasks[i].progress_message;\n }\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n const cookingTask = vaultCookingTasks[i];\n const rowTask = $(`#vault-task-${CSS.escape(cookingTask.swhid)}`);\n\n if (!rowTask.length) {\n\n let browseUrl = cookingTask.browse_url;\n if (!browseUrl) {\n browseUrl = Urls.browse_swhid(cookingTask.swhid);\n }\n\n const progressBar = $.parseHTML(progress)[0];\n const progressBarContent = $(progressBar).find('.progress-bar');\n updateProgressBar(progressBarContent, cookingTask);\n table.prepend(vaultTableRowTemplate({\n browseUrl: browseUrl,\n cookingTask: cookingTask,\n progressBar: progressBar,\n Urls: Urls,\n swh: swh\n }));\n } else {\n const progressBar = rowTask.find('.progress-bar');\n updateProgressBar(progressBar, cookingTask);\n const downloadLink = rowTask.find('.vault-dl-link');\n if (cookingTask.status === 'done') {\n downloadLink[0].innerHTML =\n '<button class=\"btn btn-secondary btn-sm\" ' +\n `onclick=\"swh.vault.fetchCookedObject('${cookingTask.fetch_url}')\">` +\n '<i class=\"mdi mdi-download mdi-fw\" aria-hidden=\"true\"></i>Download</button>';\n } else {\n downloadLink[0].innerHTML = '';\n }\n }\n }\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n\n } catch (error) {\n console.log('Error when fetching vault cooking tasks:', error);\n }\n}\n\nexport function removeCookingTaskInfo(tasksToRemove) {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n return;\n }\n vaultCookingTasks = $.grep(vaultCookingTasks, task => {\n return $.inArray(task.swhid, tasksToRemove) === -1;\n });\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n}\n\nexport function initUi() {\n\n $('#vault-tasks-toggle-selection').change(event => {\n $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked);\n });\n\n $('#vault-remove-tasks').click(() => {\n clearTimeout(checkVaultId);\n const tasksToRemove = [];\n $('.swh-vault-table tbody tr').each((i, row) => {\n const taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked');\n if (taskSelected) {\n const swhid = $(row).find('.vault-object-info').data('swhid');\n tasksToRemove.push(swhid);\n $(row).remove();\n }\n });\n removeCookingTaskInfo(tasksToRemove);\n $('#vault-tasks-toggle-selection').prop('checked', false);\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n });\n\n checkVaultCookingTasks();\n\n window.onfocus = () => {\n clearTimeout(checkVaultId);\n checkVaultCookingTasks();\n };\n\n}\n","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n 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;","/**\n * Copyright (C) 2018-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport * as EmailValidator from 'email-validator';\n\nimport {csrfPost, handleFetchError, htmlAlert} from 'utils/functions';\n\nconst alertStyle = {\n 'position': 'fixed',\n 'left': '1rem',\n 'bottom': '1rem',\n 'z-index': '100000'\n};\n\nexport function displayCookingTaskCreatedAlert() {\n const cookingTaskCreatedAlert =\n $(htmlAlert('success',\n 'Archive cooking request successfully submitted.<br/>' +\n `Go to the <a class=\"alert-link\" href=\"${Urls.vault()}\">Downloads</a> page ` +\n 'to get the download link once it is ready.',\n true));\n cookingTaskCreatedAlert.css(alertStyle);\n $('body').append(cookingTaskCreatedAlert);\n}\n\nexport function displayCookingTaskCreationFailedAlert() {\n const cookingTaskFailedAlert =\n $(htmlAlert('danger',\n 'Archive cooking request submission failed.',\n true));\n cookingTaskFailedAlert.css(alertStyle);\n $('body').append(cookingTaskFailedAlert);\n}\n\nexport async function vaultRequest(objectType, swhid) {\n let vaultUrl;\n if (objectType === 'directory') {\n vaultUrl = Urls.api_1_vault_cook_flat(swhid);\n } else {\n vaultUrl = Urls.api_1_vault_cook_git_bare(swhid);\n }\n // check if object has already been cooked\n const response = await fetch(vaultUrl);\n const data = await response.json();\n\n // object needs to be cooked\n const statusForCooking = ['failed', 'pending', 'new'];\n if (data.exception === 'NotFoundExc' || statusForCooking.includes(data.status)) {\n // if last cooking has failed, remove previous task info from localStorage\n // in order to force the recooking of the object\n swh.vault.removeCookingTaskInfo([swhid]);\n const vaultModalId = `#vault-cook-${objectType}-modal`;\n $(vaultModalId).modal('show');\n } else if (data.status === 'done') {\n // object has been cooked but is no longer in the vault cache,\n // it will be asked to cook it again\n const vaultModalId = `#vault-download-${objectType}-modal`;\n $(vaultModalId).modal('show');\n } else {\n const cookingServiceDownAlert =\n $(htmlAlert('danger',\n 'Something unexpected happened when requesting the archive cooking service.<br/>' +\n 'Please try again later.',\n true));\n cookingServiceDownAlert.css(alertStyle);\n $('body').append(cookingServiceDownAlert);\n }\n}\n\nasync function addVaultCookingTask(objectType, cookingTask) {\n\n const swhidsContext = swh.webapp.getSwhIdsContext();\n cookingTask.origin = swhidsContext[objectType].context.origin;\n cookingTask.path = swhidsContext[objectType].context.path;\n cookingTask.browse_url = swhidsContext[objectType].swhid_with_context_url;\n if (!cookingTask.browse_url) {\n cookingTask.browse_url = swhidsContext[objectType].swhid_url;\n }\n\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n vaultCookingTasks = [];\n }\n if (vaultCookingTasks.find(val => {\n return val.bundle_type === cookingTask.bundle_type &&\n val.swhid === cookingTask.swhid;\n }) === undefined) {\n let cookingUrl;\n if (cookingTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(cookingTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(cookingTask.swhid);\n }\n if (cookingTask.email) {\n cookingUrl += '?email=' + encodeURIComponent(cookingTask.email);\n }\n\n try {\n const response = await csrfPost(cookingUrl);\n handleFetchError(response);\n vaultCookingTasks.push(cookingTask);\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n displayCookingTaskCreatedAlert();\n } catch (_) {\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n displayCookingTaskCreationFailedAlert();\n }\n }\n}\n\nexport function cookDirectoryArchive(event, swhid) {\n if (event) {\n event.preventDefault();\n }\n const email = $('#swh-vault-directory-email').val().trim();\n if (!email || EmailValidator.validate(email)) {\n const cookingTask = {\n 'bundle_type': 'flat',\n 'swhid': swhid,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask('directory', cookingTask);\n\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport async function fetchDirectoryArchive(directorySwhid) {\n $('#vault-download-directory-modal').modal('hide');\n $('#vault-recook-object-modal').attr('swh-object-type', 'directory');\n $('#vault-recook-object-modal').attr('swh-object-swhid', directorySwhid);\n const vaultUrl = Urls.api_1_vault_cook_flat(directorySwhid);\n const response = await fetch(vaultUrl);\n const data = await response.json();\n swh.vault.fetchCookedObject(data.fetch_url);\n}\n\nexport function cookRevisionArchive(event, revisionId) {\n if (event) {\n event.preventDefault();\n }\n const email = $('#swh-vault-revision-email').val().trim();\n if (!email || EmailValidator.validate(email)) {\n const cookingTask = {\n 'bundle_type': 'git_bare',\n 'swhid': revisionId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask('revision', cookingTask);\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport async function fetchRevisionArchive(revisionSwhid) {\n $('#vault-download-revision-modal').modal('hide');\n $('#vault-recook-object-modal').attr('swh-object-type', 'revision');\n $('#vault-recook-object-modal').attr('swh-object-swhid', revisionSwhid);\n const vaultUrl = Urls.api_1_vault_cook_git_bare(revisionSwhid);\n const response = await fetch(vaultUrl);\n const data = await response.json();\n swh.vault.fetchCookedObject(data.fetch_url);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","regenerator","regeneratorAsyncIterator","r","e","t","o","n","w","Promise","__esModule","Object","unshift","length","pop","value","done","OverloadYield","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","_regeneratorRuntime","m","getPrototypeOf","__proto__","constructor","displayName","name","a","stop","v","abrupt","delegateYield","resultName","d","finish","f","_t","p","prev","next","sent","call","this","wrap","reverse","isGeneratorFunction","mark","awrap","AsyncIterator","async","u","keys","values","handleFetchError","response","ok","handleFetchErrors","responses","i","csrfPost","url","headers","body","Cookies","get","fetch","credentials","method","htmlAlert","type","message","closable","closeButton","extraClasses","asyncGeneratorStep","c","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","regeneratorDefine","prototype","Symbol","asyncIterator","_regenerator","iterator","toStringTag","Generator","create","y","G","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","assign","target","source","key","api","init","converter","defaultAttributes","set","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","slice","join","found","read","remove","withAttributes","withConverter","freeze","path","k","_typeof","isNaN","tester","email","test","some","part","anonymous","locals","escapeFn","include","rethrow","markup","undefined","String","_MATCH_HTML","encode_char","_ENCODE_HTML_RULES","__output","__append","s","cookingTask","swhid","match","replaceAll","origin","Urls","browse_origin","swh","webapp","getSwhObjectIcon","bundle_type","browseUrl","progressBar","outerHTML","status","fetch_url","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","checkVaultId","recookTask","pollingInterval","updateProgressBar","css","firstLine","rest","_text$split","progress_message","text","prop","addClass","removeClass","fetchCookedObject","_x","_fetchCookedObject","_callee","fetchUrl","vaultCookingTasks","_context","$","attr","JSON","parse","localStorage","getItem","modal","recookObject","_recookObject","_callee2","cookingUrl","objectType","objectSwhid","_context2","clearTimeout","api_1_vault_cook_flat","api_1_vault_cook_git_bare","setItem","stringify","vault","displayCookingTaskCreatedAlert","displayCookingTaskCreationFailedAlert","cookDirectoryArchive","cookRevisionArchive","checkVaultCookingTasks","_checkVaultCookingTasks","_callee3","cookingTaskRequests","tasks","currentObjectIds","cookingTasks","table","_i","_cookingTask","_i2","_cookingTask2","rowTask","downloadLink","_t2","_context3","setTimeout","object_type","object_id","api_1_vault_download_flat","api_1_vault_download_git_bare","console","error","push","each","row","find","data","inArray","all","map","json","CSS","innerHTML","browse_url","browse_swhid","parseHTML","prepend","vaultTableRowTemplate","log","removeCookingTaskInfo","tasksToRemove","grep","task","initUi","change","event","currentTarget","checked","click","window","onfocus","_regeneratorDefine","defineProperty","enumerable","configurable","writable","_invoke","alertStyle","cookingTaskCreatedAlert","append","cookingTaskFailedAlert","vaultRequest","_x2","_vaultRequest","vaultUrl","statusForCooking","cookingServiceDownAlert","exception","includes","addVaultCookingTask","_x3","_x4","_addVaultCookingTask","swhidsContext","getSwhIdsContext","context","swhid_with_context_url","swhid_url","val","preventDefault","trim","EmailValidator","fetchDirectoryArchive","_x5","_fetchDirectoryArchive","directorySwhid","revisionId","fetchRevisionArchive","_x6","_fetchRevisionArchive","_callee4","revisionSwhid","_context4","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj","hasOwnProperty"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"js/vault.8c6e8e445d128eb30488.js","mappings":"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","sources":["webpack://swh/webpack/universalModuleDefinition","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://swh/./assets/src/utils/functions.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://swh/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./node_modules/email-validator/index.js","webpack://swh/./swh/web/vault/assets/vault-table-row.ejs","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./node_modules/@babel/runtime/helpers/typeof.js","webpack://swh/./swh/web/vault/assets/vault-ui.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://swh/./swh/web/vault/assets/vault-create-tasks.js","webpack://swh/webpack/bootstrap","webpack://swh/webpack/runtime/compat get default export","webpack://swh/webpack/runtime/define property getters","webpack://swh/webpack/runtime/hasOwnProperty shorthand","webpack://swh/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"vault\"] = factory();\n})(self, function() {\nreturn ","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\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","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\r\n\r\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\r\n// Thanks to:\r\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\r\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\r\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\r\nexports.validate = function(email)\r\n{\r\n\tif (!email)\r\n\t\treturn false;\r\n\t\t\r\n\tif(email.length>254)\r\n\t\treturn false;\r\n\r\n\tvar valid = tester.test(email);\r\n\tif(!valid)\r\n\t\treturn false;\r\n\r\n\t// Further checking of some things regex can't handle\r\n\tvar parts = email.split(\"@\");\r\n\tif(parts[0].length>64)\r\n\t\treturn false;\r\n\r\n\tvar domainParts = parts[1].split(\".\");\r\n\tif(domainParts.some(function(part) { return part.length>63; }))\r\n\t\treturn false;\r\n\r\n\treturn true;\r\n}","module.exports = function anonymous(locals, escapeFn, include, rethrow\n) {\nescapeFn = escapeFn || function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nvar _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n;\n var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n with (locals || {}) {\n ; __append(\"\\n\\n\")\n ; if (cookingTask.swhid.match(/^swh:1:dir:.*/)) { \n ; __append(\"\\n <tr id=\\\"vault-task-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\" title=\\\"Once downloaded, the directory can be extracted with the following command:\\n\\n$ tar xvzf \")\n ; __append(escapeFn( cookingTask.swhid.replaceAll(':', '_') ))\n ; __append(\".tar.gz\\\">\\n\")\n ; } else { \n ; __append(\"\\n </tr><tr id=\\\"vault-task-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\" title=\\\"Once downloaded, the git repository can be imported to a 'new_repository' directory with the following commands:\\n\\n$ tar xvf \")\n ; __append(escapeFn( cookingTask.swhid.replaceAll(':', '_') ))\n ; __append(\".git.tar\\n$ git clone \")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\".git new_repository\\n$ cd new_repository/\\\">\\n\")\n ; } \n ; __append(\"\\n <td>\\n <div class=\\\"form-check\\\">\\n <input type=\\\"checkbox\\\" class=\\\"form-check-input vault-task-toggle-selection\\\" id=\\\"vault-task-toggle-selection-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n <label class=\\\"form-check-label\\\" for=\\\"vault-task-toggle-selection-\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n </label>\\n </div></td>\\n \")\n ; if (cookingTask.origin) { \n ; __append(\"\\n <td class=\\\"vault-origin\\\">\\n <a href=\\\"\")\n ; __append(escapeFn( Urls.browse_origin() ))\n ; __append(\"?origin_url=\")\n ; __append(escapeFn( cookingTask.origin ))\n ; __append(\"\\\">\\n \")\n ; __append(escapeFn( decodeURIComponent(cookingTask.origin) ))\n ; __append(\"\\n </a>\\n </td>\\n \")\n ; } else { \n ; __append(\"\\n <td class=\\\"vault-origin\\\">unknown</td>\\n \")\n ; } \n ; __append(\"\\n <td>\\n <i class=\\\"\")\n ; __append(escapeFn( swh.webapp.getSwhObjectIcon(cookingTask.swhid.match(/swh:1:([a-z]+):/)[1]) ))\n ; __append(\" mdi-fw\\\"></i>\\n \")\n ; __append(escapeFn( cookingTask.bundle_type ))\n ; __append(\"\\n </td>\\n <td class=\\\"vault-object-info\\\" data-swhid=\\\"\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"\\\">\\n <b>id:</b> <a href=\\\"\")\n ; __append(escapeFn( browseUrl ))\n ; __append(\"\\\">\")\n ; __append(escapeFn( cookingTask.swhid ))\n ; __append(\"</a>\\n \")\n ; if (cookingTask.path) { \n ; __append(\"\\n <br><b>path:</b> \")\n ; __append(escapeFn( cookingTask.path ))\n ; __append(\"\\n \")\n ; } \n ; __append(\"\\n </td>\\n <td>\")\n ; __append( progressBar.outerHTML )\n ; __append(\"</td>\\n <td class=\\\"vault-dl-link\\\">\\n \")\n ; if (cookingTask.status === 'done') { \n ; __append(\"\\n <button class=\\\"btn btn-secondary btn-sm\\\" onclick=\\\"swh.vault.fetchCookedObject('\")\n ; __append(escapeFn( cookingTask.fetch_url ))\n ; __append(\"')\\\">\\n <i class=\\\"mdi mdi-download mdi-fw\\\" aria-hidden=\\\"true\\\"></i>Download\\n </button>\\n \")\n ; } \n ; __append(\"\\n </td>\\n </tr>\\n\")\n }\n return __output;\n\n}","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions';\nimport vaultTableRowTemplate from './vault-table-row.ejs';\n\nconst progress =\n `<div class=\"progress\">\n <div class=\"progress-bar progress-bar-success progress-bar-striped\"\n role=\"progressbar\" aria-valuenow=\"100\" aria-valuemin=\"0\"\n aria-valuemax=\"100\" style=\"width: 100%;height: 100%;\">\n </div>\n </div>;`;\n\nconst pollingInterval = 5000;\nlet checkVaultId;\n\nfunction updateProgressBar(progressBar, cookingTask) {\n if (cookingTask.status === 'new') {\n progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)');\n } else if (cookingTask.status === 'pending') {\n progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)');\n } else if (cookingTask.status === 'done') {\n progressBar.css('background-color', '#5cb85c');\n } else if (cookingTask.status === 'failed') {\n progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)');\n progressBar.css('background-image', 'none');\n }\n var text = cookingTask.progress_message || cookingTask.status;\n var firstLine, rest;\n [firstLine, ...rest] = text.split('\\n', 2);\n progressBar.text(firstLine);\n if (rest.length) {\n progressBar.prop('title', rest[0]);\n }\n if (cookingTask.status === 'new' || cookingTask.status === 'pending') {\n progressBar.addClass('progress-bar-animated');\n } else {\n progressBar.removeClass('progress-bar-striped');\n }\n}\n\nlet recookTask;\n\n// called when the user wants to download a cooked archive\nexport async function fetchCookedObject(fetchUrl) {\n recookTask = null;\n // first, check if the link is still available from the vault\n const response = await fetch(fetchUrl);\n\n // link is still alive, proceed to download\n if (response.ok) {\n $('#vault-download-iframe').attr('src', fetchUrl);\n // link is dead\n } else {\n // get the associated cooking task\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (vaultCookingTasks) {\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].fetch_url === fetchUrl) {\n recookTask = vaultCookingTasks[i];\n break;\n }\n }\n }\n // display a modal asking the user if he wants to recook the archive\n $('#vault-recook-object-modal').modal('show');\n }\n}\n\n// called when the user wants to recook an archive\n// for which the download link is no longer available\nexport async function recookObject() {\n if (recookTask) {\n // previous cooking task already present in local storage, request\n // new cooking and update task status\n\n // stop cooking tasks status polling\n clearTimeout(checkVaultId);\n // build cook request url\n let cookingUrl;\n if (recookTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(recookTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(recookTask.swhid);\n }\n if (recookTask.email) {\n cookingUrl += '?email=' + recookTask.email;\n }\n try {\n // request archive cooking\n const response = await csrfPost(cookingUrl);\n handleFetchError(response);\n\n // update task status\n recookTask.status = 'new';\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].swhid === recookTask.swhid) {\n vaultCookingTasks[i] = recookTask;\n break;\n }\n }\n // save updated tasks to local storage\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n swh.vault.displayCookingTaskCreatedAlert();\n } catch (_) {\n swh.vault.displayCookingTaskCreationFailedAlert();\n }\n } else {\n // previous cooking task not present in local storage, request cooking\n const objectType = $('#vault-recook-object-modal').attr('swh-object-type');\n const objectSwhid = $('#vault-recook-object-modal').attr('swh-object-swhid');\n if (objectType === 'directory') {\n swh.vault.cookDirectoryArchive(null, objectSwhid);\n } else if (objectType === 'revision') {\n swh.vault.cookRevisionArchive(null, objectSwhid);\n }\n }\n // hide recook archive modal\n $('#vault-recook-object-modal').modal('hide');\n // restart cooking tasks status polling\n await checkVaultCookingTasks();\n}\n\nasync function checkVaultCookingTasks() {\n const vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks || vaultCookingTasks.length === 0) {\n $('.swh-vault-table tbody tr').remove();\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n return;\n }\n const cookingTaskRequests = [];\n const tasks = {};\n const currentObjectIds = [];\n\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n const cookingTask = vaultCookingTasks[i];\n\n if (typeof cookingTask.object_type !== 'undefined') {\n // Legacy cooking task, upgrade it to the new schema\n if (cookingTask.object_type === 'directory') {\n cookingTask.swhid = `swh:1:dir:${cookingTask.object_id}`;\n cookingTask.bundle_type = 'flat';\n cookingTask.fetch_url = Urls.api_1_vault_download_flat(cookingTask.swhid);\n } else if (cookingTask.object_type === 'revision') {\n cookingTask.swhid = `swh:1:rev:${cookingTask.object_id}`;\n cookingTask.bundle_type = 'git_bare';\n cookingTask.fetch_url = Urls.api_1_vault_download_git_bare(cookingTask.swhid);\n } else {\n // Log to the console + Sentry\n console.error(`Unexpected cookingTask.object_type: ${cookingTask.object_type}`);\n // Ignore it for now and hope a future version will fix it\n continue;\n }\n delete cookingTask.object_type;\n delete cookingTask.object_id;\n }\n\n currentObjectIds.push(cookingTask.swhid);\n tasks[cookingTask.swhid] = cookingTask;\n let cookingUrl;\n if (cookingTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(cookingTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(cookingTask.swhid);\n }\n if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') {\n cookingTaskRequests.push(fetch(cookingUrl));\n }\n }\n $('.swh-vault-table tbody tr').each((i, row) => {\n const swhid = $(row).find('.vault-object-info').data('swhid');\n if ($.inArray(swhid, currentObjectIds) === -1) {\n $(row).remove();\n }\n });\n try {\n const responses = await Promise.all(cookingTaskRequests);\n handleFetchErrors(responses);\n const cookingTasks = await Promise.all(responses.map(r => r.json()));\n\n const table = $('#vault-cooking-tasks tbody');\n for (let i = 0; i < cookingTasks.length; ++i) {\n const cookingTask = tasks[cookingTasks[i].swhid];\n cookingTask.status = cookingTasks[i].status;\n cookingTask.fetch_url = cookingTasks[i].fetch_url;\n cookingTask.progress_message = cookingTasks[i].progress_message;\n }\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n const cookingTask = vaultCookingTasks[i];\n const rowTask = $(`#vault-task-${CSS.escape(cookingTask.swhid)}`);\n\n if (!rowTask.length) {\n\n let browseUrl = cookingTask.browse_url;\n if (!browseUrl) {\n browseUrl = Urls.browse_swhid(cookingTask.swhid);\n }\n\n const progressBar = $.parseHTML(progress)[0];\n const progressBarContent = $(progressBar).find('.progress-bar');\n updateProgressBar(progressBarContent, cookingTask);\n table.prepend(vaultTableRowTemplate({\n browseUrl: browseUrl,\n cookingTask: cookingTask,\n progressBar: progressBar,\n Urls: Urls,\n swh: swh\n }));\n } else {\n const progressBar = rowTask.find('.progress-bar');\n updateProgressBar(progressBar, cookingTask);\n const downloadLink = rowTask.find('.vault-dl-link');\n if (cookingTask.status === 'done') {\n downloadLink[0].innerHTML =\n '<button class=\"btn btn-secondary btn-sm\" ' +\n `onclick=\"swh.vault.fetchCookedObject('${cookingTask.fetch_url}')\">` +\n '<i class=\"mdi mdi-download mdi-fw\" aria-hidden=\"true\"></i>Download</button>';\n } else {\n downloadLink[0].innerHTML = '';\n }\n }\n }\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n\n } catch (error) {\n console.log('Error when fetching vault cooking tasks:', error);\n }\n}\n\nexport function removeCookingTaskInfo(tasksToRemove) {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n return;\n }\n vaultCookingTasks = $.grep(vaultCookingTasks, task => {\n return $.inArray(task.swhid, tasksToRemove) === -1;\n });\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n}\n\nexport function initUi() {\n\n $('#vault-tasks-toggle-selection').change(event => {\n $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked);\n });\n\n $('#vault-remove-tasks').click(() => {\n clearTimeout(checkVaultId);\n const tasksToRemove = [];\n $('.swh-vault-table tbody tr').each((i, row) => {\n const taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked');\n if (taskSelected) {\n const swhid = $(row).find('.vault-object-info').data('swhid');\n tasksToRemove.push(swhid);\n $(row).remove();\n }\n });\n removeCookingTaskInfo(tasksToRemove);\n $('#vault-tasks-toggle-selection').prop('checked', false);\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n });\n\n checkVaultCookingTasks();\n\n window.onfocus = () => {\n clearTimeout(checkVaultId);\n checkVaultCookingTasks();\n };\n\n}\n","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n 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;","/**\n * Copyright (C) 2018-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport * as EmailValidator from 'email-validator';\n\nimport {csrfPost, handleFetchError, htmlAlert} from 'utils/functions';\n\nconst alertStyle = {\n 'position': 'fixed',\n 'left': '1rem',\n 'bottom': '1rem',\n 'z-index': '100000'\n};\n\nexport function displayCookingTaskCreatedAlert() {\n const cookingTaskCreatedAlert =\n $(htmlAlert('success',\n 'Archive cooking request successfully submitted.<br/>' +\n `Go to the <a class=\"alert-link\" href=\"${Urls.vault()}\">Downloads</a> page ` +\n 'to get the download link once it is ready.',\n true));\n cookingTaskCreatedAlert.css(alertStyle);\n $('body').append(cookingTaskCreatedAlert);\n}\n\nexport function displayCookingTaskCreationFailedAlert() {\n const cookingTaskFailedAlert =\n $(htmlAlert('danger',\n 'Archive cooking request submission failed.',\n true));\n cookingTaskFailedAlert.css(alertStyle);\n $('body').append(cookingTaskFailedAlert);\n}\n\nexport async function vaultRequest(objectType, swhid) {\n let vaultUrl;\n if (objectType === 'directory') {\n vaultUrl = Urls.api_1_vault_cook_flat(swhid);\n } else {\n vaultUrl = Urls.api_1_vault_cook_git_bare(swhid);\n }\n // check if object has already been cooked\n const response = await fetch(vaultUrl);\n const data = await response.json();\n\n // object needs to be cooked\n const statusForCooking = ['failed', 'pending', 'new'];\n if (data.exception === 'NotFoundExc' || statusForCooking.includes(data.status)) {\n // if last cooking has failed, remove previous task info from localStorage\n // in order to force the recooking of the object\n swh.vault.removeCookingTaskInfo([swhid]);\n const vaultModalId = `#vault-cook-${objectType}-modal`;\n $(vaultModalId).modal('show');\n } else if (data.status === 'done') {\n // object has been cooked but is no longer in the vault cache,\n // it will be asked to cook it again\n const vaultModalId = `#vault-download-${objectType}-modal`;\n $(vaultModalId).modal('show');\n } else {\n const cookingServiceDownAlert =\n $(htmlAlert('danger',\n 'Something unexpected happened when requesting the archive cooking service.<br/>' +\n 'Please try again later.',\n true));\n cookingServiceDownAlert.css(alertStyle);\n $('body').append(cookingServiceDownAlert);\n }\n}\n\nasync function addVaultCookingTask(objectType, cookingTask) {\n\n const swhidsContext = swh.webapp.getSwhIdsContext();\n cookingTask.origin = swhidsContext[objectType].context.origin;\n cookingTask.path = swhidsContext[objectType].context.path;\n cookingTask.browse_url = swhidsContext[objectType].swhid_with_context_url;\n if (!cookingTask.browse_url) {\n cookingTask.browse_url = swhidsContext[objectType].swhid_url;\n }\n\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n vaultCookingTasks = [];\n }\n if (vaultCookingTasks.find(val => {\n return val.bundle_type === cookingTask.bundle_type &&\n val.swhid === cookingTask.swhid;\n }) === undefined) {\n let cookingUrl;\n if (cookingTask.bundle_type === 'flat') {\n cookingUrl = Urls.api_1_vault_cook_flat(cookingTask.swhid);\n } else {\n cookingUrl = Urls.api_1_vault_cook_git_bare(cookingTask.swhid);\n }\n if (cookingTask.email) {\n cookingUrl += '?email=' + encodeURIComponent(cookingTask.email);\n }\n\n try {\n const response = await csrfPost(cookingUrl);\n handleFetchError(response);\n vaultCookingTasks.push(cookingTask);\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n displayCookingTaskCreatedAlert();\n } catch (_) {\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n displayCookingTaskCreationFailedAlert();\n }\n }\n}\n\nexport function cookDirectoryArchive(event, swhid) {\n if (event) {\n event.preventDefault();\n }\n const email = $('#swh-vault-directory-email').val().trim();\n if (!email || EmailValidator.validate(email)) {\n const cookingTask = {\n 'bundle_type': 'flat',\n 'swhid': swhid,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask('directory', cookingTask);\n\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport async function fetchDirectoryArchive(directorySwhid) {\n $('#vault-download-directory-modal').modal('hide');\n $('#vault-recook-object-modal').attr('swh-object-type', 'directory');\n $('#vault-recook-object-modal').attr('swh-object-swhid', directorySwhid);\n const vaultUrl = Urls.api_1_vault_cook_flat(directorySwhid);\n const response = await fetch(vaultUrl);\n const data = await response.json();\n swh.vault.fetchCookedObject(data.fetch_url);\n}\n\nexport function cookRevisionArchive(event, revisionId) {\n if (event) {\n event.preventDefault();\n }\n const email = $('#swh-vault-revision-email').val().trim();\n if (!email || EmailValidator.validate(email)) {\n const cookingTask = {\n 'bundle_type': 'git_bare',\n 'swhid': revisionId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask('revision', cookingTask);\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport async function fetchRevisionArchive(revisionSwhid) {\n $('#vault-download-revision-modal').modal('hide');\n $('#vault-recook-object-modal').attr('swh-object-type', 'revision');\n $('#vault-recook-object-modal').attr('swh-object-swhid', revisionSwhid);\n const vaultUrl = Urls.api_1_vault_cook_git_bare(revisionSwhid);\n const response = await fetch(vaultUrl);\n const data = await response.json();\n swh.vault.fetchCookedObject(data.fetch_url);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","regenerator","regeneratorAsyncIterator","r","e","t","o","n","w","Promise","__esModule","Object","unshift","length","pop","value","done","OverloadYield","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","_regeneratorRuntime","m","getPrototypeOf","__proto__","constructor","displayName","name","a","stop","v","abrupt","delegateYield","resultName","d","finish","f","_t","p","prev","next","sent","call","this","wrap","reverse","isGeneratorFunction","mark","awrap","AsyncIterator","async","u","keys","values","handleFetchError","response","ok","handleFetchErrors","responses","i","csrfPost","url","headers","body","Cookies","get","fetch","credentials","method","htmlAlert","type","message","closable","closeButton","extraClasses","asyncGeneratorStep","c","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","regeneratorDefine","prototype","Symbol","asyncIterator","_regenerator","iterator","toStringTag","Generator","create","y","G","bind","l","TypeError","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","assign","target","source","key","api","init","converter","defaultAttributes","set","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","slice","join","found","read","remove","withAttributes","withConverter","freeze","path","k","_typeof","isNaN","tester","email","test","some","part","anonymous","locals","escapeFn","include","rethrow","markup","undefined","String","_MATCH_HTML","encode_char","_ENCODE_HTML_RULES","__output","__append","s","cookingTask","swhid","match","replaceAll","origin","Urls","browse_origin","swh","webapp","getSwhObjectIcon","bundle_type","browseUrl","progressBar","outerHTML","status","fetch_url","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","checkVaultId","recookTask","pollingInterval","updateProgressBar","css","firstLine","rest","_text$split","progress_message","text","prop","addClass","removeClass","fetchCookedObject","_x","_fetchCookedObject","_callee","fetchUrl","vaultCookingTasks","_context","$","attr","JSON","parse","localStorage","getItem","modal","recookObject","_recookObject","_callee2","cookingUrl","objectType","objectSwhid","_context2","clearTimeout","api_1_vault_cook_flat","api_1_vault_cook_git_bare","setItem","stringify","vault","displayCookingTaskCreatedAlert","displayCookingTaskCreationFailedAlert","cookDirectoryArchive","cookRevisionArchive","checkVaultCookingTasks","_checkVaultCookingTasks","_callee3","cookingTaskRequests","tasks","currentObjectIds","cookingTasks","table","_i","_cookingTask","_i2","_cookingTask2","rowTask","downloadLink","_t2","_context3","setTimeout","object_type","object_id","api_1_vault_download_flat","api_1_vault_download_git_bare","console","error","push","each","row","find","data","inArray","all","map","json","CSS","innerHTML","browse_url","browse_swhid","parseHTML","prepend","vaultTableRowTemplate","log","removeCookingTaskInfo","tasksToRemove","grep","task","initUi","change","event","currentTarget","checked","click","window","onfocus","_regeneratorDefine","defineProperty","enumerable","configurable","writable","_invoke","alertStyle","cookingTaskCreatedAlert","append","cookingTaskFailedAlert","vaultRequest","_x2","_vaultRequest","vaultUrl","statusForCooking","cookingServiceDownAlert","exception","includes","addVaultCookingTask","_x3","_x4","_addVaultCookingTask","swhidsContext","getSwhIdsContext","context","swhid_with_context_url","swhid_url","val","preventDefault","trim","EmailValidator","fetchDirectoryArchive","_x5","_fetchDirectoryArchive","directorySwhid","revisionId","fetchRevisionArchive","_x6","_fetchRevisionArchive","_callee4","revisionSwhid","_context4","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj","hasOwnProperty"],"sourceRoot":""}
|