summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/foundation/experimentation
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/foundation/experimentation')
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/app-store-experiments.js7
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-area-id.js10
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/experiment-cache.js63
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/product-page-experiments.js21
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/search-results-experiments.js10
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/foundation/experimentation/today-ad-experiments.js15
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