diff options
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/foundation/experimentation')
6 files changed, 126 insertions, 0 deletions
diff --git a/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/app-store-experiments.js b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/app-store-experiments.js new file mode 100644 index 0000000..e073481 --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/app-store-experiments.js @@ -0,0 +1,7 @@ +import { ExperimentCache } from "./experiment-cache"; +export function currentTreatmentIdForArea(objectGraph, experimentAreaId) { + var _a; + const experimentCache = objectGraph.optional(ExperimentCache.metatype); + return (_a = experimentCache === null || experimentCache === void 0 ? void 0 : experimentCache.currentTreatmentForExperiment(experimentAreaId)) === null || _a === void 0 ? void 0 : _a.identifier; +} +//# sourceMappingURL=app-store-experiments.js.map
\ No newline at end of file diff --git a/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-area-id.js b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-area-id.js new file mode 100644 index 0000000..435c196 --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-area-id.js @@ -0,0 +1,10 @@ +export var ExperimentAreaId; +(function (ExperimentAreaId) { + ExperimentAreaId["ArcadeDownloadPackOnboarding"] = "Tf5Kjqz"; + ExperimentAreaId["CondensedTodayAds"] = "tBc9hUt"; + ExperimentAreaId["ProductPagePreloading"] = "m0henFo"; + ExperimentAreaId["ProductPageVariants"] = "fNPb5Km"; + ExperimentAreaId["ProductPageYMALRowCount"] = "isj11bm"; + ExperimentAreaId["SearchLandingPage"] = "WqjkRLH"; +})(ExperimentAreaId || (ExperimentAreaId = {})); +//# sourceMappingURL=experiment-area-id.js.map
\ No newline at end of file diff --git a/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-cache.js b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-cache.js new file mode 100644 index 0000000..c0384ea --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-cache.js @@ -0,0 +1,63 @@ +import { makeMetatype } from "@jet/environment/util/metatype"; +import { ExperimentAreaId } from "./experiment-area-id"; +export class ExperimentCache { + constructor() { + this.cachedTreatments = {}; + this.cachedRawTreatments = {}; + } + async loadTreatments(objectGraph) { + const experimentAreas = this.experimentAreasForPlatform(objectGraph); + if (experimentAreas.length > 0) { + try { + this.cachedRawTreatments = await objectGraph.treatmentStore.treatmentsForAreas(experimentAreas); + for (const [experimentAreaId, treatment] of Object.entries(this.cachedRawTreatments)) { + /// AMS Adds some debug metadata after the treatment identifier in internal builds we do not want this + /// for app store usage + const rawIdentifier = treatment.identifier; + this.cachedTreatments[experimentAreaId] = { + ...treatment, + identifier: rawIdentifier.split(":")[0], + }; + } + } + catch (error) { + objectGraph.console.error("Failed to load treatments", error); + } + } + } + currentTreatmentForExperiment(experimentAreaId) { + return this.cachedTreatments[experimentAreaId]; + } + createAb2Data() { + const ab2Data = []; + for (const [experimentAreaId, treatment] of Object.entries(this.cachedRawTreatments)) { + ab2Data.push({ + areaId: experimentAreaId, + bucket: -2, + treatmentId: treatment.identifier, + }); + } + return ab2Data; + } + experimentAreasForPlatform(objectGraph) { + const experimentAreas = []; + switch (objectGraph.client.deviceType) { + case "phone": + case "pad": + experimentAreas.push(...[ + ExperimentAreaId.ArcadeDownloadPackOnboarding, + ExperimentAreaId.CondensedTodayAds, + ExperimentAreaId.ProductPagePreloading, + ExperimentAreaId.ProductPageVariants, + ExperimentAreaId.ProductPageYMALRowCount, + ExperimentAreaId.SearchLandingPage, + ]); + break; + default: + break; + } + return experimentAreas; + } +} +ExperimentCache.metatype = makeMetatype("app-store:experimentCache"); +//# sourceMappingURL=experiment-cache.js.map
\ No newline at end of file diff --git a/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/product-page-experiments.js b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/product-page-experiments.js new file mode 100644 index 0000000..7af0b43 --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/product-page-experiments.js @@ -0,0 +1,21 @@ +import * as appStoreExperiments from "./app-store-experiments"; +import { ExperimentAreaId } from "./experiment-area-id"; +export function shouldSkipProductPagePreload(objectGraph) { + const treatmentId = appStoreExperiments.currentTreatmentIdForArea(objectGraph, ExperimentAreaId.ProductPagePreloading); + return treatmentId === "3NepyQj01" /* ProductPagePreloadingExperimentTypes.SkipPreload */; +} +// --- Product Page Variants -- +/// Returns the treatment group id based on xp_ab value as string. +export function productVariantTreatmentId(objectGraph) { + return appStoreExperiments.currentTreatmentIdForArea(objectGraph, ExperimentAreaId.ProductPageVariants); +} +/** + * The number of rows that the YMAL shelf should use. + * @param objectGraph The object graph. + * @returns A number representing the number of rows in the YMAL shelf. + */ +export function ymalShelfNumberOfRows(objectGraph) { + const treatmentId = appStoreExperiments.currentTreatmentIdForArea(objectGraph, ExperimentAreaId.ProductPageYMALRowCount); + return treatmentId === "2S6U3Dq01" /* ProductPageYMALShelfRowNumberExperimentTypes.ThreeRow */ ? 3 : 2; +} +//# sourceMappingURL=product-page-experiments.js.map
\ No newline at end of file diff --git a/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/search-results-experiments.js b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/search-results-experiments.js new file mode 100644 index 0000000..54654ee --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/search-results-experiments.js @@ -0,0 +1,10 @@ +import * as serverData from "../../foundation/json-parsing/server-data"; +/** + * Returns the current treatment for editorial collections based on the meta blob. + * @param meta Meta blob in initial response. + */ +export function currentEditorialCollectionTreatment(objectGraph, meta) { + const showGridCard = serverData.asBooleanOrFalse(meta, "experiments.showGridCard"); + return showGridCard ? 0 /* EditorialCollectionExperimentType.Card */ : 1 /* EditorialCollectionExperimentType.Swoosh */; +} +//# sourceMappingURL=search-results-experiments.js.map
\ No newline at end of file diff --git a/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/today-ad-experiments.js b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/today-ad-experiments.js new file mode 100644 index 0000000..52468f9 --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/today-ad-experiments.js @@ -0,0 +1,15 @@ +import * as appStoreExperiments from "./app-store-experiments"; +import { ExperimentAreaId } from "./experiment-area-id"; +/** + * Check whether the condensed treatment should be applied to the Today ad. + * @param objectGraph The object graph. + * @returns A boolean indicating if the treatment should be applied. + */ +export function shouldTodayAdBeCondensed(objectGraph) { + if (!objectGraph.client.isPhone) { + return false; + } + const treatmentId = appStoreExperiments.currentTreatmentIdForArea(objectGraph, ExperimentAreaId.CondensedTodayAds); + return treatmentId === "5pdfhju01" /* TodayAdCondensedDisplayExperimentTypes.Condensed */; +} +//# sourceMappingURL=today-ad-experiments.js.map
\ No newline at end of file |
