KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12
System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64
User : ServerPC ( 0)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  C:/Windows/SystemApps/Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : C:/Windows/SystemApps/Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy/js/bridge.js
"use strict";
var CloudExperienceHost;
(function (CloudExperienceHost) {
    var Channel;
    (function (Channel) {
        Channel.MessageType = {
            invoke: 'invoke',
            event: 'event',
            callback: 'callback',
        };
        class Message {
            constructor(t) {
                this.type = t;
                this.value = new Object;
            }
        }
        Channel.Message = Message;
        class EventMsg extends Message {
            constructor() {
                super(Channel.MessageType.event);
            }
        }
        Channel.EventMsg = EventMsg;
        class InvokeMsg extends Message {
            constructor() {
                super(Channel.MessageType.invoke);
            }
        }
        Channel.InvokeMsg = InvokeMsg;
        class CallbackMsg extends Message {
            constructor() {
                super(Channel.MessageType.callback);
            }
        }
        Channel.CallbackMsg = CallbackMsg;
        function createInvokeMsg(funcName, args, context) {
            var msg = new InvokeMsg();
            msg.value.name = funcName;
            msg.value.args = args;
            msg.value.context = context;
            return msg;
        }
        Channel.createInvokeMsg = createInvokeMsg;
        function createEventMsg(eventName, data) {
            var msg = new EventMsg();
            msg.value.name = eventName;
            if (data) {
                msg.value.data = data;
            }
            return msg;
        }
        Channel.createEventMsg = createEventMsg;
        function createCallbackMsg(context, funcName, result, iserror) {
            var msg = new CallbackMsg();
            msg.value.context = context;
            msg.value.result = (funcName === 'WinJS.xhr') ? { 'response': result.response, 'status': result.status } : result;
            msg.value.iserror = iserror;
            return msg;
        }
        Channel.createCallbackMsg = createCallbackMsg;
        function stringify(msg) {
            return JSON.stringify(msg);
        }
        Channel.stringify = stringify;
        function parse(msg) {
            var m = JSON.parse(msg);
            return m;
        }
        Channel.parse = parse;
    })(Channel || (Channel = {}));
    class ContractHandler {
        constructor(rules) {
            this.rules = rules;
        }
        invokeFromString(callerUri, method, args) {
            try {
                this._verifyFunctionExists(method);
                this.checkIfPermissionAllowed(callerUri, method);
                return WinJS.Promise.as(this._executeFunctionByName(method, args, callerUri));
            }
            catch (e) {
                return new WinJS.Promise(function (completeDispatch, errorDispatch /*, progressDispatch */) {
                    errorDispatch(e);
                });
            }
        }
        checkIfPermissionAllowed(callerUri, method) {
            var trimmedCallerUri = this._trimUri(callerUri);
            var isAllowed = false;
            var namespaces = method.split(".");
            for (var fn = ""; !isAllowed && namespaces.length > 0; namespaces.pop()) {
                var ns = namespaces.join('.') + fn;
                if (this.rules.hasOwnProperty(ns)) {
                    isAllowed = this._isAllowed(trimmedCallerUri, this.rules[ns]);
                }
                fn = ".*";
            }
            if (isAllowed === false) {
                CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().logEvent("NotAuthorizedApiAccess", JSON.stringify({
                    'callerUri': callerUri,
                    'trimmedCallerUri': trimmedCallerUri,
                    'method': method,
                    'isAllowed': isAllowed
                }));
                throw "NotAuthorizedApiAccess"; // Throw a string error instead of an Error object to avoid truncation in the callback layer
            }
        }
        _isAllowed(callerUri, allowedURIs) {
            var isAllowed = false;
            allowedURIs.forEach(function (uri) {
                if (uri === "*" || callerUri.toLowerCase() === uri.toLowerCase()) {
                    isAllowed = true;
                }
                else if (uri.lastIndexOf('*') === (uri.length - 1)) {
                    if (callerUri.toLowerCase().indexOf(uri.substr(0, uri.length - 1).toLowerCase(), 0) === 0) {
                        isAllowed = true;
                    }
                }
            });
            return isAllowed;
        }
        _trimUri(callerUri) {
            return callerUri.replace(/\/[^\/]+$/, "/"); // Remove the file name and parameters
        }
        _verifyFunctionExists(functionName) {
            let context = window;
            let namespaces = functionName.split(".");
            for (let i = 0; i < namespaces.length; i++) {
                context = context[namespaces[i]];
                if (context == null) {
                    CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().logEvent("ApiNonexistentOnClient", functionName);
                    throw "ApiNonexistentOnClient"; // Throw a string error instead of an Error object to avoid truncation in the callback layer
                }
            }
        }
        _executeFunctionByName(functionName, args, callerUri) {
            var context = window;
            var namespaces = functionName.split(".");
            var func = namespaces.pop();
            for (var i = 0; i < namespaces.length; i++) {
                context = context[namespaces[i]];
            }
            if (CloudExperienceHost.FeatureStaging.isOobeFeatureEnabled("PassCallerUriArgs")) {
                var instance = context[func];
                const metadata = instance.__metadata;
                if (metadata && metadata.requireCallerUri === true) {
                    args.unshift(callerUri);
                }
            }
            return context[func].apply(context, args);
        }
    }
    CloudExperienceHost.ContractHandler = ContractHandler;
    class CallbackContext {
        constructor(completeDispatch, errorDispatch) {
            this._completeDispatch = completeDispatch;
            this._errorDispatch = errorDispatch;
        }
        complete(result) {
            this._completeDispatch(result);
        }
        error(e) {
            this._errorDispatch(e);
        }
    }
    class Bridge {
        constructor(target, contractHandler) {
            this._target = null;
            this._connectedToTarget = false;
            this._contractHandler = null;
            this._listeners = null;
            this._callbackContext = null;
            this._scriptNotifyHandler = this._dispatchMessageFromScriptNotify.bind(this);
            this._maxPostDeadlockRetryCount = 5;
            this._listeners = new Object();
            this._callbackContext = new Object();
            if (target) {
                this._target = target;
            }
            if (contractHandler) {
                this._contractHandler = contractHandler;
            }
            this._initializeTarget();
        }
        _initializeTarget() {
            if (this._target) {
                this.connectToWebView();
            }
            else {
                window["CloudExperienceHost.Bridge.dispatchMessage"] = function (e) {
                    this._dispatchMessage(e);
                }.bind(this);
                window.addEventListener("error", this._onWebViewError.bind(this));
            }
        }
        _onWebViewError(e) {
            try {
                let eventData = {
                    sourceUrl: window.location.href,
                    detail: {
                        lineno: e.lineno,
                        colno: e.colno,
                        filename: e.filename,
                        message: e.message,
                        error: e.error,
                        number: e.number,
                    },
                };
                this.fireEvent("CloudExperienceHost.unhandledException", eventData);
            }
            catch (ex) {
            }
        }
        _windowExternalNotifyInternal(msg, retryCount) {
            setImmediate(() => {
                try {
                    window.external.notify(msg);
                    if (retryCount > 0) {
                        require(["legacy/telemetry"], (telemetry) => {
                            telemetry.AppTelemetry.getInstance().logCriticalEvent2("WebViewPossibleDeadlockAverted", JSON.stringify({
                                'retryCount': retryCount
                            }));
                        });
                    }
                }
                catch (e) {
                    if ((e.number == -2147023765 /* error: ERROR_POSSIBLE_DEADLOCK 0x8007046B */) && (retryCount < this._maxPostDeadlockRetryCount)) {
                        retryCount++;
                        this._windowExternalNotifyInternal(msg, retryCount);
                    }
                    else {
                        this._onWebViewError(e);
                    }
                }
            });
        }
        _postMessage(msg) {
            if (this._target && this._target["invokeScriptAsync"]) {
                this._target["invokeScriptAsync"]("CloudExperienceHost.Bridge.dispatchMessage", msg).start();
            }
            else {
                this._windowExternalNotifyInternal(msg, 0);
            }
        }
        _invokeLocal(m) {
            let callerUri = this._target.src;
            this._contractHandler.invokeFromString(callerUri, m.value.name, m.value.args).done(function (result) {
                if (CloudExperienceHost.FeatureStaging.isOobeFeatureEnabled("ValidateCallbackUri")) {
                    if (result instanceof CloudExperienceHost.BridgeHelpers.ResultMetadata) {
                        if (result.validateCallbackUri && (callerUri !== this._target.src)) {
                            CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().logEvent("CallbackUriValidationFailed", m.value.name);
                            return;
                        }
                        result = result.result;
                    }
                }
                if (m.value.context) {
                    this._callback(m, result, false);
                }
            }.bind(this), function (e) {
                if (m.value.context) {
                    this._callback(m, e, true);
                }
            }.bind(this));
        }
        _receivedEvent(e) {
            if (this._contractHandler && this._contractHandler.rules && this._contractHandler.rules.hasOwnProperty(e.value.name)) {
                this._contractHandler.checkIfPermissionAllowed(this._target.src, e.value.name);
            }
            var listeners = this._listeners[e.value.name];
            if (listeners) {
                listeners.map(function (listener) {
                    listener.call(this, e.value.data);
                }.bind(this));
            }
        }
        _receivedResult(m) {
            var callback = this._callbackContext[m.value.context];
            if (callback) {
                if (m.value.iserror) {
                    callback.error(m.value.result);
                }
                else {
                    callback.complete(m.value.result);
                }
                this._callbackContext[m.value.context] = null;
                delete this._callbackContext[m.value.context];
            }
        }
        _dispatchMessageFromScriptNotify(notification) {
            this._dispatchMessage(notification.value);
        }
        _dispatchMessage(message) {
            var msg = Channel.parse(message);
            if (msg.type == Channel.MessageType.invoke) {
                this._invokeLocal(msg);
            }
            else if (msg.type == Channel.MessageType.event) {
                this._receivedEvent(msg);
            }
            else if (msg.type == Channel.MessageType.callback) {
                this._receivedResult(msg);
            }
        }
        _callback(m, result, iserror) {
            if (iserror && !!result && (typeof result.number === 'number')) {
                Object.defineProperty(result, 'number', { enumerable: true });
            }
            var msg = Channel.createCallbackMsg(m.value.context, m.value.name, result, iserror);
            this._postMessage(Channel.stringify(msg));
        }
        _permissionRequestedHandler(e) {
            if ((e.permissionRequest.type == "media") && CloudExperienceHostAPI.UtilStaticsCore.isWebcamPermissionAllowed(e.permissionRequest.uri)) {
                e.permissionRequest.allow();
            }
            else {
                e.permissionRequest.deny();
            }
        }
        invokeCallback(funcName, context, result, iserror) {
            return new WinJS.Promise(function (completeDispatch, errorDispatch /*, progressDispatch */) {
                let msg = Channel.createInvokeMsg(funcName, null, context);
                this._callback(msg, result, iserror);
            }.bind(this));
        }
        invoke(funcName, arg1, arg2, arg3, arg4) {
            var args = Array.prototype.slice.call(arguments).splice(1);
            return new WinJS.Promise(function (completeDispatch, errorDispatch /*, progressDispatch */) {
                var uniqueid = Math.random().toString(16).slice(2); // The random number generator is seeded automatically when JavaScript is first loaded.
                var context = funcName + '_' + uniqueid; // Create unique index 'funcName_12a47668b64f34'
                this._callbackContext[context] = new CallbackContext(completeDispatch, errorDispatch);
                var msg = Channel.createInvokeMsg(funcName, args, context);
                this._postMessage(Channel.stringify(msg));
            }.bind(this));
        }
        fireEvent(eventName, data) {
            var msg = Channel.createEventMsg(eventName, data);
            this._postMessage(Channel.stringify(msg));
        }
        addEventListener(eventName, listener) {
            if (!this._listeners.hasOwnProperty(eventName)) {
                this._listeners[eventName] = new Array();
            }
            if ((eventName === "CloudExperienceHost.backButtonClicked") && (this._listeners[eventName].length > 0)) {
                this._listeners[eventName][0] = listener;
            }
            else {
                this._listeners[eventName].push(listener);
            }
        }
        setContractHandler(contractHandler) {
            this._contractHandler = contractHandler;
        }
        disconnectFromWebView() {
            if (this._connectedToTarget) {
                this._target.removeEventListener("MSWebViewScriptNotify", this._scriptNotifyHandler);
                this._target.removeEventListener("MSWebViewPermissionRequested", this._permissionRequestedHandler);
                this._connectedToTarget = false;
            }
        }
        connectToWebView() {
            if (!this._connectedToTarget) {
                this._target.addEventListener("MSWebViewScriptNotify", this._scriptNotifyHandler);
                this._target.addEventListener("MSWebViewPermissionRequested", this._permissionRequestedHandler);
                this._connectedToTarget = true;
            }
        }
    }
    CloudExperienceHost.Bridge = Bridge;
})(CloudExperienceHost || (CloudExperienceHost = {}));
if ((typeof define === "function") && define.amd) {
    define(function () {
        return new CloudExperienceHost.Bridge();
    });
}

Anon7 - 2021