Page MenuHomeSoftware Heritage

admin.e1bdd6f126d315dc57e6.js.map
No OneTemporary

admin.e1bdd6f126d315dc57e6.js.map

{
"version": 3,
"file": "js/admin.e1bdd6f126d315dc57e6.js",
"mappings": "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",
"sources": [
"webpack://swh/webpack/universalModuleDefinition",
"webpack://swh/./node_modules/@babel/runtime/regenerator/index.js",
"webpack://swh/./assets/src/bundles/admin/deposit.js",
"webpack://swh/./assets/src/bundles/admin/mailmap.js",
"webpack://swh/./assets/src/bundles/admin/origin-save.js",
"webpack://swh/./assets/src/utils/constants.js",
"webpack://swh/./assets/src/utils/functions.js",
"webpack://swh/./assets/src/bundles/admin/mailmap-form.ejs",
"webpack://swh/./node_modules/regenerator-runtime/runtime.js",
"webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js",
"webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs",
"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\"][\"admin\"] = factory();\n})(self, function() {\nreturn ",
"module.exports = require(\"regenerator-runtime\");\n",
"/**\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 {getHumanReadableDate} from 'utils/functions';\n\nfunction genSwhLink(data, type) {\n if (type === 'display' && data && data.startsWith('swh')) {\n const browseUrl = Urls.browse_swhid(data);\n const formattedSWHID = data.replace(/;/g, ';<br/>');\n return `<a href=\"${browseUrl}\">${formattedSWHID}</a>`;\n }\n return data;\n}\n\nfunction genLink(data, type) {\n if (type === 'display' && data) {\n const sData = encodeURI(data);\n return `<a href=\"${sData}\">${sData}</a>`;\n }\n return data;\n}\n\nexport function initDepositAdmin(username, isStaff) {\n let depositsTable;\n $(document).ready(() => {\n $.fn.dataTable.ext.errMode = 'none';\n depositsTable = $('#swh-admin-deposit-list')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#swh-admin-deposit-list-error').text(message);\n })\n .DataTable({\n serverSide: true,\n processing: true,\n // let's define the order of table options display\n // f: (f)ilter\n // l: (l)ength changing\n // r: p(r)ocessing\n // t: (t)able\n // i: (i)nfo\n // p: (p)agination\n // see https://datatables.net/examples/basic_init/dom.html\n dom: '<<\"d-flex justify-content-between align-items-center\"f' +\n '<\"#list-exclude\">l>rt<\"bottom\"ip>>',\n // div#list-exclude is a custom filter added next to dataTable\n // initialization below through js dom manipulation, see\n // https://datatables.net/examples/advanced_init/dom_toolbar.html\n ajax: {\n url: Urls.admin_deposit_list(),\n data: d => {\n d.excludePattern = $('#swh-admin-deposit-list-exclude-filter').val();\n if (!isStaff) {\n d.username = username;\n }\n }\n },\n columns: [\n {\n data: 'id',\n name: 'id'\n },\n {\n data: 'type',\n name: 'type'\n },\n {\n data: 'uri',\n name: 'uri',\n render: (data, type, row) => {\n return genLink(data, type);\n }\n },\n {\n data: 'reception_date',\n name: 'reception_date',\n render: getHumanReadableDate\n },\n {\n data: 'status',\n name: 'status'\n },\n {\n data: 'raw_metadata',\n name: 'raw_metadata',\n render: (data, type, row) => {\n if (type === 'display') {\n if (row.raw_metadata) {\n return `<button class=\"btn btn-default metadata\">metadata</button>`;\n }\n }\n return data;\n }\n },\n {\n data: 'status_detail',\n name: 'status_detail',\n render: (data, type, row) => {\n if (type === 'display' && data) {\n let text = data;\n if (typeof data === 'object') {\n text = JSON.stringify(data, null, 4);\n }\n return `<div style=\"width: 200px; white-space: pre; overflow-x: auto;\">${text}</div>`;\n }\n return data;\n },\n orderable: false,\n visible: false\n },\n {\n data: 'swhid',\n name: 'swhid',\n render: (data, type, row) => {\n return genSwhLink(data, type);\n },\n orderable: false,\n visible: false\n },\n {\n data: 'swhid_context',\n name: 'swhid_context',\n render: (data, type, row) => {\n return genSwhLink(data, type);\n },\n orderable: false,\n visible: false\n }\n ],\n scrollX: true,\n scrollY: '50vh',\n scrollCollapse: true,\n order: [[0, 'desc']]\n });\n\n // Some more customization is needed on the table\n $('div#list-exclude').html(`<div id=\"swh-admin-deposit-list-exclude-wrapper\">\n <div id=\"swh-admin-deposit-list-exclude-div-wrapper\" class=\"dataTables_filter\">\n <label>\n Exclude:<input id=\"swh-admin-deposit-list-exclude-filter\"\n type=\"search\"\n value=\"check-deposit\"\n class=\"form-control form-control-sm\"\n placeholder=\"exclude-pattern\" aria-controls=\"swh-admin-deposit-list\">\n </input>\n </label>\n </div>\n </div>\n`);\n\n // Show a modal when the \"metadata\" button is clicked\n $('#swh-admin-deposit-list tbody').on('click', 'tr button.metadata', function() {\n var row = depositsTable.row(this.parentNode.parentNode).data();\n var metadata = row.raw_metadata;\n var escapedMetadata = $('<div/>').text(metadata).html();\n swh.webapp.showModalHtml(`Metadata of deposit ${row.id}`,\n `<pre style=\"max-height: 75vh;\"><code class=\"xml\">${escapedMetadata}</code></pre>`,\n '90%');\n swh.webapp.highlightCode();\n });\n\n // Adding exclusion pattern update behavior, when typing, update search\n $('#swh-admin-deposit-list-exclude-filter').keyup(function() {\n depositsTable.draw();\n });\n\n // at last draw the table\n depositsTable.draw();\n });\n\n $('a.toggle-col').on('click', function(e) {\n e.preventDefault();\n var column = depositsTable.column($(this).attr('data-column'));\n column.visible(!column.visible());\n if (column.visible()) {\n $(this).removeClass('col-hidden');\n } else {\n $(this).addClass('col-hidden');\n }\n });\n\n}\n",
"/**\n * Copyright (C) 2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {csrfPost, handleFetchError} from 'utils/functions';\n\nimport mailmapFormTemplate from './mailmap-form.ejs';\n\nlet mailmapsTable;\n\nexport function mailmapForm(buttonText, email = '', displayName = '',\n displayNameActivated = false, update = false) {\n return mailmapFormTemplate({\n buttonText: buttonText,\n email: email,\n displayName: displayName,\n displayNameActivated: displayNameActivated,\n updateForm: update\n });\n}\n\nfunction getMailmapDataFromForm() {\n return {\n 'from_email': $('#swh-mailmap-from-email').val(),\n 'display_name': $('#swh-mailmap-display-name').val(),\n 'display_name_activated': $('#swh-mailmap-display-name-activated').prop('checked')\n };\n}\n\nfunction processMailmapForm(formTitle, formHtml, formApiUrl) {\n swh.webapp.showModalHtml(formTitle, formHtml);\n $(`#swh-mailmap-form`).on('submit', async event => {\n event.preventDefault();\n event.stopPropagation();\n const postData = getMailmapDataFromForm();\n try {\n const response = await csrfPost(\n formApiUrl, {'Content-Type': 'application/json'}, JSON.stringify(postData)\n );\n $('#swh-web-modal-html').modal('hide');\n handleFetchError(response);\n mailmapsTable.draw();\n } catch (response) {\n const error = await response.text();\n swh.webapp.showModalMessage('Error', error);\n }\n });\n}\n\nexport function addNewMailmap() {\n const mailmapFormHtml = mailmapForm('Add mailmap');\n processMailmapForm('Add new mailmap', mailmapFormHtml, Urls.profile_mailmap_add());\n}\n\nexport function updateMailmap(mailmapId) {\n let mailmapData;\n const rows = mailmapsTable.rows().data();\n for (let i = 0; i < rows.length; ++i) {\n const row = rows[i];\n if (row.id === mailmapId) {\n mailmapData = row;\n break;\n }\n }\n const mailmapFormHtml = mailmapForm('Update mailmap', mailmapData.from_email,\n mailmapData.display_name,\n mailmapData.display_name_activated, true);\n processMailmapForm('Update existing mailmap', mailmapFormHtml, Urls.profile_mailmap_update());\n}\n\nconst mdiCheckBold = '<i class=\"mdi mdi-check-bold\" aria-hidden=\"true\"></i>';\nconst mdiCloseThick = '<i class=\"mdi mdi-close-thick\" aria-hidden=\"true\"></i>';\n\nexport function initMailmapUI() {\n $(document).ready(() => {\n mailmapsTable = $('#swh-mailmaps-table')\n .on('error.dt', (e, settings, techNote, message) => {\n $('#swh-mailmaps-list-error').text(\n 'An error occurred while retrieving the mailmaps list');\n console.log(message);\n })\n .DataTable({\n serverSide: true,\n ajax: Urls.profile_mailmap_list_datatables(),\n columns: [\n {\n data: 'from_email',\n name: 'from_email',\n render: $.fn.dataTable.render.text()\n },\n {\n data: 'from_email_verified',\n name: 'from_email_verified',\n render: (data, type, row) => {\n return data ? mdiCheckBold : mdiCloseThick;\n },\n className: 'dt-center'\n },\n {\n data: 'display_name',\n name: 'display_name',\n render: $.fn.dataTable.render.text()\n },\n {\n data: 'display_name_activated',\n name: 'display_name_activated',\n render: (data, type, row) => {\n return data ? mdiCheckBold : mdiCloseThick;\n },\n className: 'dt-center'\n },\n {\n data: 'last_update_date',\n name: 'last_update_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 lastUpdateDate = new Date(row.last_update_date);\n const lastProcessingDate = new Date(row.mailmap_last_processing_date);\n if (!lastProcessingDate || lastProcessingDate < lastUpdateDate) {\n return mdiCloseThick;\n } else {\n return mdiCheckBold;\n }\n },\n className: 'dt-center',\n orderable: false\n },\n {\n render: (data, type, row) => {\n const html =\n `<button class=\"btn btn-default\"\n onclick=\"swh.admin.updateMailmap(${row.id})\">\n Edit\n </button>`;\n return html;\n },\n orderable: false\n }\n\n ],\n ordering: true,\n searching: true,\n searchDelay: 1000,\n scrollY: '50vh',\n scrollCollapse: true\n });\n });\n}\n",
"/**\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 {handleFetchError, csrfPost, htmlAlert,\n getHumanReadableDate} from 'utils/functions';\nimport {swhSpinnerSrc} from 'utils/constants';\n\nlet authorizedOriginTable;\nlet unauthorizedOriginTable;\nlet pendingSaveRequestsTable;\nlet acceptedSaveRequestsTable;\nlet rejectedSaveRequestsTable;\n\nfunction enableRowSelection(tableSel) {\n $(`${tableSel} tbody`).on('click', 'tr', function() {\n if ($(this).hasClass('selected')) {\n $(this).removeClass('selected');\n $(tableSel).closest('.tab-pane').find('.swh-action-need-selection').prop('disabled', true);\n } else {\n $(`${tableSel} tr.selected`).removeClass('selected');\n $(this).addClass('selected');\n $(tableSel).closest('.tab-pane').find('.swh-action-need-selection').prop('disabled', false);\n }\n });\n}\n\nexport function initOriginSaveAdmin() {\n $(document).ready(() => {\n\n $.fn.dataTable.ext.errMode = 'throw';\n\n authorizedOriginTable = $('#swh-authorized-origin-urls').DataTable({\n serverSide: true,\n ajax: Urls.admin_origin_save_authorized_urls_list(),\n columns: [{data: 'url', name: 'url'}],\n scrollY: '50vh',\n scrollCollapse: true,\n info: false\n });\n enableRowSelection('#swh-authorized-origin-urls');\n swh.webapp.addJumpToPagePopoverToDataTable(authorizedOriginTable);\n\n unauthorizedOriginTable = $('#swh-unauthorized-origin-urls').DataTable({\n serverSide: true,\n ajax: Urls.admin_origin_save_unauthorized_urls_list(),\n columns: [{data: 'url', name: 'url'}],\n scrollY: '50vh',\n scrollCollapse: true,\n info: false\n });\n enableRowSelection('#swh-unauthorized-origin-urls');\n swh.webapp.addJumpToPagePopoverToDataTable(unauthorizedOriginTable);\n\n const columnsData = [\n {\n data: 'id',\n name: 'id',\n visible: false,\n searchable: false\n },\n {\n data: 'save_request_date',\n name: 'request_date',\n render: getHumanReadableDate\n },\n {\n data: 'visit_type',\n name: 'visit_type'\n },\n {\n data: 'origin_url',\n name: 'origin_url',\n render: (data, type, row) => {\n if (type === 'display') {\n let html = '';\n const sanitizedURL = $.fn.dataTable.render.text().display(data);\n if (row.save_task_status === 'succeeded') {\n let browseOriginUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(sanitizedURL)}`;\n if (row.visit_date) {\n browseOriginUrl += `&amp;timestamp=${encodeURIComponent(row.visit_date)}`;\n }\n html += `<a href=\"${browseOriginUrl}\">${sanitizedURL}</a>`;\n } else {\n html += sanitizedURL;\n }\n html += `&nbsp;<a href=\"${sanitizedURL}\" target=\"_blank\" rel=\"noopener noreferrer\">` +\n '<i class=\"mdi mdi-open-in-new\" aria-hidden=\"true\"></i></a>';\n return html;\n }\n return data;\n }\n }\n ];\n\n pendingSaveRequestsTable = $('#swh-origin-save-pending-requests').DataTable({\n serverSide: true,\n processing: true,\n language: {\n processing: `<img src=\"${swhSpinnerSrc}\"></img>`\n },\n ajax: Urls.origin_save_requests_list('pending'),\n searchDelay: 1000,\n columns: columnsData,\n scrollY: '50vh',\n scrollCollapse: true,\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n enableRowSelection('#swh-origin-save-pending-requests');\n swh.webapp.addJumpToPagePopoverToDataTable(pendingSaveRequestsTable);\n\n columnsData.push({\n name: 'info',\n render: (data, type, row) => {\n if (row.save_task_status === 'succeeded' || row.save_task_status === 'failed' ||\n row.note != null) {\n return `<i class=\"mdi mdi-information-outline swh-save-request-info\" aria-hidden=\"true\"\n style=\"cursor: pointer\"\n onclick=\"swh.save.displaySaveRequestInfo(event, ${row.id})\"></i>`;\n } else {\n return '';\n }\n }\n });\n\n rejectedSaveRequestsTable = $('#swh-origin-save-rejected-requests').DataTable({\n serverSide: true,\n processing: true,\n language: {\n processing: `<img src=\"${swhSpinnerSrc}\"></img>`\n },\n ajax: Urls.origin_save_requests_list('rejected'),\n searchDelay: 1000,\n columns: columnsData,\n scrollY: '50vh',\n scrollCollapse: true,\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n enableRowSelection('#swh-origin-save-rejected-requests');\n swh.webapp.addJumpToPagePopoverToDataTable(rejectedSaveRequestsTable);\n\n columnsData.splice(columnsData.length - 1, 0, {\n data: 'save_task_status',\n name: 'save_task_status'\n });\n\n acceptedSaveRequestsTable = $('#swh-origin-save-accepted-requests').DataTable({\n serverSide: true,\n processing: true,\n language: {\n processing: `<img src=\"${swhSpinnerSrc}\"></img>`\n },\n ajax: Urls.origin_save_requests_list('accepted'),\n searchDelay: 1000,\n columns: columnsData,\n scrollY: '50vh',\n scrollCollapse: true,\n order: [[0, 'desc']],\n responsive: {\n details: {\n type: 'none'\n }\n }\n });\n enableRowSelection('#swh-origin-save-accepted-requests');\n swh.webapp.addJumpToPagePopoverToDataTable(acceptedSaveRequestsTable);\n\n $('#swh-authorized-origins-tab').on('shown.bs.tab', () => {\n authorizedOriginTable.draw();\n });\n\n $('#swh-unauthorized-origins-tab').on('shown.bs.tab', () => {\n unauthorizedOriginTable.draw();\n });\n\n $('#swh-save-requests-pending-tab').on('shown.bs.tab', () => {\n pendingSaveRequestsTable.draw();\n });\n\n $('#swh-save-requests-accepted-tab').on('shown.bs.tab', () => {\n acceptedSaveRequestsTable.draw();\n });\n\n $('#swh-save-requests-rejected-tab').on('shown.bs.tab', () => {\n rejectedSaveRequestsTable.draw();\n });\n\n $('#swh-save-requests-pending-tab').click(() => {\n pendingSaveRequestsTable.ajax.reload(null, false);\n });\n\n $('#swh-save-requests-accepted-tab').click(() => {\n acceptedSaveRequestsTable.ajax.reload(null, false);\n });\n\n $('#swh-save-requests-rejected-tab').click(() => {\n rejectedSaveRequestsTable.ajax.reload(null, false);\n });\n\n $('body').on('click', e => {\n if ($(e.target).parents('.popover').length > 0) {\n e.stopPropagation();\n } else if ($(e.target).parents('.swh-save-request-info').length === 0) {\n $('.swh-save-request-info').popover('dispose');\n }\n });\n\n });\n}\n\nexport async function addAuthorizedOriginUrl() {\n const originUrl = $('#swh-authorized-url-prefix').val();\n const addOriginUrl = Urls.admin_origin_save_add_authorized_url(originUrl);\n try {\n const response = await csrfPost(addOriginUrl);\n handleFetchError(response);\n authorizedOriginTable.row.add({'url': originUrl}).draw();\n $('.swh-add-authorized-origin-status').html(\n htmlAlert('success', 'The origin url prefix has been successfully added in the authorized list.', true)\n );\n } catch (_) {\n $('.swh-add-authorized-origin-status').html(\n htmlAlert('warning', 'The provided origin url prefix is already registered in the authorized list.', true)\n );\n }\n}\n\nexport async function removeAuthorizedOriginUrl() {\n const originUrl = $('#swh-authorized-origin-urls tr.selected').text();\n if (originUrl) {\n const removeOriginUrl = Urls.admin_origin_save_remove_authorized_url(originUrl);\n try {\n const response = await csrfPost(removeOriginUrl);\n handleFetchError(response);\n authorizedOriginTable.row('.selected').remove().draw();\n } catch (_) {}\n }\n}\n\nexport async function addUnauthorizedOriginUrl() {\n const originUrl = $('#swh-unauthorized-url-prefix').val();\n const addOriginUrl = Urls.admin_origin_save_add_unauthorized_url(originUrl);\n try {\n const response = await csrfPost(addOriginUrl);\n handleFetchError(response);\n unauthorizedOriginTable.row.add({'url': originUrl}).draw();\n $('.swh-add-unauthorized-origin-status').html(\n htmlAlert('success', 'The origin url prefix has been successfully added in the unauthorized list.', true)\n );\n } catch (_) {\n $('.swh-add-unauthorized-origin-status').html(\n htmlAlert('warning', 'The provided origin url prefix is already registered in the unauthorized list.', true)\n );\n }\n}\n\nexport async function removeUnauthorizedOriginUrl() {\n const originUrl = $('#swh-unauthorized-origin-urls tr.selected').text();\n if (originUrl) {\n const removeOriginUrl = Urls.admin_origin_save_remove_unauthorized_url(originUrl);\n try {\n const response = await csrfPost(removeOriginUrl);\n handleFetchError(response);\n unauthorizedOriginTable.row('.selected').remove().draw();\n } catch (_) {};\n }\n}\n\nexport function acceptOriginSaveRequest() {\n const selectedRow = pendingSaveRequestsTable.row('.selected');\n if (selectedRow.length) {\n const acceptOriginSaveRequestCallback = async() => {\n const rowData = selectedRow.data();\n const acceptSaveRequestUrl = Urls.admin_origin_save_request_accept(rowData['visit_type'], rowData['origin_url']);\n await csrfPost(acceptSaveRequestUrl);\n pendingSaveRequestsTable.ajax.reload(null, false);\n };\n\n swh.webapp.showModalConfirm(\n 'Accept origin save request ?',\n 'Are you sure to accept this origin save request ?',\n acceptOriginSaveRequestCallback);\n }\n}\n\nconst rejectModalHtml = `\n<form id=\"swh-rejection-form\">\n <div class=\"form-group row\">\n <label for=\"swh-rejection-reason\" class=\"col-4 col-form-label\">\n Rejection reason:\n </label>\n <div class=\"col-8\">\n <select class=\"custom-select\" id=\"swh-rejection-reason\">\n <option value=\"custom\" selected>Custom</option>\n <option value=\"invalid-origin\">Invalid origin</option>\n <option value=\"invalid-origin-type\">Invalid origin type</option>\n <option value=\"origin-not-found\">Origin not found</option>\n </select>\n </div>\n </div>\n <div class=\"form-group row\">\n <textarea class=\"form-control\" id=\"swh-rejection-text\"></textarea>\n </div>\n <button type=\"submit\" class=\"btn btn-default float-right\" id=\"swh-rejection-submit\">\n Reject\n </button>\n</form>\n`;\n\nexport function rejectOriginSaveRequest() {\n const selectedRow = pendingSaveRequestsTable.row('.selected');\n const rowData = selectedRow.data();\n if (selectedRow.length) {\n const rejectOriginSaveRequestCallback = async() => {\n $('#swh-web-modal-html').modal('hide');\n const rejectSaveRequestUrl = Urls.admin_origin_save_request_reject(\n rowData['visit_type'], rowData['origin_url']);\n await csrfPost(rejectSaveRequestUrl, {},\n JSON.stringify({note: $('#swh-rejection-text').val()}));\n pendingSaveRequestsTable.ajax.reload(null, false);\n };\n\n let currentRejectionReason = 'custom';\n const rejectionTexts = {};\n swh.webapp.showModalHtml('Reject origin save request ?', rejectModalHtml);\n $('#swh-rejection-reason').on('change', (event) => {\n // backup current textarea value\n rejectionTexts[currentRejectionReason] = $('#swh-rejection-text').val();\n currentRejectionReason = event.target.value;\n let newRejectionText = '';\n if (rejectionTexts.hasOwnProperty(currentRejectionReason)) {\n // restore previous textarea value\n newRejectionText = rejectionTexts[currentRejectionReason];\n } else {\n // fill textarea with default text according to rejection type\n if (currentRejectionReason === 'invalid-origin') {\n newRejectionText = `The origin with URL ${rowData['origin_url']} is not ` +\n `a link to a ${rowData['visit_type']} repository.`;\n } else if (currentRejectionReason === 'invalid-origin-type') {\n newRejectionText = `The origin with URL ${rowData['origin_url']} is not ` +\n `of type ${rowData['visit_type']}.`;\n } else if (currentRejectionReason === 'origin-not-found') {\n newRejectionText = `The origin with URL ${rowData['origin_url']} cannot be found.`;\n }\n }\n $('#swh-rejection-text').val(newRejectionText);\n });\n $('#swh-rejection-form').on('submit', (event) => {\n event.preventDefault();\n event.stopPropagation();\n // ensure confirmation modal will be displayed above the html modal\n $('#swh-web-modal-html').css('z-index', 4000);\n swh.webapp.showModalConfirm(\n 'Reject origin save request ?',\n 'Are you sure to reject this origin save request ?',\n rejectOriginSaveRequestCallback);\n });\n }\n}\n\nfunction removeOriginSaveRequest(requestTable) {\n const selectedRow = requestTable.row('.selected');\n if (selectedRow.length) {\n const requestId = selectedRow.data()['id'];\n const removeOriginSaveRequestCallback = async() => {\n const removeSaveRequestUrl = Urls.admin_origin_save_request_remove(requestId);\n await csrfPost(removeSaveRequestUrl);\n requestTable.ajax.reload(null, false);\n };\n\n swh.webapp.showModalConfirm(\n 'Remove origin save request ?',\n 'Are you sure to remove this origin save request ?',\n removeOriginSaveRequestCallback);\n }\n}\n\nexport function removePendingOriginSaveRequest() {\n removeOriginSaveRequest(pendingSaveRequestsTable);\n}\n\nexport function removeAcceptedOriginSaveRequest() {\n removeOriginSaveRequest(acceptedSaveRequestsTable);\n}\n\nexport function removeRejectedOriginSaveRequest() {\n removeOriginSaveRequest(rejectedSaveRequestsTable);\n}\n",
"/**\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",
"/**\n * Copyright (C) 2018-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// 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 htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function isValidURL(string) {\n try {\n new URL(string);\n } catch (_) {\n return false;\n }\n return true;\n}\n\nexport async function isArchivedOrigin(originPath) {\n if (!isValidURL(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n const response = await fetch(Urls.api_1_origin(originPath));\n return response.ok && response.status === 200; // Success response represents an archived origin\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 = 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 = 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",
"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 \"&\": \"&amp;\"\n , \"<\": \"&lt;\"\n , \">\": \"&gt;\"\n , '\"': \"&#34;\"\n , \"'\": \"&#39;\"\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<form id=\\\"swh-mailmap-form\\\" class=\\\"text-left\\\">\\n <div class=\\\"form-group\\\">\\n <label for=\\\"swh-mailmap-from-email\\\">Email address</label>\\n <input type=\\\"email\\\" class=\\\"form-control\\\" id=\\\"swh-mailmap-from-email\\\" value=\\\"\")\n ; __append(escapeFn( email ))\n ; __append(\"\\\"\\n \")\n ; if (updateForm) { \n ; __append(\" readonly=\\\"readonly\\\" \")\n ; } \n ; __append(\" required>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label for=\\\"swh-mailmap-display-name\\\">Display name</label>\\n <input class=\\\"form-control\\\" id=\\\"swh-mailmap-display-name\\\" value=\\\"\")\n ; __append(escapeFn( displayName ))\n ; __append(\"\\\" placeholder=\\\"John Doe <jdoe@example.org>\\\" required>\\n </div>\\n <div class=\\\"custom-control custom-checkbox\\\">\\n <input class=\\\"custom-control-input\\\" type=\\\"checkbox\\\" value=\\\"\\\" id=\\\"swh-mailmap-display-name-activated\\\"\\n \")\n ; if (displayNameActivated) { \n ; __append(\" checked=\\\"checked\\\" \")\n ; } \n ; __append(\">\\n <label class=\\\"custom-control-label pt-0\\\" for=\\\"swh-mailmap-display-name-activated\\\">Activate display name</label>\\n </div>\\n <div class=\\\"d-flex justify-content-center\\\">\\n <input id=\\\"swh-mailmap-form-submit\\\" type=\\\"submit\\\" value=\\\"\")\n ; __append(escapeFn( buttonText ))\n ; __append(\"\\\">\\n </div>\\n</form>\")\n }\n return __output;\n\n}",
"/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n",
"function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}",
"/*! js-cookie v3.0.1 | 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 (key, 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 key = encodeURIComponent(key)\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 key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\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 foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\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 default api;\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",
"genSwhLink",
"data",
"type",
"startsWith",
"Urls",
"browse_swhid",
"replace",
"initDepositAdmin",
"username",
"isStaff",
"depositsTable",
"$",
"document",
"ready",
"fn",
"dataTable",
"ext",
"errMode",
"on",
"e",
"settings",
"techNote",
"message",
"text",
"DataTable",
"serverSide",
"processing",
"dom",
"ajax",
"url",
"admin_deposit_list",
"d",
"excludePattern",
"val",
"columns",
"name",
"render",
"row",
"sData",
"encodeURI",
"genLink",
"getHumanReadableDate",
"raw_metadata",
"JSON",
"stringify",
"orderable",
"visible",
"scrollX",
"scrollY",
"scrollCollapse",
"order",
"html",
"this",
"parentNode",
"metadata",
"escapedMetadata",
"swh",
"webapp",
"showModalHtml",
"id",
"highlightCode",
"keyup",
"draw",
"preventDefault",
"column",
"attr",
"removeClass",
"addClass",
"mailmapsTable",
"mailmapForm",
"buttonText",
"email",
"displayName",
"displayNameActivated",
"update",
"mailmapFormTemplate",
"updateForm",
"processMailmapForm",
"formTitle",
"formHtml",
"formApiUrl",
"event",
"stopPropagation",
"postData",
"prop",
"csrfPost",
"response",
"modal",
"handleFetchError",
"error",
"showModalMessage",
"addNewMailmap",
"profile_mailmap_add",
"updateMailmap",
"mailmapId",
"mailmapData",
"rows",
"i",
"length",
"from_email",
"display_name",
"display_name_activated",
"profile_mailmap_update",
"mdiCheckBold",
"mdiCloseThick",
"initMailmapUI",
"console",
"log",
"profile_mailmap_list_datatables",
"className",
"Date",
"toLocaleString",
"lastUpdateDate",
"last_update_date",
"lastProcessingDate",
"mailmap_last_processing_date",
"ordering",
"searching",
"searchDelay",
"authorizedOriginTable",
"unauthorizedOriginTable",
"pendingSaveRequestsTable",
"acceptedSaveRequestsTable",
"rejectedSaveRequestsTable",
"enableRowSelection",
"tableSel",
"hasClass",
"closest",
"find",
"initOriginSaveAdmin",
"admin_origin_save_authorized_urls_list",
"info",
"addJumpToPagePopoverToDataTable",
"admin_origin_save_unauthorized_urls_list",
"columnsData",
"searchable",
"sanitizedURL",
"display",
"save_task_status",
"browseOriginUrl",
"browse_origin",
"encodeURIComponent",
"visit_date",
"language",
"swhSpinnerSrc",
"origin_save_requests_list",
"responsive",
"details",
"push",
"note",
"splice",
"click",
"reload",
"target",
"parents",
"popover",
"addAuthorizedOriginUrl",
"originUrl",
"addOriginUrl",
"admin_origin_save_add_authorized_url",
"add",
"htmlAlert",
"removeAuthorizedOriginUrl",
"removeOriginUrl",
"admin_origin_save_remove_authorized_url",
"remove",
"addUnauthorizedOriginUrl",
"admin_origin_save_add_unauthorized_url",
"removeUnauthorizedOriginUrl",
"admin_origin_save_remove_unauthorized_url",
"acceptOriginSaveRequest",
"selectedRow",
"acceptOriginSaveRequestCallback",
"rowData",
"acceptSaveRequestUrl",
"admin_origin_save_request_accept",
"showModalConfirm",
"rejectOriginSaveRequest",
"rejectOriginSaveRequestCallback",
"rejectSaveRequestUrl",
"admin_origin_save_request_reject",
"currentRejectionReason",
"rejectionTexts",
"value",
"newRejectionText",
"hasOwnProperty",
"css",
"removeOriginSaveRequest",
"requestTable",
"requestId",
"removeOriginSaveRequestCallback",
"removeSaveRequestUrl",
"admin_origin_save_request_remove",
"removePendingOriginSaveRequest",
"removeAcceptedOriginSaveRequest",
"removeRejectedOriginSaveRequest",
"staticAsset",
"ok",
"asset",
"__STATIC__",
"headers",
"body",
"Cookies",
"fetch",
"credentials",
"method",
"closable",
"closeButton",
"extraClasses",
"anonymous",
"locals",
"escapeFn",
"include",
"rethrow",
"markup",
"undefined",
"String",
"_MATCH_HTML",
"encode_char",
"_ENCODE_HTML_RULES",
"c",
"__output",
"__append",
"s",
"runtime",
"Op",
"Object",
"prototype",
"hasOwn",
"$Symbol",
"Symbol",
"iteratorSymbol",
"iterator",
"asyncIteratorSymbol",
"asyncIterator",
"toStringTagSymbol",
"toStringTag",
"obj",
"key",
"defineProperty",
"enumerable",
"configurable",
"writable",
"err",
"wrap",
"innerFn",
"outerFn",
"tryLocsList",
"protoGenerator",
"Generator",
"generator",
"create",
"context",
"Context",
"_invoke",
"state",
"GenStateSuspendedStart",
"arg",
"GenStateExecuting",
"Error",
"GenStateCompleted",
"doneResult",
"delegate",
"delegateResult",
"maybeInvokeDelegate",
"ContinueSentinel",
"sent",
"_sent",
"dispatchException",
"abrupt",
"record",
"tryCatch",
"done",
"GenStateSuspendedYield",
"makeInvokeMethod",
"call",
"GeneratorFunction",
"GeneratorFunctionPrototype",
"IteratorPrototype",
"getProto",
"getPrototypeOf",
"NativeIteratorPrototype",
"values",
"Gp",
"defineIteratorMethods",
"forEach",
"AsyncIterator",
"PromiseImpl",
"invoke",
"resolve",
"reject",
"result",
"__await",
"then",
"unwrapped",
"previousPromise",
"callInvokeWithMethodAndArg",
"TypeError",
"resultName",
"next",
"nextLoc",
"pushTryEntry",
"locs",
"entry",
"tryLoc",
"catchLoc",
"finallyLoc",
"afterLoc",
"tryEntries",
"resetTryEntry",
"completion",
"reset",
"iterable",
"iteratorMethod",
"isNaN",
"constructor",
"isGeneratorFunction",
"genFun",
"ctor",
"mark",
"setPrototypeOf",
"__proto__",
"awrap",
"async",
"Promise",
"iter",
"toString",
"keys",
"object",
"reverse",
"pop",
"skipTempReset",
"prev",
"charAt",
"slice",
"stop",
"rootRecord",
"rval",
"exception",
"handle",
"loc",
"caught",
"hasCatch",
"hasFinally",
"finallyEntry",
"complete",
"finish",
"thrown",
"delegateYield",
"regeneratorRuntime",
"accidentalStrictMode",
"Function",
"asyncGeneratorStep",
"gen",
"_next",
"_throw",
"_asyncToGenerator",
"args",
"arguments",
"apply",
"assign",
"source",
"api",
"init",
"converter",
"defaultAttributes",
"set",
"attributes",
"expires",
"now",
"toUTCString",
"decodeURIComponent",
"escape",
"stringifiedAttributes",
"attributeName",
"split",
"cookie",
"write",
"get",
"cookies",
"jar",
"parts",
"join",
"foundKey",
"read",
"withAttributes",
"withConverter",
"freeze",
"path",
"__webpack_module_cache__",
"__webpack_require__",
"moduleId",
"cachedModule",
"__webpack_modules__",
"n",
"getter",
"__esModule",
"a",
"definition",
"o",
"r"
],
"sourceRoot": ""
}

File Metadata

Mime Type
application/json
Expires
Fri, Jul 4, 11:58 AM (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3378200

Event Timeline