diff --git a/PlayFabSdk/package.json b/PlayFabSdk/package.json
index 62571259..2f9b1616 100644
--- a/PlayFabSdk/package.json
+++ b/PlayFabSdk/package.json
@@ -1,6 +1,6 @@
{
"name": "playfab-web-sdk",
- "version": "1.176.240802",
+ "version": "1.177.240809",
"description": "Playfab SDK for JS client applications",
"license": "Apache-2.0",
"repository": {
diff --git a/PlayFabSdk/src/PlayFab/PlayFabAddonApi.js b/PlayFabSdk/src/PlayFab/PlayFabAddonApi.js
new file mode 100644
index 00000000..bc373562
--- /dev/null
+++ b/PlayFabSdk/src/PlayFab/PlayFabAddonApi.js
@@ -0,0 +1,355 @@
+///
+
+var PlayFab = typeof PlayFab != "undefined" ? PlayFab : {};
+
+if(!PlayFab.settings) {
+ PlayFab.settings = {
+ titleId: null, // You must set this value for PlayFabSdk to work properly (Found in the Game Manager for your title, at the PlayFab Website)
+ developerSecretKey: null, // For security reasons you must never expose this value to the client or players - You must set this value for Server-APIs to work properly (Found in the Game Manager for your title, at the PlayFab Website)
+ GlobalHeaderInjection: null,
+ productionServerUrl: ".playfabapi.com"
+ }
+}
+
+if(!PlayFab._internalSettings) {
+ PlayFab._internalSettings = {
+ entityToken: null,
+ sdkVersion: "1.177.240809",
+ requestGetParams: {
+ sdk: "JavaScriptSDK-1.177.240809"
+ },
+ sessionTicket: null,
+ verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
+ errorTitleId: "Must be have PlayFab.settings.titleId set to call this method",
+ errorLoggedIn: "Must be logged in to call this method",
+ errorEntityToken: "You must successfully call GetEntityToken before calling this",
+ errorSecretKey: "Must have PlayFab.settings.developerSecretKey set to call this method",
+
+ GetServerUrl: function () {
+ if (!(PlayFab.settings.productionServerUrl.substring(0, 4) === "http")) {
+ if (PlayFab._internalSettings.verticalName) {
+ return "https://" + PlayFab._internalSettings.verticalName + PlayFab.settings.productionServerUrl;
+ } else {
+ return "https://" + PlayFab.settings.titleId + PlayFab.settings.productionServerUrl;
+ }
+ } else {
+ return PlayFab.settings.productionServerUrl;
+ }
+ },
+
+ InjectHeaders: function (xhr, headersObj) {
+ if (!headersObj)
+ return;
+
+ for (var headerKey in headersObj)
+ {
+ try {
+ xhr.setRequestHeader(gHeaderKey, headersObj[headerKey]);
+ } catch (e) {
+ console.log("Failed to append header: " + headerKey + " = " + headersObj[headerKey] + "Error: " + e);
+ }
+ }
+ },
+
+ ExecuteRequest: function (url, request, authkey, authValue, callback, customData, extraHeaders) {
+ var resultPromise = new Promise(function (resolve, reject) {
+ if (callback != null && typeof (callback) !== "function")
+ throw "Callback must be null or a function";
+
+ if (request == null)
+ request = {};
+
+ var startTime = new Date();
+ var requestBody = JSON.stringify(request);
+
+ var urlArr = [url];
+ var getParams = PlayFab._internalSettings.requestGetParams;
+ if (getParams != null) {
+ var firstParam = true;
+ for (var key in getParams) {
+ if (firstParam) {
+ urlArr.push("?");
+ firstParam = false;
+ } else {
+ urlArr.push("&");
+ }
+ urlArr.push(key);
+ urlArr.push("=");
+ urlArr.push(getParams[key]);
+ }
+ }
+
+ var completeUrl = urlArr.join("");
+
+ var xhr = new XMLHttpRequest();
+ // window.console.log("URL: " + completeUrl);
+ xhr.open("POST", completeUrl, true);
+
+ xhr.setRequestHeader("Content-Type", "application/json");
+ xhr.setRequestHeader("X-PlayFabSDK", "JavaScriptSDK-" + PlayFab._internalSettings.sdkVersion);
+ if (authkey != null)
+ xhr.setRequestHeader(authkey, authValue);
+ PlayFab._internalSettings.InjectHeaders(xhr, PlayFab.settings.GlobalHeaderInjection);
+ PlayFab._internalSettings.InjectHeaders(xhr, extraHeaders);
+
+ xhr.onloadend = function () {
+ if (callback == null)
+ return;
+
+ var result = PlayFab._internalSettings.GetPlayFabResponse(request, xhr, startTime, customData);
+ if (result.code === 200) {
+ callback(result, null);
+ } else {
+ callback(null, result);
+ }
+ }
+
+ xhr.onerror = function () {
+ if (callback == null)
+ return;
+
+ var result = PlayFab._internalSettings.GetPlayFabResponse(request, xhr, startTime, customData);
+ callback(null, result);
+ }
+
+ xhr.send(requestBody);
+ xhr.onreadystatechange = function () {
+ if (this.readyState === 4) {
+ var xhrResult = PlayFab._internalSettings.GetPlayFabResponse(request, this, startTime, customData);
+ if (this.status === 200) {
+ resolve(xhrResult);
+ } else {
+ reject(xhrResult);
+ }
+ }
+ };
+ });
+ // Return a Promise so that calls to various API methods can be handled asynchronously
+ return resultPromise;
+ },
+
+ GetPlayFabResponse: function(request, xhr, startTime, customData) {
+ var result = null;
+ try {
+ // window.console.log("parsing json result: " + xhr.responseText);
+ result = JSON.parse(xhr.responseText);
+ } catch (e) {
+ result = {
+ code: 503, // Service Unavailable
+ status: "Service Unavailable",
+ error: "Connection error",
+ errorCode: 2, // PlayFabErrorCode.ConnectionError
+ errorMessage: xhr.responseText
+ };
+ }
+
+ result.CallBackTimeMS = new Date() - startTime;
+ result.Request = request;
+ result.CustomData = customData;
+ return result;
+ },
+
+ authenticationContext: {
+ PlayFabId: null,
+ EntityId: null,
+ EntityType: null,
+ SessionTicket: null,
+ EntityToken: null
+ },
+
+ UpdateAuthenticationContext: function (authenticationContext, result) {
+ var authenticationContextUpdates = {};
+ if(result.data.PlayFabId !== null) {
+ PlayFab._internalSettings.authenticationContext.PlayFabId = result.data.PlayFabId;
+ authenticationContextUpdates.PlayFabId = result.data.PlayFabId;
+ }
+ if(result.data.SessionTicket !== null) {
+ PlayFab._internalSettings.authenticationContext.SessionTicket = result.data.SessionTicket;
+ authenticationContextUpdates.SessionTicket = result.data.SessionTicket;
+ }
+ if (result.data.EntityToken !== null) {
+ PlayFab._internalSettings.authenticationContext.EntityId = result.data.EntityToken.Entity.Id;
+ authenticationContextUpdates.EntityId = result.data.EntityToken.Entity.Id;
+ PlayFab._internalSettings.authenticationContext.EntityType = result.data.EntityToken.Entity.Type;
+ authenticationContextUpdates.EntityType = result.data.EntityToken.Entity.Type;
+ PlayFab._internalSettings.authenticationContext.EntityToken = result.data.EntityToken.EntityToken;
+ authenticationContextUpdates.EntityToken = result.data.EntityToken.EntityToken;
+ }
+ // Update the authenticationContext with values from the result
+ authenticationContext = Object.assign(authenticationContext, authenticationContextUpdates);
+ return authenticationContext;
+ },
+
+ AuthInfoMap: {
+ "X-EntityToken": {
+ authAttr: "entityToken",
+ authError: "errorEntityToken"
+ },
+ "X-Authorization": {
+ authAttr: "sessionTicket",
+ authError: "errorLoggedIn"
+ },
+ "X-SecretKey": {
+ authAttr: "developerSecretKey",
+ authError: "errorSecretKey"
+ }
+ },
+
+ GetAuthInfo: function (request, authKey) {
+ // Use the most-recently saved authKey, unless one was provided in the request via the AuthenticationContext
+ var authError = PlayFab._internalSettings.AuthInfoMap[authKey].authError;
+ var authAttr = PlayFab._internalSettings.AuthInfoMap[authKey].authAttr;
+ var defaultAuthValue = null;
+ if (authAttr === "entityToken")
+ defaultAuthValue = PlayFab._internalSettings.entityToken;
+ else if (authAttr === "sessionTicket")
+ defaultAuthValue = PlayFab._internalSettings.sessionTicket;
+ else if (authAttr === "developerSecretKey")
+ defaultAuthValue = PlayFab.settings.developerSecretKey;
+ var authValue = request.AuthenticationContext ? request.AuthenticationContext[authAttr] : defaultAuthValue;
+ return {"authKey": authKey, "authValue": authValue, "authError": authError};
+ },
+
+ ExecuteRequestWrapper: function (apiURL, request, authKey, callback, customData, extraHeaders) {
+ var authValue = null;
+ if (authKey !== null){
+ var authInfo = PlayFab._internalSettings.GetAuthInfo(request, authKey=authKey);
+ var authKey = authInfo.authKey, authValue = authInfo.authValue, authError = authInfo.authError;
+
+ if (!authValue) throw authError;
+ }
+ return PlayFab._internalSettings.ExecuteRequest(PlayFab._internalSettings.GetServerUrl() + apiURL, request, authKey, authValue, callback, customData, extraHeaders);
+ }
+ }
+}
+
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
+PlayFab.GenerateErrorReport = function (error) {
+ if (error == null)
+ return "";
+ var fullErrors = error.errorMessage;
+ for (var paramName in error.errorDetails)
+ for (var msgIdx in error.errorDetails[paramName])
+ fullErrors += "\n" + paramName + ": " + error.errorDetails[paramName][msgIdx];
+ return fullErrors;
+};
+
+PlayFab.AddonApi = {
+ ForgetAllCredentials: function () {
+ PlayFab._internalSettings.sessionTicket = null;
+ PlayFab._internalSettings.entityToken = null;
+ },
+
+ CreateOrUpdateApple: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateApple", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateFacebook: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateFacebook", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateFacebookInstantGames: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateFacebookInstantGames", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateGoogle: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateGoogle", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateKongregate: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateKongregate", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateNintendo: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateNintendo", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdatePSN: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdatePSN", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateSteam: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateSteam", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateOrUpdateTwitch: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/CreateOrUpdateTwitch", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteApple: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteApple", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteFacebook: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteFacebook", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteFacebookInstantGames: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteFacebookInstantGames", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteGoogle: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteGoogle", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteKongregate: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteKongregate", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteNintendo: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteNintendo", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeletePSN: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeletePSN", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteSteam: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteSteam", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteTwitch: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/DeleteTwitch", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetApple: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetApple", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetFacebook: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetFacebook", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetFacebookInstantGames: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetFacebookInstantGames", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetGoogle: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetGoogle", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetKongregate: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetKongregate", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetNintendo: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetNintendo", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetPSN: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetPSN", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetSteam: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetSteam", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetTwitch: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Addon/GetTwitch", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+};
+
+var PlayFabAddonSDK = PlayFab.AddonApi;
+
diff --git a/PlayFabSdk/src/PlayFab/PlayFabAdminApi.js b/PlayFabSdk/src/PlayFab/PlayFabAdminApi.js
index 2085abfc..950c7d8c 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabAdminApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabAdminApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabAuthenticationApi.js b/PlayFabSdk/src/PlayFab/PlayFabAuthenticationApi.js
index 114bf710..3bfb077f 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabAuthenticationApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabAuthenticationApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabClientApi.js b/PlayFabSdk/src/PlayFab/PlayFabClientApi.js
index b3bc6c4a..0479a2b9 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabClientApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabClientApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabCloudScriptApi.js b/PlayFabSdk/src/PlayFab/PlayFabCloudScriptApi.js
index e9d19a2c..e1703acc 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabCloudScriptApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabCloudScriptApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabDataApi.js b/PlayFabSdk/src/PlayFab/PlayFabDataApi.js
index f75a22b0..c02499e1 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabDataApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabDataApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabEconomyApi.js b/PlayFabSdk/src/PlayFab/PlayFabEconomyApi.js
index cef1a5c3..ed27ed4c 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabEconomyApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabEconomyApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabEventsApi.js b/PlayFabSdk/src/PlayFab/PlayFabEventsApi.js
index 775507b9..3a5c9c1b 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabEventsApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabEventsApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabExperimentationApi.js b/PlayFabSdk/src/PlayFab/PlayFabExperimentationApi.js
index 1b83781e..e4196908 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabExperimentationApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabExperimentationApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabGroupsApi.js b/PlayFabSdk/src/PlayFab/PlayFabGroupsApi.js
index a3dc3c03..58d41002 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabGroupsApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabGroupsApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabInsightsApi.js b/PlayFabSdk/src/PlayFab/PlayFabInsightsApi.js
index ffed01c1..968c9cf8 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabInsightsApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabInsightsApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabLocalizationApi.js b/PlayFabSdk/src/PlayFab/PlayFabLocalizationApi.js
index 83b82e4f..2745ff78 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabLocalizationApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabLocalizationApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabMatchmakerApi.js b/PlayFabSdk/src/PlayFab/PlayFabMatchmakerApi.js
index 9e92192f..aa4fe5bd 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabMatchmakerApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabMatchmakerApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.154.230915",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.154.230915"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_114";
-PlayFab.sdkVersion = "1.154.230915";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabMultiplayerApi.js b/PlayFabSdk/src/PlayFab/PlayFabMultiplayerApi.js
index 9c590960..e6301bff 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabMultiplayerApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabMultiplayerApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabProfilesApi.js b/PlayFabSdk/src/PlayFab/PlayFabProfilesApi.js
index 6451bc46..021bed29 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabProfilesApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabProfilesApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/PlayFab/PlayFabProgressionApi.js b/PlayFabSdk/src/PlayFab/PlayFabProgressionApi.js
new file mode 100644
index 00000000..26517081
--- /dev/null
+++ b/PlayFabSdk/src/PlayFab/PlayFabProgressionApi.js
@@ -0,0 +1,335 @@
+///
+
+var PlayFab = typeof PlayFab != "undefined" ? PlayFab : {};
+
+if(!PlayFab.settings) {
+ PlayFab.settings = {
+ titleId: null, // You must set this value for PlayFabSdk to work properly (Found in the Game Manager for your title, at the PlayFab Website)
+ developerSecretKey: null, // For security reasons you must never expose this value to the client or players - You must set this value for Server-APIs to work properly (Found in the Game Manager for your title, at the PlayFab Website)
+ GlobalHeaderInjection: null,
+ productionServerUrl: ".playfabapi.com"
+ }
+}
+
+if(!PlayFab._internalSettings) {
+ PlayFab._internalSettings = {
+ entityToken: null,
+ sdkVersion: "1.177.240809",
+ requestGetParams: {
+ sdk: "JavaScriptSDK-1.177.240809"
+ },
+ sessionTicket: null,
+ verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
+ errorTitleId: "Must be have PlayFab.settings.titleId set to call this method",
+ errorLoggedIn: "Must be logged in to call this method",
+ errorEntityToken: "You must successfully call GetEntityToken before calling this",
+ errorSecretKey: "Must have PlayFab.settings.developerSecretKey set to call this method",
+
+ GetServerUrl: function () {
+ if (!(PlayFab.settings.productionServerUrl.substring(0, 4) === "http")) {
+ if (PlayFab._internalSettings.verticalName) {
+ return "https://" + PlayFab._internalSettings.verticalName + PlayFab.settings.productionServerUrl;
+ } else {
+ return "https://" + PlayFab.settings.titleId + PlayFab.settings.productionServerUrl;
+ }
+ } else {
+ return PlayFab.settings.productionServerUrl;
+ }
+ },
+
+ InjectHeaders: function (xhr, headersObj) {
+ if (!headersObj)
+ return;
+
+ for (var headerKey in headersObj)
+ {
+ try {
+ xhr.setRequestHeader(gHeaderKey, headersObj[headerKey]);
+ } catch (e) {
+ console.log("Failed to append header: " + headerKey + " = " + headersObj[headerKey] + "Error: " + e);
+ }
+ }
+ },
+
+ ExecuteRequest: function (url, request, authkey, authValue, callback, customData, extraHeaders) {
+ var resultPromise = new Promise(function (resolve, reject) {
+ if (callback != null && typeof (callback) !== "function")
+ throw "Callback must be null or a function";
+
+ if (request == null)
+ request = {};
+
+ var startTime = new Date();
+ var requestBody = JSON.stringify(request);
+
+ var urlArr = [url];
+ var getParams = PlayFab._internalSettings.requestGetParams;
+ if (getParams != null) {
+ var firstParam = true;
+ for (var key in getParams) {
+ if (firstParam) {
+ urlArr.push("?");
+ firstParam = false;
+ } else {
+ urlArr.push("&");
+ }
+ urlArr.push(key);
+ urlArr.push("=");
+ urlArr.push(getParams[key]);
+ }
+ }
+
+ var completeUrl = urlArr.join("");
+
+ var xhr = new XMLHttpRequest();
+ // window.console.log("URL: " + completeUrl);
+ xhr.open("POST", completeUrl, true);
+
+ xhr.setRequestHeader("Content-Type", "application/json");
+ xhr.setRequestHeader("X-PlayFabSDK", "JavaScriptSDK-" + PlayFab._internalSettings.sdkVersion);
+ if (authkey != null)
+ xhr.setRequestHeader(authkey, authValue);
+ PlayFab._internalSettings.InjectHeaders(xhr, PlayFab.settings.GlobalHeaderInjection);
+ PlayFab._internalSettings.InjectHeaders(xhr, extraHeaders);
+
+ xhr.onloadend = function () {
+ if (callback == null)
+ return;
+
+ var result = PlayFab._internalSettings.GetPlayFabResponse(request, xhr, startTime, customData);
+ if (result.code === 200) {
+ callback(result, null);
+ } else {
+ callback(null, result);
+ }
+ }
+
+ xhr.onerror = function () {
+ if (callback == null)
+ return;
+
+ var result = PlayFab._internalSettings.GetPlayFabResponse(request, xhr, startTime, customData);
+ callback(null, result);
+ }
+
+ xhr.send(requestBody);
+ xhr.onreadystatechange = function () {
+ if (this.readyState === 4) {
+ var xhrResult = PlayFab._internalSettings.GetPlayFabResponse(request, this, startTime, customData);
+ if (this.status === 200) {
+ resolve(xhrResult);
+ } else {
+ reject(xhrResult);
+ }
+ }
+ };
+ });
+ // Return a Promise so that calls to various API methods can be handled asynchronously
+ return resultPromise;
+ },
+
+ GetPlayFabResponse: function(request, xhr, startTime, customData) {
+ var result = null;
+ try {
+ // window.console.log("parsing json result: " + xhr.responseText);
+ result = JSON.parse(xhr.responseText);
+ } catch (e) {
+ result = {
+ code: 503, // Service Unavailable
+ status: "Service Unavailable",
+ error: "Connection error",
+ errorCode: 2, // PlayFabErrorCode.ConnectionError
+ errorMessage: xhr.responseText
+ };
+ }
+
+ result.CallBackTimeMS = new Date() - startTime;
+ result.Request = request;
+ result.CustomData = customData;
+ return result;
+ },
+
+ authenticationContext: {
+ PlayFabId: null,
+ EntityId: null,
+ EntityType: null,
+ SessionTicket: null,
+ EntityToken: null
+ },
+
+ UpdateAuthenticationContext: function (authenticationContext, result) {
+ var authenticationContextUpdates = {};
+ if(result.data.PlayFabId !== null) {
+ PlayFab._internalSettings.authenticationContext.PlayFabId = result.data.PlayFabId;
+ authenticationContextUpdates.PlayFabId = result.data.PlayFabId;
+ }
+ if(result.data.SessionTicket !== null) {
+ PlayFab._internalSettings.authenticationContext.SessionTicket = result.data.SessionTicket;
+ authenticationContextUpdates.SessionTicket = result.data.SessionTicket;
+ }
+ if (result.data.EntityToken !== null) {
+ PlayFab._internalSettings.authenticationContext.EntityId = result.data.EntityToken.Entity.Id;
+ authenticationContextUpdates.EntityId = result.data.EntityToken.Entity.Id;
+ PlayFab._internalSettings.authenticationContext.EntityType = result.data.EntityToken.Entity.Type;
+ authenticationContextUpdates.EntityType = result.data.EntityToken.Entity.Type;
+ PlayFab._internalSettings.authenticationContext.EntityToken = result.data.EntityToken.EntityToken;
+ authenticationContextUpdates.EntityToken = result.data.EntityToken.EntityToken;
+ }
+ // Update the authenticationContext with values from the result
+ authenticationContext = Object.assign(authenticationContext, authenticationContextUpdates);
+ return authenticationContext;
+ },
+
+ AuthInfoMap: {
+ "X-EntityToken": {
+ authAttr: "entityToken",
+ authError: "errorEntityToken"
+ },
+ "X-Authorization": {
+ authAttr: "sessionTicket",
+ authError: "errorLoggedIn"
+ },
+ "X-SecretKey": {
+ authAttr: "developerSecretKey",
+ authError: "errorSecretKey"
+ }
+ },
+
+ GetAuthInfo: function (request, authKey) {
+ // Use the most-recently saved authKey, unless one was provided in the request via the AuthenticationContext
+ var authError = PlayFab._internalSettings.AuthInfoMap[authKey].authError;
+ var authAttr = PlayFab._internalSettings.AuthInfoMap[authKey].authAttr;
+ var defaultAuthValue = null;
+ if (authAttr === "entityToken")
+ defaultAuthValue = PlayFab._internalSettings.entityToken;
+ else if (authAttr === "sessionTicket")
+ defaultAuthValue = PlayFab._internalSettings.sessionTicket;
+ else if (authAttr === "developerSecretKey")
+ defaultAuthValue = PlayFab.settings.developerSecretKey;
+ var authValue = request.AuthenticationContext ? request.AuthenticationContext[authAttr] : defaultAuthValue;
+ return {"authKey": authKey, "authValue": authValue, "authError": authError};
+ },
+
+ ExecuteRequestWrapper: function (apiURL, request, authKey, callback, customData, extraHeaders) {
+ var authValue = null;
+ if (authKey !== null){
+ var authInfo = PlayFab._internalSettings.GetAuthInfo(request, authKey=authKey);
+ var authKey = authInfo.authKey, authValue = authInfo.authValue, authError = authInfo.authError;
+
+ if (!authValue) throw authError;
+ }
+ return PlayFab._internalSettings.ExecuteRequest(PlayFab._internalSettings.GetServerUrl() + apiURL, request, authKey, authValue, callback, customData, extraHeaders);
+ }
+ }
+}
+
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
+PlayFab.GenerateErrorReport = function (error) {
+ if (error == null)
+ return "";
+ var fullErrors = error.errorMessage;
+ for (var paramName in error.errorDetails)
+ for (var msgIdx in error.errorDetails[paramName])
+ fullErrors += "\n" + paramName + ": " + error.errorDetails[paramName][msgIdx];
+ return fullErrors;
+};
+
+PlayFab.ProgressionApi = {
+ ForgetAllCredentials: function () {
+ PlayFab._internalSettings.sessionTicket = null;
+ PlayFab._internalSettings.entityToken = null;
+ },
+
+ CreateLeaderboardDefinition: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/CreateLeaderboardDefinition", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ CreateStatisticDefinition: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/CreateStatisticDefinition", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteLeaderboardDefinition: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/DeleteLeaderboardDefinition", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteLeaderboardEntries: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/DeleteLeaderboardEntries", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteStatisticDefinition: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/DeleteStatisticDefinition", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ DeleteStatistics: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/DeleteStatistics", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetFriendLeaderboardForEntity: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/GetFriendLeaderboardForEntity", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetLeaderboard: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/GetLeaderboard", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetLeaderboardAroundEntity: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/GetLeaderboardAroundEntity", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetLeaderboardDefinition: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/GetLeaderboardDefinition", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetLeaderboardForEntities: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/GetLeaderboardForEntities", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetStatisticDefinition: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/GetStatisticDefinition", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetStatisticDefinitions: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/GetStatisticDefinitions", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetStatistics: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/GetStatistics", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ GetStatisticsForEntities: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/GetStatisticsForEntities", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ IncrementLeaderboardVersion: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/IncrementLeaderboardVersion", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ IncrementStatisticVersion: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/IncrementStatisticVersion", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ ListLeaderboardDefinitions: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/ListLeaderboardDefinitions", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ ListStatisticDefinitions: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/ListStatisticDefinitions", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ UnlinkLeaderboardFromStatistic: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/UnlinkLeaderboardFromStatistic", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ UpdateLeaderboardEntries: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Leaderboard/UpdateLeaderboardEntries", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+ UpdateStatistics: function (request, callback, customData, extraHeaders) {
+ return PlayFab._internalSettings.ExecuteRequestWrapper("/Statistic/UpdateStatistics", request, "X-EntityToken", callback, customData, extraHeaders);
+ },
+
+};
+
+var PlayFabProgressionSDK = PlayFab.ProgressionApi;
+
diff --git a/PlayFabSdk/src/PlayFab/PlayFabServerApi.js b/PlayFabSdk/src/PlayFab/PlayFabServerApi.js
index e0d6024e..38670c0f 100644
--- a/PlayFabSdk/src/PlayFab/PlayFabServerApi.js
+++ b/PlayFabSdk/src/PlayFab/PlayFabServerApi.js
@@ -14,9 +14,9 @@ if(!PlayFab.settings) {
if(!PlayFab._internalSettings) {
PlayFab._internalSettings = {
entityToken: null,
- sdkVersion: "1.176.240802",
+ sdkVersion: "1.177.240809",
requestGetParams: {
- sdk: "JavaScriptSDK-1.176.240802"
+ sdk: "JavaScriptSDK-1.177.240809"
},
sessionTicket: null,
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -223,8 +223,8 @@ if(!PlayFab._internalSettings) {
}
}
-PlayFab.buildIdentifier = "adobuild_javascriptsdk_117";
-PlayFab.sdkVersion = "1.176.240802";
+PlayFab.buildIdentifier = "adobuild_javascriptsdk_8";
+PlayFab.sdkVersion = "1.177.240809";
PlayFab.GenerateErrorReport = function (error) {
if (error == null)
return "";
diff --git a/PlayFabSdk/src/Typings/PlayFab/PlayFabAddonApi.d.ts b/PlayFabSdk/src/Typings/PlayFab/PlayFabAddonApi.d.ts
new file mode 100644
index 00000000..3ad358a5
--- /dev/null
+++ b/PlayFabSdk/src/Typings/PlayFab/PlayFabAddonApi.d.ts
@@ -0,0 +1,642 @@
+///
+
+declare module PlayFabAddonModule {
+ export interface IPlayFabAddon {
+ ForgetAllCredentials(): void;
+
+ /**
+ * Creates the Apple addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdateapple
+ */
+ CreateOrUpdateApple(request: PlayFabAddonModels.CreateOrUpdateAppleRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Facebook addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatefacebook
+ */
+ CreateOrUpdateFacebook(request: PlayFabAddonModels.CreateOrUpdateFacebookRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Facebook Instant Games addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatefacebookinstantgames
+ */
+ CreateOrUpdateFacebookInstantGames(request: PlayFabAddonModels.CreateOrUpdateFacebookInstantGamesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Google addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdategoogle
+ */
+ CreateOrUpdateGoogle(request: PlayFabAddonModels.CreateOrUpdateGoogleRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Kongregate addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatekongregate
+ */
+ CreateOrUpdateKongregate(request: PlayFabAddonModels.CreateOrUpdateKongregateRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Nintendo addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatenintendo
+ */
+ CreateOrUpdateNintendo(request: PlayFabAddonModels.CreateOrUpdateNintendoRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the PSN addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatepsn
+ */
+ CreateOrUpdatePSN(request: PlayFabAddonModels.CreateOrUpdatePSNRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Steam addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatesteam
+ */
+ CreateOrUpdateSteam(request: PlayFabAddonModels.CreateOrUpdateSteamRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Creates the Twitch addon on a title, or updates it if it already exists.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/createorupdatetwitch
+ */
+ CreateOrUpdateTwitch(request: PlayFabAddonModels.CreateOrUpdateTwitchRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Apple addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deleteapple
+ */
+ DeleteApple(request: PlayFabAddonModels.DeleteAppleRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Facebook addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletefacebook
+ */
+ DeleteFacebook(request: PlayFabAddonModels.DeleteFacebookRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Facebook addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletefacebookinstantgames
+ */
+ DeleteFacebookInstantGames(request: PlayFabAddonModels.DeleteFacebookInstantGamesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Google addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletegoogle
+ */
+ DeleteGoogle(request: PlayFabAddonModels.DeleteGoogleRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Kongregate addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletekongregate
+ */
+ DeleteKongregate(request: PlayFabAddonModels.DeleteKongregateRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Nintendo addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletenintendo
+ */
+ DeleteNintendo(request: PlayFabAddonModels.DeleteNintendoRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the PSN addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletepsn
+ */
+ DeletePSN(request: PlayFabAddonModels.DeletePSNRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Steam addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletesteam
+ */
+ DeleteSteam(request: PlayFabAddonModels.DeleteSteamRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the Twitch addon on a title.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/deletetwitch
+ */
+ DeleteTwitch(request: PlayFabAddonModels.DeleteTwitchRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Apple addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getapple
+ */
+ GetApple(request: PlayFabAddonModels.GetAppleRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Facebook addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getfacebook
+ */
+ GetFacebook(request: PlayFabAddonModels.GetFacebookRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Facebook Instant Games addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getfacebookinstantgames
+ */
+ GetFacebookInstantGames(request: PlayFabAddonModels.GetFacebookInstantGamesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Google addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getgoogle
+ */
+ GetGoogle(request: PlayFabAddonModels.GetGoogleRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Kongregate addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getkongregate
+ */
+ GetKongregate(request: PlayFabAddonModels.GetKongregateRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Nintendo addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getnintendo
+ */
+ GetNintendo(request: PlayFabAddonModels.GetNintendoRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the PSN addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getpsn
+ */
+ GetPSN(request: PlayFabAddonModels.GetPSNRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Steam addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/getsteam
+ */
+ GetSteam(request: PlayFabAddonModels.GetSteamRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets information of the Twitch addon on a title, omits secrets.
+ * https://docs.microsoft.com/rest/api/playfab/addon/null/gettwitch
+ */
+ GetTwitch(request: PlayFabAddonModels.GetTwitchRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+
+ }
+}
+
+declare module PlayFabAddonModels {
+ export interface CreateOrUpdateAppleRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** iOS App Bundle ID obtained after setting up your app in the App Store. */
+ AppBundleId: string;
+ /** iOS App Shared Secret obtained after setting up your app in the App Store. */
+ AppSharedSecret?: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+ /**
+ * Ignore expiration date for identity tokens. Be aware that when set to true this can invalidate expired tokens in the
+ * case where Apple rotates their signing keys.
+ */
+ IgnoreExpirationDate?: boolean;
+ /** Require secure authentication only for this app. */
+ RequireSecureAuthentication?: boolean;
+
+ }
+
+ export interface CreateOrUpdateAppleResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateFacebookInstantGamesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Facebook App ID obtained after setting up your app in Facebook Instant Games. */
+ AppID: string;
+ /** Facebook App Secret obtained after setting up your app in Facebook Instant Games. */
+ AppSecret: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+
+ }
+
+ export interface CreateOrUpdateFacebookInstantGamesResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateFacebookRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Facebook App ID obtained after setting up your app in Facebook. */
+ AppID: string;
+ /** Facebook App Secret obtained after setting up your app in Facebook. */
+ AppSecret: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+ /** Email address for purchase dispute notifications. */
+ NotificationEmail: string;
+
+ }
+
+ export interface CreateOrUpdateFacebookResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateGoogleRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /**
+ * Google App License Key obtained after setting up your app in the Google Play developer portal. Required if using Google
+ * receipt validation.
+ */
+ AppLicenseKey?: string;
+ /**
+ * Google App Package ID obtained after setting up your app in the Google Play developer portal. Required if using Google
+ * receipt validation.
+ */
+ AppPackageID?: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+ /**
+ * Google OAuth Client ID obtained through the Google Developer Console by creating a new set of "OAuth Client ID".
+ * Required if using Google Authentication.
+ */
+ OAuthClientID?: string;
+ /**
+ * Google OAuth Client Secret obtained through the Google Developer Console by creating a new set of "OAuth Client ID".
+ * Required if using Google Authentication.
+ */
+ OAuthClientSecret?: string;
+ /** Needed to enable pending purchase handling and subscription processing. */
+ ServiceAccountKey?: string;
+
+ }
+
+ export interface CreateOrUpdateGoogleResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateKongregateRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+ /** Kongregate Secret API Key obtained after setting up your game in your Kongregate developer account. */
+ SecretAPIKey: string;
+
+ }
+
+ export interface CreateOrUpdateKongregateResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateNintendoRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Nintendo Switch Application ID, without the "0x" prefix. */
+ ApplicationID?: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** List of Nintendo Environments, currently supporting up to 4. Needs Catalog enabled. */
+ Environments?: NintendoEnvironment[];
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+
+ }
+
+ export interface CreateOrUpdateNintendoResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdatePSNRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Client ID obtained after setting up your game with Sony. This one is associated with the existing PS4 marketplace. */
+ ClientID?: string;
+ /** Client secret obtained after setting up your game with Sony. This one is associated with the existing PS4 marketplace. */
+ ClientSecret?: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+ /**
+ * Client ID obtained after setting up your game with Sony. This one is associated with the modern marketplace, which
+ * includes PS5, cross-generation for PS4, and unified entitlements.
+ */
+ NextGenClientID?: string;
+ /**
+ * Client secret obtained after setting up your game with Sony. This one is associated with the modern marketplace, which
+ * includes PS5, cross-generation for PS4, and unified entitlements.
+ */
+ NextGenClientSecret?: string;
+
+ }
+
+ export interface CreateOrUpdatePSNResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateSteamRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Application ID obtained after setting up your app in Valve's developer portal. */
+ ApplicationId: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Enforce usage of AzurePlayFab identity in user authentication tickets. */
+ EnforceServiceSpecificTickets?: boolean;
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+ /** Sercet Key obtained after setting up your app in Valve's developer portal. */
+ SecretKey: string;
+ /** Use Steam Payments sandbox endpoint for test transactions. */
+ UseSandbox?: boolean;
+
+ }
+
+ export interface CreateOrUpdateSteamResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface CreateOrUpdateTwitchRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Client ID obtained after creating your Twitch developer account. */
+ ClientID?: string;
+ /** Client Secret obtained after creating your Twitch developer account. */
+ ClientSecret?: string;
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** If an error should be returned if the addon already exists. */
+ ErrorIfExists?: boolean;
+
+ }
+
+ export interface CreateOrUpdateTwitchResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteAppleRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteAppleResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteFacebookInstantGamesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteFacebookInstantGamesResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteFacebookRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteFacebookResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteGoogleRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteGoogleResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteKongregateRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteKongregateResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteNintendoRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteNintendoResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeletePSNRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeletePSNResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteSteamRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteSteamResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface DeleteTwitchRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface DeleteTwitchResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface EntityKey {
+ /** Unique ID of the entity. */
+ Id: string;
+ /** Entity type. See https://docs.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types */
+ Type?: string;
+
+ }
+
+ export interface GetAppleRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetAppleResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** iOS App Bundle ID obtained after setting up your app in the App Store. */
+ AppBundleId?: string;
+ /** Addon status. */
+ Created: boolean;
+ /** Ignore expiration date for identity tokens. */
+ IgnoreExpirationDate?: boolean;
+ /** Require secure authentication only for this app. */
+ RequireSecureAuthentication?: boolean;
+
+ }
+
+ export interface GetFacebookInstantGamesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetFacebookInstantGamesResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Facebook App ID obtained after setting up your app in Facebook Instant Games. */
+ AppID?: string;
+ /** Addon status. */
+ Created: boolean;
+
+ }
+
+ export interface GetFacebookRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetFacebookResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Facebook App ID obtained after setting up your app in Facebook. */
+ AppID?: string;
+ /** Addon status. */
+ Created: boolean;
+ /** Email address for purchase dispute notifications. */
+ NotificationEmail?: string;
+
+ }
+
+ export interface GetGoogleRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetGoogleResponse extends PlayFabModule.IPlayFabResultCommon {
+ /**
+ * Google App Package ID obtained after setting up your app in the Google Play developer portal. Required if using Google
+ * receipt validation.
+ */
+ AppPackageID?: string;
+ /** Addon status. */
+ Created: boolean;
+ /**
+ * Google OAuth Client ID obtained through the Google Developer Console by creating a new set of "OAuth Client ID".
+ * Required if using Google Authentication.
+ */
+ OAuthClientID?: string;
+
+ }
+
+ export interface GetKongregateRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetKongregateResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Addon status. */
+ Created: boolean;
+
+ }
+
+ export interface GetNintendoRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetNintendoResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Nintendo Switch Application ID, without the "0x" prefix. */
+ ApplicationID?: string;
+ /** Addon status. */
+ Created: boolean;
+ /** List of Nintendo Environments, currently supporting up to 4. */
+ Environments?: NintendoEnvironment[];
+
+ }
+
+ export interface GetPSNRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetPSNResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Client ID obtained after setting up your game with Sony. This one is associated with the existing PS4 marketplace. */
+ ClientID?: string;
+ /** Addon status. */
+ Created: boolean;
+ /**
+ * Client ID obtained after setting up your game with Sony. This one is associated with the modern marketplace, which
+ * includes PS5, cross-generation for PS4, and unified entitlements.
+ */
+ NextGenClientID?: string;
+
+ }
+
+ export interface GetSteamRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetSteamResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Application ID obtained after setting up your game in Valve's developer portal. */
+ ApplicationId?: string;
+ /** Addon status. */
+ Created: boolean;
+ /** Enforce usage of AzurePlayFab identity in user authentication tickets. */
+ EnforceServiceSpecificTickets?: boolean;
+ /** Use Steam Payments sandbox endpoint for test transactions. */
+ UseSandbox?: boolean;
+
+ }
+
+ export interface GetTwitchRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetTwitchResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Client ID obtained after creating your Twitch developer account. */
+ ClientID?: string;
+ /** Addon status. */
+ Created: boolean;
+
+ }
+
+ export interface NintendoEnvironment {
+ /** Client ID for the Nintendo Environment. */
+ ClientID?: string;
+ /** Client Secret for the Nintendo Environment. */
+ ClientSecret?: string;
+ /** ID for the Nintendo Environment. */
+ ID?: string;
+
+ }
+
+
+}
diff --git a/PlayFabSdk/src/Typings/PlayFab/PlayFabClientApi.d.ts b/PlayFabSdk/src/Typings/PlayFab/PlayFabClientApi.d.ts
index e4b44a8a..9f4d559f 100644
--- a/PlayFabSdk/src/Typings/PlayFab/PlayFabClientApi.d.ts
+++ b/PlayFabSdk/src/Typings/PlayFab/PlayFabClientApi.d.ts
@@ -3573,7 +3573,9 @@ declare module PlayFabClientModels {
export interface LoginWithFacebookRequest extends PlayFabModule.IPlayFabRequestCommon {
/** Unique identifier from Facebook for the user. */
- AccessToken: string;
+ AccessToken?: string;
+ /** Token used for limited login authentication. */
+ AuthenticationToken?: string;
/** Automatically create a PlayFab account if one is not currently linked to this ID. */
CreateAccount?: boolean;
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
diff --git a/PlayFabSdk/src/Typings/PlayFab/PlayFabProgressionApi.d.ts b/PlayFabSdk/src/Typings/PlayFab/PlayFabProgressionApi.d.ts
new file mode 100644
index 00000000..28e3d4c3
--- /dev/null
+++ b/PlayFabSdk/src/Typings/PlayFab/PlayFabProgressionApi.d.ts
@@ -0,0 +1,680 @@
+///
+
+declare module PlayFabProgressionModule {
+ export interface IPlayFabProgression {
+ ForgetAllCredentials(): void;
+
+ /**
+ * Creates a new leaderboard definition.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/createleaderboarddefinition
+ */
+ CreateLeaderboardDefinition(request: PlayFabProgressionModels.CreateLeaderboardDefinitionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Create a new entity statistic definition.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/createstatisticdefinition
+ */
+ CreateStatisticDefinition(request: PlayFabProgressionModels.CreateStatisticDefinitionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes a leaderboard definition.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/deleteleaderboarddefinition
+ */
+ DeleteLeaderboardDefinition(request: PlayFabProgressionModels.DeleteLeaderboardDefinitionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Deletes the specified entries from the given leaderboard.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/deleteleaderboardentries
+ */
+ DeleteLeaderboardEntries(request: PlayFabProgressionModels.DeleteLeaderboardEntriesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Delete an entity statistic definition. Will delete all statistics on entity profiles and leaderboards.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/deletestatisticdefinition
+ */
+ DeleteStatisticDefinition(request: PlayFabProgressionModels.DeleteStatisticDefinitionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Delete statistics on an entity profile. This will remove all rankings from associated leaderboards.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/deletestatistics
+ */
+ DeleteStatistics(request: PlayFabProgressionModels.DeleteStatisticsRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get the friend leaderboard for the specified entity. A maximum of 100 friend entries are listed in the leaderboard.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getfriendleaderboardforentity
+ */
+ GetFriendLeaderboardForEntity(request: PlayFabProgressionModels.GetFriendLeaderboardForEntityRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get the leaderboard for a specific entity type and statistic.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboard
+ */
+ GetLeaderboard(request: PlayFabProgressionModels.GetEntityLeaderboardRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get the leaderboard around a specific entity.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboardaroundentity
+ */
+ GetLeaderboardAroundEntity(request: PlayFabProgressionModels.GetLeaderboardAroundEntityRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets the specified leaderboard definition.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboarddefinition
+ */
+ GetLeaderboardDefinition(request: PlayFabProgressionModels.GetLeaderboardDefinitionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get the leaderboard limited to a set of entities.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboardforentities
+ */
+ GetLeaderboardForEntities(request: PlayFabProgressionModels.GetLeaderboardForEntitiesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get current statistic definition information
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatisticdefinition
+ */
+ GetStatisticDefinition(request: PlayFabProgressionModels.GetStatisticDefinitionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get all current statistic definitions information
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatisticdefinitions
+ */
+ GetStatisticDefinitions(request: PlayFabProgressionModels.GetStatisticDefinitionsRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets statistics for the specified entity.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatistics
+ */
+ GetStatistics(request: PlayFabProgressionModels.GetStatisticsRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Gets statistics for the specified collection of entities.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatisticsforentities
+ */
+ GetStatisticsForEntities(request: PlayFabProgressionModels.GetStatisticsForEntitiesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Increment a leaderboard version.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/incrementleaderboardversion
+ */
+ IncrementLeaderboardVersion(request: PlayFabProgressionModels.IncrementLeaderboardVersionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Increment an entity statistic definition version.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/incrementstatisticversion
+ */
+ IncrementStatisticVersion(request: PlayFabProgressionModels.IncrementStatisticVersionRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Lists the leaderboard definitions defined for the Title.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/listleaderboarddefinitions
+ */
+ ListLeaderboardDefinitions(request: PlayFabProgressionModels.ListLeaderboardDefinitionsRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Get all current statistic definitions information
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/liststatisticdefinitions
+ */
+ ListStatisticDefinitions(request: PlayFabProgressionModels.ListStatisticDefinitionsRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Unlinks a leaderboard definition from it's linked statistic definition.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/unlinkleaderboardfromstatistic
+ */
+ UnlinkLeaderboardFromStatistic(request: PlayFabProgressionModels.UnlinkLeaderboardFromStatisticRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Adds or updates entries on the specified leaderboard.
+ * https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/updateleaderboardentries
+ */
+ UpdateLeaderboardEntries(request: PlayFabProgressionModels.UpdateLeaderboardEntriesRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+ /**
+ * Update statistics on an entity profile. Depending on the statistic definition, this may result in entity being ranked on
+ * various leaderboards.
+ * https://docs.microsoft.com/rest/api/playfab/progression/statistics/updatestatistics
+ */
+ UpdateStatistics(request: PlayFabProgressionModels.UpdateStatisticsRequest, callback: PlayFabModule.ApiCallback, customData?: any, extraHeaders?: { [key: string]: string }): Promise>;
+
+ }
+}
+
+declare module PlayFabProgressionModels {
+ export interface CreateLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** Leaderboard columns describing the sort directions, cannot be changed after creation. */
+ Columns: LeaderboardColumn[];
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /**
+ * The entity type being represented on the leaderboard. If it doesn't correspond to the PlayFab entity types, use
+ * 'external' as the type.
+ */
+ EntityType: string;
+ /** A name for the leaderboard, unique per title. */
+ Name: string;
+ /** Maximum number of entries on this leaderboard */
+ SizeLimit: number;
+ /** The version reset configuration for the leaderboard definition. */
+ VersionConfiguration: VersionConfiguration;
+
+ }
+
+ export interface CreateStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The columns for the statistic defining the aggregation method for each column. */
+ Columns?: StatisticColumn[];
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The entity type allowed to have score(s) for this statistic. */
+ EntityType?: string;
+ /** Name of the statistic. Must be less than 50 characters. Restricted to a-Z, 0-9, '(', ')', '_', '-' and '.'. */
+ Name: string;
+ /** The version reset configuration for the statistic definition. */
+ VersionConfiguration?: VersionConfiguration;
+
+ }
+
+ export interface DeleteLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The name of the leaderboard definition to delete. */
+ Name: string;
+
+ }
+
+ export interface DeleteLeaderboardEntriesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The unique Ids of the entries to delete from the leaderboard. */
+ EntityIds?: string[];
+ /** The name of the leaderboard. */
+ Name: string;
+
+ }
+
+ export interface DeleteStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Name of the statistic to delete. */
+ Name: string;
+
+ }
+
+ export interface DeleteStatisticsRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** Collection of statistics to remove from this entity. */
+ Statistics: StatisticDelete[];
+
+ }
+
+ export interface DeleteStatisticsResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** The entity id and type. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface EmptyResponse extends PlayFabModule.IPlayFabResultCommon {
+
+ }
+
+ export interface EntityKey {
+ /** Unique ID of the entity. */
+ Id: string;
+ /** Entity type. See https://docs.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types */
+ Type?: string;
+
+ }
+
+ export interface EntityLeaderboardEntry {
+ /** Entity's display name. */
+ DisplayName?: string;
+ /** Entity identifier. */
+ Entity?: EntityKey;
+ /** The time at which the last update to the entry was recorded on the server. */
+ LastUpdated: string;
+ /** An opaque blob of data stored on the leaderboard entry. Note that the metadata is not used for ranking purposes. */
+ Metadata?: string;
+ /** Position on the leaderboard. */
+ Rank: number;
+ /** Scores for the entry. */
+ Scores?: string[];
+
+ }
+
+ export interface EntityStatistics {
+ /** Entity key */
+ EntityKey?: EntityKey;
+ /** All statistics for the given entitykey */
+ Statistics?: EntityStatisticValue[];
+
+ }
+
+ export interface EntityStatisticValue {
+ /** Metadata associated with the Statistic. */
+ Metadata?: string;
+ /** Statistic name */
+ Name?: string;
+ /** Statistic scores */
+ Scores?: string[];
+ /** Statistic version */
+ Version: number;
+
+ }
+
+ type ExternalFriendSources = "None"
+
+ | "Steam"
+ | "Facebook"
+ | "Xbox"
+ | "Psn"
+ | "All";
+
+ export interface GetEntityLeaderboardRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Name of the leaderboard. */
+ LeaderboardName: string;
+ /** Maximum number of results to return from the leaderboard. Minimum 1, maximum 1,000. */
+ PageSize: number;
+ /** Index position to start from. 1 is beginning of leaderboard. */
+ StartingPosition?: number;
+ /** Optional version of the leaderboard, defaults to current version. */
+ Version?: number;
+
+ }
+
+ export interface GetEntityLeaderboardResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Leaderboard columns describing the sort directions, */
+ Columns?: LeaderboardColumn[];
+ /** Individual entity rankings in the leaderboard, in sorted order by rank. */
+ Rankings?: EntityLeaderboardEntry[];
+ /** Version of the leaderboard being returned. */
+ Version: number;
+
+ }
+
+ export interface GetFriendLeaderboardForEntityRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /**
+ * Indicates which other platforms' friends should be included in the response. In HTTP, it is represented as a
+ * comma-separated list of platforms.
+ */
+ ExternalFriendSources?: string;
+ /** Name of the leaderboard. */
+ LeaderboardName: string;
+ /** Optional version of the leaderboard, defaults to current version. */
+ Version?: number;
+ /** Xbox token if Xbox friends should be included. Requires Xbox be configured on PlayFab. */
+ XboxToken?: string;
+
+ }
+
+ export interface GetLeaderboardAroundEntityRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** Name of the leaderboard. */
+ LeaderboardName: string;
+ /**
+ * Number of surrounding entries to return (in addition to specified entity). In general, the number of ranks above and
+ * below will be split into half. For example, if the specified value is 10, 5 ranks above and 5 ranks below will be
+ * retrieved. However, the numbers will get skewed in either direction when the specified entity is towards the top or
+ * bottom of the leaderboard. Also, the number of entries returned can be lower than the value specified for entries at the
+ * bottom of the leaderboard.
+ */
+ MaxSurroundingEntries: number;
+ /** Optional version of the leaderboard, defaults to current. */
+ Version?: number;
+
+ }
+
+ export interface GetLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The name of the leaderboard to retrieve the definition for. */
+ Name: string;
+
+ }
+
+ export interface GetLeaderboardDefinitionResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** Sort direction of the leaderboard columns, cannot be changed after creation. */
+ Columns: LeaderboardColumn[];
+ /** Created time, in UTC */
+ Created: string;
+ /**
+ * The entity type being represented on the leaderboard. If it doesn't correspond to the PlayFab entity types, use
+ * 'external' as the type.
+ */
+ EntityType: string;
+ /** Last time, in UTC, leaderboard version was incremented. */
+ LastResetTime?: string;
+ /** A name for the leaderboard, unique per title. */
+ Name: string;
+ /** Maximum number of entries on this leaderboard */
+ SizeLimit: number;
+ /** Latest Leaderboard version. */
+ Version: number;
+ /** The version reset configuration for the leaderboard definition. */
+ VersionConfiguration: VersionConfiguration;
+
+ }
+
+ export interface GetLeaderboardForEntitiesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Collection of Entity IDs to include in the leaderboard. */
+ EntityIds: string[];
+ /** Name of the leaderboard. */
+ LeaderboardName: string;
+ /** Optional version of the leaderboard, defaults to current. */
+ Version?: number;
+
+ }
+
+ export interface GetStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Name of the statistic. Must be less than 50 characters. */
+ Name: string;
+
+ }
+
+ export interface GetStatisticDefinitionResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** The columns for the statistic defining the aggregation method for each column. */
+ Columns?: StatisticColumn[];
+ /** Created time, in UTC */
+ Created: string;
+ /** The entity type that can have this statistic. */
+ EntityType?: string;
+ /** Last time, in UTC, statistic version was incremented. */
+ LastResetTime?: string;
+ /** The list of leaderboards that are linked to this statistic definition. */
+ LinkedLeaderboardNames?: string[];
+ /** Name of the statistic. */
+ Name?: string;
+ /** Statistic version. */
+ Version: number;
+ /** The version reset configuration for the leaderboard definition. */
+ VersionConfiguration?: VersionConfiguration;
+
+ }
+
+ export interface GetStatisticDefinitionsRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+
+ }
+
+ export interface GetStatisticDefinitionsResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** List of statistic definitions for the title. */
+ StatisticDefinitions?: StatisticDefinition[];
+
+ }
+
+ export interface GetStatisticsForEntitiesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Collection of Entity IDs to retrieve statistics for. */
+ Entities: EntityKey[];
+
+ }
+
+ export interface GetStatisticsForEntitiesResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** A mapping of statistic name to the columns defined in the corresponding definition. */
+ ColumnDetails?: { [key: string]: StatisticColumnCollection };
+ /** List of entities mapped to their statistics. Only the latest version of a statistic is returned. */
+ EntitiesStatistics?: EntityStatistics[];
+
+ }
+
+ export interface GetStatisticsRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+
+ }
+
+ export interface GetStatisticsResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** A mapping of statistic name to the columns defined in the corresponding definition. */
+ ColumnDetails?: { [key: string]: StatisticColumnCollection };
+ /** The entity id and type. */
+ Entity?: EntityKey;
+ /** List of statistics keyed by Name. Only the latest version of a statistic is returned. */
+ Statistics?: { [key: string]: EntityStatisticValue };
+
+ }
+
+ export interface IncrementLeaderboardVersionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The name of the leaderboard to increment the version for. */
+ Name: string;
+
+ }
+
+ export interface IncrementLeaderboardVersionResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** New Leaderboard version. */
+ Version: number;
+
+ }
+
+ export interface IncrementStatisticVersionRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** Name of the statistic to increment the version of. */
+ Name: string;
+
+ }
+
+ export interface IncrementStatisticVersionResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** New statistic version. */
+ Version: number;
+
+ }
+
+ export interface LeaderboardColumn {
+ /**
+ * If the value for this column is sourced from a statistic, details of the linked column. Null if the leaderboard is not
+ * linked.
+ */
+ LinkedStatisticColumn?: LinkedStatisticColumn;
+ /** A name for the leaderboard column, unique per leaderboard definition. */
+ Name: string;
+ /** The sort direction for this column. */
+ SortDirection: string;
+
+ }
+
+ export interface LeaderboardDefinition {
+ /** Sort direction of the leaderboard columns, cannot be changed after creation. */
+ Columns: LeaderboardColumn[];
+ /** Created time, in UTC */
+ Created: string;
+ /**
+ * The entity type being represented on the leaderboard. If it doesn't correspond to the PlayFab entity types, use
+ * 'external' as the type.
+ */
+ EntityType: string;
+ /** Last time, in UTC, leaderboard version was incremented. */
+ LastResetTime?: string;
+ /** A name for the leaderboard, unique per title. */
+ Name: string;
+ /** Maximum number of entries on this leaderboard */
+ SizeLimit: number;
+ /** Latest Leaderboard version. */
+ Version: number;
+ /** The version reset configuration for the leaderboard definition. */
+ VersionConfiguration: VersionConfiguration;
+
+ }
+
+ export interface LeaderboardEntryUpdate {
+ /** The unique Id for the entry. If using PlayFab Entities, this would be the entityId of the entity. */
+ EntityId: string;
+ /**
+ * Arbitrary metadata to store along side the leaderboard entry, will be returned by all Leaderboard APIs. Must be less
+ * than 50 UTF8 encoded characters.
+ */
+ Metadata?: string;
+ /**
+ * The scores for the leaderboard. The number of values provided here must match the number of columns in the Leaderboard
+ * definition.
+ */
+ Scores?: string[];
+
+ }
+
+ type LeaderboardSortDirection = "Descending"
+
+ | "Ascending";
+
+ export interface LinkedStatisticColumn {
+ /** The name of the statistic column that this leaderboard column is sourced from. */
+ LinkedStatisticColumnName: string;
+ /** The name of the statistic. */
+ LinkedStatisticName: string;
+
+ }
+
+ export interface ListLeaderboardDefinitionsRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+
+ }
+
+ export interface ListLeaderboardDefinitionsResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** List of leaderboard definitions for the title. */
+ LeaderboardDefinitions?: LeaderboardDefinition[];
+
+ }
+
+ export interface ListStatisticDefinitionsRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+
+ }
+
+ export interface ListStatisticDefinitionsResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** List of statistic definitions for the title. */
+ StatisticDefinitions?: StatisticDefinition[];
+
+ }
+
+ type ResetInterval = "Manual"
+
+ | "Hour"
+ | "Day"
+ | "Week"
+ | "Month";
+
+ type StatisticAggregationMethod = "Last"
+
+ | "Min"
+ | "Max"
+ | "Sum";
+
+ export interface StatisticColumn {
+ /** Aggregation method for calculating new value of a statistic. */
+ AggregationMethod: string;
+ /** Name of the statistic column, as originally configured. */
+ Name: string;
+
+ }
+
+ export interface StatisticColumnCollection {
+ /** Columns for the statistic defining the aggregation method for each column. */
+ Columns?: StatisticColumn[];
+
+ }
+
+ export interface StatisticDefinition {
+ /** The columns for the statistic defining the aggregation method for each column. */
+ Columns?: StatisticColumn[];
+ /** Created time, in UTC */
+ Created: string;
+ /** The entity type that can have this statistic. */
+ EntityType?: string;
+ /** Last time, in UTC, statistic version was incremented. */
+ LastResetTime?: string;
+ /** The list of leaderboards that are linked to this statistic definition. */
+ LinkedLeaderboardNames?: string[];
+ /** Name of the statistic. */
+ Name?: string;
+ /** Statistic version. */
+ Version: number;
+ /** The version reset configuration for the leaderboard definition. */
+ VersionConfiguration?: VersionConfiguration;
+
+ }
+
+ export interface StatisticDelete {
+ /** Name of the statistic, as originally configured. */
+ Name: string;
+
+ }
+
+ export interface StatisticUpdate {
+ /**
+ * Arbitrary metadata to store along side the statistic, will be returned by all Leaderboard APIs. Must be less than 50
+ * UTF8 encoded characters.
+ */
+ Metadata?: string;
+ /** Name of the statistic, as originally configured. */
+ Name: string;
+ /**
+ * Statistic scores for the entity. This will be used in accordance with the aggregation method configured for the
+ * statistics.The maximum value allowed for each individual score is 9223372036854775807. The minimum value for each
+ * individual score is -9223372036854775807The values are formatted as strings to avoid interop issues with client
+ * libraries unable to handle 64bit integers.
+ */
+ Scores?: string[];
+ /** Optional field to indicate the version of the statistic to set. When empty defaults to the statistic's current version. */
+ Version?: number;
+
+ }
+
+ export interface UnlinkLeaderboardFromStatisticRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The name of the leaderboard definition to unlink. */
+ Name: string;
+ /** The name of the statistic definition to unlink. */
+ StatisticName: string;
+
+ }
+
+ export interface UpdateLeaderboardEntriesRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The entries to add or update on the leaderboard. */
+ Entries?: LeaderboardEntryUpdate[];
+ /** The name of the leaderboard. */
+ LeaderboardName: string;
+
+ }
+
+ export interface UpdateStatisticsRequest extends PlayFabModule.IPlayFabRequestCommon {
+ /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
+ CustomTags?: { [key: string]: string | null };
+ /** The optional entity to perform this action on. Defaults to the currently logged in entity. */
+ Entity?: EntityKey;
+ /** Collection of statistics to update, maximum 50. */
+ Statistics: StatisticUpdate[];
+
+ }
+
+ export interface UpdateStatisticsResponse extends PlayFabModule.IPlayFabResultCommon {
+ /** A mapping of statistic name to the columns defined in the corresponding definition. */
+ ColumnDetails?: { [key: string]: StatisticColumnCollection };
+ /** The entity id and type. */
+ Entity?: EntityKey;
+ /** Updated entity profile statistics. */
+ Statistics?: { [key: string]: EntityStatisticValue };
+
+ }
+
+ export interface VersionConfiguration {
+ /** The maximum number of versions of this leaderboard/statistic that can be queried. */
+ MaxQueryableVersions: number;
+ /**
+ * Reset interval that statistics or leaderboards will reset on. When using Manual intervalthe reset can only be increased
+ * by calling the Increase version API. When using Hour interval the resetwill occur at the start of the next hour UTC
+ * time. When using Day interval the reset will occur at thestart of the next day in UTC time. When using the Week interval
+ * the reset will occur at the start ofthe next Monday in UTC time. When using Month interval the reset will occur at the
+ * start of the nextmonth in UTC time.
+ */
+ ResetInterval: string;
+
+ }
+
+
+}
diff --git a/PlayFabSdk/src/Typings/PlayFab/Playfab.d.ts b/PlayFabSdk/src/Typings/PlayFab/Playfab.d.ts
index c646e249..f2ce678f 100644
--- a/PlayFabSdk/src/Typings/PlayFab/Playfab.d.ts
+++ b/PlayFabSdk/src/Typings/PlayFab/Playfab.d.ts
@@ -9,10 +9,12 @@
///
///
///
-///
+///
///
///
///
+///
+///
declare module PlayFabModule {
export interface ISettings {
@@ -57,10 +59,12 @@ declare var PlayFab: {
ExperimentationApi: PlayFabExperimentationModule.IPlayFabExperimentation;
InsightsApi: PlayFabInsightsModule.IPlayFabInsights;
GroupsApi: PlayFabGroupsModule.IPlayFabGroups;
- LeaderboardsApi: PlayFabLeaderboardsModule.IPlayFabLeaderboards;
+ ProgressionApi: PlayFabProgressionModule.IPlayFabProgression;
LocalizationApi: PlayFabLocalizationModule.IPlayFabLocalization;
MultiplayerApi: PlayFabMultiplayerModule.IPlayFabMultiplayer;
ProfilesApi: PlayFabProfilesModule.IPlayFabProfiles;
+ MatchmakerApi: PlayFabMatchmakerModule.IPlayFabMatchmaker;
+ AddonApi: PlayFabAddonModule.IPlayFabAddon;
};
// Continue to support older usage
@@ -75,8 +79,10 @@ declare var PlayFabEventsSDK: PlayFabEventsModule.IPlayFabEvents;
declare var PlayFabExperimentationSDK: PlayFabExperimentationModule.IPlayFabExperimentation;
declare var PlayFabInsightsSDK: PlayFabInsightsModule.IPlayFabInsights;
declare var PlayFabGroupsSDK: PlayFabGroupsModule.IPlayFabGroups;
-declare var PlayFabLeaderboardsSDK: PlayFabLeaderboardsModule.IPlayFabLeaderboards;
+declare var PlayFabProgressionSDK: PlayFabProgressionModule.IPlayFabProgression;
declare var PlayFabLocalizationSDK: PlayFabLocalizationModule.IPlayFabLocalization;
declare var PlayFabMultiplayerSDK: PlayFabMultiplayerModule.IPlayFabMultiplayer;
declare var PlayFabProfilesSDK: PlayFabProfilesModule.IPlayFabProfiles;
+declare var PlayFabMatchmakerSDK: PlayFabMatchmakerModule.IPlayFabMatchmaker;
+declare var PlayFabAddonSDK: PlayFabAddonModule.IPlayFabAddon;
diff --git a/PlayFabTestingExample/PlayFabApiTest.csproj b/PlayFabTestingExample/PlayFabApiTest.csproj
index 6d80b641..9809f5c8 100644
--- a/PlayFabTestingExample/PlayFabApiTest.csproj
+++ b/PlayFabTestingExample/PlayFabApiTest.csproj
@@ -35,10 +35,12 @@
-
+
+
+
@@ -55,10 +57,12 @@
-
+
+
+
diff --git a/PlayFabTestingExample/index.html b/PlayFabTestingExample/index.html
index 3c6b3272..a00c6a34 100644
--- a/PlayFabTestingExample/index.html
+++ b/PlayFabTestingExample/index.html
@@ -21,10 +21,12 @@
-
+
+
+