parent
6e0bf17345
commit
d587557287
|
@ -362276,17 +362276,27 @@ exports.UnityChangeset = unityChangeset_js_1.UnityChangeset;
|
||||||
/**
|
/**
|
||||||
* Retrieves the Unity changeset for a specific version.
|
* Retrieves the Unity changeset for a specific version.
|
||||||
* @param version - The Unity version string (e.g., "2020.1.14f1").
|
* @param version - The Unity version string (e.g., "2020.1.14f1").
|
||||||
|
* @param db - Optional database URL or true to use the default database.
|
||||||
* @returns A Promise that resolves to the UnityChangeset object.
|
* @returns A Promise that resolves to the UnityChangeset object.
|
||||||
* @throws Error if the version is not found.
|
* @throws Error if the version is not found.
|
||||||
*/
|
*/
|
||||||
async function getUnityChangeset(version) {
|
async function getUnityChangeset(version, db) {
|
||||||
const sanitizedVersion = (0, utils_js_1.sanitizeVersion)(version);
|
const sanitizedVersion = (0, utils_js_1.sanitizeVersion)(version);
|
||||||
let changesets;
|
let changesets;
|
||||||
try {
|
// Database mode.
|
||||||
changesets = await (0, unityGraphQL_js_1.getUnityReleases)(sanitizedVersion, []);
|
if (db) {
|
||||||
|
const dbUrl = db === true ? UNITY_CHANGESETS_DB_URL : db;
|
||||||
|
changesets = await getAllChangesetsFromDb(dbUrl);
|
||||||
}
|
}
|
||||||
catch {
|
else {
|
||||||
changesets = await getAllChangesetsFromDb();
|
// GraphQL mode.
|
||||||
|
try {
|
||||||
|
changesets = await (0, unityGraphQL_js_1.getUnityReleases)(sanitizedVersion, (0, utils_js_1.searchModeToStreams)(SearchMode.All), [unityChangeset_js_1.UnityReleaseEntitlement.XLTS]);
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
// Fallback to default database mode.
|
||||||
|
changesets = await getAllChangesetsFromDb(UNITY_CHANGESETS_DB_URL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!changesets || !Array.isArray(changesets)) {
|
if (!changesets || !Array.isArray(changesets)) {
|
||||||
throw new Error("Failed to retrieve changesets");
|
throw new Error("Failed to retrieve changesets");
|
||||||
|
@ -362311,8 +362321,7 @@ var SearchMode;
|
||||||
SearchMode[SearchMode["Default"] = 2] = "Default";
|
SearchMode[SearchMode["Default"] = 2] = "Default";
|
||||||
SearchMode[SearchMode["PreRelease"] = 3] = "PreRelease";
|
SearchMode[SearchMode["PreRelease"] = 3] = "PreRelease";
|
||||||
SearchMode[SearchMode["LTS"] = 4] = "LTS";
|
SearchMode[SearchMode["LTS"] = 4] = "LTS";
|
||||||
SearchMode[SearchMode["XLTS"] = 5] = "XLTS";
|
SearchMode[SearchMode["Supported"] = 6] = "Supported";
|
||||||
SearchMode[SearchMode["SUPPORTED"] = 6] = "SUPPORTED";
|
|
||||||
})(SearchMode || (exports.SearchMode = SearchMode = {}));
|
})(SearchMode || (exports.SearchMode = SearchMode = {}));
|
||||||
/*
|
/*
|
||||||
* Group mode.
|
* Group mode.
|
||||||
|
@ -362362,10 +362371,11 @@ var FormatMode;
|
||||||
* @param groupMode - The group mode to use.
|
* @param groupMode - The group mode to use.
|
||||||
* @param outputMode - The output mode for the results.
|
* @param outputMode - The output mode for the results.
|
||||||
* @param formatMode - The format mode for the output.
|
* @param formatMode - The format mode for the output.
|
||||||
|
* @param db - Optional database URL or true to use the default database.
|
||||||
* @returns A Promise that resolves to a formatted string of the results.
|
* @returns A Promise that resolves to a formatted string of the results.
|
||||||
*/
|
*/
|
||||||
function listChangesets(searchMode, filterOptions, groupMode, outputMode, formatMode) {
|
function listChangesets(searchMode, filterOptions, groupMode, outputMode, formatMode, db) {
|
||||||
return searchChangesets(searchMode)
|
return searchChangesets(searchMode, db)
|
||||||
.then((results) => filterChangesets(results, filterOptions))
|
.then((results) => filterChangesets(results, filterOptions))
|
||||||
.then((results) => results.sort((a, b) => b.versionNumber - a.versionNumber))
|
.then((results) => results.sort((a, b) => b.versionNumber - a.versionNumber))
|
||||||
.then((results) => groupChangesets(results, groupMode))
|
.then((results) => groupChangesets(results, groupMode))
|
||||||
|
@ -362398,27 +362408,24 @@ exports.listChangesets = listChangesets;
|
||||||
/**
|
/**
|
||||||
* Searches for Unity changesets based on the specified search mode.
|
* Searches for Unity changesets based on the specified search mode.
|
||||||
* @param searchMode - The search mode to use.
|
* @param searchMode - The search mode to use.
|
||||||
|
* @param db - Optional database URL or true to use the default database.
|
||||||
* @returns A Promise that resolves to an array of UnityChangeset objects.
|
* @returns A Promise that resolves to an array of UnityChangeset objects.
|
||||||
* @throws Error if the search mode is not supported.
|
* @throws Error if the search mode is not supported.
|
||||||
*/
|
*/
|
||||||
async function searchChangesets(searchMode) {
|
async function searchChangesets(searchMode, db) {
|
||||||
|
const streams = (0, utils_js_1.searchModeToStreams)(searchMode);
|
||||||
|
// Database mode.
|
||||||
|
if (db) {
|
||||||
|
const dbUrl = db === true ? UNITY_CHANGESETS_DB_URL : db;
|
||||||
|
return searchChangesetsFromDb(streams, dbUrl);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
switch (searchMode) {
|
// GraphQL mode.
|
||||||
case SearchMode.All:
|
return await (0, unityGraphQL_js_1.getUnityReleases)(".", streams, [unityChangeset_js_1.UnityReleaseEntitlement.XLTS]);
|
||||||
case SearchMode.Default:
|
|
||||||
case SearchMode.PreRelease:
|
|
||||||
case SearchMode.SUPPORTED:
|
|
||||||
return await (0, unityGraphQL_js_1.getUnityReleases)(".", (0, utils_js_1.searchModeToStreams)(searchMode));
|
|
||||||
case SearchMode.LTS:
|
|
||||||
return await (0, unityGraphQL_js_1.getUnityReleasesInLTS)();
|
|
||||||
case SearchMode.XLTS:
|
|
||||||
return await (0, unityGraphQL_js_1.getUnityReleasesInLTS)([unityChangeset_js_1.UnityReleaseEntitlement.XLTS]);
|
|
||||||
default:
|
|
||||||
throw Error(`The given search mode '${searchMode}' was not supported`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
return await searchChangesetsFromDb(searchMode);
|
// Fallback to default database mode.
|
||||||
|
return await searchChangesetsFromDb(streams, UNITY_CHANGESETS_DB_URL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.searchChangesets = searchChangesets;
|
exports.searchChangesets = searchChangesets;
|
||||||
|
@ -362450,7 +362457,7 @@ function filterChangesets(changesets, options) {
|
||||||
: Object.values((0, utils_js_1.groupBy)(changesets, (r) => r.minor)).map((g) => g[0]);
|
: Object.values((0, utils_js_1.groupBy)(changesets, (r) => r.minor)).map((g) => g[0]);
|
||||||
return changesets.filter((c) => min <= c.versionNumber &&
|
return changesets.filter((c) => min <= c.versionNumber &&
|
||||||
c.versionNumber <= max &&
|
c.versionNumber <= max &&
|
||||||
(!options.lts || c.lts) &&
|
(options.xlts || !c.xlts) && // Include XLTS?
|
||||||
(!regex || regex.test(c.version)) &&
|
(!regex || regex.test(c.version)) &&
|
||||||
(!lc || lc.some((l) => l.minor == c.minor && l.lifecycle == c.lifecycle)));
|
(!lc || lc.some((l) => l.minor == c.minor && l.lifecycle == c.lifecycle)));
|
||||||
}
|
}
|
||||||
|
@ -362487,13 +362494,15 @@ function groupChangesets(changesets, groupMode) {
|
||||||
exports.groupChangesets = groupChangesets;
|
exports.groupChangesets = groupChangesets;
|
||||||
/**
|
/**
|
||||||
* Retrieves all Unity changesets from the database.
|
* Retrieves all Unity changesets from the database.
|
||||||
|
* @param db - Database URL. If not specified, use the default database.
|
||||||
* @returns A Promise that resolves to an array of all UnityChangeset objects from the database.
|
* @returns A Promise that resolves to an array of all UnityChangeset objects from the database.
|
||||||
* @throws Error if the database cannot be fetched or is invalid.
|
* @throws Error if the database cannot be fetched or is invalid.
|
||||||
*/
|
*/
|
||||||
function getAllChangesetsFromDb() {
|
function getAllChangesetsFromDb(db = UNITY_CHANGESETS_DB_URL) {
|
||||||
return fetch(UNITY_CHANGESETS_DB_URL)
|
return fetch(db)
|
||||||
.then((res) => {
|
.then(async (res) => {
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
|
await res.text(); // Consume the response body to avoid leaks
|
||||||
throw Error(`The Unity changeset database could not be fetched: ${res.status} ${res.statusText}`);
|
throw Error(`The Unity changeset database could not be fetched: ${res.status} ${res.statusText}`);
|
||||||
}
|
}
|
||||||
return res.json();
|
return res.json();
|
||||||
|
@ -362502,26 +362511,24 @@ function getAllChangesetsFromDb() {
|
||||||
if (!Array.isArray(data)) {
|
if (!Array.isArray(data)) {
|
||||||
throw new Error("Invalid changeset database format: expected array");
|
throw new Error("Invalid changeset database format: expected array");
|
||||||
}
|
}
|
||||||
return data;
|
return data.map((item) => new exports.UnityChangeset(item.version, item.changeset, item.stream, item.entitlements));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.getAllChangesetsFromDb = getAllChangesetsFromDb;
|
exports.getAllChangesetsFromDb = getAllChangesetsFromDb;
|
||||||
/**
|
/**
|
||||||
* Searches for Unity changesets from the database based on the specified search mode.
|
* Searches for Unity changesets from the database based on the specified search mode.
|
||||||
* @param searchMode - The search mode to use.
|
* @param streams - The array of release streams to filter by.
|
||||||
|
* @param db - Database URL. If not specified, use the default database.
|
||||||
* @returns A Promise that resolves to an array of UnityChangeset objects from the database.
|
* @returns A Promise that resolves to an array of UnityChangeset objects from the database.
|
||||||
*/
|
*/
|
||||||
function searchChangesetsFromDb(searchMode) {
|
function searchChangesetsFromDb(streams, db = UNITY_CHANGESETS_DB_URL) {
|
||||||
return getAllChangesetsFromDb()
|
return getAllChangesetsFromDb(db)
|
||||||
.then((changesets) => {
|
.then((changesets) => {
|
||||||
if (!changesets || !Array.isArray(changesets))
|
if (!changesets || !Array.isArray(changesets))
|
||||||
return [];
|
return [];
|
||||||
if (changesets.length == 0)
|
if (changesets.length == 0)
|
||||||
return [];
|
return [];
|
||||||
const streams = (0, utils_js_1.searchModeToStreams)(searchMode);
|
return changesets.filter((c) => streams.includes(c.stream));
|
||||||
return searchMode === SearchMode.XLTS
|
|
||||||
? changesets.filter((c) => streams.includes(c.stream))
|
|
||||||
: changesets.filter((c) => streams.includes(c.stream) && !c.xlts);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.searchChangesetsFromDb = searchChangesetsFromDb;
|
exports.searchChangesetsFromDb = searchChangesetsFromDb;
|
||||||
|
@ -362689,7 +362696,7 @@ Object.defineProperty(UnityChangeset, "toNumber", {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getUnityReleasesInLTS = exports.getUnityReleases = void 0;
|
exports.getUnityReleases = void 0;
|
||||||
const unityChangeset_js_1 = __nccwpck_require__(52758);
|
const unityChangeset_js_1 = __nccwpck_require__(52758);
|
||||||
const graphql_request_1 = __nccwpck_require__(5406);
|
const graphql_request_1 = __nccwpck_require__(5406);
|
||||||
const UNITY_GRAPHQL_ENDPOINT = "https://services.unity.com/graphql";
|
const UNITY_GRAPHQL_ENDPOINT = "https://services.unity.com/graphql";
|
||||||
|
@ -362799,53 +362806,6 @@ query GetRelease($limit: Int, $skip: Int, $version: String!, $stream: [UnityRele
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
exports.getUnityReleases = getUnityReleases;
|
exports.getUnityReleases = getUnityReleases;
|
||||||
/**
|
|
||||||
* Retrieves Unity releases in LTS from the GraphQL API based on entitlements.
|
|
||||||
* @param entitlements - The array of entitlements to filter by.
|
|
||||||
* @returns A Promise that resolves to an array of UnityChangeset objects.
|
|
||||||
* @throws Error if the API response is invalid.
|
|
||||||
*/
|
|
||||||
async function getUnityReleasesInLTS(entitlements = []) {
|
|
||||||
const client = new graphql_request_1.GraphQLClient(UNITY_GRAPHQL_ENDPOINT);
|
|
||||||
const query = (0, graphql_request_1.gql) `
|
|
||||||
query GetReleaseMajorVersions($entitlements: [UnityReleaseEntitlement!])
|
|
||||||
{
|
|
||||||
getUnityReleaseMajorVersions(
|
|
||||||
stream: []
|
|
||||||
platform: []
|
|
||||||
architecture: []
|
|
||||||
entitlements: $entitlements
|
|
||||||
) {
|
|
||||||
version
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
const variables = {
|
|
||||||
entitlements: entitlements,
|
|
||||||
};
|
|
||||||
const cacheKey = getCacheKey(query, variables);
|
|
||||||
let data;
|
|
||||||
const cached = cache.get(cacheKey);
|
|
||||||
if (cached && isCacheValid(cached.timestamp)) {
|
|
||||||
data = cached.data;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
data = await requestWithErrorHandling(client, query, variables);
|
|
||||||
cache.set(cacheKey, { data, timestamp: Date.now() });
|
|
||||||
}
|
|
||||||
if (!data.getUnityReleaseMajorVersions) {
|
|
||||||
throw new Error("Invalid response from Unity GraphQL API: missing getUnityReleaseMajorVersions");
|
|
||||||
}
|
|
||||||
const results = await Promise.all(data.getUnityReleaseMajorVersions
|
|
||||||
.map(async (v) => {
|
|
||||||
if (!v.version) {
|
|
||||||
throw new Error("Invalid response from Unity GraphQL API: missing version in major versions");
|
|
||||||
}
|
|
||||||
return await getUnityReleases(v.version, [unityChangeset_js_1.UnityReleaseStream.LTS], entitlements);
|
|
||||||
}));
|
|
||||||
return results.flat();
|
|
||||||
}
|
|
||||||
exports.getUnityReleasesInLTS = getUnityReleasesInLTS;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -362892,11 +362852,10 @@ function searchModeToStreams(searchMode) {
|
||||||
unityChangeset_js_1.UnityReleaseStream.BETA,
|
unityChangeset_js_1.UnityReleaseStream.BETA,
|
||||||
];
|
];
|
||||||
case index_js_1.SearchMode.LTS:
|
case index_js_1.SearchMode.LTS:
|
||||||
case index_js_1.SearchMode.XLTS:
|
|
||||||
return [
|
return [
|
||||||
unityChangeset_js_1.UnityReleaseStream.LTS,
|
unityChangeset_js_1.UnityReleaseStream.LTS,
|
||||||
];
|
];
|
||||||
case index_js_1.SearchMode.SUPPORTED:
|
case index_js_1.SearchMode.Supported:
|
||||||
return [
|
return [
|
||||||
unityChangeset_js_1.UnityReleaseStream.SUPPORTED,
|
unityChangeset_js_1.UnityReleaseStream.SUPPORTED,
|
||||||
];
|
];
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -50,7 +50,7 @@
|
||||||
"reflect-metadata": "^0.1.13",
|
"reflect-metadata": "^0.1.13",
|
||||||
"semver": "^7.5.2",
|
"semver": "^7.5.2",
|
||||||
"ts-md5": "^1.3.1",
|
"ts-md5": "^1.3.1",
|
||||||
"unity-changeset": "^3.0.1",
|
"unity-changeset": "^3.1.0",
|
||||||
"uuid": "^9.0.0",
|
"uuid": "^9.0.0",
|
||||||
"yaml": "^2.2.2"
|
"yaml": "^2.2.2"
|
||||||
},
|
},
|
||||||
|
|
|
@ -7681,10 +7681,10 @@ undici@^5.25.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fastify/busboy" "^2.0.0"
|
"@fastify/busboy" "^2.0.0"
|
||||||
|
|
||||||
unity-changeset@^3.0.1:
|
unity-changeset@^3.1.0:
|
||||||
version "3.0.1"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/unity-changeset/-/unity-changeset-3.0.1.tgz#47c964878c53d27da571c7c350dac8edf8cdc8a4"
|
resolved "https://registry.yarnpkg.com/unity-changeset/-/unity-changeset-3.1.0.tgz#7217915b995f1c441d8bdb1045c45c09f64ca94a"
|
||||||
integrity sha512-3GVbZuOusSLPADIE5yvMcNrlkt0MGFNARWe4hU0Y+MNMlvuSRBPTvtz0h+UUzQzRD07d/lj4LkIj3YwxBdEuQg==
|
integrity sha512-bFqaq3yuxeMROwqw81fi6S2f8l+4lracvnW8SkdJLGDx+QvWxQhjK4LsGYM19/plDDh7q3MwEbzQgmcqj5uxBg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@deno/shim-deno" "~0.18.0"
|
"@deno/shim-deno" "~0.18.0"
|
||||||
graphql "^16.8.1"
|
graphql "^16.8.1"
|
||||||
|
|
Loading…
Reference in New Issue