From bce557cc2dc767628bed6aac87301a1be7c5431b Mon Sep 17 00:00:00 2001 From: rxliuli Date: Tue, 4 Nov 2025 05:03:50 +0800 Subject: init commit --- .../app-store/tmp/src/common/content/sad.js | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 node_modules/@jet-app/app-store/tmp/src/common/content/sad.js (limited to 'node_modules/@jet-app/app-store/tmp/src/common/content/sad.js') diff --git a/node_modules/@jet-app/app-store/tmp/src/common/content/sad.js b/node_modules/@jet-app/app-store/tmp/src/common/content/sad.js new file mode 100644 index 0000000..20fde05 --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/common/content/sad.js @@ -0,0 +1,93 @@ +import { isSome } from "@jet/environment/types/optional"; +import * as serverData from "../../foundation/json-parsing/server-data"; +import * as mediaAttributes from "../../foundation/media/attributes"; +import * as contentAttributes from "./attributes"; +let implementation = null; +/** + * Creates an implementation of the `SystemApps` interface + * which is appropriate for the current platform. + */ +export function systemApps(objectGraph) { + if (implementation !== null) { + return implementation; + } + // Because watchOS is not a proper platform from the back end's perspective, + // we must map adam IDs to bundle IDs using a bag property. + if (objectGraph.client.isWatch) { + const systemAppsMap = new Map(); + const nonDeletableSystemAppsMap = new Map(); + for (const systemApp of objectGraph.bag.systemApps) { + const bundleId = serverData.asString(systemApp, "bundle-id", "coercible"); + const adamId = serverData.asString(systemApp, "id", "coercible"); + if (isSome(bundleId) && isSome(adamId)) { + systemAppsMap.set(adamId, bundleId); + } + } + for (const nonDeletableSystemApp of objectGraph.bag.nonDeletableSystemApps) { + const bundleId = serverData.asString(nonDeletableSystemApp, "bundle-id", "coercible"); + const adamId = serverData.asString(nonDeletableSystemApp, "id", "coercible"); + if (isSome(bundleId) && isSome(adamId)) { + nonDeletableSystemAppsMap.set(adamId, bundleId); + } + } + const unsupportedSystemApps = new Map(); + implementation = { + bundleIdFromData(data) { + const mappedBundleId = systemAppsMap.get(data.id); + if (!serverData.isNull(mappedBundleId)) { + return mappedBundleId; + } + else { + return contentAttributes.contentAttributeAsString(objectGraph, data, "bundleId"); + } + }, + isSystemAppFromData(data) { + return systemAppsMap.has(data.id); + }, + isUnsupportedDeletableSystemAppFromData(data) { + if (systemAppsMap.has(data.id) && !nonDeletableSystemAppsMap.has(data.id)) { + // We must use the bundleID from the bag here, rather than a bundleID from `data`, + // as AppConduit is expecting the bundleIDs which are provided in the bag + const bundleId = systemAppsMap.get(data.id); + if (serverData.isDefinedNonNullNonEmpty(bundleId)) { + const valueFromMap = unsupportedSystemApps.get(bundleId); + if (isSome(valueFromMap)) { + return valueFromMap; + } + const isUnsupported = !objectGraph.client.deletableSystemAppCanBeInstalledOnWatchWithBundleID(bundleId); + unsupportedSystemApps.set(bundleId, isUnsupported); + return isUnsupported; + } + } + return false; + }, + adamIdFromSystemBundleId(bundleId) { + for (const [key, value] of systemAppsMap) { + if (value === bundleId) { + return key; + } + } + return undefined; + }, + }; + } + else { + implementation = { + bundleIdFromData(data) { + return contentAttributes.contentAttributeAsString(objectGraph, data, "bundleId"); + }, + isSystemAppFromData(data) { + return mediaAttributes.attributeAsBooleanOrFalse(data, "isFirstPartyHideableApp"); + }, + isUnsupportedDeletableSystemAppFromData(data) { + return false; + }, + adamIdFromSystemBundleId(bundleId) { + // This path shouldn't run on any other platforms. + return undefined; + }, + }; + } + return implementation; +} +//# sourceMappingURL=sad.js.map \ No newline at end of file -- cgit v1.2.3