swh.web 0.16.2__py3-none-any.whl → 0.16.3__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.
Files changed (55) hide show
  1. swh/web/browse/templates/browse-iframe.html +1 -0
  2. swh/web/inbound_email/handle_message.py +1 -1
  3. swh/web/inbound_email/tests/test_utils.py +2 -2
  4. swh/web/save_code_now/assets/origin-save-admin.js +5 -2
  5. swh/web/save_code_now/assets/origin-save.js +9 -4
  6. swh/web/static/js/add_forge_now.e25d1ad2ab6c45e60b67.js.map +1 -1
  7. swh/web/static/js/auth.bd2f475f49caa9f84e99.js.map +1 -1
  8. swh/web/static/js/browse.fc5d5fafca71e03d2add.js.map +1 -1
  9. swh/web/static/js/deposit.d47e18177b16ccdbdb84.js.map +1 -1
  10. swh/web/static/js/{highlightjs.dc9b8354c69d942fad33.js → highlightjs.14fc09414685bf90c554.js} +3 -3
  11. swh/web/static/js/highlightjs.14fc09414685bf90c554.js.map +1 -0
  12. swh/web/static/js/mailmap.631c53127ba5511ebda7.js.map +1 -1
  13. swh/web/static/js/mathjax.98ef576f318f1a0b0c4a.js.map +1 -1
  14. swh/web/static/js/{revision.ac9293e1b984b4d4d909.js → revision.61c9277f4a4c63df0f45.js} +3 -3
  15. swh/web/static/js/{revision.ac9293e1b984b4d4d909.js.map → revision.61c9277f4a4c63df0f45.js.map} +1 -1
  16. swh/web/static/js/save_code_now.4211098f5dd740dc49b4.js +3 -0
  17. swh/web/static/js/save_code_now.4211098f5dd740dc49b4.js.map +1 -0
  18. swh/web/static/js/vault.4eaa8dbf376ebe9cdc7f.js +3 -0
  19. swh/web/static/js/vault.4eaa8dbf376ebe9cdc7f.js.map +1 -0
  20. swh/web/static/js/{vendors.2eeadf2e0831a7a82b6d.js → vendors.9fc5b97b8e4691b7272e.js} +3 -3
  21. swh/web/static/js/vendors.9fc5b97b8e4691b7272e.js.map +1 -0
  22. swh/web/static/js/{webapp.26efc059a8f5fe204240.js → webapp.c5e37f8f7bfc8bb87ad8.js} +3 -3
  23. swh/web/static/js/{webapp.26efc059a8f5fe204240.js.LICENSE.txt → webapp.c5e37f8f7bfc8bb87ad8.js.LICENSE.txt} +1 -1
  24. swh/web/static/js/webapp.c5e37f8f7bfc8bb87ad8.js.map +1 -0
  25. swh/web/static/jssources/@myriaddreamin/highlighter-typst/dist/esm/contrib/hljs/typst-lite.bundle.js +180 -111
  26. swh/web/static/jssources/assets/src/utils/functions.js +1 -1
  27. swh/web/static/jssources/core-js/LICENSE.txt +1 -1
  28. swh/web/static/jssources/core-js/internals/shared-store.js +3 -3
  29. swh/web/static/jssources/core-js/modules/es.object.group-by.js +2 -1
  30. swh/web/static/jssources/dompurify/dist/purify.es.mjs +35 -12
  31. swh/web/static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js +1 -1
  32. swh/web/static/jssources/jslicenses.json +1 -1
  33. swh/web/static/jssources/swh/web/save_code_now/assets/origin-save-admin.js +5 -2
  34. swh/web/static/jssources/swh/web/save_code_now/assets/origin-save.js +9 -4
  35. swh/web/static/webpack-stats.json +85 -85
  36. swh/web/tests/views.py +9 -8
  37. swh/web/utils/archive.py +1 -1
  38. {swh_web-0.16.2.dist-info → swh_web-0.16.3.dist-info}/METADATA +1 -1
  39. {swh_web-0.16.2.dist-info → swh_web-0.16.3.dist-info}/RECORD +48 -48
  40. swh/web/static/js/highlightjs.dc9b8354c69d942fad33.js.map +0 -1
  41. swh/web/static/js/save_code_now.369ff7f28aaf74e7728e.js +0 -3
  42. swh/web/static/js/save_code_now.369ff7f28aaf74e7728e.js.map +0 -1
  43. swh/web/static/js/vault.1229427aed95c78d4ee2.js +0 -3
  44. swh/web/static/js/vault.1229427aed95c78d4ee2.js.map +0 -1
  45. swh/web/static/js/vendors.2eeadf2e0831a7a82b6d.js.map +0 -1
  46. swh/web/static/js/webapp.26efc059a8f5fe204240.js.map +0 -1
  47. /swh/web/static/js/{highlightjs.dc9b8354c69d942fad33.js.LICENSE.txt → highlightjs.14fc09414685bf90c554.js.LICENSE.txt} +0 -0
  48. /swh/web/static/js/{revision.ac9293e1b984b4d4d909.js.LICENSE.txt → revision.61c9277f4a4c63df0f45.js.LICENSE.txt} +0 -0
  49. /swh/web/static/js/{save_code_now.369ff7f28aaf74e7728e.js.LICENSE.txt → save_code_now.4211098f5dd740dc49b4.js.LICENSE.txt} +0 -0
  50. /swh/web/static/js/{vault.1229427aed95c78d4ee2.js.LICENSE.txt → vault.4eaa8dbf376ebe9cdc7f.js.LICENSE.txt} +0 -0
  51. /swh/web/static/js/{vendors.2eeadf2e0831a7a82b6d.js.LICENSE.txt → vendors.9fc5b97b8e4691b7272e.js.LICENSE.txt} +0 -0
  52. {swh_web-0.16.2.dist-info → swh_web-0.16.3.dist-info}/WHEEL +0 -0
  53. {swh_web-0.16.2.dist-info → swh_web-0.16.3.dist-info}/licenses/AUTHORS +0 -0
  54. {swh_web-0.16.2.dist-info → swh_web-0.16.3.dist-info}/licenses/LICENSE +0 -0
  55. {swh_web-0.16.2.dist-info → swh_web-0.16.3.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/auth.bd2f475f49caa9f84e99.js","mappings":"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","sources":["webpack://swh/webpack/universalModuleDefinition","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://swh/./assets/src/utils/functions.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://swh/./assets/src/utils/constants.js","webpack://swh/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://swh/./node_modules/@babel/runtime/helpers/typeof.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.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","webpack://swh/./swh/web/auth/assets/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"auth\"] = factory();\n})(self, function() {\nreturn ","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset, origin) {\n let url = `${__STATIC__}${asset}`;\n if (url.startsWith('/') && origin) {\n url = origin + url;\n }\n return url;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length));\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function textToHTML(text) {\n const textArea = document.createElement('textarea');\n textArea.innerText = text;\n return textArea.innerHTML;\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function validateUrl(url, allowedProtocols = []) {\n let originUrl = null;\n let validUrl = true;\n\n try {\n originUrl = new URL(url);\n } catch (TypeError) {\n validUrl = false;\n }\n\n if (validUrl && allowedProtocols.length) {\n validUrl = (\n allowedProtocols.find(protocol => protocol === originUrl.protocol) !== undefined\n );\n }\n\n return validUrl ? originUrl : null;\n}\n\nexport async function isArchivedOrigin(originPath, visitType) {\n if (!validateUrl(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n let url = `${Urls.api_1_origin_visit_latest(originPath)}?require_snapshot=true`;\n if (visitType && visitType !== 'any') {\n url += `&visit_type=${visitType}`;\n }\n const response = await fetch(url);\n return response.ok;\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?<owner>[^/]+).github.io\\/(?<repo>[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n\nexport function genLink(sanitizedUrl, type, openInNewTab = false, linkText = '') {\n // Display link. It's up to the caller to sanitize sanitizedUrl first.\n if (type === 'display' && sanitizedUrl) {\n const encodedSanitizedUrl = encodeURI(sanitizedUrl);\n if (!linkText) {\n linkText = encodedSanitizedUrl;\n }\n let attrs = '';\n if (openInNewTab) {\n attrs = 'target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return `<a href=\"${encodedSanitizedUrl}\" ${attrs}>${linkText}</a>`;\n }\n return sanitizedUrl;\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n\nexport const dataTableCommonConfig = {\n serverSide: true,\n processing: true,\n language: {\n processing: `<img src=\"${swhSpinnerSrc}\"></img>`\n },\n fixedHeader: true,\n lengthMenu: [10, 25, 50, 100, 1000],\n scrollCollapse: true,\n searchDelay: 1000\n};\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright (C) 2020-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, csrfPost, removeUrlFragment} from 'utils/functions';\nimport {dataTableCommonConfig} from 'utils/constants';\nimport './auth.css';\n\nlet apiTokensTable;\n\nfunction tokenForm(infoText, buttonText) {\n const form =\n `<form id=\"swh-token-form\" class=\"text-center\">\n <p id=\"swh-token-form-text\">${infoText}</p>\n <input id=\"swh-token-form-submit\" type=\"submit\" value=\"${buttonText}\">\n <div id=\"swh-token-form-message\"></div>\n </form>`;\n return form;\n}\n\nfunction errorMessage(message) {\n return `<p id=\"swh-token-error-message\" class=\"mt-3 swh-token-form-message\">${message}</p>`;\n}\n\nfunction successMessage(message) {\n return `<p id=\"swh-token-success-message\" class=\"mt-3 swh-token-form-message\">${message}</p>`;\n}\n\nfunction disableSubmitButton() {\n $('#swh-token-form-submit').prop('disabled', true);\n}\n\nfunction generateToken() {\n window.location = Urls.oidc_generate_bearer_token();\n}\n\nasync function displayToken(tokenId) {\n const postData = {\n token_id: tokenId\n };\n try {\n const response = await csrfPost(Urls.oidc_get_bearer_token(), {}, JSON.stringify(postData));\n handleFetchError(response);\n const token = await response.text();\n const tokenHtml =\n `<p>Below is your token.</p>\n <pre id=\"swh-bearer-token\" class=\"mt-3\">${token}</pre>`;\n swh.webapp.showModalHtml('Display bearer token', tokenHtml);\n } catch (response) {\n const responseText = await response.text();\n let errorMsg = 'Internal server error.';\n if (response.status === 400) {\n errorMsg = responseText;\n }\n swh.webapp.showModalHtml('Display bearer token', errorMessage(errorMsg));\n }\n}\n\nasync function revokeTokens(tokenIds) {\n const postData = {\n token_ids: tokenIds\n };\n try {\n const response = await csrfPost(Urls.oidc_revoke_bearer_tokens(), {}, JSON.stringify(postData));\n handleFetchError(response);\n disableSubmitButton();\n $('#swh-token-form-message').html(\n successMessage(`Bearer token${tokenIds.length > 1 ? 's' : ''} successfully revoked.`));\n apiTokensTable.draw();\n } catch (_) {\n $('#swh-token-form-message').html(errorMessage('Internal server error.'));\n }\n}\n\nfunction revokeToken(tokenId) {\n revokeTokens([tokenId]);\n}\n\nfunction revokeAllTokens() {\n const tokenIds = [];\n const rowsData = apiTokensTable.rows().data();\n for (let i = 0; i < rowsData.length; ++i) {\n tokenIds.push(rowsData[i].id);\n }\n revokeTokens(tokenIds);\n}\n\nexport function applyTokenAction(action, tokenId) {\n const actionData = {\n display: {\n submitCallback: displayToken\n },\n generate: {\n modalTitle: 'Bearer token generation',\n infoText: 'Click on the button to generate the token. You will be redirected to ' +\n 'Software Heritage Authentication Service and might be asked to enter ' +\n 'your password again.',\n buttonText: 'Generate token',\n submitCallback: generateToken\n },\n revoke: {\n modalTitle: 'Revoke bearer token',\n infoText: 'Click on the button to revoke the token.',\n buttonText: 'Revoke token',\n submitCallback: revokeToken\n },\n revokeAll: {\n modalTitle: 'Revoke all bearer tokens',\n infoText: 'Click on the button to revoke all tokens.',\n buttonText: 'Revoke tokens',\n submitCallback: revokeAllTokens\n }\n };\n\n if (!actionData[action]) {\n return;\n }\n\n if (action !== 'display') {\n const tokenFormHtml = tokenForm(\n actionData[action].infoText, actionData[action].buttonText);\n\n swh.webapp.showModalHtml(actionData[action].modalTitle, tokenFormHtml);\n $(`#swh-token-form`).submit(event => {\n event.preventDefault();\n event.stopPropagation();\n actionData[action].submitCallback(tokenId);\n });\n } else {\n actionData[action].submitCallback(tokenId);\n }\n}\n\nexport function initProfilePage() {\n $(document).ready(() => {\n apiTokensTable = $('#swh-bearer-tokens-table')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#swh-origin-save-request-list-error').text(\n 'An error occurred while retrieving the tokens list');\n console.log(message);\n })\n .DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.oidc_list_bearer_tokens(),\n columns: [\n {\n data: 'creation_date',\n name: 'creation_date',\n render: (data, type, row) => {\n if (type === 'display') {\n const date = new Date(data);\n return date.toLocaleString();\n }\n return data;\n }\n },\n {\n render: (data, type, row) => {\n const html =\n `<button class=\"btn btn-secondary btn-sm\"\n onclick=\"swh.auth.applyTokenAction('display', ${row.id})\">\n Display token\n </button>\n <button class=\"btn btn-secondary btn-sm\"\n onclick=\"swh.auth.applyTokenAction('revoke', ${row.id})\">\n Revoke token\n </button>`;\n return html;\n }\n }\n ],\n ordering: false,\n searching: false\n });\n $('#swh-oidc-profile-tokens-tab').on('shown.bs.tab', () => {\n apiTokensTable.draw();\n window.location.hash = '#tokens';\n });\n $('#swh-oidc-profile-account-tab').on('shown.bs.tab', () => {\n removeUrlFragment();\n });\n if (window.location.hash === '#tokens') {\n $('.nav-tabs a[href=\"#swh-oidc-profile-tokens\"]').tab('show');\n }\n });\n}\n"],"names":["root","factory","exports","module","define","amd","self","regenerator","regeneratorAsyncIterator","r","e","t","o","n","w","Promise","__esModule","Object","unshift","length","pop","value","done","OverloadYield","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","_regeneratorRuntime","m","getPrototypeOf","__proto__","constructor","displayName","name","a","stop","v","abrupt","delegateYield","resultName","d","finish","f","_t","p","prev","next","sent","call","this","wrap","reverse","isGeneratorFunction","mark","awrap","AsyncIterator","async","u","keys","values","handleFetchError","response","ok","staticAsset","asset","origin","url","__STATIC__","startsWith","csrfPost","headers","body","Cookies","get","fetch","credentials","method","removeUrlFragment","history","replaceState","document","title","window","location","pathname","search","asyncGeneratorStep","c","i","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","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","dataTableCommonConfig","serverSide","processing","language","fixedHeader","lengthMenu","scrollCollapse","searchDelay","k","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_extends","hasOwnProperty","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","obj","prop","apiTokensTable","errorMessage","message","successMessage","disableSubmitButton","$","generateToken","Urls","oidc_generate_bearer_token","displayToken","_x","_displayToken","_callee","tokenId","postData","token","tokenHtml","responseText","errorMsg","_context","token_id","oidc_get_bearer_token","JSON","stringify","text","swh","webapp","showModalHtml","status","revokeTokens","_x2","_revokeTokens","_callee2","tokenIds","_context2","token_ids","oidc_revoke_bearer_tokens","html","draw","revokeToken","revokeAllTokens","rowsData","rows","data","push","id","applyTokenAction","action","infoText","buttonText","actionData","display","submitCallback","generate","modalTitle","revoke","revokeAll","tokenFormHtml","submit","event","preventDefault","stopPropagation","initProfilePage","ready","on","settings","techNote","console","log","DataTable","ajax","oidc_list_bearer_tokens","columns","render","type","row","toLocaleString","ordering","searching","hash","tab"],"sourceRoot":""}
1
+ {"version":3,"file":"js/auth.bd2f475f49caa9f84e99.js","mappings":"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","sources":["webpack://swh/webpack/universalModuleDefinition","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://swh/./assets/src/utils/functions.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://swh/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://swh/./assets/src/utils/constants.js","webpack://swh/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://swh/./node_modules/@babel/runtime/helpers/typeof.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.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","webpack://swh/./swh/web/auth/assets/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"auth\"] = factory();\n})(self, function() {\nreturn ","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset, origin) {\n let url = `${__STATIC__}${asset}`;\n if (url.startsWith('/') && origin) {\n url = origin + url;\n }\n return url;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length)) || url.pathname === '/';\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function textToHTML(text) {\n const textArea = document.createElement('textarea');\n textArea.innerText = text;\n return textArea.innerHTML;\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function validateUrl(url, allowedProtocols = []) {\n let originUrl = null;\n let validUrl = true;\n\n try {\n originUrl = new URL(url);\n } catch (TypeError) {\n validUrl = false;\n }\n\n if (validUrl && allowedProtocols.length) {\n validUrl = (\n allowedProtocols.find(protocol => protocol === originUrl.protocol) !== undefined\n );\n }\n\n return validUrl ? originUrl : null;\n}\n\nexport async function isArchivedOrigin(originPath, visitType) {\n if (!validateUrl(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n let url = `${Urls.api_1_origin_visit_latest(originPath)}?require_snapshot=true`;\n if (visitType && visitType !== 'any') {\n url += `&visit_type=${visitType}`;\n }\n const response = await fetch(url);\n return response.ok;\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?<owner>[^/]+).github.io\\/(?<repo>[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n\nexport function genLink(sanitizedUrl, type, openInNewTab = false, linkText = '') {\n // Display link. It's up to the caller to sanitize sanitizedUrl first.\n if (type === 'display' && sanitizedUrl) {\n const encodedSanitizedUrl = encodeURI(sanitizedUrl);\n if (!linkText) {\n linkText = encodedSanitizedUrl;\n }\n let attrs = '';\n if (openInNewTab) {\n attrs = 'target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return `<a href=\"${encodedSanitizedUrl}\" ${attrs}>${linkText}</a>`;\n }\n return sanitizedUrl;\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n\nexport const dataTableCommonConfig = {\n serverSide: true,\n processing: true,\n language: {\n processing: `<img src=\"${swhSpinnerSrc}\"></img>`\n },\n fixedHeader: true,\n lengthMenu: [10, 25, 50, 100, 1000],\n scrollCollapse: true,\n searchDelay: 1000\n};\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright (C) 2020-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, csrfPost, removeUrlFragment} from 'utils/functions';\nimport {dataTableCommonConfig} from 'utils/constants';\nimport './auth.css';\n\nlet apiTokensTable;\n\nfunction tokenForm(infoText, buttonText) {\n const form =\n `<form id=\"swh-token-form\" class=\"text-center\">\n <p id=\"swh-token-form-text\">${infoText}</p>\n <input id=\"swh-token-form-submit\" type=\"submit\" value=\"${buttonText}\">\n <div id=\"swh-token-form-message\"></div>\n </form>`;\n return form;\n}\n\nfunction errorMessage(message) {\n return `<p id=\"swh-token-error-message\" class=\"mt-3 swh-token-form-message\">${message}</p>`;\n}\n\nfunction successMessage(message) {\n return `<p id=\"swh-token-success-message\" class=\"mt-3 swh-token-form-message\">${message}</p>`;\n}\n\nfunction disableSubmitButton() {\n $('#swh-token-form-submit').prop('disabled', true);\n}\n\nfunction generateToken() {\n window.location = Urls.oidc_generate_bearer_token();\n}\n\nasync function displayToken(tokenId) {\n const postData = {\n token_id: tokenId\n };\n try {\n const response = await csrfPost(Urls.oidc_get_bearer_token(), {}, JSON.stringify(postData));\n handleFetchError(response);\n const token = await response.text();\n const tokenHtml =\n `<p>Below is your token.</p>\n <pre id=\"swh-bearer-token\" class=\"mt-3\">${token}</pre>`;\n swh.webapp.showModalHtml('Display bearer token', tokenHtml);\n } catch (response) {\n const responseText = await response.text();\n let errorMsg = 'Internal server error.';\n if (response.status === 400) {\n errorMsg = responseText;\n }\n swh.webapp.showModalHtml('Display bearer token', errorMessage(errorMsg));\n }\n}\n\nasync function revokeTokens(tokenIds) {\n const postData = {\n token_ids: tokenIds\n };\n try {\n const response = await csrfPost(Urls.oidc_revoke_bearer_tokens(), {}, JSON.stringify(postData));\n handleFetchError(response);\n disableSubmitButton();\n $('#swh-token-form-message').html(\n successMessage(`Bearer token${tokenIds.length > 1 ? 's' : ''} successfully revoked.`));\n apiTokensTable.draw();\n } catch (_) {\n $('#swh-token-form-message').html(errorMessage('Internal server error.'));\n }\n}\n\nfunction revokeToken(tokenId) {\n revokeTokens([tokenId]);\n}\n\nfunction revokeAllTokens() {\n const tokenIds = [];\n const rowsData = apiTokensTable.rows().data();\n for (let i = 0; i < rowsData.length; ++i) {\n tokenIds.push(rowsData[i].id);\n }\n revokeTokens(tokenIds);\n}\n\nexport function applyTokenAction(action, tokenId) {\n const actionData = {\n display: {\n submitCallback: displayToken\n },\n generate: {\n modalTitle: 'Bearer token generation',\n infoText: 'Click on the button to generate the token. You will be redirected to ' +\n 'Software Heritage Authentication Service and might be asked to enter ' +\n 'your password again.',\n buttonText: 'Generate token',\n submitCallback: generateToken\n },\n revoke: {\n modalTitle: 'Revoke bearer token',\n infoText: 'Click on the button to revoke the token.',\n buttonText: 'Revoke token',\n submitCallback: revokeToken\n },\n revokeAll: {\n modalTitle: 'Revoke all bearer tokens',\n infoText: 'Click on the button to revoke all tokens.',\n buttonText: 'Revoke tokens',\n submitCallback: revokeAllTokens\n }\n };\n\n if (!actionData[action]) {\n return;\n }\n\n if (action !== 'display') {\n const tokenFormHtml = tokenForm(\n actionData[action].infoText, actionData[action].buttonText);\n\n swh.webapp.showModalHtml(actionData[action].modalTitle, tokenFormHtml);\n $(`#swh-token-form`).submit(event => {\n event.preventDefault();\n event.stopPropagation();\n actionData[action].submitCallback(tokenId);\n });\n } else {\n actionData[action].submitCallback(tokenId);\n }\n}\n\nexport function initProfilePage() {\n $(document).ready(() => {\n apiTokensTable = $('#swh-bearer-tokens-table')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#swh-origin-save-request-list-error').text(\n 'An error occurred while retrieving the tokens list');\n console.log(message);\n })\n .DataTable({\n ...dataTableCommonConfig,\n ajax: Urls.oidc_list_bearer_tokens(),\n columns: [\n {\n data: 'creation_date',\n name: 'creation_date',\n render: (data, type, row) => {\n if (type === 'display') {\n const date = new Date(data);\n return date.toLocaleString();\n }\n return data;\n }\n },\n {\n render: (data, type, row) => {\n const html =\n `<button class=\"btn btn-secondary btn-sm\"\n onclick=\"swh.auth.applyTokenAction('display', ${row.id})\">\n Display token\n </button>\n <button class=\"btn btn-secondary btn-sm\"\n onclick=\"swh.auth.applyTokenAction('revoke', ${row.id})\">\n Revoke token\n </button>`;\n return html;\n }\n }\n ],\n ordering: false,\n searching: false\n });\n $('#swh-oidc-profile-tokens-tab').on('shown.bs.tab', () => {\n apiTokensTable.draw();\n window.location.hash = '#tokens';\n });\n $('#swh-oidc-profile-account-tab').on('shown.bs.tab', () => {\n removeUrlFragment();\n });\n if (window.location.hash === '#tokens') {\n $('.nav-tabs a[href=\"#swh-oidc-profile-tokens\"]').tab('show');\n }\n });\n}\n"],"names":["root","factory","exports","module","define","amd","self","regenerator","regeneratorAsyncIterator","r","e","t","o","n","w","Promise","__esModule","Object","unshift","length","pop","value","done","OverloadYield","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","_regeneratorRuntime","m","getPrototypeOf","__proto__","constructor","displayName","name","a","stop","v","abrupt","delegateYield","resultName","d","finish","f","_t","p","prev","next","sent","call","this","wrap","reverse","isGeneratorFunction","mark","awrap","AsyncIterator","async","u","keys","values","handleFetchError","response","ok","staticAsset","asset","origin","url","__STATIC__","startsWith","csrfPost","headers","body","Cookies","get","fetch","credentials","method","removeUrlFragment","history","replaceState","document","title","window","location","pathname","search","asyncGeneratorStep","c","i","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","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","dataTableCommonConfig","serverSide","processing","language","fixedHeader","lengthMenu","scrollCollapse","searchDelay","k","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_extends","hasOwnProperty","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","obj","prop","apiTokensTable","errorMessage","message","successMessage","disableSubmitButton","$","generateToken","Urls","oidc_generate_bearer_token","displayToken","_x","_displayToken","_callee","tokenId","postData","token","tokenHtml","responseText","errorMsg","_context","token_id","oidc_get_bearer_token","JSON","stringify","text","swh","webapp","showModalHtml","status","revokeTokens","_x2","_revokeTokens","_callee2","tokenIds","_context2","token_ids","oidc_revoke_bearer_tokens","html","draw","revokeToken","revokeAllTokens","rowsData","rows","data","push","id","applyTokenAction","action","infoText","buttonText","actionData","display","submitCallback","generate","modalTitle","revoke","revokeAll","tokenFormHtml","submit","event","preventDefault","stopPropagation","initProfilePage","ready","on","settings","techNote","console","log","DataTable","ajax","oidc_list_bearer_tokens","columns","render","type","row","toLocaleString","ordering","searching","hash","tab"],"sourceRoot":""}