File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/safevalues/dom/elements/script.js
"use strict";
/**
* @license
* SPDX-License-Identifier: Apache-2.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.setSrc = exports.setTextContent = void 0;
var resource_url_impl_1 = require("../../internals/resource_url_impl");
var script_impl_1 = require("../../internals/script_impl");
/** Returns CSP nonce, if set for any script tag. */
function getScriptNonceFromWindow(win) {
var _a;
var doc = win.document;
// document.querySelector can be undefined in non-browser environments.
var script = (_a = doc.querySelector) === null || _a === void 0 ? void 0 : _a.call(doc, 'script[nonce]');
if (script) {
// Try to get the nonce from the IDL property first, because browsers that
// implement additional nonce protection features (currently only Chrome) to
// prevent nonce stealing via CSS do not expose the nonce via attributes.
// See https://github.com/whatwg/html/issues/2369
return script['nonce'] || script.getAttribute('nonce') || '';
}
return '';
}
/** Propagates CSP nonce to dynamically created scripts. */
function setNonceForScriptElement(script) {
var win = script.ownerDocument && script.ownerDocument.defaultView;
var nonce = getScriptNonceFromWindow(win || window);
if (nonce) {
script.setAttribute('nonce', nonce);
}
}
/** Sets textContent from the given SafeScript. */
function setTextContent(script, v) {
script.textContent = (0, script_impl_1.unwrapScript)(v);
setNonceForScriptElement(script);
}
exports.setTextContent = setTextContent;
/** Sets the Src attribute using a TrustedResourceUrl */
function setSrc(script, v) {
script.src = (0, resource_url_impl_1.unwrapResourceUrl)(v);
setNonceForScriptElement(script);
}
exports.setSrc = setSrc;