| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- "use strict";
- /**
- * @license
- * SPDX-License-Identifier: Apache-2.0
- */
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.unwrapScript = exports.isScript = exports.EMPTY_SCRIPT = exports.createScript = exports.SafeScript = void 0;
- require("../environment/dev");
- /* g3_import_pure from './pure' */
- var secrets_1 = require("./secrets");
- var trusted_types_1 = require("./trusted_types");
- /**
- * Runtime implementation of `TrustedScript` in browswers that don't support it.
- * script element.
- */
- var ScriptImpl = /** @class */ (function () {
- function ScriptImpl(script, token) {
- if (process.env.NODE_ENV !== 'production') {
- (0, secrets_1.ensureTokenIsValid)(token);
- }
- this.privateDoNotAccessOrElseWrappedScript = script;
- }
- ScriptImpl.prototype.toString = function () {
- return this.privateDoNotAccessOrElseWrappedScript.toString();
- };
- return ScriptImpl;
- }());
- function createScriptInternal(script, trusted) {
- return (trusted !== null && trusted !== void 0 ? trusted : new ScriptImpl(script, secrets_1.secretToken));
- }
- var GlobalTrustedScript = (typeof window !== undefined) ? window.TrustedScript : undefined;
- /**
- * Also exports the constructor so that instanceof checks work.
- */
- exports.SafeScript = (GlobalTrustedScript !== null && GlobalTrustedScript !== void 0 ? GlobalTrustedScript : ScriptImpl);
- /**
- * Builds a new `SafeScript` from the given string, without enforcing
- * safety guarantees. It may cause side effects by creating a Trusted Types
- * policy. This shouldn't be exposed to application developers, and must only be
- * used as a step towards safe builders or safe constants.
- */
- function createScript(script) {
- var _a;
- /** @noinline */
- var noinlineScript = script;
- return createScriptInternal(noinlineScript, (_a = (0, trusted_types_1.getTrustedTypesPolicy)()) === null || _a === void 0 ? void 0 : _a.createScript(noinlineScript));
- }
- exports.createScript = createScript;
- /**
- * An empty `SafeScript` constant.
- * Unlike the functions above, using this will not create a policy.
- */
- exports.EMPTY_SCRIPT =
- /* #__PURE__ */ (function () { var _a; return createScriptInternal('', (_a = (0, trusted_types_1.getTrustedTypes)()) === null || _a === void 0 ? void 0 : _a.emptyScript); })();
- /**
- * Checks if the given value is a `SafeScript` instance.
- */
- function isScript(value) {
- return value instanceof exports.SafeScript;
- }
- exports.isScript = isScript;
- /**
- * Returns the value of the passed `SafeScript` object while ensuring it
- * has the correct type.
- *
- * Returns a native `TrustedScript` or a string if Trusted Types are disabled.
- */
- function unwrapScript(value) {
- var _a;
- if ((_a = (0, trusted_types_1.getTrustedTypes)()) === null || _a === void 0 ? void 0 : _a.isScript(value)) {
- return value;
- }
- else if (value instanceof ScriptImpl) {
- return value.privateDoNotAccessOrElseWrappedScript;
- }
- else {
- var message = '';
- if (process.env.NODE_ENV !== 'production') {
- message = 'Unexpected type when unwrapping SafeScript';
- }
- throw new Error(message);
- }
- }
- exports.unwrapScript = unwrapScript;
|