summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/api')
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/app-event-page-intent.js14
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/arcade-grouping-page-intent.js10
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/bundle-page-intent.js16
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/category-tabs-intent.js8
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/charts-hub-page-intent.js13
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/charts-page-intent.js13
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/developer-page-intent.js19
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-page-intent.js37
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-shelf-collection-page-intent.js14
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/eula-page-intent.js19
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/grouping-page-intent.js33
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/product-page-intent.js17
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/room-page-intent.js16
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/routable-arcade-see-all-page-intent.js11
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/routable-article-page-intent.js13
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/routable-intent.js4
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/routable-today-page-intent.js10
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/search-results-page-intent.js19
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/search/search-landing-page-intent.js14
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/intents/see-all-page-intent.js13
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/accessibility.js37
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/actions/actions.js525
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/actions/base-action.js15
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/actions/flow-action.js26
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/ad-incidents.js26
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/annotation.js50
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/app-promotions.js186
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/arcade-upsell.js18
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/arcade.js240
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/article-page.js18
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/base.js596
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/categories.js20
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/dynamic-generic-page.js15
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/generic-page.js47
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/hero-carousel.js37
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/metrics/advert-action-metrics.js21
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/metrics/metrics.js101
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/page-facets.js88
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/page-refresh-policy.js17
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/preview-platform.js25
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/privacy.js75
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/product-media-gallery-page.js12
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/product-page-shelf-ids.js45
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/product.js58
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/reviews.js115
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search-actions.js31
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search.js48
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/search/search-categories.js96
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/search/search.js283
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/shelf-based-product.js25
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/shelves.js709
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/today-page.js300
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/top-charts.js63
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/uber.js19
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/models/web-renderable-page.js4
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/typings/constants.js21
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/api/util.js16
57 files changed, 4341 insertions, 0 deletions
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/app-event-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/app-event-page-intent.js
new file mode 100644
index 0000000..1913f2a
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/app-event-page-intent.js
@@ -0,0 +1,14 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+const APP_EVENT_PAGE_INTENT_KIND = "AppEventPageIntent";
+export function makeAppEventPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ $kind: APP_EVENT_PAGE_INTENT_KIND,
+ platform: normalizePreviewPlaform(platform),
+ };
+}
+export function isAppEventPageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === APP_EVENT_PAGE_INTENT_KIND;
+}
+//# sourceMappingURL=app-event-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/arcade-grouping-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/arcade-grouping-page-intent.js
new file mode 100644
index 0000000..a24df96
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/arcade-grouping-page-intent.js
@@ -0,0 +1,10 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+export function makeArcadeGroupingPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: "ArcadeGroupingPageIntent",
+ };
+}
+//# sourceMappingURL=arcade-grouping-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/bundle-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/bundle-page-intent.js
new file mode 100644
index 0000000..b6bed12
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/bundle-page-intent.js
@@ -0,0 +1,16 @@
+import { normalizeAdamID } from "../util";
+import { normalizePreviewPlaform } from "../models/preview-platform";
+export function makeBundlePageIntent(opts) {
+ const { id, platform, lic, ...rest } = opts;
+ return {
+ $kind: "BundlePageIntent",
+ id: normalizeAdamID(id),
+ platform: normalizePreviewPlaform(platform),
+ lic,
+ ...rest,
+ };
+}
+export function isBundlePageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === "BundlePageIntent";
+}
+//# sourceMappingURL=bundle-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/category-tabs-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/category-tabs-intent.js
new file mode 100644
index 0000000..0b2ec9e
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/category-tabs-intent.js
@@ -0,0 +1,8 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+export function makeCategoryTabsIntent(opts) {
+ return {
+ $kind: "CategoryTabsIntent",
+ platform: normalizePreviewPlaform(opts.platform),
+ };
+}
+//# sourceMappingURL=category-tabs-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/charts-hub-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/charts-hub-page-intent.js
new file mode 100644
index 0000000..bb964f0
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/charts-hub-page-intent.js
@@ -0,0 +1,13 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+/**
+ * Create a {@linkcode ChartsHubPageIntent}
+ */
+export function makeChartsHubPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: "ChartsHubPageIntent",
+ };
+}
+//# sourceMappingURL=charts-hub-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/charts-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/charts-page-intent.js
new file mode 100644
index 0000000..e900b06
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/charts-page-intent.js
@@ -0,0 +1,13 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+const CHARTS_PAGE_INTENT_KIND = "ChartsPageIntent";
+export function makeChartsPageIntent({ platform, ...rest }) {
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: CHARTS_PAGE_INTENT_KIND,
+ };
+}
+export function isChartsPageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === CHARTS_PAGE_INTENT_KIND;
+}
+//# sourceMappingURL=charts-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/developer-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/developer-page-intent.js
new file mode 100644
index 0000000..a9633b6
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/developer-page-intent.js
@@ -0,0 +1,19 @@
+import { normalizeAdamID } from "../util";
+const DEVELOPER_PAGE_INTENT_KIND = "DeveloperPageIntent";
+/**
+ * Determines if {@linkcode intent} is a {@linkcode DeveloperPageIntent}
+ */
+export function isDeveloperPageIntent(intent) {
+ return intent.$kind === DEVELOPER_PAGE_INTENT_KIND;
+}
+/**
+ * Creates a {@linkcode DeveloperPageIntent}
+ */
+export function makeDeveloperPageIntent({ id, ...rest }) {
+ return {
+ ...rest,
+ id: normalizeAdamID(id),
+ $kind: DEVELOPER_PAGE_INTENT_KIND,
+ };
+}
+//# sourceMappingURL=developer-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-page-intent.js
new file mode 100644
index 0000000..353a168
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-page-intent.js
@@ -0,0 +1,37 @@
+import { normalizePreviewPlaform } from "../../models/preview-platform";
+export function isEditorialPageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === "EditorialPageIntent";
+}
+export function isEditorialPageIntentByID(intent) {
+ return isEditorialPageIntent(intent) && "id" in intent;
+}
+export function isEditorialPageIntentByName(intent) {
+ return isEditorialPageIntent(intent) && "name" in intent;
+}
+/**
+ * Creates an {@link EditorialPageIntent} that fetches an Editorial Page by "name"
+ *
+ * @param options the properties of the created {@link EditorialPageIntentByName}
+ */
+export function makeEditorialPageIntentByName(options) {
+ const { platform, ...rest } = options;
+ return {
+ ...rest,
+ $kind: "EditorialPageIntent",
+ platform: normalizePreviewPlaform(platform),
+ };
+}
+/**
+ * Creates an {@link EditorialPageIntent} that fetches an Editorial Page by "id"
+ *
+ * @param options the properties of the created {@linkcode EditorialPageIntentById}
+ */
+export function makeEditorialPageIntentByID(options) {
+ const { platform, ...rest } = options;
+ return {
+ $kind: "EditorialPageIntent",
+ platform: normalizePreviewPlaform(platform),
+ ...rest,
+ };
+}
+//# sourceMappingURL=editorial-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-shelf-collection-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-shelf-collection-page-intent.js
new file mode 100644
index 0000000..0e9b9af
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/editorial/editorial-shelf-collection-page-intent.js
@@ -0,0 +1,14 @@
+import { normalizePreviewPlaform } from "../../models/preview-platform";
+const EDITORIAL_SHELF_COLLECTION_PAGE_INTENT_KIND = "EditorialShelfCollectionPageIntent";
+export function isEditorialShelfCollectionPageIntent(intent) {
+ return intent.$kind === EDITORIAL_SHELF_COLLECTION_PAGE_INTENT_KIND;
+}
+export function makeEditorialShelfCollectionPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ $kind: EDITORIAL_SHELF_COLLECTION_PAGE_INTENT_KIND,
+ platform: normalizePreviewPlaform(platform),
+ };
+}
+//# sourceMappingURL=editorial-shelf-collection-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/eula-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/eula-page-intent.js
new file mode 100644
index 0000000..f040ff9
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/eula-page-intent.js
@@ -0,0 +1,19 @@
+const EULA_PAGE_INTENT_KIND = "EulaPageIntent";
+/**
+ * Determines if {@linkcode intent} is a {@linkcode EulaPageIntent}
+ */
+export function isEulaPageIntent(intent) {
+ return intent.$kind === EULA_PAGE_INTENT_KIND;
+}
+/**
+ * Creates a {@linkcode EulaPageIntent}
+ */
+export function makeEulaPageIntent({ resourceId, resourceType, ...rest }) {
+ return {
+ ...rest,
+ resourceId,
+ resourceType,
+ $kind: EULA_PAGE_INTENT_KIND,
+ };
+}
+//# sourceMappingURL=eula-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/grouping-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/grouping-page-intent.js
new file mode 100644
index 0000000..5d381a0
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/grouping-page-intent.js
@@ -0,0 +1,33 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+import { normalizeAdamID } from "../util";
+export function isGroupingPageIntent(intent) {
+ return intent.$kind === "GroupingPageIntent";
+}
+/**
+ * Creates a {@link GroupingPageIntent} "by name"
+ *
+ * @param options the properties of the created {@link GroupingPageIntent}
+ */
+export function makeGroupingPageIntentByName(options) {
+ const { platform, ...rest } = options;
+ return {
+ ...rest,
+ $kind: "GroupingPageIntent",
+ platform: normalizePreviewPlaform(platform),
+ };
+}
+/**
+ * Creates a {@link GroupingPageIntent} "by ID"
+ *
+ * @param options the properties of the created {@link GroupingPageIntent}
+ */
+export function makeGroupingPageIntentByID(options) {
+ const { platform, id, ...rest } = options;
+ return {
+ ...rest,
+ $kind: "GroupingPageIntent",
+ id: normalizeAdamID(id),
+ platform: normalizePreviewPlaform(platform),
+ };
+}
+//# sourceMappingURL=grouping-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/product-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/product-page-intent.js
new file mode 100644
index 0000000..d8100ea
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/product-page-intent.js
@@ -0,0 +1,17 @@
+import { normalizeAdamID } from "../util";
+import { normalizePreviewPlaform } from "../models/preview-platform";
+export function makeProductPageIntent(opts) {
+ const { id, platform, ppid, lic, ...rest } = opts;
+ return {
+ ...rest,
+ $kind: "ProductPageIntent",
+ id: normalizeAdamID(id),
+ platform: normalizePreviewPlaform(platform),
+ ppid,
+ lic,
+ };
+}
+export function isProductPageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === "ProductPageIntent";
+}
+//# sourceMappingURL=product-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/room-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/room-page-intent.js
new file mode 100644
index 0000000..f5ee4bf
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/room-page-intent.js
@@ -0,0 +1,16 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+import { normalizeAdamID } from "../util";
+const ROOM_PAGE_INTENT_KIND = "RoomPageIntent";
+export function makeRoomPageIntent(opts) {
+ const { platform, id, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ id: normalizeAdamID(id),
+ $kind: ROOM_PAGE_INTENT_KIND,
+ };
+}
+export function isRoomPageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === ROOM_PAGE_INTENT_KIND;
+}
+//# sourceMappingURL=room-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-arcade-see-all-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-arcade-see-all-page-intent.js
new file mode 100644
index 0000000..0a09491
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-arcade-see-all-page-intent.js
@@ -0,0 +1,11 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+const ROUTABLE_ARCADE_SEE_ALL_PAGE_INTENT_KIND = "RoutableArcadeSeeAllPageIntent";
+export function makeRoutableArcadeSeeAllPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: "RoutableArcadeSeeAllPageIntent",
+ };
+}
+//# sourceMappingURL=routable-arcade-see-all-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-article-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-article-page-intent.js
new file mode 100644
index 0000000..1f41b32
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-article-page-intent.js
@@ -0,0 +1,13 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+import { normalizeAdamID } from "../util";
+const ROUTABLE_ARTICLE_PAGE_INTENT_KIND = "RoutableArticlePageIntent";
+export function makeRoutableArticlePageIntent(opts) {
+ const { id, platform, ...rest } = opts;
+ return {
+ ...rest,
+ id: normalizeAdamID(id),
+ platform: normalizePreviewPlaform(platform),
+ $kind: ROUTABLE_ARTICLE_PAGE_INTENT_KIND,
+ };
+}
+//# sourceMappingURL=routable-article-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-intent.js
new file mode 100644
index 0000000..3769762
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-intent.js
@@ -0,0 +1,4 @@
+export function isRoutableIntent(intent) {
+ return "storefront" in intent && "language" in intent;
+}
+//# sourceMappingURL=routable-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-today-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-today-page-intent.js
new file mode 100644
index 0000000..0a5c109
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/routable-today-page-intent.js
@@ -0,0 +1,10 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+export function makeRoutableTodayPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: "RoutableTodayPageIntent",
+ };
+}
+//# sourceMappingURL=routable-today-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/search-results-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/search-results-page-intent.js
new file mode 100644
index 0000000..94edcf7
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/search-results-page-intent.js
@@ -0,0 +1,19 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+export function makeSearchResultsPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: "SearchResultsPageIntent",
+ };
+}
+export function makeSearchResultsPageIntentFromURLParams(opts) {
+ return makeSearchResultsPageIntent({
+ ...opts,
+ origin: "userText",
+ });
+}
+export function isSearchResultsPageIntent(intent) {
+ return intent.$kind === "SearchResultsPageIntent";
+}
+//# sourceMappingURL=search-results-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/search/search-landing-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/search/search-landing-page-intent.js
new file mode 100644
index 0000000..74b6374
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/search/search-landing-page-intent.js
@@ -0,0 +1,14 @@
+import { normalizePreviewPlaform } from "../../models/preview-platform";
+const SEARCH_LANDING_PAGE_INTENT_KIND = "SearchLandingPageIntent";
+export function makeSearchLandingPageIntent(opts) {
+ const { platform, ...rest } = opts;
+ return {
+ ...rest,
+ platform: normalizePreviewPlaform(platform),
+ $kind: SEARCH_LANDING_PAGE_INTENT_KIND,
+ };
+}
+export function isSearchLandingPageIntent(intent) {
+ return (intent === null || intent === void 0 ? void 0 : intent.$kind) === SEARCH_LANDING_PAGE_INTENT_KIND;
+}
+//# sourceMappingURL=search-landing-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/intents/see-all-page-intent.js b/node_modules/@jet-app/app-store/tmp/src/api/intents/see-all-page-intent.js
new file mode 100644
index 0000000..2fb8203
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/intents/see-all-page-intent.js
@@ -0,0 +1,13 @@
+import { normalizePreviewPlaform } from "../models/preview-platform";
+import { normalizeAdamID } from "../util";
+export const SEE_ALL_TYPES = ["reviews", "customers-also-bought-apps", "developer-other-apps"];
+export function makeSeeAllPageIntent(opts) {
+ return {
+ ...opts,
+ "$kind": "SeeAllPageIntent",
+ "id": normalizeAdamID(opts.id),
+ "platform": normalizePreviewPlaform(opts.platform),
+ "see-all": opts["see-all"],
+ };
+}
+//# sourceMappingURL=see-all-page-intent.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/accessibility.js b/node_modules/@jet-app/app-store/tmp/src/api/models/accessibility.js
new file mode 100644
index 0000000..5af649e
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/accessibility.js
@@ -0,0 +1,37 @@
+import * as models from "./index";
+/**
+ * @public
+ * A model that represents an accessibility feature of a product.
+ */
+export class AccessibilityFeature extends models.Model {
+ constructor(title, description, artwork) {
+ super();
+ this.title = title;
+ this.description = description;
+ this.artwork = artwork;
+ }
+}
+/**
+ * @public
+ * A model that represents a set of accessibility features of a product.
+ */
+export class AccessibilityFeatures extends models.ViewModel {
+ constructor(title, artwork, features) {
+ super();
+ this.title = title;
+ this.artwork = artwork;
+ this.features = features;
+ }
+}
+/**
+ * @public
+ * A model that represents a paragraph of linkable text, displayed in the accessibility section.
+ */
+export class AccessibilityParagraph extends models.ViewModel {
+ constructor(text, actions) {
+ super();
+ this.text = text;
+ this.actions = actions;
+ }
+}
+//# sourceMappingURL=accessibility.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/actions/actions.js b/node_modules/@jet-app/app-store/tmp/src/api/models/actions/actions.js
new file mode 100644
index 0000000..9316414
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/actions/actions.js
@@ -0,0 +1,525 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import { isSome } from "@jet/environment/types/optional";
+import * as base from "../base";
+import { Action } from "./base-action";
+import { ActionMetrics } from "../metrics/metrics";
+/** @public */
+export class TabChangeAction extends Action {
+ constructor(navigationTab) {
+ super("TabChangeAction");
+ this.navigationTab = navigationTab;
+ this.actions = [];
+ this.popToRoot = false;
+ }
+}
+/** @public */
+export class TabBadgeAction extends Action {
+ constructor(navigationTab, text) {
+ super("TabBadgeAction");
+ this.navigationTab = navigationTab;
+ this.text = text;
+ }
+}
+/** @public */
+export class ExternalUrlAction extends Action {
+ constructor(url, isSensitive = true, actionMetrics = new ActionMetrics()) {
+ super("ExternalUrlAction", actionMetrics);
+ this.url = url;
+ this.isSensitive = isSensitive;
+ }
+}
+/** @public */
+export class CompoundAction extends Action {
+ constructor(actions) {
+ super("CompoundAction");
+ const sanitizedActions = [];
+ for (const action of actions) {
+ if (isSome(action.actionMetrics)) {
+ this.actionMetrics.addManyMetricsData(action.actionMetrics.data);
+ Object.assign(this.actionMetrics.custom, action.actionMetrics.custom);
+ action.actionMetrics.clearAll();
+ }
+ sanitizedActions.push(action);
+ }
+ this.actions = sanitizedActions;
+ }
+}
+/** @public */
+export class OfferAction extends Action {
+ constructor(title, adamId, purchaseConfiguration, parentAdamId) {
+ super("OfferAction");
+ this.title = title;
+ this.adamId = adamId;
+ this.parentAdamId = parentAdamId;
+ this.purchaseConfiguration = purchaseConfiguration;
+ if (purchaseConfiguration) {
+ this.bundleId = purchaseConfiguration.bundleId;
+ this.lineItem = purchaseConfiguration.lineItem;
+ }
+ this.includeBetaApps = false;
+ }
+}
+/** @public */
+export class OfferConfirmationAction extends Action {
+ constructor(buyAction, confirmationInitiationAction) {
+ super("OfferConfirmationAction");
+ this.buyAction = buyAction;
+ this.confirmationInitiationAction = confirmationInitiationAction;
+ }
+}
+/** @public */
+export class OfferAlertAction extends Action {
+ constructor() {
+ super("OfferAlertAction");
+ this.title = null;
+ this.message = null;
+ this.footerMessage = null;
+ this.isCancelable = true;
+ this.shouldCheckForAvailableDiskSpace = false;
+ this.checkRestrictionsForContentRating = null;
+ this.remoteControllerRequirement = "NO_BADGE";
+ this.spatialControllerRequirement = null;
+ this.shouldCheckForGameController = false;
+ this.shouldIncludeActiveAccountInFooterMessage = false;
+ this.shouldPromptForConfirmation = false;
+ this.completionAction = null;
+ }
+}
+/** @public */
+export class CancelPreorderAction extends Action {
+ constructor(preorderAdamId, isArcade) {
+ super("CancelPreorderAction");
+ this.preorderAdamId = preorderAdamId;
+ this.isArcade = isArcade;
+ }
+}
+/** @public */
+export class InAppPurchaseAction extends Action {
+ constructor(productIdentifier, appAdamId, appBundleId, installRequiredAction, minimumShortVersionSupportingInAppPurchaseFlow) {
+ super("InAppPurchaseAction");
+ this.productIdentifier = productIdentifier;
+ this.appAdamId = appAdamId;
+ this.appBundleId = appBundleId;
+ this.installRequiredAction = installRequiredAction;
+ this.minimumShortVersionSupportingInAppPurchaseFlow = minimumShortVersionSupportingInAppPurchaseFlow;
+ }
+}
+/** @public */
+export class OfferStateAction extends Action {
+ constructor(adamId, defaultAction) {
+ super("OfferStateAction");
+ this.title = defaultAction.title;
+ this.adamId = adamId;
+ this.defaultAction = defaultAction;
+ this.includeBetaApps = false;
+ }
+}
+/** @public */
+export class OpenAppAction extends Action {
+ constructor(adamId, destination = "app") {
+ super("OpenAppAction");
+ this.adamId = adamId;
+ this.destination = destination;
+ }
+}
+/** @public */
+export class OpenGamesUIAction extends Action {
+ constructor(target) {
+ super("OpenGamesUIAction");
+ this.target = target;
+ }
+}
+/** @public
+ * Purchase action that contains multiple offers for a set of Arcade games.
+ * It is used for "Get all" button in Arcade Download/Starter Pack feature
+ * to make a single purchase via App Store Daemon.
+ * The action implementation doesn't execute its `offerActions`
+ * but uses them as data objects, extracting required parameters.
+ * */
+export class ArcadePackOfferAction extends Action {
+ constructor(offerActions) {
+ super("ArcadePackOfferAction");
+ this.offerActions = offerActions;
+ }
+}
+/** @public
+ * An action representing the "selection" of an app, from the offer button.
+ * The intention is to communicate this app was selected to another process, not actually
+ * purchase/download/etc.
+ * Currently used for the browser selection flow.
+ */
+export class SelectAppAction extends Action {
+ constructor(adamId) {
+ super("SelectAppAction");
+ this.adamId = adamId;
+ }
+}
+/** @public */
+export class HttpAction extends Action {
+ constructor(url) {
+ super("HttpAction");
+ this.url = url;
+ this.method = "GET";
+ this.headers = {};
+ this.body = null;
+ this.isStoreRequest = false;
+ this.needsAuthentication = false;
+ this.needsMediaToken = false;
+ this.retryCount = 0;
+ this.disableCache = false;
+ this.successAction = null;
+ this.failureAction = null;
+ }
+}
+/** @public */
+export class HttpTemplateParameter {
+ constructor(key, target, inputType, title) {
+ this.key = key;
+ this.target = target;
+ this.inputType = inputType;
+ this.title = title;
+ this.isRequired = true;
+ this.maximumLength = null;
+ }
+}
+/** @public */
+export class HttpTemplateAction extends Action {
+ constructor(url) {
+ super("HttpTemplateAction");
+ this.message = null;
+ this.url = url;
+ this.method = "GET";
+ this.headers = {};
+ this.body = null;
+ this.bodyDictionary = {};
+ this.parameters = [];
+ this.isStoreRequest = false;
+ this.needsAuthentication = false;
+ this.needsMediaToken = false;
+ this.retryCount = 0;
+ this.disableCache = false;
+ this.successAction = null;
+ this.failureAction = null;
+ }
+}
+/** @public */
+export class RateAction extends HttpTemplateAction {
+}
+export class ShowSettingsAction extends Action {
+ constructor() {
+ super("ShowSettingsAction");
+ }
+}
+/** @public */
+export class WriteReviewAction extends Action {
+ constructor(adamId, url) {
+ super("WriteReviewAction");
+ this.adamId = adamId;
+ this.url = url;
+ }
+}
+/** @public */
+export class PageTabChangeAction extends Action {
+ constructor(selectedTabId, title, actionClass) {
+ super(actionClass !== null && actionClass !== void 0 ? actionClass : "PageTabChangeAction");
+ this.selectedTabId = selectedTabId;
+ this.title = title;
+ }
+}
+/** @public */
+export class SearchPageSegmentChangeAction extends PageTabChangeAction {
+ constructor(selectedTabId, selectedTabTitle, switchToOtherSegmentText) {
+ super(selectedTabId, "SearchPageSegmentChangeAction");
+ this.switchToOtherSegmentText = switchToOtherSegmentText;
+ this.title = selectedTabTitle;
+ }
+}
+/** @public */
+export class GameCenterDashboardAction extends Action {
+ constructor() {
+ super("GameCenterDashboardAction");
+ }
+}
+/** @public */
+export class SheetAction extends Action {
+ constructor(actions) {
+ super("SheetAction");
+ this.actions = actions;
+ this.isCancelable = false;
+ this.cancelTitle = null;
+ this.message = null;
+ this.style = "default";
+ this.isCustom = false;
+ this.destructiveActionIndex = null;
+ }
+}
+/** @public */
+export class AlertAction extends Action {
+ constructor(style) {
+ super("AlertAction");
+ this.style = style;
+ this.title = null;
+ this.message = null;
+ this.isCancelable = false;
+ this.cancelTitle = null;
+ this.cancelAction = null;
+ this.buttonActions = [];
+ this.buttonTitles = [];
+ this.destructiveActionIndex = null;
+ this.imageName = null;
+ }
+}
+/** @public */
+export class ScrollingAlertAction extends Action {
+ constructor(title, message) {
+ super("ScrollingAlertAction");
+ this.title = title;
+ this.message = message;
+ }
+}
+/**
+ * @public
+ * Describes a unique activity as used in a Share Sheet.
+ */
+export class ShareSheetActivity extends base.ViewModel {
+ constructor(activityType, action) {
+ super();
+ this.activityType = activityType;
+ this.action = action;
+ }
+}
+/** @public */
+export class ShareSheetAction extends Action {
+ constructor(data, activities, style = "expanded") {
+ super("ShareSheetAction");
+ this.data = data;
+ this.activities = activities;
+ this.shareSheetStyle = style;
+ }
+}
+/** @public */
+export class ReportConcernAction extends Action {
+ constructor(reasons) {
+ super("ReportConcernAction");
+ this.reasons = reasons;
+ }
+}
+/** @public */
+export class ReviewSummaryReportConcernAction extends Action {
+ constructor(concerns, title, explanation, sendAction) {
+ super("ReviewSummaryReportConcernAction");
+ this.concerns = concerns;
+ this.title = title;
+ this.explanation = explanation;
+ this.sendAction = sendAction;
+ }
+}
+/** @public */
+export class ProductPageScrollAction extends Action {
+ constructor(section, clicksOnScroll) {
+ super("ProductPageScrollAction");
+ this.section = section;
+ this.clicksOnScroll = clicksOnScroll;
+ }
+}
+/** @public */
+export class ArcadeAction extends Action {
+ constructor(productIdentifier, appAdamId, subscriptionToken, postSubscribeAction) {
+ super("ArcadeAction");
+ this.productIdentifier = productIdentifier;
+ this.appAdamId = appAdamId;
+ this.postSubscribeAction = postSubscribeAction;
+ this.subscriptionToken = subscriptionToken;
+ }
+}
+export class FamilyCircleAction extends Action {
+ constructor(clientName, eventType, additionalParameters) {
+ super("FamilyCircleAction");
+ this.clientName = clientName;
+ this.eventType = eventType;
+ this.additionalParameters = additionalParameters;
+ }
+}
+/** @public */
+export class BlankAction extends Action {
+ constructor() {
+ super("BlankAction");
+ }
+}
+/** @public */
+export class SearchAdAction extends Action {
+ constructor(action) {
+ super("SearchAdAction");
+ this.action = action;
+ }
+}
+/** @public */
+export class RateLimitedAction extends Action {
+ constructor(actionKey, primaryAction) {
+ super("RateLimitedAction");
+ this.actionKey = actionKey;
+ this.primaryAction = primaryAction;
+ }
+}
+/** @public */
+export class ArcadeSubscriptionStateAction extends Action {
+ constructor(notSubscribedAction, purchasingAction, subscribedAction, unknownAction) {
+ super("ArcadeSubscriptionStateAction");
+ this.notSubscribedAction = notSubscribedAction;
+ this.purchasingAction = purchasingAction;
+ this.subscribedAction = subscribedAction;
+ this.unknownAction = unknownAction;
+ }
+}
+/**
+ * @public
+ * An action for changing the page segment in the Arcade See All Games page.
+ */
+export class ArcadeSeeAllGamesPageSegmentChangeAction extends Action {
+ constructor(facet, selectedOption) {
+ super("ArcadeSeeAllGamesPageSegmentChangeAction");
+ this.facet = facet;
+ this.selectedOption = selectedOption;
+ }
+}
+/** @public */
+export class GameCenterPlayerProfileAction extends Action {
+ constructor(playerId) {
+ super("GameCenterPlayerProfileAction");
+ this.playerId = playerId;
+ }
+}
+/** @public */
+export class GameCenterAchievementsAction extends Action {
+ constructor(bundleId) {
+ super("GameCenterAchievementsAction");
+ this.bundleId = bundleId;
+ }
+}
+/** @public */
+export class LegacyGameCenterInvitePlayerAction extends Action {
+ constructor(contactId) {
+ super("GameCenterInvitePlayerAction");
+ this.contactId = contactId;
+ }
+}
+/** @public */
+export class GameCenterInvitePlayerAction extends Action {
+ constructor(invitationType) {
+ super("GameCenterInvitePlayerAction");
+ this.invitationType = invitationType;
+ }
+}
+/** @public */
+export class GameCenterDenylistPlayerAction extends Action {
+ constructor(contactId) {
+ super("GameCenterDenylistPlayerAction");
+ this.contactId = contactId;
+ }
+}
+/** @public */
+export class PageFacetsChangeAction extends Action {
+ constructor(filterParameter) {
+ super("PageFacetsChangeAction");
+ this.filterParameter = filterParameter;
+ }
+}
+/** @public */
+export class EngagementToggleAction extends Action {
+ constructor(identifier, value) {
+ super("EngagementToggleAction");
+ this.identifier = identifier;
+ this.value = value;
+ }
+}
+/** @public */
+export class ShelfBasedPageScrollAction extends Action {
+ constructor(shelfId, notPurchasedShelfId, purchasedShelfId, adamId, index, clicksOnScroll) {
+ super("ShelfBasedPageScrollAction");
+ this.shelfId = shelfId;
+ this.notPurchasedShelfId = notPurchasedShelfId;
+ this.purchasedShelfId = purchasedShelfId;
+ this.adamId = adamId;
+ this.index = index;
+ this.clicksOnScroll = clicksOnScroll;
+ }
+}
+/** @public */
+export class InvalidateAllWidgetsAction extends Action {
+ constructor() {
+ super("InvalidateAllWidgetsAction");
+ }
+}
+/** @public */
+export class AppLaunchTrampolineAction extends Action {
+ constructor(bundleId, payloadUrl, fallbackAction) {
+ super("AppLaunchTrampolineAction");
+ this.bundleId = bundleId;
+ this.payloadUrl = payloadUrl;
+ this.fallbackAction = fallbackAction;
+ }
+}
+/** @public */
+export class CreateCalendarEventAction extends Action {
+ constructor(startDate, endDate, isAllDay, name, location, notes, url, notAuthorizedAction, availability) {
+ super("CreateCalendarEventAction");
+ this.startDate = startDate;
+ this.endDate = endDate;
+ this.isAllDay = isAllDay;
+ this.name = name;
+ this.location = location;
+ this.notes = notes;
+ this.url = url;
+ this.notAuthorizedAction = notAuthorizedAction;
+ this.availability = availability;
+ }
+}
+/** @public
+ *
+ */
+export class CopyTextAction extends Action {
+ constructor(text) {
+ super("CopyTextAction");
+ this.text = text;
+ }
+}
+/** @public
+ *
+ */
+export class ClearAppUsageDataAction extends Action {
+ constructor() {
+ super("ClearAppUsageDataAction");
+ }
+}
+/** @public
+ * An action describing a request to delete all recent searches from on-device storage.
+ */
+export class ClearSearchHistoryAction extends Action {
+ constructor() {
+ super("ClearSearchHistoryAction");
+ }
+}
+/**
+ * @public
+ * An action describing an ad interaction, that passes data on to native ad instrumentation
+ * via Ad Platforms frameworks.
+ */
+export class AdInteractionAction extends Action {
+ constructor(adActionMetrics) {
+ super("AdInteractionAction");
+ this.adActionMetrics = adActionMetrics;
+ }
+}
+/**
+ * @public
+ * An action describes a begin of crossfire referral flow, that will pass the `ReferrerData` on to native to mark the beginning of crossfire flow.
+ */
+export class CrossfireReferralAction extends Action {
+ constructor(referrerData) {
+ super("CrossfireReferralAction");
+ this.referrerData = referrerData;
+ }
+}
+//# sourceMappingURL=actions.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/actions/base-action.js b/node_modules/@jet-app/app-store/tmp/src/api/models/actions/base-action.js
new file mode 100644
index 0000000..fa6da41
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/actions/base-action.js
@@ -0,0 +1,15 @@
+import * as base from "../base";
+import { ActionMetrics } from "../metrics/metrics";
+/** @public */
+export class Action extends base.ViewModel {
+ constructor(actionClass, actionMetrics = new ActionMetrics()) {
+ super();
+ this.title = null;
+ this.artwork = null;
+ this.presentationStyle = [];
+ this.actionClass = actionClass;
+ this.$kind = actionClass;
+ this.actionMetrics = actionMetrics;
+ }
+}
+//# sourceMappingURL=base-action.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/actions/flow-action.js b/node_modules/@jet-app/app-store/tmp/src/api/models/actions/flow-action.js
new file mode 100644
index 0000000..2317142
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/actions/flow-action.js
@@ -0,0 +1,26 @@
+import { Action } from "./base-action";
+/** @public */
+export class FlowBackAction extends Action {
+ constructor(dismissal) {
+ super("FlowBackAction");
+ this.dismissal = dismissal;
+ }
+}
+/** @public */
+export class FlowAction extends Action {
+ constructor(flowPage, pageUrl) {
+ super("FlowAction");
+ this.$kind = "flowAction";
+ this.page = flowPage;
+ this.pageUrl = pageUrl;
+ this.pageData = null;
+ this.referrerData = undefined;
+ this.presentationContext = "infer";
+ this.animationBehavior = "infer";
+ this.origin = "inapp";
+ }
+}
+export function isFlowAction(action) {
+ return action.$kind === "flowAction";
+}
+//# sourceMappingURL=flow-action.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/ad-incidents.js b/node_modules/@jet-app/app-store/tmp/src/api/models/ad-incidents.js
new file mode 100644
index 0000000..d62caa5
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/ad-incidents.js
@@ -0,0 +1,26 @@
+/**
+ * Models for Ad Incidents that may occur while building model.
+ */
+import { Model } from "./base";
+/**
+ * @public
+ * Base Incident Type
+ */
+export class AdIncident extends Model {
+ constructor(incidentType) {
+ super();
+ this.incidentType = incidentType;
+ }
+}
+/**
+ * @public
+ * Type of Ad Incident where Ad was discarded due to some reason
+ */
+export class DiscardAdIncident extends AdIncident {
+ constructor(instanceId, reason) {
+ super("discard");
+ this.instanceId = instanceId;
+ this.reason = reason;
+ }
+}
+//# sourceMappingURL=ad-incidents.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/annotation.js b/node_modules/@jet-app/app-store/tmp/src/api/models/annotation.js
new file mode 100644
index 0000000..92f41ba
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/annotation.js
@@ -0,0 +1,50 @@
+import * as base from "./base";
+/**
+ * The `Annotation` model describes a category of information about an app,
+ * such as supported languages, app size, content ratings, in-app-purchase
+ * info, etc.
+ *
+ * `Annotations` always have a title and summary, and most also have an `items`
+ * array of `AnnotationItem`s with more fine-grained details.
+ *
+ * @public
+ */
+export class Annotation extends base.Model {
+ constructor(title, items, summary, linkAction) {
+ super();
+ this.title = title;
+ this.summary = summary;
+ this.items = items;
+ this.items_V3 = [];
+ this.shouldAlwaysPresentExpanded = false;
+ this.linkAction = linkAction;
+ }
+}
+/**
+ * A single item used to show more details in an `Annotation`. This could be an
+ * In-App Purchase, supported language list, a link to an editorial item, etc.
+ * @public
+ */
+export class AnnotationItem extends base.Model {
+ constructor(text, options = {}) {
+ super();
+ this.text = text;
+ this.heading = options.heading;
+ this.headingArtworks = options.headingArtworks;
+ this.listText = options.listText;
+ this.textPairs = options.textPairs;
+ }
+}
+/**
+ * Used on tvOS to visually group related `Annotation` objects into a column.
+ * @public
+ */
+export class AnnotationGroup extends base.Model {
+ constructor(title, annotations, forceExpanded) {
+ super();
+ this.title = title;
+ this.annotations = annotations;
+ this.forceExpanded = forceExpanded;
+ }
+}
+//# sourceMappingURL=annotation.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/app-promotions.js b/node_modules/@jet-app/app-store/tmp/src/api/models/app-promotions.js
new file mode 100644
index 0000000..cf0c242
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/app-promotions.js
@@ -0,0 +1,186 @@
+import * as base from "./base";
+import * as models from "./index";
+import * as metrics from "./metrics/metrics";
+/** @public */
+export class AppEventFormattedDate extends models.Model {
+ constructor(showLiveIndicator, displayFromDate, displayText, countdownToDate, countdownStringKey) {
+ super();
+ this.showLiveIndicator = showLiveIndicator;
+ this.displayFromDate = displayFromDate;
+ this.displayText = displayText;
+ this.countdownToDate = countdownToDate;
+ this.countdownStringKey = countdownStringKey;
+ }
+}
+/** @public */
+export var AppEventBadgeKind;
+(function (AppEventBadgeKind) {
+ AppEventBadgeKind["available"] = "available";
+ AppEventBadgeKind["happening"] = "happening";
+ AppEventBadgeKind["live"] = "live";
+})(AppEventBadgeKind || (AppEventBadgeKind = {}));
+export var AppPromotionType;
+(function (AppPromotionType) {
+ AppPromotionType["AppEvent"] = "appEvent";
+ AppPromotionType["ContingentOffer"] = "contingentOffer";
+ AppPromotionType["OfferItem"] = "offerItem";
+})(AppPromotionType || (AppPromotionType = {}));
+/** @public */
+export class AppPromotion extends base.ViewModel {
+ constructor(promotionType) {
+ super();
+ this.promotionType = promotionType;
+ }
+}
+/** @public */
+export class AppEvent extends AppPromotion {
+ constructor(appEventId, moduleArtwork, moduleVideo, title, subtitle, detail, startDate, endDate, appEventBadgeKind, kind, requirements, lockup, hideLockupWhenNotInstalled, formattedDates, mediaOverlayStyle, includeBorderInDarkMode) {
+ super(AppPromotionType.AppEvent);
+ this.appEventId = appEventId;
+ this.moduleArtwork = moduleArtwork;
+ this.moduleVideo = moduleVideo;
+ this.title = title;
+ this.subtitle = subtitle;
+ this.detail = detail;
+ this.startDate = startDate;
+ this.endDate = endDate;
+ this.kind = kind;
+ this.appEventBadgeKind = appEventBadgeKind;
+ this.requirements = requirements;
+ this.lockup = lockup;
+ this.hideLockupWhenNotInstalled = hideLockupWhenNotInstalled;
+ this.formattedDates = formattedDates;
+ this.mediaOverlayStyle = mediaOverlayStyle;
+ this.includeBorderInDarkMode = includeBorderInDarkMode;
+ this.clickAction = null;
+ }
+}
+/** @public */
+export class AppEventDetailPage extends models.Model {
+ constructor(appEvent, artwork, video, shareAction, mediaOverlayStyle, includeBorderInDarkMode) {
+ super();
+ this.appEvent = appEvent;
+ this.artwork = artwork;
+ this.video = video;
+ this.shareAction = shareAction;
+ this.mediaOverlayStyle = mediaOverlayStyle;
+ this.includeBorderInDarkMode = includeBorderInDarkMode;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/**
+ * Determines if a {@linkcode shelves.Shelf} is actually a {@linkcode AppEventDetailShelf}
+ */
+export function isAppEventDetailShelf(shelf) {
+ return shelf.contentType === "appEventDetail";
+}
+/**
+ * `Shelf` definition that wraps a single {@linkcode AppEventDetailPage}
+ *
+ * This is used to power the "web" client UI for an `app-event` detail page
+ *
+ * @public
+ */
+export class AppEventDetailShelf extends models.Shelf {
+ constructor(detailPage) {
+ super("appEventDetail", null, [detailPage]);
+ }
+}
+/** @public */
+export class AppEventNotificationConfig extends models.Model {
+ constructor(appEventId, title, detail, artworkUrl, displayTime, scheduledAction, notAuthorizedAction, failureAction, destinationUrl, scheduleClickEvent, cancelScheduleClickEvent) {
+ super();
+ this.appEventId = appEventId;
+ this.title = title;
+ this.detail = detail;
+ this.artworkUrl = artworkUrl;
+ this.displayTime = displayTime;
+ this.scheduledAction = scheduledAction;
+ this.notAuthorizedAction = notAuthorizedAction;
+ this.failureAction = failureAction;
+ this.destinationUrl = destinationUrl;
+ this.scheduleClickEvent = scheduleClickEvent;
+ this.cancelScheduleClickEvent = cancelScheduleClickEvent;
+ }
+}
+/** @public */
+export class ContingentOffer extends AppPromotion {
+ constructor(backgroundArtwork, mediaOverlayStyle, isStreamlinedBuy, learnMoreTitle, titleFormatted, subtitle, description, label, badge, additionalInfo, trunkAppIcon, offerLockup) {
+ super(AppPromotionType.ContingentOffer);
+ this.backgroundArtwork = backgroundArtwork;
+ this.isStreamlinedBuy = isStreamlinedBuy;
+ this.mediaOverlayStyle = mediaOverlayStyle;
+ this.titleFormatted = titleFormatted;
+ this.subtitle = subtitle;
+ this.additionalInfo = additionalInfo;
+ this.description = description;
+ this.label = label;
+ this.badge = badge;
+ this.offerLockup = offerLockup;
+ this.trunkAppIcon = trunkAppIcon;
+ this.learnMoreTitle = learnMoreTitle;
+ this.clickAction = null;
+ }
+}
+/** @public */
+export class AppPromotionDetailPage extends base.ViewModel {
+ constructor(promotionType) {
+ super();
+ this.promotionType = promotionType;
+ }
+}
+/** @public */
+export class ContingentOfferDetailPage extends AppPromotionDetailPage {
+ constructor(contingentOffer, artwork, mediaOverlayStyle) {
+ super(AppPromotionType.ContingentOffer);
+ this.contingentOffer = contingentOffer;
+ this.artwork = artwork;
+ this.mediaOverlayStyle = mediaOverlayStyle;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ this.learnMoreActionMetrics = new metrics.ActionMetrics();
+ this.backButtonActionMetrics = new metrics.ActionMetrics();
+ this.closeButtonActionMetrics = new metrics.ActionMetrics();
+ }
+}
+/** @public
+ *
+ *
+ */
+export class OfferItem extends AppPromotion {
+ constructor(moduleArtwork, moduleVideo, mediaOverlayStyle, isStreamlinedBuy, titleFormatted, expiryDateFormatted, subtitle, description, badge, endDate, iapArtwork, offerLockup) {
+ super(AppPromotionType.OfferItem);
+ this.moduleArtwork = moduleArtwork;
+ this.moduleVideo = moduleVideo;
+ this.isStreamlinedBuy = isStreamlinedBuy;
+ this.mediaOverlayStyle = mediaOverlayStyle;
+ this.titleFormatted = titleFormatted;
+ this.description = description;
+ this.badge = badge;
+ this.offerLockup = offerLockup;
+ this.subtitle = subtitle;
+ this.endDate = endDate;
+ this.expiryDateFormatted = expiryDateFormatted;
+ this.iapArtwork = iapArtwork;
+ this.clickAction = null;
+ }
+}
+/** @public */
+export class OfferItemDetailPage extends AppPromotionDetailPage {
+ constructor(offerItem, artwork, video, mediaOverlayStyle, includeBorderInDarkMode, learnMoreTitle, additionalInfo) {
+ super(AppPromotionType.OfferItem);
+ this.offerItem = offerItem;
+ this.artwork = artwork;
+ this.learnMoreTitle = learnMoreTitle;
+ this.video = video;
+ this.mediaOverlayStyle = mediaOverlayStyle;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.additionalInfo = additionalInfo;
+ this.pageRenderMetrics = {};
+ this.learnMoreActionMetrics = new metrics.ActionMetrics();
+ this.backButtonActionMetrics = new metrics.ActionMetrics();
+ this.closeButtonActionMetrics = new metrics.ActionMetrics();
+ }
+}
+//# sourceMappingURL=app-promotions.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/arcade-upsell.js b/node_modules/@jet-app/app-store/tmp/src/api/models/arcade-upsell.js
new file mode 100644
index 0000000..8d8eac3
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/arcade-upsell.js
@@ -0,0 +1,18 @@
+/**
+ * Created by Jellenbogen on 11/19/19.
+ */
+import * as base from "./base";
+/** @public */
+export class UpsellBreakout extends base.ViewModel {
+ constructor(details, offerDisplayProperties, displayProperties, offerButtonAction, buttonCallToAction, artwork, video) {
+ super();
+ this.details = details;
+ this.displayProperties = displayProperties;
+ this.offerButtonAction = offerButtonAction;
+ this.buttonCallToAction = buttonCallToAction;
+ this.offerDisplayProperties = offerDisplayProperties;
+ this.artwork = artwork;
+ this.video = video;
+ }
+}
+//# sourceMappingURL=arcade-upsell.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/arcade.js b/node_modules/@jet-app/app-store/tmp/src/api/models/arcade.js
new file mode 100644
index 0000000..a016e3b
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/arcade.js
@@ -0,0 +1,240 @@
+import * as models from "./index";
+import * as metrics from "./metrics/metrics";
+export function marketingItemContextFromString(context) {
+ var _a, _b;
+ if (preprocessor.GAMES_TARGET) {
+ switch (context) {
+ case "generic":
+ return "gameCenterGeneric";
+ case "groupingLockup":
+ return "gameCenterLockup";
+ case "arcadeTabHeader":
+ return "gameCenterEditorialPageHeader";
+ case "productPage":
+ return "gameCenterProductPage";
+ case "arcadeComingSoon":
+ return "gameCenterComingSoon";
+ case "gameCenterEditorialPage": // TBD
+ return "gameCenterEditorialPage";
+ default:
+ return (_a = context) !== null && _a !== void 0 ? _a : "gameCenterGeneric";
+ }
+ }
+ switch (context) {
+ case "askToBuy":
+ return "arcadeAskToBuy";
+ case "generic":
+ return "arcadeGeneric";
+ case "groupingLockup":
+ return "arcadeGroupingLockup";
+ case "launchRepair":
+ return "arcadeLaunchRepair";
+ case "productPage":
+ return "arcadeProductPage";
+ case "topShelfATV":
+ return "arcadeTopShelfATV";
+ case "topShelfATVClickThrough":
+ return "arcadeTopShelfATVClickThrough";
+ case "editorialItem":
+ return "arcadeTodayCard";
+ case "editorialItemCanvas":
+ return "arcadeStoryCanvas";
+ case "arcadeComingSoon":
+ return "arcadeComingSoon";
+ case "arcadeTabHeader":
+ return "arcadeTabHeader";
+ case "arcadeTabNavBar":
+ return "arcadeTabNavBar";
+ default:
+ return (_b = context) !== null && _b !== void 0 ? _b : "arcadeGeneric";
+ }
+}
+export function isContextualUpsellContext(context) {
+ if (preprocessor.GAMES_TARGET) {
+ switch (context) {
+ case "gameCenterLockup":
+ case "gameCenterProductPage":
+ return true;
+ default:
+ return false;
+ }
+ }
+ switch (context) {
+ case "arcadeGroupingLockup":
+ case "arcadeProductPage":
+ case "productPage":
+ case "groupingLockup":
+ return true;
+ default:
+ return false;
+ }
+}
+/** @public */
+export class ArcadeSubscribePage extends models.Model {
+ constructor(details, dismissButtonTitle, offerButtonAction, offerDisplayProperties) {
+ super();
+ this.details = details;
+ this.dismissButtonTitle = dismissButtonTitle;
+ this.offerButtonAction = offerButtonAction;
+ this.offerDisplayProperties = offerDisplayProperties;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/** @public */
+export class ArcadeWelcomeItem extends models.Model {
+ constructor(headline, body, artwork) {
+ super();
+ this.headline = headline;
+ this.body = body;
+ this.artwork = artwork;
+ }
+}
+/** @public */
+export class ArcadeWelcomeContent extends models.Model {
+ constructor(title, subtitle, items, continueAction, familyAction) {
+ super();
+ this.title = title;
+ this.subtitle = subtitle;
+ this.items = items;
+ this.continueAction = continueAction;
+ this.familyAction = familyAction;
+ }
+}
+/** @public */
+export class ArcadeWelcomePage extends models.Model {
+ constructor(individualContent, familyMemberContent) {
+ super();
+ this.individualContent = individualContent;
+ this.familyMemberContent = familyMemberContent;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/** @public */
+export class MarketingItemRequestInfo extends models.Model {
+ constructor(serviceType, placement, metricsTopic, seed, clientOptions) {
+ super();
+ this.serviceType = serviceType;
+ this.placement = placement;
+ this.seed = seed;
+ this.clientOptions = clientOptions;
+ this.metricsOverlay = { topic: metricsTopic };
+ }
+}
+/** @public */
+export class DynamicUIRequestInfo extends models.Model {
+ constructor(metricsTopic, clientOptions) {
+ super();
+ this.clientOptions = clientOptions;
+ this.metricsOverlay = { topic: metricsTopic };
+ }
+}
+/** @public */
+export class UpsellGridContent extends models.Model {
+ constructor(primaryIcon, icons) {
+ super();
+ this.primaryIcon = primaryIcon;
+ this.icons = icons;
+ }
+}
+/** @public */
+export class AppStoreEngagementTask extends models.Model {
+ constructor(action) {
+ super();
+ this.action = action;
+ }
+}
+/** @public
+ * A model for game category button on Arcade download pack screen.
+ */
+export class ArcadeDownloadPackCategory extends models.ViewModel {
+ constructor(id, title, artwork, gradientStartColor, gradientEndColor) {
+ super();
+ this.id = id;
+ this.title = title;
+ this.artwork = artwork;
+ this.gradientStartColor = gradientStartColor;
+ this.gradientEndColor = gradientEndColor;
+ this.selectActionMetrics = new models.ActionMetrics();
+ this.deselectActionMetrics = new models.ActionMetrics();
+ }
+}
+/** @public
+ * Initial Arcade download pack screen with game categories to select by user.
+ */
+export class ArcadeDownloadPackCategoriesPage extends models.Model {
+ constructor(title, categories, maxNumberOfCategoriesToChoose, maxNumberOfCategoriesToChooseTemplate, numberOfChosenCategoriesTemplate, primaryAction, dismissAction) {
+ super();
+ this.title = title;
+ this.categories = categories;
+ this.maxNumberOfCategoriesToChoose = maxNumberOfCategoriesToChoose;
+ this.maxNumberOfCategoriesToChooseTemplate = maxNumberOfCategoriesToChooseTemplate;
+ this.numberOfChosenCategoriesTemplate = numberOfChosenCategoriesTemplate;
+ this.primaryAction = primaryAction;
+ this.dismissAction = dismissAction;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/** @public
+ * A lockup model for Arcade download suggestions pack screen with linked Arcade category.
+ */
+export class ArcadeDownloadPackSuggestion extends models.Model {
+ constructor(lockup, categoryId) {
+ super();
+ this.lockup = lockup;
+ this.categoryId = categoryId;
+ }
+}
+/** @public
+ * Follow up Arcade download pack screen with the list of suggested games.
+ */
+export class ArcadeDownloadPackSuggestionsPage extends models.Model {
+ constructor(title, suggestions, getAllAction, getAllButtonStyle, primaryAction, primaryActionKind, primaryActionSecondaryTitle) {
+ super();
+ this.title = title;
+ this.suggestions = suggestions;
+ this.getAllAction = getAllAction;
+ this.getAllButtonStyle = getAllButtonStyle;
+ this.primaryAction = primaryAction;
+ this.primaryActionKind = primaryActionKind;
+ this.primaryActionSecondaryTitle = primaryActionSecondaryTitle;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/**
+ * Matches untyped string with `ArcadeOnboardingSubscriptionStatus` typed value.
+ * It is used to convert opaque `string` value that is passed across JS bridge from native code.
+ * @param value `string` value with the same content.
+ */
+export function arcadeOnboardingSubscriptionStatusFromString(value) {
+ switch (value) {
+ case "new":
+ return "new";
+ case "existing":
+ return "existing";
+ default:
+ return "unknown";
+ }
+}
+/** @public
+ * Purchase params to use in`ASDPurchaseManager.purchaseBatch` call.
+ */
+export class BatchPurchaseParams {
+ constructor(items, commonBuyParams) {
+ this.items = items;
+ this.commonBuyParams = commonBuyParams;
+ }
+}
+/** @public
+ * Decorated purchase for a product with a separate buyParams map.
+ */
+export class BatchPurchaseItem {
+ constructor(purchase, buyParams) {
+ this.purchase = purchase;
+ this.buyParams = buyParams;
+ }
+}
+//# sourceMappingURL=arcade.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/article-page.js b/node_modules/@jet-app/app-store/tmp/src/api/models/article-page.js
new file mode 100644
index 0000000..9d5d6c0
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/article-page.js
@@ -0,0 +1,18 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import * as models from "./base";
+import * as metrics from "./metrics/metrics";
+/** @public */
+export class ArticlePage extends models.Model {
+ constructor(card, shelfModels, shareAction) {
+ super();
+ this.card = card;
+ this.shelves = shelfModels;
+ this.shareAction = shareAction;
+ this.isIncomplete = false;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+//# sourceMappingURL=article-page.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/base.js b/node_modules/@jet-app/app-store/tmp/src/api/models/base.js
new file mode 100644
index 0000000..8281f6a
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/base.js
@@ -0,0 +1,596 @@
+/**
+ * Created by km on 2/13/17.
+ */
+// region Core
+/** @public */
+export class Model {
+ constructor() {
+ this.$incidents = undefined;
+ }
+ /**
+ * Indicates whether this model is valid. Subclasses should override if there are specific
+ * properties that are required for proper functioning
+ * @returns {boolean} Whether the model is valid. Defaults to true.
+ */
+ isValid() {
+ return true;
+ }
+}
+/**
+ * @public
+ * @todo Make this implement JetEngine ViewModel once we migrate ImpressionMetrics
+ */
+export class ViewModel extends Model {
+ constructor(impressionMetrics = null) {
+ super();
+ this.impressionMetrics = impressionMetrics;
+ }
+}
+/** @public */
+export class PurchaseConfiguration extends Model {
+ constructor(buyParams, vendor, appName, bundleId, appPlatforms, isPreorder, excludeAttribution, metricsPlatformDisplayStyle, lineItem, isRedownload, preflightPackageUrl, isArcadeApp, isHalva, supportsVisionOSCompatibleIOSBinary, inAppEventId, extRefApp2, extRefUrl2, additionalHeaders, appCapabilities, isDefaultBrowser, remoteDownloadIdentifiers, hasMacIPAPackage, contentRating) {
+ super();
+ this.buyParams = buyParams;
+ this.vendor = vendor;
+ this.appName = appName;
+ this.bundleId = bundleId;
+ this.appPlatforms = appPlatforms;
+ this.isPreorder = isPreorder === null || isPreorder === undefined ? false : isPreorder;
+ this.excludeAttribution =
+ excludeAttribution === null || excludeAttribution === undefined ? true : excludeAttribution;
+ this.metricsPlatformDisplayStyle = metricsPlatformDisplayStyle;
+ this.isRedownload = isRedownload === null || isRedownload === undefined ? false : isRedownload;
+ this.lineItem = lineItem;
+ this.preflightPackageUrl = preflightPackageUrl === undefined ? null : preflightPackageUrl;
+ this.isArcadeApp = isArcadeApp;
+ this.isHalva = isHalva;
+ this.supportsVisionOSCompatibleIOSBinary = supportsVisionOSCompatibleIOSBinary;
+ this.inAppEventId = inAppEventId;
+ this.extRefApp2 = extRefApp2;
+ this.extRefUrl2 = extRefUrl2;
+ this.additionalHeaders = additionalHeaders;
+ this.appCapabilities = appCapabilities;
+ this.isDefaultBrowser = isDefaultBrowser;
+ this.remoteDownloadIdentifiers = remoteDownloadIdentifiers;
+ this.hasMacIPAPackage = hasMacIPAPackage;
+ this.contentRating = contentRating;
+ }
+}
+/** @public */
+export class OfferDisplayProperties extends Model {
+ constructor(offerType, adamId, bundleId, style, parentAdamId, environment, offerTint, titles, titleSymbolNames, subtitles, hasInAppPurchases, hasExternalPurchases, isDeletableSystemApp, isFree, isPreorder, offerLabelStyle, hasDiscount, contentRating, subscriptionFamilyId, useAdsLocale, priceFormatted, isStreamlinedBuy, appCapabilities, isRedownloadDisallowed = false, isOpenBundleAllowed = false) {
+ super();
+ this.offerType = offerType;
+ this.adamId = adamId;
+ this.bundleId = bundleId;
+ this.parentAdamId = parentAdamId;
+ this.style = style === null || style === undefined ? "infer" : style;
+ this.environment = environment === null || environment === undefined ? "light" : environment;
+ this.offerTint = offerTint === null || offerTint === undefined ? { type: "blue" } : offerTint;
+ this.titles = titles === null || titles === undefined ? {} : titles;
+ this.titleSymbolNames = titleSymbolNames === null || titleSymbolNames === undefined ? {} : titleSymbolNames;
+ this.subtitles = subtitles === null || subtitles === undefined ? {} : subtitles;
+ this.hasInAppPurchases = hasInAppPurchases;
+ this.hasExternalPurchases = hasExternalPurchases;
+ this.isDeletableSystemApp = isDeletableSystemApp;
+ this.isFree = isFree;
+ this.isPreorder = isPreorder;
+ this.offerLabelStyle = offerLabelStyle === null || offerLabelStyle === undefined ? "none" : offerLabelStyle;
+ this.hasDiscount = hasDiscount;
+ this.contentRating = contentRating;
+ this.subscriptionFamilyId = subscriptionFamilyId;
+ this.useAdsLocale = useAdsLocale;
+ this.priceFormatted = priceFormatted;
+ this.isStreamlinedBuy = isStreamlinedBuy;
+ this.appCapabilities = appCapabilities;
+ this.isRedownloadDisallowed = isRedownloadDisallowed;
+ this.isOpenBundleAllowed = isOpenBundleAllowed;
+ }
+ /**
+ * Create new offer display properties changing appearance.
+ * @param {boolean} overrideDisabledStyle When false, an offer style of 'disabled' is maintained. When true, the style is overridden regardless of being disabled to begin with.
+ * @param {OfferStyle} style The new style to apply.
+ * @param {OfferEnvironment} environment The new environment to apply.
+ * @param {OfferTint} offerTint
+ * @return {string} A new instance of OfferDisplayProperties with the desired modifications.
+ */
+ newOfferDisplayPropertiesChangingAppearance(overrideDisabledStyle, style, environment, offerTint) {
+ return new OfferDisplayProperties(this.offerType, this.adamId, this.bundleId, style === null || style === undefined || (!overrideDisabledStyle && this.style === "disabled")
+ ? this.style
+ : style, this.parentAdamId, environment === null || environment === undefined ? this.environment : environment, offerTint === null || offerTint === undefined ? this.offerTint : offerTint, this.titles, this.titleSymbolNames, this.subtitles, this.hasInAppPurchases, this.hasExternalPurchases, this.isDeletableSystemApp, this.isFree, this.isPreorder, this.offerLabelStyle, this.hasDiscount, this.contentRating, this.subscriptionFamilyId, this.useAdsLocale, this.priceFormatted, this.isStreamlinedBuy, this.appCapabilities, this.isRedownloadDisallowed, this.isOpenBundleAllowed);
+ }
+}
+/**
+ * @public
+ * Information needed to personalize offerActions and how they are displayed.
+ */
+export class PersonalizedOfferContext extends Model {
+ constructor(personalizedOfferType, offerAction, offerDisplayProperties) {
+ super();
+ this.offerAction = offerAction;
+ this.offerDisplayProperties = offerDisplayProperties;
+ this.personalizedOfferType = personalizedOfferType;
+ }
+}
+export var ArtworkContentMode;
+(function (ArtworkContentMode) {
+ ArtworkContentMode[ArtworkContentMode["scaleToFill"] = 0] = "scaleToFill";
+ ArtworkContentMode[ArtworkContentMode["scaleAspectFit"] = 1] = "scaleAspectFit";
+ ArtworkContentMode[ArtworkContentMode["scaleAspectFill"] = 2] = "scaleAspectFill";
+ ArtworkContentMode[ArtworkContentMode["redraw"] = 3] = "redraw";
+ ArtworkContentMode[ArtworkContentMode["center"] = 4] = "center";
+ ArtworkContentMode[ArtworkContentMode["top"] = 5] = "top";
+ ArtworkContentMode[ArtworkContentMode["bottom"] = 6] = "bottom";
+ ArtworkContentMode[ArtworkContentMode["left"] = 7] = "left";
+ ArtworkContentMode[ArtworkContentMode["right"] = 8] = "right";
+ ArtworkContentMode[ArtworkContentMode["topLeft"] = 9] = "topLeft";
+ ArtworkContentMode[ArtworkContentMode["topRight"] = 10] = "topRight";
+ ArtworkContentMode[ArtworkContentMode["bottomLeft"] = 11] = "bottomLeft";
+ ArtworkContentMode[ArtworkContentMode["bottomRight"] = 12] = "bottomRight";
+})(ArtworkContentMode || (ArtworkContentMode = {}));
+/** @public */
+export class ArtworkVariant extends Model {
+ constructor(format, quality, supportsWideGamut) {
+ super();
+ this.format = format;
+ this.quality = quality;
+ this.supportsWideGamut = supportsWideGamut;
+ }
+ isValid() {
+ return this.format && this.supportsWideGamut !== undefined;
+ }
+}
+const systemImages = [
+ "app.3.stack.3d",
+ "app.3.stack.3d.fill",
+ "applewatch",
+ "appstore",
+ "hammer",
+ "hammer.fill",
+ "house",
+ "ipad.gen2.landscape",
+ "iphone.gen2",
+ "joystickcontroller",
+ "joystickcontroller.fill",
+ "macbook.gen2",
+ "magnifyingglass",
+ "paintbrush",
+ "paintbrush.fill",
+ "paperplane",
+ "paperplane.fill",
+ "person.crop.square",
+ "rocket",
+ "rocket.fill",
+ "safari",
+ "square.grid.2x2",
+ "square.grid.2x2.fill",
+ "star",
+ "star.fill",
+ "text.rectangle.page",
+ "text.rectangle.page.fill",
+ "tv",
+ "visionpro",
+];
+/**
+ * @public
+ * Type guard to narrow and ensure a string is a valid `SystemImage`.
+ */
+export function isSystemImage(systemImage) {
+ return typeof systemImage === "string" && systemImages.includes(systemImage);
+}
+/** @public */
+export class Artwork extends Model {
+ constructor(template, width, height, variants, backgroundColor, textColor) {
+ super();
+ this.checksum = null;
+ this.backgroundColor = null;
+ this.textColor = null; // Represents a valid text color that can be used alongside this artwork
+ this.style = null;
+ this.crop = "bb";
+ this.contentMode = null;
+ this.imageScale = null;
+ this.template = template;
+ this.width = width;
+ this.height = height;
+ this.variants = variants;
+ this.backgroundColor = backgroundColor;
+ this.textColor = textColor;
+ }
+ isPortrait() {
+ return this.height >= this.width;
+ }
+ isLandscape() {
+ return !this.isPortrait();
+ }
+ isValid() {
+ return this.template !== "" && this.width > 0 && this.height > 0 && this.variants.length > 0;
+ }
+}
+/** @public */
+export class Screenshots extends Model {
+ constructor(artwork, mediaPlatform) {
+ super();
+ this.artwork = artwork;
+ this.mediaPlatform = mediaPlatform;
+ }
+}
+/** @public */
+export class MediaPlatform extends Model {
+ constructor(appPlatform, mediaType, systemImageName, supplementaryAppPlatforms, deviceCornerRadiusFactor, deviceBorderThickness, outerDeviceCornerRadiusFactor) {
+ super();
+ this.appPlatform = appPlatform;
+ this.supplementaryAppPlatforms = supplementaryAppPlatforms || [];
+ this.deviceCornerRadiusFactor = deviceCornerRadiusFactor;
+ this.mediaType = mediaType;
+ this.systemImageName = systemImageName;
+ this.deviceBorderThickness = deviceBorderThickness;
+ this.outerDeviceCornerRadiusFactor = outerDeviceCornerRadiusFactor;
+ }
+ isEqualTo(mediaPlatform) {
+ this.supplementaryAppPlatforms.sort();
+ mediaPlatform.supplementaryAppPlatforms.sort();
+ const supplementaryPlatformsAreEqual = this.supplementaryAppPlatforms.join(",") === mediaPlatform.supplementaryAppPlatforms.join(",");
+ return (mediaPlatform.appPlatform === this.appPlatform &&
+ mediaPlatform.mediaType === this.mediaType &&
+ mediaPlatform.systemImageName === this.systemImageName &&
+ supplementaryPlatformsAreEqual &&
+ mediaPlatform.deviceCornerRadiusFactor === this.deviceCornerRadiusFactor);
+ }
+}
+/**
+ * @public
+ * Generic size class used to describe an size in points
+ */
+export class Size {
+ constructor(width, height) {
+ this.width = width;
+ this.height = height;
+ }
+ static fromNativeSize(nativeSize) {
+ return new Size(nativeSize.width, nativeSize.height);
+ }
+ isEqualTo(size) {
+ return size.width === this.width && size.height === this.height;
+ }
+}
+// endregion
+// region Share
+/** @public */
+export class ShareSheetNotesMetadata extends Model {
+ constructor(itemName, url, developer, category, fileSize, mediaType) {
+ super();
+ this.itemName = itemName;
+ this.url = url;
+ this.developer = developer;
+ this.category = category;
+ this.fileSize = fileSize;
+ this.mediaType = mediaType;
+ }
+}
+/** @public */
+export class ShareSheetArticleMetadata extends Model {
+ constructor(id, text, subtitle, artwork) {
+ super();
+ this.context = "article";
+ this.id = id;
+ this.text = text;
+ this.subtitle = subtitle;
+ this.artwork = artwork;
+ }
+}
+/** @public */
+export class ShareSheetAppEventMetadata extends Model {
+ constructor(text, subtitle, artwork) {
+ super();
+ this.context = "appEvent";
+ this.text = text;
+ this.subtitle = subtitle;
+ this.artwork = artwork;
+ }
+}
+/** @public */
+export class ShareSheetProductMetadata extends Model {
+ constructor(adamId, storeFrontIdentifier, name, platform, icon, screenshots, videos, isMessagesOnlyApp, subtitle, genreName, messagesAppIcon, notesMetadata) {
+ super();
+ this.context = "product";
+ this.adamId = adamId;
+ this.storeFrontIdentifier = storeFrontIdentifier;
+ this.name = name;
+ this.platform = platform;
+ this.icon = icon;
+ this.screenshots = screenshots;
+ this.videos = videos;
+ this.isMessagesOnlyApp = isMessagesOnlyApp;
+ this.subtitle = subtitle;
+ this.genreName = genreName;
+ this.messagesAppIcon = messagesAppIcon;
+ this.notesMetadata = notesMetadata;
+ }
+}
+/** @public */
+export class ShareSheetGenericMetadata extends Model {
+ constructor(text, subtitle, artwork) {
+ super();
+ this.context = "generic";
+ this.text = text;
+ this.subtitle = subtitle;
+ this.artwork = artwork;
+ }
+}
+/** @public */
+export class ShareSheetData extends Model {
+ constructor(metadata, url, shortUrl) {
+ super();
+ this.metadata = metadata;
+ this.url = url;
+ this.shortUrl = shortUrl;
+ }
+}
+// endregion
+// region ReportConcern
+/** @public */
+export class ReportConcernReason extends Model {
+ constructor(reasonId, name, uppercaseName) {
+ super();
+ this.reasonId = reasonId;
+ this.name = name;
+ this.uppercaseName = uppercaseName;
+ }
+}
+/** @public */
+export class StyledText extends Model {
+ constructor(rawText, rawTextType = "text/plain") {
+ super();
+ this.rawText = rawText;
+ this.rawTextType = rawTextType;
+ }
+}
+/** @public */
+export class Paragraph extends ViewModel {
+ constructor(text, mediaType, style) {
+ super();
+ this.text = text;
+ this.mediaType = mediaType || "text/plain";
+ this.style = style || "standard";
+ this.alignment = "localized";
+ this.isCollapsed = false;
+ this.suppressVerticalMargins = false;
+ this.wantsCollapsedNewlines = true;
+ }
+}
+// endregion
+// region Flow Preview
+/** @public */
+export class FlowPreviewActionsConfiguration extends Model {
+ constructor(actionss, offerDisplayProperties = null, offerActionIndex = null) {
+ super();
+ this.actions = actionss;
+ this.offerDisplayProperties = offerDisplayProperties;
+ this.offerActionIndex = offerActionIndex;
+ }
+}
+// region Arcade Footer
+/** @public */
+export class ArcadeFooter extends ViewModel {
+}
+// endregion
+/** @public
+ * Arcade download (starter) pack shelf data model.
+ * Currently used only for iPhone (see `ArcadeDownloadPackShelfController`).
+ */
+export class ArcadeDownloadPackCard extends ViewModel {
+}
+/** @public */
+export class TitleEffect extends Model {
+ constructor(type) {
+ super();
+ this.isFallbackStyle = false;
+ this.type = type;
+ }
+}
+// endregion
+// region Game Center
+/** @public */
+export class GameCenterPlayerGameAchievementSummary extends ViewModel {
+ constructor(bundleId, completedAchievements, totalAchievements, completedText, action, achievements) {
+ super();
+ this.bundleId = bundleId;
+ this.completedAchievements = completedAchievements;
+ this.totalAchievements = totalAchievements;
+ this.completedText = completedText;
+ this.action = action;
+ this.achievements = achievements;
+ }
+}
+/** @public */
+export class GameCenterPlayer extends ViewModel {
+ constructor(playerId, alias, displayName, size, artwork, action) {
+ super();
+ this.playerId = playerId;
+ this.alias = alias;
+ this.displayName = displayName;
+ this.artwork = artwork;
+ this.action = action;
+ this.size = size;
+ }
+}
+/** @public */
+export class GameCenterActivityFeedCard extends ViewModel {
+ constructor(id, avatarImageURL, avatarActionURL, body, supplementaryViewImageURL, supplementaryViewActionURL, adamID) {
+ super();
+ this.id = id;
+ this.avatarImageURL = avatarImageURL;
+ this.avatarActionURL = avatarActionURL;
+ this.body = body;
+ this.supplementaryViewImageURL = supplementaryViewImageURL;
+ this.supplementaryViewActionURL = supplementaryViewActionURL;
+ this.adamID = adamID;
+ }
+}
+/** @public */
+export class SmallContactCard extends ViewModel {
+ constructor(id, title, subtitle, buttonText, contactId, buttonAction, removeButtonAction, shouldShowMessagesBadge) {
+ super();
+ this.id = id;
+ this.title = title;
+ this.subtitle = subtitle;
+ this.buttonText = buttonText;
+ this.contactId = contactId;
+ this.buttonAction = buttonAction;
+ this.removeButtonAction = removeButtonAction;
+ this.shouldShowMessagesBadge = shouldShowMessagesBadge;
+ }
+}
+/** @public */
+export class GameCenterAchievementStatus extends Model {
+ constructor(type) {
+ super();
+ this.type = type;
+ }
+}
+/** @public */
+export class GameCenterAchievement extends Model {
+ constructor(id, title, subtitle, status) {
+ super();
+ this.id = id;
+ this.title = title;
+ this.subtitle = subtitle;
+ this.status = status;
+ }
+}
+/** @public */
+export class GameCenterGameplayHistory extends Model {
+ constructor(adamId, platformId, isArcade, records) {
+ super();
+ this.adamId = adamId;
+ this.platformId = platformId;
+ this.isArcade = isArcade;
+ this.records = records;
+ }
+}
+/** @public */
+export class GameCenterGameplayHistoryRecord extends Model {
+ constructor(playerId, timestamp) {
+ super();
+ this.playerId = playerId;
+ this.timestamp = timestamp;
+ }
+}
+/** @public */
+export class Video extends Model {
+ constructor(videoUrl, preview, videoConfiguration) {
+ super();
+ this.videoUrl = videoUrl;
+ this.preview = preview;
+ this.allowsAutoPlay = videoConfiguration.allowsAutoPlay;
+ this.looping = videoConfiguration.looping;
+ this.canPlayFullScreen = videoConfiguration.canPlayFullScreen;
+ this.playbackControls = { ...videoConfiguration.playbackControls };
+ this.autoPlayPlaybackControls = { ...videoConfiguration.autoPlayPlaybackControls };
+ this.templateMediaEvent = null;
+ }
+}
+export class CombinedFileSize {
+ constructor(fileSizeByDevice, maxDownloadSizeInBytes, maxInstallSizeInBytes, maxEssentialInstallSizeInBytes) {
+ this.fileSizeByDevice = fileSizeByDevice;
+ this.maxDownloadSizeInBytes = maxDownloadSizeInBytes;
+ this.maxInstallSizeInBytes = maxInstallSizeInBytes;
+ this.maxEssentialInstallSizeInBytes = maxEssentialInstallSizeInBytes;
+ }
+}
+/** @public */
+export class PageHeader extends ViewModel {
+ constructor(badge, title, subtitle) {
+ super();
+ this.badge = badge;
+ this.title = title;
+ this.subtitle = subtitle;
+ }
+}
+export class MediaPageHeader extends PageHeader {
+ constructor(badge, title, subtitle, artwork, video, collectionIcons, useGeneratedBackgroundGradient, backgroundColor, style, backgroundStyle) {
+ super(badge, title, subtitle);
+ this.artwork = artwork;
+ this.video = video;
+ this.collectionIcons = collectionIcons;
+ this.useGeneratedBackgroundGradient = useGeneratedBackgroundGradient;
+ this.backgroundColor = backgroundColor;
+ this.style = style;
+ this.backgroundStyle = backgroundStyle;
+ }
+}
+export const EdgeInsetsZero = {
+ top: 0.0,
+ left: 0.0,
+ bottom: 0.0,
+ right: 0.0,
+};
+/**
+ * The `Priority` is used when sorting the metrics to match for a given
+ * today card, so if we're looking for a layout for a given priority we
+ * will match that first
+ */
+export var TodayCardArtworkSizedLayoutMetricsPriority;
+(function (TodayCardArtworkSizedLayoutMetricsPriority) {
+ TodayCardArtworkSizedLayoutMetricsPriority["Mini"] = "mini";
+ TodayCardArtworkSizedLayoutMetricsPriority["ExtraWide"] = "extraWide";
+ TodayCardArtworkSizedLayoutMetricsPriority["None"] = "none";
+})(TodayCardArtworkSizedLayoutMetricsPriority || (TodayCardArtworkSizedLayoutMetricsPriority = {}));
+export class ChartOrCategorySafeAreaLocation {
+}
+export var ChartOrCategorySafeAreaRelativeLocation;
+(function (ChartOrCategorySafeAreaRelativeLocation) {
+ ChartOrCategorySafeAreaRelativeLocation["TopRight"] = "topRight";
+ ChartOrCategorySafeAreaRelativeLocation["TopLeft"] = "topLeft";
+ ChartOrCategorySafeAreaRelativeLocation["MiddleLeft"] = "middleLeft";
+})(ChartOrCategorySafeAreaRelativeLocation || (ChartOrCategorySafeAreaRelativeLocation = {}));
+export var ChartOrCategorySafeAreaSizeConstraint;
+(function (ChartOrCategorySafeAreaSizeConstraint) {
+ ChartOrCategorySafeAreaSizeConstraint["SquareByWidth"] = "squareByWidth";
+ ChartOrCategorySafeAreaSizeConstraint["SquareByHeight"] = "squareByHeight";
+ ChartOrCategorySafeAreaSizeConstraint["FreeForm"] = "freeForm";
+})(ChartOrCategorySafeAreaSizeConstraint || (ChartOrCategorySafeAreaSizeConstraint = {}));
+export class ChartOrCategorySafeAreaLocationDistance {
+}
+export class ChartOrCategorySafeArea {
+ constructor(width, height, asRatioOfSize, location, constraint) {
+ this.width = width;
+ this.height = height;
+ this.asRatioOfSize = asRatioOfSize !== null && asRatioOfSize !== void 0 ? asRatioOfSize : false;
+ this.location = location;
+ this.constraint = constraint;
+ }
+}
+/// The default tile safe area displays the artwork in a square in the top trailing corner of the cell.
+ChartOrCategorySafeArea.defaultTileArtworkSafeArea = {
+ width: 0.4,
+ height: 0.4,
+ asRatioOfSize: true,
+ constraint: ChartOrCategorySafeAreaSizeConstraint.SquareByWidth,
+ location: {
+ relativeLocation: ChartOrCategorySafeAreaRelativeLocation.TopRight,
+ },
+};
+/// The default pill safe area displays the artwork on the middle leading side of the cell.
+ChartOrCategorySafeArea.defaultPillArtworkSafeArea = {
+ width: 0.28,
+ height: 1.0,
+ asRatioOfSize: true,
+ constraint: ChartOrCategorySafeAreaSizeConstraint.FreeForm,
+ location: {
+ relativeLocation: ChartOrCategorySafeAreaRelativeLocation.MiddleLeft,
+ },
+};
+/// The default tile safe area increases the width available to render the text for the cell.
+ChartOrCategorySafeArea.defaultTileTextSafeArea = {
+ width: 0.15,
+ height: 0.0,
+ asRatioOfSize: true,
+};
+/// The default pill safe area increases the width available to render the text for the cell.
+ChartOrCategorySafeArea.defaultPillTextSafeArea = {
+ width: 0.28,
+ height: 0.0,
+ asRatioOfSize: true,
+};
+//# sourceMappingURL=base.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/categories.js b/node_modules/@jet-app/app-store/tmp/src/api/models/categories.js
new file mode 100644
index 0000000..2435540
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/categories.js
@@ -0,0 +1,20 @@
+import * as models from "./index";
+/** @public */
+export class Category extends models.Model {
+ constructor(name, genreId, artwork, ageBandId, children) {
+ super();
+ this.name = name;
+ this.genreId = genreId;
+ this.artwork = artwork;
+ this.ageBandId = ageBandId;
+ this.children = children;
+ }
+}
+/** @public */
+export class CategoryList extends models.Model {
+ constructor(categories) {
+ super();
+ this.categories = categories;
+ }
+}
+//# sourceMappingURL=categories.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/dynamic-generic-page.js b/node_modules/@jet-app/app-store/tmp/src/api/models/dynamic-generic-page.js
new file mode 100644
index 0000000..6037275
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/dynamic-generic-page.js
@@ -0,0 +1,15 @@
+import * as base from "./base";
+import * as metrics from "./metrics/metrics";
+/** @public */
+export class DynamicGenericPage extends base.Model {
+ constructor() {
+ super();
+ this.shelfOrderings = {};
+ this.shelfMapping = {};
+ this.presentationOptions = [];
+ this.isIncomplete = false;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+//# sourceMappingURL=dynamic-generic-page.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/generic-page.js b/node_modules/@jet-app/app-store/tmp/src/api/models/generic-page.js
new file mode 100644
index 0000000..1ee16fb
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/generic-page.js
@@ -0,0 +1,47 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import * as base from "./base";
+import * as metrics from "./metrics/metrics";
+/** @public */
+export class GenericPage extends base.Model {
+ constructor(shelfModels) {
+ super();
+ this.shelves = shelfModels;
+ this.title = null;
+ this.presentationOptions = [];
+ this.isIncomplete = false;
+ this.pageMetrics = new metrics.PageMetrics();
+ }
+}
+/** @public */
+export class InAppPurchaseInstallPage extends base.Model {
+ constructor() {
+ super();
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/**
+ * @public
+ * Screen shown in search tab when search bar is focused but empty.
+ */
+export class SearchFocusPage extends GenericPage {
+}
+/**
+ * @public
+ * Initial screen shown in search tab when search bar is unfocused.
+ */
+export class SearchLandingPage extends GenericPage {
+}
+/** @public */
+export class ArcadePage extends GenericPage {
+}
+/** @public */
+export class ArcadeSeeAllGamesPage extends GenericPage {
+ constructor(shelfModels) {
+ super(shelfModels);
+ this.pageSegments = [];
+ }
+}
+//# sourceMappingURL=generic-page.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/hero-carousel.js b/node_modules/@jet-app/app-store/tmp/src/api/models/hero-carousel.js
new file mode 100644
index 0000000..85b9514
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/hero-carousel.js
@@ -0,0 +1,37 @@
+import { isSome } from "@jet/environment/types/optional";
+import * as models from "./index";
+/** @public */
+export class HeroCarouselItemOverlay extends models.ViewModel {
+ isValid() {
+ const hasButtonRequirements = this.callToActionText !== undefined &&
+ this.callToActionText !== null &&
+ this.clickAction !== undefined &&
+ this.clickAction !== null;
+ const hasTitle = this.titleText !== undefined && this.titleText !== null;
+ const hasLockupRequirements = this.lockup !== undefined && this.lockup !== null;
+ const hasCollectionIcons = this.collectionIcons !== undefined && this.collectionIcons !== null;
+ return hasTitle && (hasLockupRequirements || hasCollectionIcons || hasButtonRequirements);
+ }
+}
+/** @public */
+export class HeroCarouselItem extends models.ViewModel {
+ isValid() {
+ const hasCollectionIcons = isSome(this.collectionIcons) && this.collectionIcons.length > 0;
+ const hasValidArtwork = isSome(this.artwork) && this.artwork.isValid();
+ const hasValidVideo = isSome(this.video) && this.video.isValid();
+ const hasMedia = hasValidArtwork || hasValidVideo || hasCollectionIcons;
+ const hasOverlay = isSome(this.overlay) && this.overlay.isValid();
+ return hasMedia && hasOverlay;
+ }
+}
+/** @public */
+export class HeroCarousel extends models.ViewModel {
+ constructor() {
+ super(...arguments);
+ /// The different items to display in the carousel
+ this.items = [];
+ /// The different items to display in the carousel, in RTL
+ this.rtlItems = [];
+ }
+}
+//# sourceMappingURL=hero-carousel.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/metrics/advert-action-metrics.js b/node_modules/@jet-app/app-store/tmp/src/api/models/metrics/advert-action-metrics.js
new file mode 100644
index 0000000..4560458
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/metrics/advert-action-metrics.js
@@ -0,0 +1,21 @@
+/**
+ * Models for Advert Actions
+ */
+import * as models from "../base";
+/**
+ * @public
+ * Object that provides metrics data for actions pertaining to advert's native instrumentation.
+ */
+export class AdvertActionMetrics extends models.Model {
+ constructor(instanceId, adamId, bundleId, advertType, invocation, purchaseType, reportingDestination) {
+ super();
+ this.instanceId = instanceId;
+ this.adamId = adamId;
+ this.bundleId = bundleId;
+ this.advertType = advertType;
+ this.invocation = invocation;
+ this.purchaseType = purchaseType;
+ this.reportingDestination = reportingDestination;
+ }
+}
+//# sourceMappingURL=advert-action-metrics.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/metrics/metrics.js b/node_modules/@jet-app/app-store/tmp/src/api/models/metrics/metrics.js
new file mode 100644
index 0000000..23e26bd
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/metrics/metrics.js
@@ -0,0 +1,101 @@
+/**
+ * Created by joel on 2/13/17.
+ */
+import * as JetMetrics from "@jet/environment/types/metrics";
+import * as models from "../base";
+// TS only allows extending **type information** in `declare module`s.
+// These members **must** be initialized.
+// TODO: The root cause for this workaround is because the Jet type `PageInvocationPoint` is not a `const enum`.
+// Consider changing the Jet type to a `const enum`, and the compiler will automatically inline these values.
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const extendedPageInvocationPoint = JetMetrics.PageInvocationPoint;
+extendedPageInvocationPoint["search"] = "search";
+extendedPageInvocationPoint["timer"] = "timer";
+extendedPageInvocationPoint["never"] = "never";
+extendedPageInvocationPoint["pageChange"] = "pageChange";
+/** @public */
+export class AppStoreMetricsData {
+ constructor(fields, includingFields, excludingFields, topic, shouldFlush = false) {
+ this.fields = fields;
+ this.includingFields = includingFields;
+ this.excludingFields = excludingFields;
+ this.topic = topic;
+ this.shouldFlush = shouldFlush;
+ }
+}
+/** @public */
+export class LintedMetricsEvent extends models.Model {
+ constructor(fields) {
+ super();
+ this.fields = fields;
+ }
+}
+/** @public */
+export class ActionMetrics extends models.Model {
+ constructor(events) {
+ super();
+ this.data = events || [];
+ this.custom = {};
+ }
+ addMetricsData(data) {
+ this.data.push(data);
+ }
+ addManyMetricsData(dataArray) {
+ for (const data of dataArray) {
+ this.addMetricsData(data);
+ }
+ }
+ clearAll() {
+ this.data.length = 0;
+ }
+}
+/** @public */
+export class PageMetrics extends models.Model {
+ constructor() {
+ super();
+ this.instructions = [];
+ this.custom = {};
+ }
+ addInstruction(instruction) {
+ this.instructions.push(instruction);
+ }
+ addManyInstructions(instructions) {
+ for (const instruction of instructions) {
+ this.addInstruction(instruction);
+ }
+ }
+ addData(data, invocationPoints) {
+ const event = {
+ data,
+ invocationPoints,
+ };
+ this.instructions.push(event);
+ }
+ addManyData(dataArray, invocationPoints) {
+ for (const data of dataArray) {
+ this.addData(data, invocationPoints);
+ }
+ }
+}
+// TODO: This needs to be migrated to the JetEngine version of ImpressionMetrics
+// The primary challenge is ID is required in the JetEngine representation, which will require
+// some refactoring both in JS and native to get right
+/** @public */
+export class ImpressionMetrics {
+ constructor(fields, id, custom) {
+ this.fields = fields;
+ this.id = id;
+ this.custom = custom;
+ }
+}
+/** @public */
+export class FastImpressionMetrics extends ImpressionMetrics {
+ constructor(metrics, isFast) {
+ super(metrics.fields, metrics.id, metrics.custom || {});
+ if (this.custom !== undefined) {
+ this.custom["isFast"] = isFast;
+ }
+ this.isFast = isFast;
+ }
+}
+//# sourceMappingURL=metrics.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/page-facets.js b/node_modules/@jet-app/app-store/tmp/src/api/models/page-facets.js
new file mode 100644
index 0000000..a534c8e
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/page-facets.js
@@ -0,0 +1,88 @@
+import { isSome } from "@jet/environment/types/optional";
+import * as models from "./base";
+/** @public */
+export class PageFacetOption extends models.Model {
+ constructor(title, value, metricsValue = null, systemImageName = undefined) {
+ super();
+ this.title = title;
+ this.value = value;
+ this.systemImageName = systemImageName;
+ this.metricsValue = metricsValue;
+ }
+}
+PageFacetOption.defaultValue = "pageFacetsDefaultValue";
+PageFacetOption.trueValue = new PageFacetOption("true", "false");
+PageFacetOption.falseValue = new PageFacetOption("false", "false");
+/** @public */
+export class PageFacetsFacet extends models.Model {
+ constructor(id, parameterName, title, displayType, options = [], defaultOptions = null, metricsParameterName = null, clickAction = null, displayOptionsInline = false, showsSelectedOptions = false, isHiddenFromMenu = false) {
+ super();
+ this.id = id;
+ this.parameterName = parameterName;
+ this.title = title;
+ this.displayType = displayType;
+ this.defaultOptions = defaultOptions;
+ this.options = options;
+ this.metricsParameterName = metricsParameterName;
+ this.clickAction = clickAction;
+ this.displayOptionsInline = displayOptionsInline;
+ this.showsSelectedOptions = showsSelectedOptions;
+ this.isHiddenFromMenu = isHiddenFromMenu;
+ }
+}
+/** @public */
+export class PageFacetsGroup extends models.Model {
+ constructor(facets = [], title = null) {
+ super();
+ this.title = title;
+ this.facets = facets;
+ }
+}
+/** @public */
+export class PageFacets extends models.Model {
+ constructor(facetGroups, allowsResetButton, resetButtonTitle) {
+ super();
+ this.facetGroups = facetGroups;
+ this.allowsResetButton = allowsResetButton;
+ this.resetButtonTitle = resetButtonTitle;
+ }
+ static isDefinedNonNullNonEmpty(object) {
+ return isSome(object) && Object.keys(object).length !== 0;
+ }
+}
+/**
+ * Facet out nil values / join all values together returning the string used for a query parameter value
+ * returns null if resulting string would be empty or selectedOptions is null
+ * @param selectedOptions
+ */
+PageFacets.requestValuesForSelectedFacetOptions = function (selectedOptions) {
+ if (PageFacets.isDefinedNonNullNonEmpty(selectedOptions)) {
+ const facetOptionValue = selectedOptions
+ .filter((option) => {
+ return PageFacets.isDefinedNonNullNonEmpty(option.value);
+ })
+ .map((option) => {
+ return option.value;
+ })
+ .join(",");
+ const allFacetOptionValues = facetOptionValue.split("&");
+ const primaryValue = allFacetOptionValues[0];
+ const additionalQueryValues = allFacetOptionValues.splice(1);
+ const additionalKeyValuePairs = {};
+ for (const additionalQueryValue of additionalQueryValues) {
+ const keyValue = additionalQueryValue.split("=");
+ if (keyValue.length !== 2) {
+ continue;
+ }
+ additionalKeyValuePairs[keyValue[0]] = keyValue[1];
+ }
+ return {
+ value: primaryValue,
+ additionalKeyValuePairs: additionalKeyValuePairs,
+ };
+ }
+ else {
+ return null;
+ }
+};
+//# sourceMappingURL=page-facets.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/page-refresh-policy.js b/node_modules/@jet-app/app-store/tmp/src/api/models/page-refresh-policy.js
new file mode 100644
index 0000000..96a0732
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/page-refresh-policy.js
@@ -0,0 +1,17 @@
+/**
+ * Model for Page Refresh Policy
+ */
+import { Model } from "./base";
+/** @public */
+export class PageRefreshPolicy extends Model {
+ constructor(strategy, updateDelayInterval, timeSinceOnScreenInterval, timeToLiveEndDate, refreshWhileVisible = false, refreshForDeviceDrivenContentChange = false) {
+ super();
+ this.strategy = strategy;
+ this.updateDelayInterval = updateDelayInterval;
+ this.timeSinceOnScreenInterval = timeSinceOnScreenInterval;
+ this.timeToLiveEndDate = timeToLiveEndDate;
+ this.refreshWhileVisible = refreshWhileVisible;
+ this.refreshForDeviceDrivenContentChange = refreshForDeviceDrivenContentChange;
+ }
+}
+//# sourceMappingURL=page-refresh-policy.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/preview-platform.js b/node_modules/@jet-app/app-store/tmp/src/api/models/preview-platform.js
new file mode 100644
index 0000000..387e689
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/preview-platform.js
@@ -0,0 +1,25 @@
+import { isNothing } from "@jet/environment/types/optional";
+/**
+ * All {@linkcode PreviewPlatform}, defined in their order of precidence
+ */
+export const allPreviewPlatforms = ["iphone", "ipad", "mac", "vision", "watch", "tv"];
+/**
+ * Determines if {@linkcode input} is a {@linkcode PreviewPlatform}
+ */
+export function isPreviewPlatform(input) {
+ return allPreviewPlatforms.includes(input);
+}
+/**
+ * Normalize some {@linkcode input} into a {@linkcode PreviewPlatform}, if possible
+ */
+export function normalizePreviewPlaform(input) {
+ if (isNothing(input)) {
+ return undefined;
+ }
+ const normalized = input.toLocaleLowerCase();
+ if (isPreviewPlatform(normalized)) {
+ return normalized;
+ }
+ return undefined;
+}
+//# sourceMappingURL=preview-platform.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/privacy.js b/node_modules/@jet-app/app-store/tmp/src/api/models/privacy.js
new file mode 100644
index 0000000..f866cc5
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/privacy.js
@@ -0,0 +1,75 @@
+import * as models from "./index";
+/** @public */
+export class PrivacyHeader extends models.Model {
+ constructor(bodyText, isDetailHeader, privacyTypes, bodyActions, supplementaryItems, seeDetailsAction) {
+ super();
+ this.bodyText = bodyText;
+ this.isDetailHeader = isDetailHeader;
+ this.privacyTypes = privacyTypes;
+ this.bodyActions = bodyActions;
+ this.supplementaryItems = supplementaryItems;
+ this.seeDetailsAction = seeDetailsAction;
+ }
+}
+/** @public */
+export class PrivacyHeaderSupplementaryItem extends models.Model {
+ constructor(bodyText, action) {
+ super();
+ this.bodyText = bodyText;
+ this.action = action;
+ }
+}
+/** @public */
+export class PrivacyFooter extends models.Model {
+ constructor(bodyText, actions, privacyTypesCount) {
+ super();
+ this.bodyText = bodyText;
+ this.actions = actions;
+ this.privacyTypesCount = privacyTypesCount;
+ }
+}
+/** @public */
+export class PrivacyType extends models.ViewModel {
+ constructor(identifier, title, detail, artwork, style, purposes, categories, clickAction) {
+ super();
+ this.identifier = identifier;
+ this.title = title;
+ this.detail = detail;
+ this.artwork = artwork;
+ this.style = style;
+ this.purposes = purposes;
+ this.categories = categories;
+ this.clickAction = clickAction;
+ this.wantsScrollFocus = false;
+ }
+}
+/** @public */
+export class PrivacyPurpose extends models.Model {
+ constructor(identifier, title, categories) {
+ super();
+ this.identifier = identifier;
+ this.title = title;
+ this.categories = categories;
+ }
+}
+/** @public */
+export class PrivacyCategory extends models.Model {
+ constructor(identifier, title, artwork, style, dataTypes = []) {
+ super();
+ this.identifier = identifier;
+ this.title = title;
+ this.artwork = artwork;
+ this.style = style;
+ this.dataTypes = dataTypes;
+ this.prefersSmallArtwork = false;
+ }
+}
+/** @public */
+export class PrivacyDefinition extends models.Model {
+ constructor(title, definition) {
+ super();
+ this.title = title;
+ this.definition = definition;
+ }
+}
+//# sourceMappingURL=privacy.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/product-media-gallery-page.js b/node_modules/@jet-app/app-store/tmp/src/api/models/product-media-gallery-page.js
new file mode 100644
index 0000000..a736532
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/product-media-gallery-page.js
@@ -0,0 +1,12 @@
+import * as base from "./base";
+import * as metrics from "./metrics/metrics";
+/** @public */
+export class ProductMediaGalleryPage extends base.Model {
+ constructor(productMedia) {
+ super();
+ this.productMedia = productMedia;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+//# sourceMappingURL=product-media-gallery-page.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/product-page-shelf-ids.js b/node_modules/@jet-app/app-store/tmp/src/api/models/product-page-shelf-ids.js
new file mode 100644
index 0000000..63a4cbf
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/product-page-shelf-ids.js
@@ -0,0 +1,45 @@
+/**
+ * Created by jellenbogen 4/12/21.
+ */
+// This is the set of ProductPageShelfIds that were previously containerized, this is needed
+// for backwards compatibility converting shelfBased to non-shelfBased
+export const legacyProductPageNonShelfSections = new Set([
+ "header",
+ "topLockup",
+ "screenshots",
+]);
+// This is the list of productPageShelfIds that are able to be used on non-shelfBasaed product
+// pages
+export const legacyProductPageKnownShelfIds = new Set([
+ "accessibilityDeveloperLink",
+ "accessibilityFeatures",
+ "accessibilityHeader",
+ "achievements",
+ "actionLinks",
+ "appEvents",
+ "bundleChildren",
+ "bundleParents",
+ "capabilities",
+ "description",
+ "editorialQuote",
+ "featuredIn",
+ "friendsPlaying",
+ "inAppPurchases",
+ "information",
+ "informationRibbon",
+ "notPurchasedLinks",
+ "purchasedLinks",
+ "moreByDeveloper",
+ "mostRecentVersion",
+ "preorderDisclaimer",
+ "privacyFooter",
+ "privacyHeader",
+ "privacyTypes",
+ "reviews",
+ "similarItems",
+ "subscriptions",
+ "textCards",
+ "textLinksShelf",
+ "videos",
+]);
+//# sourceMappingURL=product-page-shelf-ids.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/product.js b/node_modules/@jet-app/app-store/tmp/src/api/models/product.js
new file mode 100644
index 0000000..a5764f3
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/product.js
@@ -0,0 +1,58 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import * as base from "./base";
+import * as metrics from "./metrics/metrics";
+import * as shelves from "./shelves";
+/** @public */
+export class Badge extends base.Model {
+ constructor(type, key, content, style, heading, caption, longCaption, accessibilityTitle, accessibilityCaption, leadingValue = "infer") {
+ super();
+ this.type = type;
+ this.key = key;
+ this.content = content;
+ this.heading = heading;
+ this.caption = caption;
+ this.longCaption = longCaption;
+ this.leadingValue = leadingValue;
+ this.accessibilityTitle = accessibilityTitle;
+ this.accessibilityCaption = accessibilityCaption;
+ this.style = style;
+ this.isMonochrome = true;
+ }
+}
+/** @public */
+export class TextCard extends base.Model {
+ constructor(headingType, title, subtitle) {
+ super();
+ this.titleStyle = headingType;
+ this.title = title;
+ this.subtitle = subtitle;
+ this.isExpanded = false;
+ }
+}
+/** @public */
+export class ProductPageSection extends base.Model {
+ constructor(type, shelfId) {
+ super();
+ this.type = type;
+ this.shelfId = shelfId;
+ }
+}
+/** @public */
+export class ProductPageExpandedOfferDetails extends base.Model {
+ constructor(title, subtitle) {
+ super();
+ this.title = title;
+ this.subtitle = subtitle;
+ }
+}
+/** @public */
+export class ProductPage extends shelves.Lockup {
+ constructor() {
+ super();
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+//# sourceMappingURL=product.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/reviews.js b/node_modules/@jet-app/app-store/tmp/src/api/models/reviews.js
new file mode 100644
index 0000000..e71a139
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/reviews.js
@@ -0,0 +1,115 @@
+/**
+ * Created by phare on 3/28/17.
+ */
+import * as base from "./base";
+import * as page from "./generic-page";
+/* tslint:disable:no-unsafe-any */
+/** @public */
+export class ReviewsPageSortOption extends base.Model {
+ constructor(id, title, selectedActionTitle, url) {
+ super();
+ this.id = id;
+ this.title = title;
+ this.selectedActionTitle = selectedActionTitle;
+ this.url = url;
+ }
+}
+/** @public */
+export class ReviewsPage extends page.GenericPage {
+ constructor() {
+ super([]);
+ }
+}
+/** @public */
+export class Ratings extends base.Model {
+}
+/** @public */
+export class Review extends base.ViewModel {
+}
+/** @public */
+export class Response extends base.Model {
+}
+/** @public */
+export class TapToRate extends base.Model {
+ constructor() {
+ super(...arguments);
+ this.componentType = "tapToRate";
+ }
+}
+/** @public */
+export class ProductReviewActions extends base.Model {
+ constructor() {
+ super(...arguments);
+ this.componentType = "productReviewActions";
+ }
+}
+/** @public */
+export class EditorsChoice extends base.Model {
+ constructor(notes) {
+ super();
+ this.showsBadge = false;
+ this.title = null;
+ this.notes = notes;
+ this.isCollapsed = true;
+ }
+}
+/** @public */
+export class ReviewsContainer extends base.Model {
+}
+/** @public */
+export class ProductReviewAction extends base.Model {
+}
+/** @public */
+export class ProductWriteAReview extends base.Model {
+}
+/** @public */
+export class ProductStarRatings extends Ratings {
+ constructor() {
+ super(...arguments);
+ this.componentType = "starRatings";
+ }
+}
+/** @public */
+export class ProductStarRatingsHistogram extends Ratings {
+ constructor() {
+ super(...arguments);
+ this.componentType = "starRatingsHistogram";
+ }
+}
+/** @public */
+export class ProductNoRatings extends Ratings {
+ constructor() {
+ super(...arguments);
+ this.componentType = "noRatings";
+ }
+}
+/** @public */
+export class ProductRatingsAndReviewsMessage extends base.Model {
+ constructor(messageText) {
+ super();
+ this.componentType = "message";
+ this.messageText = messageText;
+ }
+}
+/** @public */
+export class ReviewSummary extends base.ViewModel {
+ constructor(body, bodyNoTitle, subtitle, subtitleArtwork, subtitleArtworkAlignment, bodyMediaType, flowPreviewActionsConfiguration) {
+ super();
+ this.body = body;
+ this.bodyNoTitle = bodyNoTitle;
+ this.subtitle = subtitle;
+ this.subtitleArtwork = subtitleArtwork;
+ this.subtitleArtworkAlignment = subtitleArtworkAlignment;
+ this.bodyMediaType = bodyMediaType;
+ this.flowPreviewActionsConfiguration = flowPreviewActionsConfiguration;
+ }
+}
+/** @public */
+export class ProductReview extends base.ViewModel {
+ constructor() {
+ super(...arguments);
+ this.componentType = "productReview";
+ }
+}
+/* tslint:enable:no-unsafe-any */
+//# sourceMappingURL=reviews.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search-actions.js b/node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search-actions.js
new file mode 100644
index 0000000..047f60f
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search-actions.js
@@ -0,0 +1,31 @@
+/**
+ * Actions for Guided Search Feature
+ */
+import * as actions from "../actions";
+/**
+ * @public
+ * An action that toggles a specified guided search token on and off.
+ *
+ * @note
+ * The same instance of this object must handle both selection and deselection
+ * as it can fire multiple times without JS refresh
+ */
+export class GuidedSearchTokenToggleAction extends actions.Action {
+ constructor(targetToken, searchOrigin) {
+ super("GuidedSearchTokenToggleAction");
+ this.targetToken = targetToken;
+ this.searchOrigin = searchOrigin;
+ }
+}
+/**
+ * @public
+ * An action that changes the selected search entity (replacing existing, if any)
+ */
+export class SearchEntityChangeAction extends actions.Action {
+ constructor(entity, searchOrigin) {
+ super("SearchEntityChangeAction");
+ this.entity = entity;
+ this.searchOrigin = searchOrigin;
+ }
+}
+//# sourceMappingURL=guided-search-actions.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search.js b/node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search.js
new file mode 100644
index 0000000..cda8c16
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/search/guided-search.js
@@ -0,0 +1,48 @@
+import * as models from "../base";
+/**
+ * @public
+ * Returns the system image for the given search entity.
+ */
+export function searchEntitySystemImage(entity) {
+ switch (entity) {
+ case "developer":
+ return "person.crop.square";
+ case "story":
+ return "appstore";
+ case "watch":
+ return "applewatch";
+ case "arcade":
+ return "joystickcontroller.fill";
+ default:
+ return undefined;
+ }
+}
+/**
+ * @public
+ * Model representing selectable displayed token for Guided Search
+ */
+export class GuidedSearchToken extends models.ViewModel {
+ constructor(value, isSelected, leadingIcon, displayName, clickAction) {
+ super();
+ this.value = value;
+ this.isSelected = isSelected;
+ this.leadingIcon = leadingIcon;
+ this.displayName = displayName;
+ this.clickAction = clickAction;
+ }
+}
+/**
+ * @public
+ * Object storing mapping of:
+ * Search Term + [Set of Guided Search Tokens] = Optimization Term.
+ * I.e. how the search term and token swill be comined for final query term search results are searched for.
+ */
+export class GuidedSearchQuery extends models.Model {
+ constructor(searchTerm, selectedTokens, optimizationTerm) {
+ super();
+ this.searchTerm = searchTerm;
+ this.selectedTokens = selectedTokens;
+ this.optimizationTerm = optimizationTerm;
+ }
+}
+//# sourceMappingURL=guided-search.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/search/search-categories.js b/node_modules/@jet-app/app-store/tmp/src/api/models/search/search-categories.js
new file mode 100644
index 0000000..1d0b588
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/search/search-categories.js
@@ -0,0 +1,96 @@
+import * as dynamicGenericPage from "../dynamic-generic-page";
+import * as models from "../base";
+export class SearchChartsAndCategoriesPage extends dynamicGenericPage.DynamicGenericPage {
+}
+/**
+ * @public
+ * Model representing a piece of UI for a chart or category on the search landing page.
+ */
+export class SearchChartOrCategory extends models.ViewModel {
+ constructor(title, artwork, collectionIcons, backgroundColor, badge, action, density, artworkSafeArea, textSafeArea) {
+ super();
+ this.title = title;
+ this.artwork = artwork;
+ this.collectionIcons = collectionIcons;
+ this.backgroundColor = backgroundColor;
+ this.badge = badge;
+ this.action = action;
+ this.density = density;
+ this.artworkSafeArea = artworkSafeArea;
+ this.textSafeArea = textSafeArea;
+ }
+}
+/**
+ * @public
+ * Model representing a piece of UI for a medium ad lockup with custom creative artwork on the search landing page.
+ */
+export class MediumAdLockupWithAlignedRegionBackground extends models.ViewModel {
+ constructor(lockup, alignedRegionArtwork) {
+ super();
+ this.lockup = lockup;
+ this.alignedRegionArtwork = alignedRegionArtwork;
+ }
+}
+/**
+ * @public
+ * Model representing a piece of UI for a medium ad lockup with screenshots on the search landing page.
+ */
+export class MediumAdLockupWithScreenshotsBackground extends models.ViewModel {
+ constructor(lockup, screenshots, isAnimated, secondaryTextColor, backgroundColor, riverSpeed) {
+ super();
+ this.lockup = lockup;
+ this.screenshots = screenshots;
+ this.isAnimated = isAnimated;
+ this.secondaryTextColor = secondaryTextColor;
+ this.backgroundColor = backgroundColor;
+ this.riverSpeed = riverSpeed;
+ }
+}
+/**
+ * @public
+ * Model representing a piece of UI for a condensed ad lockup on the search landing page.
+ */
+export class CondensedAdLockupWithIconBackground extends models.ViewModel {
+ constructor(lockup, backgroundArtwork) {
+ super();
+ this.lockup = lockup;
+ this.backgroundArtwork = backgroundArtwork;
+ }
+}
+export class SearchShelfAttributes {
+ constructor(id, title, displayStyle, displayCount, hasSeeAll, seeAllLink, searchLandingItemDisplayStyle = null, searchShelfKind) {
+ this.id = id;
+ this.title = title;
+ this.searchLandingItemDisplayStyle = searchLandingItemDisplayStyle;
+ this.displayStyle = displayStyle;
+ this.displayCount = displayCount;
+ this.hasSeeAll = hasSeeAll;
+ this.seeAllLink = seeAllLink;
+ this.searchShelfKind = searchShelfKind;
+ }
+}
+export var SearchLandingPageContentKind;
+(function (SearchLandingPageContentKind) {
+ SearchLandingPageContentKind["Suggestion"] = "Query";
+ SearchLandingPageContentKind["CategoriesAndCharts"] = "EditorialLink";
+ SearchLandingPageContentKind["Apps"] = "AppsLockup";
+ SearchLandingPageContentKind["EditorialCollection"] = "EditorialCollection";
+})(SearchLandingPageContentKind || (SearchLandingPageContentKind = {}));
+export var SearchPageKind;
+(function (SearchPageKind) {
+ SearchPageKind[SearchPageKind["Default"] = 0] = "Default";
+ SearchPageKind[SearchPageKind["CategoriesAndCharts"] = 1] = "CategoriesAndCharts";
+})(SearchPageKind || (SearchPageKind = {}));
+export var GenericSearchPageShelfDisplayStyleDensity;
+(function (GenericSearchPageShelfDisplayStyleDensity) {
+ GenericSearchPageShelfDisplayStyleDensity["Density1"] = "density_1";
+ GenericSearchPageShelfDisplayStyleDensity["Density2"] = "density_2";
+ GenericSearchPageShelfDisplayStyleDensity["Density3"] = "density_3";
+})(GenericSearchPageShelfDisplayStyleDensity || (GenericSearchPageShelfDisplayStyleDensity = {}));
+export var SearchLandingPageShelfItemIconKind;
+(function (SearchLandingPageShelfItemIconKind) {
+ SearchLandingPageShelfItemIconKind["Chiclet"] = "chiclet";
+ SearchLandingPageShelfItemIconKind["App"] = "app";
+ SearchLandingPageShelfItemIconKind["Symbol"] = "symbol";
+})(SearchLandingPageShelfItemIconKind || (SearchLandingPageShelfItemIconKind = {}));
+//# sourceMappingURL=search-categories.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/search/search.js b/node_modules/@jet-app/app-store/tmp/src/api/models/search/search.js
new file mode 100644
index 0000000..4876f03
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/search/search.js
@@ -0,0 +1,283 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import * as actions from "../actions";
+import * as base from "../base";
+import * as metrics from "../metrics/metrics";
+/** @public */
+export class BaseSearchPage extends base.Model {
+ constructor() {
+ super();
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/** @public */
+export class SearchResults extends BaseSearchPage {
+}
+/**
+ * @public
+ * Message to show user when search results need additional context.
+ * Currently supported by:
+ * - iOS, for NLS Safety UI
+ */
+export class SearchResultsContextCard extends base.ViewModel {
+ constructor(message, action) {
+ super();
+ this.message = message;
+ this.action = action;
+ }
+}
+/** @public */
+export class SearchResultsPage extends BaseSearchPage {
+ constructor(shelfModels = []) {
+ super();
+ /// The shelves of the results page.
+ this.shelves = [];
+ this.shelves = shelfModels;
+ }
+}
+export class SegmentedSearchResultsPage {
+ constructor() {
+ this.selectedSegmentId = null;
+ this.segments = [];
+ }
+}
+export var SegmentedSearchResultsPageSegmentType;
+(function (SegmentedSearchResultsPageSegmentType) {
+ SegmentedSearchResultsPageSegmentType["visionOS"] = "xros";
+ SegmentedSearchResultsPageSegmentType["iOS"] = "ios";
+})(SegmentedSearchResultsPageSegmentType || (SegmentedSearchResultsPageSegmentType = {}));
+export class SegmentedSearchResultsPageSegment {
+}
+/** @public */
+export class SearchFacetSet extends base.Model {
+ constructor(type, values) {
+ super();
+ this.type = type;
+ this.values = values;
+ }
+}
+/** @public */
+export class SearchFacetValue extends base.Model {
+ constructor(name, value, selectedValue = null) {
+ super();
+ this.name = name;
+ this.value = value;
+ this.isSelected = value === selectedValue;
+ }
+}
+/** @public */
+export class SearchAdOpportunity extends base.Model {
+ constructor(instanceId, searchLifecycleEventPayloads, searchAd) {
+ super();
+ this.instanceId = instanceId;
+ this.eventPayloads = searchLifecycleEventPayloads;
+ this.searchAd = searchAd;
+ }
+ /**
+ * Sets the template type on the event payloads for metrics tracking
+ * @param templateType The native ad template type
+ */
+ setTemplateType(templateType) {
+ this.eventPayloads.placed.iAdTemplateType = templateType;
+ }
+ /**
+ * Sets the duplicate position on the event payloads for metrics tracking. This is only expected for search results
+ * @param position The position of the duplicate organic app lockup that appeared in the shelf's contents
+ */
+ setDuplicatePosition(position) {
+ this.eventPayloads.placed.duplicatePosition = position;
+ }
+ /**
+ * Sets the missed reason code on the event payloads for metrics tracking
+ * @param reasonCode The reason that the opportunity was not filled
+ */
+ setMissedOpportunityReason(reasonCode) {
+ this.eventPayloads.placed.missedOpportunityReason = reasonCode;
+ }
+}
+/** @public */
+export class SearchAd extends base.Model {
+ constructor(instanceId, iAdObject, searchAdLifecycleEventPayloads, impressionId, transparencyAction) {
+ super();
+ this.instanceId = instanceId;
+ this.iAd = iAdObject;
+ this.eventPayloads = searchAdLifecycleEventPayloads;
+ this.impressionId = impressionId;
+ this.transparencyAction = transparencyAction;
+ }
+ /**
+ * Sets the template type on the event payloads for metrics tracking
+ * @param templateType The native ad template type
+ */
+ setTemplateType(templateType) {
+ this.eventPayloads.placed.iAdTemplateType = templateType;
+ }
+ /**
+ * Sets the duplicate position on the event payloads for metrics tracking. This is only expected for search results
+ * @param position The position of the duplicate organic app lockup that appeared in the shelf's contents
+ */
+ setDuplicatePosition(position) {
+ this.eventPayloads.placed.duplicatePosition = position;
+ }
+}
+/** @public */
+export class AdTransparencyAction extends actions.Action {
+ constructor(adTransparencyData) {
+ super("AdTransparencyAction");
+ this.adTransparencyData = adTransparencyData;
+ }
+}
+/** @public */
+export class SearchAction extends actions.Action {
+ constructor(title, term, url, origin, entity, source, presentationStyle, referrerData) {
+ super("SearchAction");
+ /**
+ * Whether or not Search should opt-in to spell-checking, which will:
+ * - Correct high-confidence misspellings server-side.
+ * - Suggest queries for low-confidence misspellings
+ *
+ * This defaults to `false`. Currently `true` for user-typed term and hints terms.
+ */
+ this.spellCheckEnabled = false;
+ this.title = title;
+ this.term = term;
+ this.url = url;
+ this.origin = origin;
+ this.entity = entity;
+ this.source = source;
+ this.presentationStyle = presentationStyle !== null && presentationStyle !== void 0 ? presentationStyle : ["textFollowsTintColor"];
+ this.referrerData = referrerData;
+ }
+}
+// endregion
+// region Search Hints
+/** @public */
+export class SearchHintSet extends base.Model {
+ constructor(hints, ghostHintTerm) {
+ super();
+ this.hints = hints;
+ this.ghostHintTerm = ghostHintTerm;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+// endregion
+// region Trending Searches
+/** @public */
+export class TrendingSearches extends base.Model {
+ constructor(title, searches) {
+ super();
+ this.title = title;
+ this.searches = searches;
+ }
+}
+// endregion
+// region Search Message
+/**
+ * @public
+ * Message associated with a set of Search Results.
+ * Currently supported by:
+ * - iOS, for Spell Correction feature.
+ */
+export class SearchResultsMessage extends base.Model {
+ constructor(primaryText, secondaryText, messageClickAction = null) {
+ super();
+ this.primaryText = primaryText;
+ this.secondaryText = secondaryText;
+ this.messageClickAction = messageClickAction;
+ }
+}
+/** @public */
+export class SearchResult extends base.ViewModel {
+ constructor(resultType) {
+ super();
+ this.resultType = resultType;
+ this.clickAction = null;
+ }
+}
+/**
+ * @public
+ * Search result for a single app
+ */
+export class AppSearchResult extends SearchResult {
+ constructor(lockup) {
+ super("content");
+ this.lockup = lockup;
+ }
+}
+/** @public */
+export class InAppPurchaseSearchResult extends SearchResult {
+ constructor(lockup) {
+ super("inAppPurchase");
+ this.lockup = lockup;
+ }
+}
+/** @public */
+export class BundleSearchResult extends SearchResult {
+ constructor(lockup) {
+ super("bundle");
+ this.lockup = lockup;
+ }
+}
+/** @public */
+export class AdvertsSearchResult extends SearchResult {
+ constructor() {
+ super("advert");
+ this.lockups = [];
+ this.displaysScreenshots = true;
+ this.itemBackground = "ad";
+ }
+}
+/** @public */
+export class AppEventSearchResult extends SearchResult {
+ constructor() {
+ super("appEvent");
+ }
+}
+/** @public */
+export class EditorialSearchResult extends SearchResult {
+ constructor(title) {
+ super("editorial");
+ this.title = title;
+ }
+}
+/**
+ * @public
+ * Collection of lockups with shared heading and title.
+ * May include an action to show additional details (e.g. FlowAction to Article)
+ */
+export class SearchLockupCollection extends SearchResult {
+ constructor(heading, title, items, detailAction, headingArtwork) {
+ super("lockupCollection");
+ this.heading = heading;
+ this.headingArtwork = headingArtwork;
+ this.title = title;
+ this.items = items;
+ this.detailAction = detailAction;
+ }
+}
+/**
+ * @public
+ * Guided search suggestions shown mid-scroll alongside other search results.
+ */
+export class GuidedSearchResult extends SearchResult {
+ constructor(title, tokens) {
+ super("guidedSearch");
+ this.title = title;
+ this.tokens = tokens;
+ }
+}
+/**
+ * @public
+ * A model for the search results learn more notice.
+ */
+export class SearchResultsLearnMoreNotice extends base.ViewModel {
+ constructor(linkableText) {
+ super();
+ this.linkableText = linkableText;
+ }
+}
+// endregion
+//# sourceMappingURL=search.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/shelf-based-product.js b/node_modules/@jet-app/app-store/tmp/src/api/models/shelf-based-product.js
new file mode 100644
index 0000000..7291687
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/shelf-based-product.js
@@ -0,0 +1,25 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import * as dynamicGenericPage from "./dynamic-generic-page";
+export const shelfBasedProductPageOrderingIdPurcahsed = "purchasedOrdering";
+export const shelfBasedProductPageOrderingIdNotPurcahsed = "notPurchasedOrdering";
+export const shelfBasedProductPageOrderingIdPurcahsedExpandedMedia = "purchasedOrdering_ExpandedMedia";
+export const shelfBasedProductPageOrderingIdNotPurcahsedExpandedMedia = "notPurchasedOrdering_ExpandedMedia";
+export const shelfBasedProductPageOrderingIdPurcahsedCompact = "purchasedOrdering_Compact";
+export const shelfBasedProductPageOrderingIdNotPurcahsedCompact = "notPurchasedOrdering_Compact";
+export const shelfBasedProductPageOrderingIdPurcahsedExpandedMediaCompact = "purchasedOrdering_ExpandedMedia_Compact";
+export const shelfBasedProductPageOrderingIdNotPurcahsedExpandedMediaCompact = "notPurchasedOrdering_ExpandedMedia_Compact";
+export const shelfBasedProductPageOrderingIdDownloading = "downloadingOrdering";
+export const shelfBasedProductPageOrderingIdDownloadingExpandedMedia = "downloadingOrdering_ExpandedMedia";
+export const shelfBasedProductPageOrderingIdDownloadingCompact = "downloadingOrdering_Compact";
+export const shelfBasedProductPageOrderingIdDownloadingExpandedMediaCompact = "downloadingOrdering_ExpandedMedia_Compact";
+/** @public */
+export class ShelfBasedProductPage extends dynamicGenericPage.DynamicGenericPage {
+ constructor() {
+ super(...arguments);
+ // Reviews
+ this.appPlatforms = [];
+ }
+}
+//# sourceMappingURL=shelf-based-product.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/shelves.js b/node_modules/@jet-app/app-store/tmp/src/api/models/shelves.js
new file mode 100644
index 0000000..5a68c4c
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/shelves.js
@@ -0,0 +1,709 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import { isSome } from "@jet/environment/types/optional";
+import * as base from "./base";
+/** @public */
+export class InformationContainer extends base.Model {
+ constructor(annotationGroups) {
+ super();
+ this.annotationGroups = annotationGroups;
+ }
+}
+/** @public */
+export class ImpressionableArtwork extends base.ViewModel {
+ constructor(art) {
+ super();
+ this.art = art;
+ }
+}
+/** @public */
+export class AppShowcase extends base.Model {
+ constructor(type, lockup) {
+ super();
+ this.type = type;
+ this.lockup = lockup;
+ }
+}
+/** @public */
+export class Banner extends base.Model {
+ constructor(message, focusedMessage, action, fullProductAction, leadingArtwork, leadingArtworkTintColor, includeBackgroundBorder, kind, hideCriteria) {
+ super();
+ this.message = message;
+ this.focusedMessage = focusedMessage;
+ this.action = action;
+ this.fullProductAction = fullProductAction;
+ this.leadingArtwork = leadingArtwork;
+ this.leadingArtworkTintColor = leadingArtworkTintColor;
+ this.includeBackgroundBorder = includeBackgroundBorder;
+ this.kind = kind;
+ this.hideCriteria = hideCriteria;
+ }
+}
+/**
+ * @public
+ * Defines which banner to show for various app states so the client can update dynamically.
+ */
+export class AppStateBanner extends base.Model {
+ constructor(unknownBanner, buyBanner, downloadBanner, updateBanner, openBanner) {
+ super();
+ this.unknownBanner = unknownBanner;
+ this.buyBanner = buyBanner;
+ this.downloadBanner = downloadBanner;
+ this.updateBanner = updateBanner;
+ this.openBanner = openBanner;
+ }
+}
+/** @public */
+export class InAppPurchaseShowcase extends base.Model {
+ constructor(lockup) {
+ super();
+ this.lockup = lockup;
+ }
+}
+// endregion
+/** @public */
+export class ProductMediaItem extends base.Model {
+}
+/** @public */
+export class ProductMedia extends base.Model {
+ constructor(items, mediaPlatform, allPlatforms, platformDescription, allPlatformsDescription, allPlatformsDescriptionPlacement) {
+ super();
+ this.items = items;
+ this.mediaPlatform = mediaPlatform;
+ this.allPlatforms = allPlatforms;
+ this.platformDescription = platformDescription;
+ this.allPlatformsDescription = allPlatformsDescription;
+ this.allPlatformsDescriptionPlacement = allPlatformsDescriptionPlacement;
+ }
+}
+/** @public */
+export class ProductCapability extends base.Model {
+ constructor(type, title, caption, captionTrailingArtwork, linkAction, artwork, artworkTintColor) {
+ super();
+ this.type = type;
+ this.title = title;
+ this.caption = caption;
+ this.captionTrailingArtwork = captionTrailingArtwork;
+ this.linkAction = linkAction;
+ this.artwork = artwork;
+ this.artworkTintColor = artworkTintColor;
+ }
+}
+/** @public */
+export class ProductDescription extends base.Model {
+ constructor(paragraph, developerLinks, tags, developerAction) {
+ super();
+ this.paragraph = paragraph;
+ this.developerAction = developerAction;
+ this.tags = tags;
+ this.developerLinks = developerLinks;
+ }
+}
+/** @public */
+export class Footnote extends base.Model {
+ constructor(text) {
+ super();
+ this.text = text;
+ this.presentationStyle = [];
+ this.clickAction = null;
+ }
+}
+/** @public */
+export class LockupContextMenuData extends base.Model {
+}
+/** @public */
+export class Lockup extends base.ViewModel {
+ isValid() {
+ if (!this.title) {
+ return false;
+ }
+ if (!this.icon || !this.icon.isValid()) {
+ return false;
+ }
+ return super.isValid();
+ }
+}
+/** @public */
+export class ScreenshotsLockup extends Lockup {
+ constructor() {
+ super();
+ this.screenshots = [];
+ /// Force a 4 screenshot portrait display style to ensure alignment with landscape screenshots
+ this.screenshotsDisplayStyle = "four-screenshots";
+ }
+ isValid() {
+ const hasScreenshots = this.screenshots && this.screenshots.length;
+ if (!hasScreenshots) {
+ return false;
+ }
+ return super.isValid();
+ }
+}
+/** @public */
+export class MixedMediaLockup extends Lockup {
+ constructor() {
+ super();
+ this.screenshots = [];
+ this.trailers = [];
+ this.overrideLockupPosition = null;
+ this.screenshotsDisplayStyle = "control";
+ this.metadataRibbonItems = [];
+ this.showMetadataInformationInLockup = false;
+ this.alignedRegionArtwork = null;
+ this.alignedRegionVideo = null;
+ }
+}
+export class UpdatesLockup extends Lockup {
+ constructor() {
+ super();
+ this.whatsNew = undefined;
+ this.version = undefined;
+ this.size = undefined;
+ this.externalVersionId = undefined;
+ this.releaseDate = undefined;
+ this.installDate = undefined;
+ }
+}
+/**
+ * @public
+ * The metadata ribbon item used to contain any content of a metadata ribbon view.
+ * Keys will be present based on which metadata ribbon item type is being presented.
+ * This is using specific keys rather than creating them on the fly because the key
+ * names get mangled if they're not defined.
+ */
+export class MetadataRibbonItem extends base.ViewModel {
+ constructor(viewType) {
+ super();
+ this.viewType = viewType;
+ this.moduleType = null;
+ this.labelText = null;
+ this.borderedText = null;
+ this.highlightedText = null;
+ this.starRating = null;
+ this.secondaryViewPlacement = "leading";
+ this.artwork = null;
+ this.maxCharacterCount = null;
+ this.truncationLegibilityCharacterCountThreshold = null;
+ this.allowsTruncation = null;
+ }
+}
+/** @public */
+export class TrailersLockup extends Lockup {
+ isValid() {
+ const hasTrailers = this.trailers && this.trailers.isValid();
+ if (!hasTrailers) {
+ return false;
+ }
+ if (!this.editorialTagline || this.editorialTagline.length === 0) {
+ return false;
+ }
+ return super.isValid();
+ }
+}
+/** @public */
+export class Trailers extends base.Model {
+ constructor(videos, mediaPlatform) {
+ super();
+ if (videos) {
+ this.videos = videos;
+ }
+ if (mediaPlatform) {
+ this.mediaPlatform = mediaPlatform;
+ }
+ }
+ isValid() {
+ return this.videos && this.videos.length > 0 && super.isValid();
+ }
+}
+/** @public */
+export class InAppPurchaseLockup extends Lockup {
+}
+/**
+ * @public
+ * This is a lockup that represents the Arcade *service* (in contrast to lockups for Arcade *apps*)
+ * It is used in:
+ * - Today Card Overlay (iOS)
+ * - Article Persistent Lockup (iOS, macOS)
+ * - Maybe more
+ *
+ * This object does *not* subclass `Lockup`, as we cannot populate the app-specific properties. Decision was made to use a separate codepath altogether for delivering this
+ * fake lockup to views we otherwise display standard `Lockup`, as opposed to trying to reconcile the use-cases at this time.
+ *
+ * This class deliberately maintains two button actions to fire for subscribed and unsubscribed state, respectively, instead of a single hypothetical `ArcadeStateAction`
+ * that switches behavior based on subscription state. This is since the subscription state can switch between model apply time (what is visually represented in UI),
+ * and when it is run in action runner.
+ */
+export class ArcadeLockup extends base.ViewModel {
+}
+export class ImageLockup extends base.ViewModel {
+ constructor(artwork, lockup, caption, title, isDark = false) {
+ super();
+ this.isDark = false;
+ this.artwork = artwork;
+ this.lockup = lockup;
+ this.caption = caption;
+ this.title = title;
+ this.isDark = isDark;
+ }
+ isValid() {
+ return this.lockup.isValid() && this.artwork.isValid();
+ }
+}
+/** @public */
+export class TitledParagraph extends base.Model {
+ constructor(text, style, mediaType) {
+ super();
+ this.text = text;
+ this.style = style;
+ this.mediaType = mediaType;
+ this.wantsCollapsedNewlines = true;
+ }
+}
+/** @public */
+export class EditorialCard extends base.ViewModel {
+ constructor() {
+ super();
+ this.adamId = null;
+ this.caption = null;
+ this.title = null;
+ this.subtitle = null;
+ this.artwork = null;
+ this.shelfBackground = null;
+ this.clickAction = null;
+ this.decorations = [];
+ this.flowPreviewActionsConfiguration = null;
+ this.appEventFormattedDates = null;
+ this.mediaOverlayStyle = null;
+ }
+ isValid() {
+ if (!this.clickAction) {
+ return false;
+ }
+ if (!this.artwork || !this.artwork.isValid()) {
+ return false;
+ }
+ if (!this.caption || !this.title) {
+ return false;
+ }
+ return super.isValid();
+ }
+}
+/**
+ * @public
+ * Used for:
+ * - Arcade Continue Playing.
+ */
+export class VideoCard extends base.ViewModel {
+ constructor() {
+ super();
+ this.flowPreviewActionsConfiguration = null;
+ }
+}
+/**
+ * @public
+ * Used within a `RibbonBar` which is a horizontal scrolling bar that contains multiple `RibbonBarItem`s.
+ * E.g. a `RibbonBarItem` that defines an Arcade category within an Arcade category ribbon bar.
+ *
+ * Each bar item should have a title and a click action alongside with an optional artwork.
+ * Empty artworks are potentially handled by a fallback icon by client side.
+ */
+export class RibbonBarItem extends base.ViewModel {
+ constructor(title, clickAction) {
+ super();
+ this.title = title;
+ this.clickAction = clickAction;
+ this.artwork = null;
+ this.accessibilityLabel = null;
+ }
+}
+/** @public */
+export class Brick extends base.ViewModel {
+ constructor() {
+ super();
+ this.artworks = null;
+ this.accessibilityLabel = null;
+ this.shortEditorialDescription = null;
+ this.clickAction = null;
+ this.personalizationStyle = "none";
+ this.shelfBackground = null;
+ this.flowPreviewActionsConfiguration = null;
+ this.editorialDisplayOptions = {};
+ this.artworkSafeArea = null;
+ this.textSafeArea = null;
+ }
+ isValid() {
+ var _a, _b, _c, _d;
+ const hasValidArtwork = (_b = (_a = this.artworks) === null || _a === void 0 ? void 0 : _a.every((artwork, index) => {
+ return isSome(artwork) && artwork.isValid();
+ })) !== null && _b !== void 0 ? _b : false;
+ const hasCollectionIcons = ((_d = (_c = this.collectionIcons) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0;
+ const hasBackgroundColor = isSome(this.backgroundColor);
+ return (isSome(this.clickAction) && (hasValidArtwork || hasCollectionIcons || hasBackgroundColor) && super.isValid());
+ }
+}
+/** @public */
+export class EditorialLink extends base.ViewModel {
+ constructor(descriptionText, summaryText, clickAction, linkPresentationEnabled = true) {
+ super();
+ this.descriptionText = descriptionText;
+ this.summaryText = summaryText;
+ this.clickAction = clickAction;
+ this.linkPresentationEnabled = linkPresentationEnabled;
+ }
+}
+/** @public */
+export class SearchLink extends base.ViewModel {
+ constructor(title, clickAction, artwork, imageName) {
+ super();
+ this.title = title;
+ this.clickAction = clickAction;
+ this.imageName = imageName;
+ this.artwork = artwork;
+ }
+}
+/** @public */
+export class LinkableText extends base.Model {
+ constructor(styledText, linkedSubstrings) {
+ super();
+ this.styledText = styledText;
+ this.linkedSubstrings = linkedSubstrings;
+ }
+}
+/** @public */
+export class ProductPageLink extends base.Model {
+ constructor(text, clickAction, systemImageName, adamIdForPurchaseHistoryFilter) {
+ super();
+ this.text = text;
+ this.clickAction = clickAction;
+ this.systemImageName = systemImageName;
+ this.adamIdForPurchaseHistoryFilter = adamIdForPurchaseHistoryFilter;
+ }
+}
+/** @public */
+export class PreorderDisclaimer extends base.Model {
+ constructor(disclaimer) {
+ super();
+ this.disclaimer = disclaimer;
+ }
+}
+/** @public */
+export class TitledButtonStack extends base.Model {
+ constructor(buttons) {
+ super();
+ this.buttons = buttons;
+ }
+}
+/** @public */
+export class TitledButton extends base.Model {
+ constructor(title, action) {
+ super();
+ this.title = title;
+ this.action = action;
+ }
+}
+/** @public */
+export class FramedArtwork extends base.ViewModel {
+ constructor(artwork, isFullWidth, captionMediaType = "text/plain", caption = null, ordinal = null, hasRoundedCorners = null) {
+ super();
+ this.artwork = artwork;
+ this.isFullWidth = isFullWidth;
+ this.hasRoundedCorners = typeof hasRoundedCorners === "boolean" ? hasRoundedCorners : !this.isFullWidth;
+ this.ordinal = ordinal;
+ this.caption = caption;
+ this.captionMediaType = captionMediaType;
+ }
+}
+/** @public */
+export class FramedVideo extends base.ViewModel {
+ constructor(video, isFullWidth, captionMediaType = "text/plain", caption = null, ordinal = null, hasRoundedCorners = null) {
+ super();
+ this.video = video;
+ this.isFullWidth = isFullWidth;
+ this.hasRoundedCorners = typeof hasRoundedCorners === "boolean" ? hasRoundedCorners : !this.isFullWidth;
+ this.ordinal = ordinal;
+ this.caption = caption;
+ this.captionMediaType = captionMediaType;
+ }
+}
+/** @public */
+export class RoundedButton extends base.Model {
+ constructor(type, title, hasDivider, action) {
+ super();
+ this.type = type;
+ this.title = title;
+ this.hasDivider = hasDivider;
+ this.action = action;
+ }
+}
+/** @public */
+export class Quote extends base.ViewModel {
+ constructor(text, credit, artwork, isFullWidthArtwork) {
+ super();
+ this.text = text;
+ this.credit = credit;
+ this.artwork = artwork;
+ this.isFullWidthArtwork = isFullWidthArtwork || false;
+ }
+}
+/** @public */
+export class EditorialQuote extends base.ViewModel {
+ constructor(text, attribution) {
+ super();
+ this.text = text;
+ this.attribution = attribution;
+ }
+}
+/** @public */
+export class HorizontalRule extends base.Model {
+ constructor(style, ruleColor, isFullWidth) {
+ super();
+ this.style = style;
+ this.color = ruleColor;
+ this.isFullWidth = isFullWidth;
+ }
+}
+/**
+ * @public
+ * A horizontal scrolling bar that contains multiple `RibbonBarItem`s.
+ *
+ * E.g. category ribbon bar displaying different Arcade categories in a horizontal scrolling bar.
+ */
+export class RibbonBar extends base.ViewModel {
+ constructor(items) {
+ super();
+ this.items = items;
+ }
+}
+/** @public */
+export class InformationRibbon extends base.ViewModel {
+ constructor(badges, hasTopSeparator, hasBottomSeparator, separatorsAreFullWidth, alignment) {
+ super();
+ this.badges = badges;
+ this.hasTopSeparator = hasTopSeparator;
+ this.hasBottomSeparator = hasBottomSeparator;
+ this.separatorsAreFullWidth = separatorsAreFullWidth;
+ this.alignment = alignment;
+ }
+}
+// region Client Control Button
+/**
+ * @public
+ * A client control button is an button appearing within Article pages.
+ * This is currently used so MAS editorial articles to link into OS Updates in preferences.
+ */
+export class ClientControlButton extends base.ViewModel {
+ constructor(title, buttonAction) {
+ super();
+ this.title = title;
+ this.buttonAction = buttonAction;
+ }
+}
+/** @public */
+export class BreakoutDetails extends base.Model {
+ constructor(title, description, badgeType, callToActionButtonAction, backgroundStyle, textAlignment) {
+ super();
+ this.badgeType = badgeType;
+ this.badge = badgeType.title;
+ this.title = title;
+ this.description = description;
+ this.callToActionButtonAction = callToActionButtonAction;
+ this.backgroundStyle = backgroundStyle;
+ this.textAlignment = textAlignment;
+ }
+}
+/** @public */
+export class LargeHeroBreakout extends base.ViewModel {
+ constructor(details, detailsDisplayProperties, heading, artwork, video, collectionIcons, backgroundColor) {
+ super();
+ this.details = details;
+ this.detailsDisplayProperties = detailsDisplayProperties;
+ this.heading = heading;
+ this.artwork = artwork;
+ this.video = video;
+ this.collectionIcons = collectionIcons;
+ this.backgroundColor = backgroundColor;
+ this.editorialDisplayOptions = {};
+ }
+}
+/** @public */
+export class SmallBreakout extends base.ViewModel {
+ constructor(details, iconArtwork, backgroundColor) {
+ super();
+ this.details = details;
+ this.iconArtwork = iconArtwork;
+ this.backgroundColor = backgroundColor;
+ }
+}
+/**
+ * The `Placeholder` is a dummy model used so a shelf with content type Placeholder can be populated with items representing the amount of placeholders to show
+ */
+export class Placeholder extends base.ViewModel {
+}
+// region ArcadeShowcase
+/**
+ * @public
+ * The `ArcadeShowcase` is a model that is similar to the upsell breakout on the grouping pages, but appears inline in article pages.
+ * This module is specialized for Arcade service, since we don't have other subscription services currently.
+ * On some platforms, it may display some icon artwork.
+ */
+export class ArcadeShowcase extends base.ViewModel {
+ /**
+ * Initialize arcade showcase with required values
+ * @param unsubscribedAction Action to run in non-subscribed state.
+ * @param subscribedAction Action to run in subscribed state.
+ */
+ constructor(unsubscribedAction, subscribedAction) {
+ super();
+ this.unsubscribedAction = unsubscribedAction;
+ this.subscribedAction = subscribedAction;
+ }
+}
+/** @public */
+export class GameCenterReengagement extends base.ViewModel {
+ constructor(badgeGlyph, badge, title, subtitle, achievement, lockup, backgroundColor, backgroundArtwork, heroAction) {
+ super();
+ this.badgeGlyph = badgeGlyph;
+ this.badge = badge;
+ this.title = title;
+ this.subtitle = subtitle;
+ this.achievement = achievement;
+ this.backgroundColor = backgroundColor;
+ this.backgroundArtwork = backgroundArtwork;
+ this.lockup = lockup;
+ this.heroAction = heroAction;
+ }
+}
+export class UnifiedMessage extends base.ViewModel {
+ constructor(placement, context, deliveryMethod) {
+ super();
+ this.placement = placement;
+ this.context = context;
+ this.deliveryMethod = deliveryMethod !== null && deliveryMethod !== void 0 ? deliveryMethod : "pushAndPull";
+ }
+}
+export const genericShelfBatchGroupBase = "shelfBatchGroup_";
+export var IncompleteShelfFetchStrategy;
+(function (IncompleteShelfFetchStrategy) {
+ /**
+ * Indicates the shelf should be fetched as soon as the page is loaded,
+ * this is the behavior we've always had, where all incomplete shelves are
+ * fetched after the page loads
+ */
+ IncompleteShelfFetchStrategy["OnPageLoad"] = "onPageLoad";
+ /**
+ * Indicates the shelf should be fetched when it is about to be scrolled into view
+ */
+ IncompleteShelfFetchStrategy["OnShelfWillAppear"] = "onShelfWillAppear";
+})(IncompleteShelfFetchStrategy || (IncompleteShelfFetchStrategy = {}));
+// Describes the snapping behaviour for horizontally scrolling shelves.
+export var ShelfHorizontalScrollTargetBehavior;
+(function (ShelfHorizontalScrollTargetBehavior) {
+ // The default behaviour, where scrolling will snap to the leading edge of the view.
+ ShelfHorizontalScrollTargetBehavior["ViewAligned"] = "viewAligned";
+ // Scrolling will snap so that views are center aligned in their container. Primarily
+ // used for large components that take up most of the container.
+ ShelfHorizontalScrollTargetBehavior["CenterAligned"] = "centerAligned";
+})(ShelfHorizontalScrollTargetBehavior || (ShelfHorizontalScrollTargetBehavior = {}));
+/** @public */
+export class Shelf extends base.ViewModel {
+ constructor(contentType, marker = null, items = null) {
+ super();
+ // - Item Properties
+ this.contentType = contentType;
+ this.marker = marker;
+ this.items = items || [];
+ this.header = undefined;
+ // - Incomplete Shelf Properties
+ this.url = null;
+ this.mergeWhenFetched = false;
+ this.fetchStrategy = IncompleteShelfFetchStrategy.OnPageLoad;
+ this.batchGroup = null;
+ // - Overflow Properties
+ this.seeAllAction = null;
+ // - Footer Properties
+ this.footerTitle = null;
+ this.footerAction = null;
+ // - Presentation Properties
+ this.eyebrow = null;
+ this.eyebrowArtwork = null;
+ this.footerStyle = null;
+ this.title = null;
+ this.titleArtwork = null;
+ this.subtitle = null;
+ this.isHorizontal = false;
+ this.isHidden = false;
+ this.rowsPerColumn = null;
+ this.background = { type: "none" };
+ this.contentsMetadata = { type: "none" };
+ // - Personalization & Filtering Properties
+ this.isPersonalized = false;
+ this.shouldFilterApps = false;
+ }
+}
+/** @public */
+export var ShelfBackgroundGradientLocation;
+(function (ShelfBackgroundGradientLocation) {
+ ShelfBackgroundGradientLocation["TopLeading"] = "topLeading";
+ ShelfBackgroundGradientLocation["Top"] = "top";
+ ShelfBackgroundGradientLocation["TopTrailing"] = "topTrailing";
+ ShelfBackgroundGradientLocation["Trailing"] = "trailing";
+ ShelfBackgroundGradientLocation["BottomTrailing"] = "bottomTrailing";
+ ShelfBackgroundGradientLocation["Bottom"] = "bottom";
+ ShelfBackgroundGradientLocation["BottomLeading"] = "bottomLeading";
+ ShelfBackgroundGradientLocation["Leading"] = "leading";
+})(ShelfBackgroundGradientLocation || (ShelfBackgroundGradientLocation = {}));
+export var GroupDisplayStyle;
+(function (GroupDisplayStyle) {
+ GroupDisplayStyle["Grid"] = "grid";
+ GroupDisplayStyle["Hero"] = "hero";
+ GroupDisplayStyle["Standard"] = "standard";
+})(GroupDisplayStyle || (GroupDisplayStyle = {}));
+/// The different artwork types we can display in the header
+export var ShelfHeaderArtworkType;
+(function (ShelfHeaderArtworkType) {
+ /// The image displayed is a content icon
+ ShelfHeaderArtworkType["Icon"] = "icon";
+ /// The image displayed is a category image
+ ShelfHeaderArtworkType["Category"] = "category";
+})(ShelfHeaderArtworkType || (ShelfHeaderArtworkType = {}));
+/** @public */
+export class EditorialStoryCard extends base.ViewModel {
+ constructor(title, artwork, video, heading, badge, description, clickAction) {
+ super();
+ this.title = title;
+ this.artwork = artwork;
+ this.video = video;
+ this.heading = heading;
+ this.badge = badge;
+ this.description = description;
+ this.clickAction = clickAction;
+ this.shelfBackground = null;
+ this.collectionIcons = null;
+ this.editorialDisplayOptions = {};
+ }
+}
+/** @public */
+export class PosterLockup extends Lockup {
+ isValid() {
+ const hasPosterArtwork = this.posterArtwork;
+ const hasPosterVideo = this.posterVideo;
+ // We require at least one type of poster media.
+ if (!(hasPosterArtwork || hasPosterVideo)) {
+ return false;
+ }
+ return super.isValid();
+ }
+}
+/** @public */
+export class PageTab extends base.Model {
+}
+/** @public */
+export class PageTabs extends base.Model {
+ constructor() {
+ super();
+ /// The id is not from a payload and should be unique to the container
+ this.id = random.nextUUID();
+ }
+}
+//# sourceMappingURL=shelves.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/today-page.js b/node_modules/@jet-app/app-store/tmp/src/api/models/today-page.js
new file mode 100644
index 0000000..58017fa
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/today-page.js
@@ -0,0 +1,300 @@
+import * as base from "./base";
+import * as metrics from "./metrics/metrics";
+export var AdPlacementBehavior;
+(function (AdPlacementBehavior) {
+ AdPlacementBehavior["insertIntoShelf"] = "insertIntoShelf";
+ AdPlacementBehavior["replaceOrganic"] = "replaceOrganic";
+ AdPlacementBehavior["dropAd"] = "dropAd";
+})(AdPlacementBehavior || (AdPlacementBehavior = {}));
+/** @public */
+export class TodayCardMedia extends base.ViewModel {
+ constructor(kind) {
+ super();
+ this.kind = kind;
+ }
+ /**
+ * @returns The best background color for the media. This is used to
+ * determine the color the section background gradients. If undefined, the
+ * default section background color will be used.
+ */
+ bestBackgroundColor() {
+ return undefined;
+ }
+}
+/** @public */
+export class TodayCardMediaWithArtwork extends TodayCardMedia {
+ constructor(kind, artworks, videos, artworkLayoutsWithMetrics) {
+ super(kind);
+ this.artworks = artworks;
+ this.videos = videos;
+ this.artworkLayoutsWithMetrics = artworkLayoutsWithMetrics;
+ }
+ bestBackgroundColor() {
+ var _a, _b, _c;
+ return (_b = (_a = this.videos[0]) === null || _a === void 0 ? void 0 : _a.preview.backgroundColor) !== null && _b !== void 0 ? _b : (_c = this.artworks[0]) === null || _c === void 0 ? void 0 : _c.backgroundColor;
+ }
+}
+/** @public */
+export class TodayCardMediaHero extends TodayCardMediaWithArtwork {
+ constructor(artworks, videos) {
+ super("hero", artworks, videos, []);
+ }
+ isValid() {
+ const isArtworkValid = this.artworks.every((artwork) => artwork.isValid()) && this.artworks.length > 0;
+ const isVideoValid = this.videos.every((video) => video.isValid()) && this.videos.length > 0;
+ return (isArtworkValid || isVideoValid) && super.isValid();
+ }
+}
+/** @public */
+export class TodayCardMediaArtwork extends TodayCardMediaWithArtwork {
+ constructor(artworks, videos, artworkLayoutsWithMetrics, titleBackingGradient) {
+ super("artwork", artworks, videos, artworkLayoutsWithMetrics);
+ this.titleBackingGradient = titleBackingGradient;
+ }
+}
+/** @public */
+export class TodayCardMediaAppIcon extends TodayCardMedia {
+ constructor(icon) {
+ super("appIcon");
+ this.icon = icon;
+ }
+ bestBackgroundColor() {
+ return this.icon.backgroundColor;
+ }
+}
+/** @public */
+export class TodayCardMediaBrandedSingleApp extends TodayCardMediaWithArtwork {
+ constructor(icon, artworks, videos, artworkLayoutsWithMetrics, titleBackingGradient) {
+ super("brandedSingleApp", artworks, videos, artworkLayoutsWithMetrics);
+ this.icon = icon;
+ this.titleBackingGradient = titleBackingGradient;
+ }
+ bestBackgroundColor() {
+ var _a;
+ return (_a = super.bestBackgroundColor()) !== null && _a !== void 0 ? _a : this.icon.backgroundColor;
+ }
+}
+/** @public */
+export class TodayCardMediaList extends TodayCardMediaWithArtwork {
+ constructor(lockups, artworks, videos, artworkLayoutsWithMetrics, marketingText, isMediaDark) {
+ super("list", artworks, videos, artworkLayoutsWithMetrics);
+ this.lockups = lockups;
+ this.marketingText = marketingText;
+ this.isMediaDark = isMediaDark;
+ }
+}
+/** @public */
+export class TodayCardMediaMultiApp extends TodayCardMedia {
+ constructor(lockups, additionalText) {
+ super("multiApp");
+ this.lockups = lockups;
+ this.additionalText = additionalText;
+ }
+}
+/** @public */
+export class TodayCardInAppPurchase extends TodayCardMedia {
+ constructor(lockup) {
+ super("inAppPurchase");
+ this.lockup = lockup;
+ }
+ bestBackgroundColor() {
+ return this.lockup.icon.backgroundColor;
+ }
+}
+/** @public */
+export class TodayCardMediaRiver extends TodayCardMedia {
+ constructor(lockups) {
+ super("river");
+ this.lockups = lockups;
+ this.lockupImpressionLimit = 10;
+ }
+}
+/** @public */
+export class TodayCardMediaGrid extends TodayCardMedia {
+ constructor(lockups, artworkGridType) {
+ super("grid");
+ this.lockups = lockups;
+ this.artworkGridType = artworkGridType;
+ this.lockupImpressionLimit = 3;
+ }
+}
+/** @public */
+export class TodayCardMediaVideo extends TodayCardMediaWithArtwork {
+ constructor(videos, artworkLayoutsWithMetrics, description) {
+ super("video", [], videos, artworkLayoutsWithMetrics);
+ this.description = description;
+ }
+}
+/** @public */
+export class TodayCardMediaAppEvent extends TodayCardMediaWithArtwork {
+ constructor(formattedDates, startDate, tintColor, artworks, videos, artworkLayoutsWithMetrics, blurStyle) {
+ super("appEvent", artworks, videos, artworkLayoutsWithMetrics);
+ this.formattedDates = formattedDates;
+ this.startDate = startDate;
+ this.tintColor = tintColor;
+ this.blurStyle = blurStyle;
+ }
+}
+/** @public */
+export class TodayCardMediaMediumLockupWithAlignedRegion extends TodayCardMedia {
+ constructor(mediumAdLockupWithAlignedRegionBackground) {
+ super("mediumLockupWithAlignedRegion");
+ this.mediumAdLockupWithAlignedRegionBackground = mediumAdLockupWithAlignedRegionBackground;
+ }
+}
+/** @public */
+export class TodayCardMediaMediumLockupWithScreenshots extends TodayCardMedia {
+ constructor(mediumAdLockupWithScreenshotsBackground) {
+ super("mediumLockupWithScreenshots");
+ this.mediumAdLockupWithScreenshotsBackground = mediumAdLockupWithScreenshotsBackground;
+ }
+}
+/**
+ * @public
+ * Media for a today card with a single lockup.
+ */ export class TodayCardMediaSingleLockup extends TodayCardMedia {
+ constructor(condensedAdLockupWithIconBackground) {
+ super("singleLockup");
+ this.condensedAdLockupWithIconBackground = condensedAdLockupWithIconBackground;
+ }
+ /**
+ * @returns The best background color for the media. This is used to
+ * determine the color the section background gradients. If undefined, the
+ * default section background color will be used.
+ */
+ bestBackgroundColor() {
+ var _a;
+ return (_a = this.condensedAdLockupWithIconBackground) === null || _a === void 0 ? void 0 : _a.backgroundArtwork.backgroundColor;
+ }
+}
+/** @public */
+export class TodayCardOverlay extends base.Model {
+ constructor(kind) {
+ super();
+ this.kind = kind;
+ }
+}
+/** @public */
+export class TodayCardLockupOverlay extends TodayCardOverlay {
+ constructor(lockup) {
+ super("lockup");
+ this.lockup = lockup;
+ this.displaysIcon = true;
+ }
+}
+/**
+ * @public
+ * Variant of `TodayCardLockupOverlay` with additional functionality,
+ * like optionally showing a transient `TodayCardParagraphOverlay` style overlay
+ */
+export class TodayCardMarketingLockupOverlay extends TodayCardOverlay {
+ constructor(lockup, paragraph, hideBackground, artworkBackgroundColor) {
+ super("marketingLockup");
+ this.lockup = lockup;
+ this.paragraph = paragraph;
+ this.hideBackground = hideBackground;
+ this.artworkBackgroundColor = artworkBackgroundColor;
+ }
+}
+/** @public */
+export class TodayCardLockupListOverlay extends TodayCardOverlay {
+ constructor(lockups) {
+ super("lockupList");
+ this.lockups = lockups;
+ }
+}
+/** @public */
+export class TodayCardParagraphOverlay extends TodayCardOverlay {
+ constructor(paragraph, style) {
+ super("paragraph");
+ this.paragraph = paragraph;
+ this.style = style;
+ }
+}
+/** @public */
+export class TodayCardActionOverlay extends TodayCardOverlay {
+ constructor(action) {
+ super("action");
+ this.action = action;
+ }
+}
+/** @public */
+export class TodayCardThreeLineOverlay extends TodayCardOverlay {
+ constructor(heading, title, description) {
+ super("threeLine");
+ this.heading = heading;
+ this.title = title;
+ this.description = description;
+ }
+}
+/**
+ * @public
+ * Overlay for Acquisition Editorial Items that promote the Arcade Service.
+ */
+export class TodayCardArcadeLockupOverlay extends TodayCardOverlay {
+ constructor(arcadeLockup) {
+ super("arcadeLockup");
+ this.arcadeLockup = arcadeLockup;
+ }
+}
+/**
+ * @public
+ * Overlay for App Event lockups.
+ */
+export class TodayCardAppEventLockupOverlay extends TodayCardOverlay {
+ constructor(lockup) {
+ super("appEventLockup");
+ this.lockup = lockup;
+ }
+}
+// endregion
+// region Cards
+/** @public */
+export class TodayCard extends base.ViewModel {
+ constructor() {
+ super();
+ this.heading = undefined;
+ this.title = undefined;
+ this.shortTitle = undefined;
+ this.titleArtwork = undefined;
+ this.media = undefined;
+ this.heroMedia = undefined;
+ this.overlay = undefined;
+ this.style = undefined;
+ this.clickAction = undefined;
+ this.backgroundColor = undefined;
+ this.inlineDescription = undefined;
+ this.collapsedHeading = undefined;
+ this.editorialDisplayOptions = undefined;
+ this.supportsMediaMirroring = undefined;
+ }
+}
+/** @public */
+export class InlineTodayCards extends base.ViewModel {
+ constructor(cards) {
+ super();
+ this.cards = cards;
+ }
+}
+// endregion
+/** @public */
+export class TodayPage extends base.Model {
+ constructor(shelfModels, onboardingCardIds, title, tabTitle, titleDetail, shortTitleDetail) {
+ super();
+ this.shelves = shelfModels;
+ this.title = title;
+ this.titleDetail = titleDetail;
+ this.shortTitleDetail = shortTitleDetail;
+ this.tabTitle = tabTitle;
+ this.nextPage = null;
+ if (onboardingCardIds) {
+ this.onboardingCardIds = onboardingCardIds;
+ }
+ else {
+ this.onboardingCardIds = [];
+ }
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+//# sourceMappingURL=today-page.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/top-charts.js b/node_modules/@jet-app/app-store/tmp/src/api/models/top-charts.js
new file mode 100644
index 0000000..52f229f
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/top-charts.js
@@ -0,0 +1,63 @@
+/**
+ * Created by km on 2/13/17.
+ */
+import * as models from "./index";
+import * as metrics from "./metrics/metrics";
+/** @public */
+export class TopChartSegment extends models.Model {
+ constructor(shortName, longName, chart, shelfModels) {
+ super();
+ this.shortName = shortName;
+ this.longName = longName;
+ this.chart = chart;
+ this.shelves = shelfModels;
+ this.nextPage = null;
+ this.pageMetrics = new metrics.PageMetrics();
+ this.pageRenderMetrics = {};
+ }
+}
+/** @public */
+export class TopChartCategory extends models.Category {
+ constructor(category, url, children) {
+ super(category.name, category.genreId, category.artwork, category.ageBandId, children);
+ this.shortName = this.name;
+ this.longName = this.name;
+ this.url = url;
+ }
+}
+/**
+ * Shared "Top Charts" view-model
+ *
+ * @see {@linkcode TopChartsPage} for when "Top Charts" should be rendered as a page
+ * @see {@linkcode ChartsHubChart} for when a "chart" exists on a page with other "charts"
+ */
+export class TopChartsPage extends models.Model {
+ constructor(genreId, ageBandId, title, segments, categoriesButtonTitle, categories) {
+ super();
+ this.genreId = genreId;
+ this.ageBandId = ageBandId;
+ this.title = title;
+ this.segments = segments;
+ this.categoriesButtonTitle = categoriesButtonTitle;
+ this.categories = categories;
+ this.initialSegmentIndex = 0;
+ }
+}
+/**
+ * A single chart within a {@linkcode ChartsHubPage}
+ */
+export class ChartsHubChart extends TopChartsPage {
+}
+/**
+ * View-model for the "Charts Hub" page
+ *
+ * This is used by the "web" client to power the charts overview, which includes
+ * multiple charts in the same view
+ */
+export class ChartsHubPage extends models.Model {
+ constructor(charts) {
+ super();
+ this.charts = charts;
+ }
+}
+//# sourceMappingURL=top-charts.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/uber.js b/node_modules/@jet-app/app-store/tmp/src/api/models/uber.js
new file mode 100644
index 0000000..1fd7d78
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/uber.js
@@ -0,0 +1,19 @@
+import * as base from "./base";
+/** @public */
+export class Uber extends base.Model {
+ constructor(style) {
+ super();
+ this.style = style;
+ }
+ isValidUber(isTV, isVision) {
+ function isDefinedNonNullNonEmpty(object) {
+ return object !== undefined && object !== null && Object.keys(object).length !== 0;
+ }
+ return (isDefinedNonNullNonEmpty(this.artwork) ||
+ isDefinedNonNullNonEmpty(this.compactArtwork) ||
+ isDefinedNonNullNonEmpty(this.video) ||
+ isDefinedNonNullNonEmpty(this.compactVideo) ||
+ ((isTV || isVision) && isDefinedNonNullNonEmpty(this.iconArtwork)));
+ }
+}
+//# sourceMappingURL=uber.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/models/web-renderable-page.js b/node_modules/@jet-app/app-store/tmp/src/api/models/web-renderable-page.js
new file mode 100644
index 0000000..67be95f
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/models/web-renderable-page.js
@@ -0,0 +1,4 @@
+export function injectSEOData(page, seoData) {
+ page.seoData = seoData;
+}
+//# sourceMappingURL=web-renderable-page.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/typings/constants.js b/node_modules/@jet-app/app-store/tmp/src/api/typings/constants.js
new file mode 100644
index 0000000..7c04c8c
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/typings/constants.js
@@ -0,0 +1,21 @@
+import { makeMetatype } from "@jet/environment/util/metatype";
+export const storeMetrics = makeMetatype("app-store:storeMetrics");
+export const amsEngagement = makeMetatype("app-store:amsEngagement");
+export const device = makeMetatype("app-store:device");
+export const user = makeMetatype("app-store:user");
+export const player = makeMetatype("games:player");
+export const metricsIdentifiers = makeMetatype("app-store:metricsIdentifiers");
+export const arcade = makeMetatype("app-store:arcade");
+export const gameCenter = makeMetatype("app-store:gameCenter");
+export const resilientDeepLinks = makeMetatype("app-store:resilientDeepLinks");
+export const ads = makeMetatype("app-store:ads");
+export const onDeviceRecommendationsManager = makeMetatype("app-store:onDeviceRecommendationsManager");
+export const onDeviceSearchHistoryManager = makeMetatype("app-store:onDeviceSearchHistoryManager");
+export const featureFlags = makeMetatype("app-store:featureFlags");
+export const mediaToken = makeMetatype("app-store:mediaTokenService");
+export const adsLocalizer = makeMetatype("app-store:adsLocalizer");
+export const appDistribution = makeMetatype("app-store:appDistribution");
+export const timeoutManager = makeMetatype("app-store:timeoutManager");
+export const treatmentStore = makeMetatype("app-store:treatmentStore");
+export const userDefaults = makeMetatype("app-store:userDefaults");
+//# sourceMappingURL=constants.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/api/util.js b/node_modules/@jet-app/app-store/tmp/src/api/util.js
new file mode 100644
index 0000000..a6d199c
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/api/util.js
@@ -0,0 +1,16 @@
+/**
+ * Ensures that Adam IDs are always represented with the same format
+ *
+ * "ID" segments in a URL typically include an `id` prefix that should
+ * not be present when using the value as an identifier for a resource
+ * in the Media APi.
+ *
+ * This function strips the prefix if present
+ */
+export function normalizeAdamID(raw) {
+ if (raw.startsWith("id")) {
+ return raw.substring(2);
+ }
+ return raw;
+}
+//# sourceMappingURL=util.js.map \ No newline at end of file