| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Windows/SystemApps/Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy/js/ |
Upload File : |
"use strict";
var CloudExperienceHost;
(function (CloudExperienceHost) {
var Context = (function () {
function Context() {
}
return Context;
})();
CloudExperienceHost.Context = Context;
var Navigator = (function () {
function Navigator(view, contractHandler) {
this._listeners = new Object;
this._view = view;
this._contractHandler = contractHandler;
this._view.addEventListener("MSWebViewNavigationCompleted", this._navigationCompleted.bind(this));
}
Navigator.prototype._fireEvent = function (errorName, e) {
var listeners = this._listeners[errorName];
if (listeners) {
listeners.map(function (listener) {
listener.call(this, e);
}.bind(this));
}
};
Navigator.prototype._fireErrorEvent = function (e) {
this._fireEvent("Error", e);
};
Navigator.prototype._isServerOffline = function (webErrorStatus) {
var isServerOffline = false;
switch (webErrorStatus) {
case Windows.Web.WebErrorStatus.httpVersionNotSupported:
case Windows.Web.WebErrorStatus.gone:
case Windows.Web.WebErrorStatus.notFound:
case Windows.Web.WebErrorStatus.notImplemented:
case Windows.Web.WebErrorStatus.requestTimeout:
case Windows.Web.WebErrorStatus.serverUnreachable:
case Windows.Web.WebErrorStatus.serviceUnavailable:
case Windows.Web.WebErrorStatus.timeout:
isServerOffline = true;
break;
default:
isServerOffline = false;
break;
}
return isServerOffline;
};
Navigator.prototype._navigationCompleted = function (e) {
if (e.isSuccess === true) {
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().logEvent("NavigationSucceed", JSON.stringify({
webErrorStatus: e.webErrorStatus,
uri: CloudExperienceHost.UriHelper.RemovePIIFromUri(e.uri)
}));
this._fireEvent("NavigationCompleted", this._currentNode);
}
else {
var hasInternetAccess = CloudExperienceHost.Environment.hasInternetAccess();
var isServerOffline = this._isServerOffline(e.webErrorStatus);
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().logEvent("NavigationFailed", JSON.stringify({
webErrorStatus: e.webErrorStatus,
uri: CloudExperienceHost.UriHelper.RemovePIIFromUri(e.uri),
hasInternetAccess: hasInternetAccess,
isServerOffline: isServerOffline
}));
if (!hasInternetAccess || isServerOffline) {
var offlineID = this._currentNode.offlineID;
if (offlineID) {
this._currentNode = this._navMesh.getNode(offlineID);
if (this._currentNode) {
this._navigateToCurrentNode().done();
return;
}
}
}
this._fireErrorEvent(new CloudExperienceHost.NavigationError(e.webErrorStatus, e.uri, this._currentNode));
}
};
Navigator.prototype._getEncoding = function () {
var encoding = Windows.Storage.Streams.UnicodeEncoding.utf8;
if (this._currentNode.encoding) {
switch (this._currentNode.encoding.toLowerCase()) {
case "utf8":
encoding = Windows.Storage.Streams.UnicodeEncoding.utf8;
break;
case "utf16le":
encoding = Windows.Storage.Streams.UnicodeEncoding.utf16LE;
break;
case "utf16be":
encoding = Windows.Storage.Streams.UnicodeEncoding.utf16BE;
break;
default:
encoding = Windows.Storage.Streams.UnicodeEncoding.utf8;
break;
}
}
return encoding;
};
Navigator.prototype._createHttpRequestMessage = function (httpMethod, url, queryString) {
var qs = "";
if (queryString) {
if (url.indexOf('?') === -1) {
qs = '?';
}
else {
qs = '&';
}
qs = qs + queryString;
}
var uri = new Windows.Foundation.Uri(url + qs);
return new Windows.Web.Http.HttpRequestMessage(httpMethod, uri);
};
Navigator.prototype._getQueryString = function () {
return new WinJS.Promise(function (completeDispatch, errorDispatch ) {
if (this._currentNode.queryStringBuilder) {
this._contractHandler.invokeFromString(this._currentNode.url, this._currentNode.queryStringBuilder, null).then(function (result) {
completeDispatch(result);
}.bind(this), errorDispatch.bind(this));
}
else {
completeDispatch(null);
}
}.bind(this));
};
Navigator.prototype._appendCustomHeaders = function (httpRequestMessage) {
httpRequestMessage.headers.append("hostApp", "CloudExperienceHost");
httpRequestMessage.headers.append("cxh-hostAppVersion", CloudExperienceHost.getVersion());
httpRequestMessage.headers.append("cxh-osVersionInfo", JSON.stringify(CloudExperienceHostAPI.Environment.osVersionInfo));
httpRequestMessage.headers.append("cxh-osPlatform", CloudExperienceHost.Environment.getPlatform());
httpRequestMessage.headers.append("cxh-preferredLanguage", CloudExperienceHost.Globalization.Language.getPreferredLang());
httpRequestMessage.headers.append("cxh-isRTL", (CloudExperienceHost.Globalization.Language.getReadingDirection() === "rtl").toString());
httpRequestMessage.headers.append("cxh-cxid", this._currentNode.cxid);
if (CloudExperienceHost.Environment.getPlatform() === CloudExperienceHost.TargetPlatform.DESKTOP) {
var themeColors = CloudExperienceHost.Styling.getThemeColors();
var cxhColors = "";
Object.keys(themeColors).forEach(function (colorKey) {
cxhColors += colorKey + "=" + themeColors[colorKey] + ";";
});
httpRequestMessage.headers.append("cxh-colors", cxhColors);
}
var context = CloudExperienceHost.getContext();
for (var key in context) {
if (context[key]) {
httpRequestMessage.headers.append("cxh-" + key, context[key]);
}
}
if (CloudExperienceHost.Telemetry.WebAppTelemetry != null) {
httpRequestMessage.headers.append("client-request-id", CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().getId());
httpRequestMessage.headers.append("cxh-correlationId", CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().getId());
}
};
Navigator.prototype._addDataToRequest = function (httpRequestMessage, key, value) {
if (httpRequestMessage.method === Windows.Web.Http.HttpMethod.get) {
if (!key) {
throw new CloudExperienceHost.InvalidArgumentError("key cannot be empty for GET request");
}
httpRequestMessage.headers.append(key, value);
}
else {
var content = !!key ? (key + "=" + value) : value;
var contentType = this._currentNode.contentType || "application/x-www-form-urlencoded";
httpRequestMessage.content = new Windows.Web.Http.HttpStringContent(content, this._getEncoding(), contentType);
}
};
Navigator.prototype._initializeRequest = function (httpRequestMessage) {
return new WinJS.Promise(function (completeDispatch, errorDispatch ) {
this._appendCustomHeaders(httpRequestMessage);
if (this._currentNode.initialize) {
this._contractHandler.invokeFromString(this._currentNode.url, this._currentNode.initialize.getData, null).then(function (result) {
this._addDataToRequest(httpRequestMessage, this._currentNode.initialize.key, result);
completeDispatch(httpRequestMessage);
}.bind(this), errorDispatch.bind(this));
}
else {
completeDispatch(httpRequestMessage);
}
}.bind(this));
};
Navigator.prototype._navigateToCurrentNode = function () {
return new WinJS.Promise(function (completeDispatch, errorDispatch ) {
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().start(this._currentNode.cxid);
this._fireEvent("NavigationStarting", this._currentNode);
this._nextNode = null;
this._getQueryString()
.then(function (qs) {
var httpMethod = ((this._currentNode.httpMethod === 'post') ? Windows.Web.Http.HttpMethod.post : Windows.Web.Http.HttpMethod.get);
return this._createHttpRequestMessage(httpMethod, this._currentNode.url, qs);
}.bind(this), errorDispatch.bind(this))
.then(function (httpRequestMessage) {
return this._initializeRequest(httpRequestMessage);
}.bind(this), errorDispatch.bind(this))
.then(function (httpRequestMessage) {
var allowlist = [
'requestUri',
'method',
'headers',
'cxh-osVersionInfo',
'platformId',
'majorVersion',
'minorVersion',
'buildNumber',
'hostapp',
'client-request-id',
'cxh-protocol',
'cxh-cxid',
'cxh-preferredLanguage',
'cxh-correlationId',
'cxh-osPlatform',
'cxh-platform',
'cxh-isRTL',
'cxh-colors',
'cxh-host',
'cxh-hostAppVersion'
];
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().logEvent("NavigationStarted", JSON.stringify({
requestUri: httpRequestMessage.requestUri, method: httpRequestMessage.method, headers: httpRequestMessage.headers
}, allowlist));
this._view.navigateWithHttpRequestMessage(httpRequestMessage);
completeDispatch();
}.bind(this), errorDispatch.bind(this));
}.bind(this));
};
Navigator.prototype._getNext = function (appResult) {
var node;
if (this._currentNode) {
switch (appResult) {
case CloudExperienceHost.AppResult.success:
node = this._navMesh.getNode(this._currentNode.successID);
break;
case CloudExperienceHost.AppResult.cancel:
node = this._navMesh.getNode(this._currentNode.cancelID);
break;
case CloudExperienceHost.AppResult.abort:
node = this._navMesh.getNode(this._currentNode.abortID);
break;
case CloudExperienceHost.AppResult.action1:
node = this._navMesh.getNode(this._currentNode.action1ID);
break;
case CloudExperienceHost.AppResult.action2:
node = this._navMesh.getNode(this._currentNode.action2ID);
break;
case CloudExperienceHost.AppResult.action3:
node = this._navMesh.getNode(this._currentNode.action3ID);
break;
default:
node = this._navMesh.getNode(this._currentNode.failID);
break;
}
}
return node;
};
Navigator.prototype.addEventListener = function (type, listener) {
if (!this._listeners.hasOwnProperty(type)) {
this._listeners[type] = new Array();
}
this._listeners[type].push(listener);
};
Navigator.prototype.navigate = function (navMesh, cxid) {
this._navMesh = navMesh;
if (cxid) {
this._currentNode = this._navMesh.getNode(cxid);
}
else {
this._currentNode = this._navMesh.getStart();
}
return this._navigateToCurrentNode();
};
Navigator.prototype.redirect = function (e) {
var httpMethod = (e.httpMethod.toUpperCase() === "POST") ? Windows.Web.Http.HttpMethod.post : Windows.Web.Http.HttpMethod.get;
var httpRequestMessage = this._createHttpRequestMessage(httpMethod, e.url, null);
this._appendCustomHeaders(httpRequestMessage);
if (e.value) {
this._addDataToRequest(httpRequestMessage, e.key, e.value);
}
this._view.navigateWithHttpRequestMessage(httpRequestMessage);
};
Navigator.prototype.goBack = function () {
if (this._currentNode) {
var backNode = this._navMesh.getNode(this._currentNode.backID);
if (backNode) {
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().stop(CloudExperienceHost.AppResult.cancel);
this._currentNode = backNode;
}
this._navigateToCurrentNode().done();
}
};
Navigator.prototype.goNext = function () {
this._currentNode = this._nextNode;
if (this._currentNode) {
this._navigateToCurrentNode().done();
}
};
Navigator.prototype.loadIdentityProvider = function (signInIdentityProvider) {
var id;
switch (signInIdentityProvider) {
case CloudExperienceHost.SignInIdentityProviders.Local:
id = 'LOCAL';
break;
case CloudExperienceHost.SignInIdentityProviders.MSA:
id = 'MSA';
break;
case CloudExperienceHost.SignInIdentityProviders.AAD:
id = 'AAD';
break;
default:
throw new CloudExperienceHost.InvalidArgumentError(signInIdentityProvider);
break;
}
var provider = this._navMesh.getNode(id);
if (provider) {
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().stop(CloudExperienceHost.AppResult.abort);
this._currentNode = provider;
this._navigateToCurrentNode().done();
}
else {
throw new CloudExperienceHost.NodeNotFoundError(signInIdentityProvider);
}
};
Navigator.prototype.getNavMesh = function () {
return this._navMesh;
};
Navigator.prototype.webAppDone = function (appResult) {
CloudExperienceHost.Telemetry.WebAppTelemetry.getInstance().stop(appResult);
this._nextNode = this._getNext(appResult);
return (this._nextNode ? true : false);
};
return Navigator;
})();
CloudExperienceHost.Navigator = Navigator;
})(CloudExperienceHost || (CloudExperienceHost = {}));