@guardian/support-dotcom-components 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/dotcom/index.d.ts +1 -2
  2. package/dist/dotcom/index.d.ts.map +1 -1
  3. package/dist/dotcom/requests.d.ts +2 -2
  4. package/dist/dotcom/requests.d.ts.map +1 -1
  5. package/dist/index.esm.js +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/server/api/ampEpicRouter.d.ts +8 -0
  8. package/dist/server/api/ampEpicRouter.d.ts.map +1 -0
  9. package/dist/server/api/auxiaProxyRouter.d.ts +8 -0
  10. package/dist/server/api/auxiaProxyRouter.d.ts.map +1 -0
  11. package/dist/server/api/bannerRouter.d.ts +9 -0
  12. package/dist/server/api/bannerRouter.d.ts.map +1 -0
  13. package/dist/server/api/epicRouter.d.ts +9 -0
  14. package/dist/server/api/epicRouter.d.ts.map +1 -0
  15. package/dist/server/api/gutterRouter.d.ts +6 -0
  16. package/dist/server/api/gutterRouter.d.ts.map +1 -0
  17. package/dist/server/api/headerRouter.d.ts +6 -0
  18. package/dist/server/api/headerRouter.d.ts.map +1 -0
  19. package/dist/server/channelSwitches.d.ts +14 -0
  20. package/dist/server/channelSwitches.d.ts.map +1 -0
  21. package/dist/server/choiceCardAmounts.d.ts +5 -0
  22. package/dist/server/choiceCardAmounts.d.ts.map +1 -0
  23. package/dist/server/factories/bannerDesign.d.ts +5 -0
  24. package/dist/server/factories/bannerDesign.d.ts.map +1 -0
  25. package/dist/server/factories/bannerVariant.d.ts +5 -0
  26. package/dist/server/factories/bannerVariant.d.ts.map +1 -0
  27. package/dist/server/factories/epicVariant.d.ts +100 -0
  28. package/dist/server/factories/epicVariant.d.ts.map +1 -0
  29. package/dist/server/factories/index.d.ts +104 -0
  30. package/dist/server/factories/index.d.ts.map +1 -0
  31. package/dist/server/factories/targeting.d.ts +5 -0
  32. package/dist/server/factories/targeting.d.ts.map +1 -0
  33. package/dist/server/factories/test.d.ts +5 -0
  34. package/dist/server/factories/test.d.ts.map +1 -0
  35. package/dist/server/lib/ampVariantAssignments.d.ts +4 -0
  36. package/dist/server/lib/ampVariantAssignments.d.ts.map +1 -0
  37. package/dist/server/lib/dates.d.ts +2 -0
  38. package/dist/server/lib/dates.d.ts.map +1 -0
  39. package/dist/server/lib/deviceType.d.ts +4 -0
  40. package/dist/server/lib/deviceType.d.ts.map +1 -0
  41. package/dist/server/lib/env.d.ts +5 -0
  42. package/dist/server/lib/env.d.ts.map +1 -0
  43. package/dist/server/lib/fetchTickerData.d.ts +12 -0
  44. package/dist/server/lib/fetchTickerData.d.ts.map +1 -0
  45. package/dist/server/lib/history.d.ts +11 -0
  46. package/dist/server/lib/history.d.ts.map +1 -0
  47. package/dist/server/lib/params.d.ts +10 -0
  48. package/dist/server/lib/params.d.ts.map +1 -0
  49. package/dist/server/lib/superMode.d.ts +26 -0
  50. package/dist/server/lib/superMode.d.ts.map +1 -0
  51. package/dist/server/lib/targeting.d.ts +20 -0
  52. package/dist/server/lib/targeting.d.ts.map +1 -0
  53. package/dist/server/lib/targetingTesting.d.ts +26 -0
  54. package/dist/server/lib/targetingTesting.d.ts.map +1 -0
  55. package/dist/server/lib/tracking.d.ts +7 -0
  56. package/dist/server/lib/tracking.d.ts.map +1 -0
  57. package/dist/server/middleware/bodyContainsAllFields.d.ts +3 -0
  58. package/dist/server/middleware/bodyContainsAllFields.d.ts.map +1 -0
  59. package/dist/server/middleware/errorHandling.d.ts +3 -0
  60. package/dist/server/middleware/errorHandling.d.ts.map +1 -0
  61. package/dist/server/middleware/index.d.ts +4 -0
  62. package/dist/server/middleware/index.d.ts.map +1 -0
  63. package/dist/server/middleware/logging.d.ts +3 -0
  64. package/dist/server/middleware/logging.d.ts.map +1 -0
  65. package/dist/server/productPrices.d.ts +5 -0
  66. package/dist/server/productPrices.d.ts.map +1 -0
  67. package/dist/server/selection/ab.d.ts +12 -0
  68. package/dist/server/selection/ab.d.ts.map +1 -0
  69. package/dist/server/selection/banditData.d.ts +13 -0
  70. package/dist/server/selection/banditData.d.ts.map +1 -0
  71. package/dist/server/selection/epsilonGreedySelection.d.ts +9 -0
  72. package/dist/server/selection/epsilonGreedySelection.d.ts.map +1 -0
  73. package/dist/server/selection/helpers.d.ts +4 -0
  74. package/dist/server/selection/helpers.d.ts.map +1 -0
  75. package/dist/server/selection/rouletteSelection.d.ts +4 -0
  76. package/dist/server/selection/rouletteSelection.d.ts.map +1 -0
  77. package/dist/server/selection/selectVariant.d.ts +11 -0
  78. package/dist/server/selection/selectVariant.d.ts.map +1 -0
  79. package/dist/server/server.d.ts +2 -0
  80. package/dist/server/server.d.ts.map +1 -0
  81. package/dist/server/signin-gate/lib.d.ts +62 -0
  82. package/dist/server/signin-gate/lib.d.ts.map +1 -0
  83. package/dist/server/tests/amp/ampEpic.d.ts +5 -0
  84. package/dist/server/tests/amp/ampEpic.d.ts.map +1 -0
  85. package/dist/server/tests/amp/ampEpicModels.d.ts +367 -0
  86. package/dist/server/tests/amp/ampEpicModels.d.ts.map +1 -0
  87. package/dist/server/tests/amp/ampEpicSelection.d.ts +11 -0
  88. package/dist/server/tests/amp/ampEpicSelection.d.ts.map +1 -0
  89. package/dist/server/tests/amp/ampEpicTests.d.ts +4 -0
  90. package/dist/server/tests/amp/ampEpicTests.d.ts.map +1 -0
  91. package/dist/server/tests/amp/ampTicker.d.ts +11 -0
  92. package/dist/server/tests/amp/ampTicker.d.ts.map +1 -0
  93. package/dist/server/tests/banners/abandonedBasketTests.d.ts +3 -0
  94. package/dist/server/tests/banners/abandonedBasketTests.d.ts.map +1 -0
  95. package/dist/server/tests/banners/bannerDeploySchedule.d.ts +23 -0
  96. package/dist/server/tests/banners/bannerDeploySchedule.d.ts.map +1 -0
  97. package/dist/server/tests/banners/bannerDeployTimes.d.ts +26 -0
  98. package/dist/server/tests/banners/bannerDeployTimes.d.ts.map +1 -0
  99. package/dist/server/tests/banners/bannerDesigns.d.ts +5 -0
  100. package/dist/server/tests/banners/bannerDesigns.d.ts.map +1 -0
  101. package/dist/server/tests/banners/bannerSelection.d.ts +20 -0
  102. package/dist/server/tests/banners/bannerSelection.d.ts.map +1 -0
  103. package/dist/server/tests/banners/bannerTargetingTests.d.ts +4 -0
  104. package/dist/server/tests/banners/bannerTargetingTests.d.ts.map +1 -0
  105. package/dist/server/tests/banners/bannerTests.d.ts +5 -0
  106. package/dist/server/tests/banners/bannerTests.d.ts.map +1 -0
  107. package/dist/server/tests/banners/channelBannerTests.d.ts +7 -0
  108. package/dist/server/tests/banners/channelBannerTests.d.ts.map +1 -0
  109. package/dist/server/tests/banners/signInPromptTests.d.ts +3 -0
  110. package/dist/server/tests/banners/signInPromptTests.d.ts.map +1 -0
  111. package/dist/server/tests/epics/epicSelection.d.ts +35 -0
  112. package/dist/server/tests/epics/epicSelection.d.ts.map +1 -0
  113. package/dist/server/tests/epics/epicTests.d.ts +6 -0
  114. package/dist/server/tests/epics/epicTests.d.ts.map +1 -0
  115. package/dist/server/tests/epics/momentumTest.d.ts +15 -0
  116. package/dist/server/tests/epics/momentumTest.d.ts.map +1 -0
  117. package/dist/server/tests/gutters/gutterSelection.d.ts +6 -0
  118. package/dist/server/tests/gutters/gutterSelection.d.ts.map +1 -0
  119. package/dist/server/tests/gutters/gutterTests.d.ts +5 -0
  120. package/dist/server/tests/gutters/gutterTests.d.ts.map +1 -0
  121. package/dist/server/tests/headers/headerSelection.d.ts +6 -0
  122. package/dist/server/tests/headers/headerSelection.d.ts.map +1 -0
  123. package/dist/server/tests/headers/headerTests.d.ts +5 -0
  124. package/dist/server/tests/headers/headerTests.d.ts.map +1 -0
  125. package/dist/server/tests/store.d.ts +7 -0
  126. package/dist/server/tests/store.d.ts.map +1 -0
  127. package/dist/server/utils/S3.d.ts +10 -0
  128. package/dist/server/utils/S3.d.ts.map +1 -0
  129. package/dist/server/utils/cloudwatch.d.ts +5 -0
  130. package/dist/server/utils/cloudwatch.d.ts.map +1 -0
  131. package/dist/server/utils/logging.d.ts +5 -0
  132. package/dist/server/utils/logging.d.ts.map +1 -0
  133. package/dist/server/utils/removeNullValues.d.ts +2 -0
  134. package/dist/server/utils/removeNullValues.d.ts.map +1 -0
  135. package/dist/server/utils/ssm.d.ts +2 -0
  136. package/dist/server/utils/ssm.d.ts.map +1 -0
  137. package/dist/server/utils/supportFrontend.d.ts +2 -0
  138. package/dist/server/utils/supportFrontend.d.ts.map +1 -0
  139. package/dist/server/utils/valueReloader.d.ts +18 -0
  140. package/dist/server/utils/valueReloader.d.ts.map +1 -0
  141. package/dist/server/utils/withNowAs.d.ts +2 -0
  142. package/dist/server/utils/withNowAs.d.ts.map +1 -0
  143. package/dist/shared/lib/geolocation.d.ts.map +1 -1
  144. package/dist/shared/lib/history.d.ts +2 -4
  145. package/dist/shared/lib/history.d.ts.map +1 -1
  146. package/dist/shared/lib/placeholders.d.ts +1 -1
  147. package/dist/shared/lib/placeholders.d.ts.map +1 -1
  148. package/dist/shared/lib/viewLog.d.ts +1 -1
  149. package/dist/shared/lib/viewLog.d.ts.map +1 -1
  150. package/dist/shared/types/abTests/banner.d.ts +20 -76
  151. package/dist/shared/types/abTests/banner.d.ts.map +1 -1
  152. package/dist/shared/types/abTests/epic.d.ts +14 -50
  153. package/dist/shared/types/abTests/epic.d.ts.map +1 -1
  154. package/dist/shared/types/abTests/gutter.d.ts +3 -3
  155. package/dist/shared/types/abTests/gutter.d.ts.map +1 -1
  156. package/dist/shared/types/abTests/header.d.ts +3 -3
  157. package/dist/shared/types/abTests/header.d.ts.map +1 -1
  158. package/dist/shared/types/abTests/shared.d.ts +4 -4
  159. package/dist/shared/types/abTests/shared.d.ts.map +1 -1
  160. package/dist/shared/types/prices.d.ts +6 -12
  161. package/dist/shared/types/prices.d.ts.map +1 -1
  162. package/dist/shared/types/props/banner.d.ts +79 -103
  163. package/dist/shared/types/props/banner.d.ts.map +1 -1
  164. package/dist/shared/types/props/design.d.ts +54 -54
  165. package/dist/shared/types/props/epic.d.ts +16 -72
  166. package/dist/shared/types/props/epic.d.ts.map +1 -1
  167. package/dist/shared/types/props/gutter.d.ts +2 -2
  168. package/dist/shared/types/props/gutter.d.ts.map +1 -1
  169. package/dist/shared/types/props/header.d.ts +2 -2
  170. package/dist/shared/types/props/header.d.ts.map +1 -1
  171. package/dist/shared/types/props/shared.d.ts +6 -43
  172. package/dist/shared/types/props/shared.d.ts.map +1 -1
  173. package/dist/shared/types/purchaseInfo.d.ts.map +1 -1
  174. package/dist/shared/types/targeting/banner.d.ts +1 -1
  175. package/dist/shared/types/targeting/banner.d.ts.map +1 -1
  176. package/dist/shared/types/targeting/epic.d.ts +2 -2
  177. package/dist/shared/types/targeting/epic.d.ts.map +1 -1
  178. package/dist/shared/types/targeting/header.d.ts +1 -1
  179. package/dist/shared/types/targeting/header.d.ts.map +1 -1
  180. package/dist/shared/types/targeting/shared.d.ts +6 -7
  181. package/dist/shared/types/targeting/shared.d.ts.map +1 -1
  182. package/package.json +11 -9
@@ -0,0 +1,367 @@
1
+ import { z } from 'zod';
2
+ import type { ContributionFrequency, SecondaryCta } from '../../../shared/types';
3
+ import type { AMPTicker } from './ampTicker';
4
+ /**
5
+ * Models for the data returned to AMP
6
+ */
7
+ export interface AMPCta {
8
+ text: string;
9
+ url: string;
10
+ componentId: string;
11
+ campaignCode: string;
12
+ }
13
+ export interface AMPEpic {
14
+ testName: string;
15
+ variantName: string;
16
+ heading?: string;
17
+ paragraphs: string[];
18
+ highlightedText?: string;
19
+ cta: AMPCta;
20
+ secondaryCta?: SecondaryCta;
21
+ ticker?: AMPTicker;
22
+ showChoiceCards?: boolean;
23
+ defaultChoiceCardFrequency?: ContributionFrequency;
24
+ }
25
+ export declare const ampEpicTestSchema: z.ZodObject<{
26
+ name: z.ZodString;
27
+ channel: z.ZodEnum<["Epic", "EpicAMP", "EpicAppleNews", "EpicLiveblog", "Banner1", "Banner2", "Header", "GutterLiveblog"]>;
28
+ priority: z.ZodNumber;
29
+ status: z.ZodEnum<["Live", "Draft", "Archived"]>;
30
+ controlProportionSettings: z.ZodOptional<z.ZodObject<{
31
+ proportion: z.ZodNumber;
32
+ offset: z.ZodNumber;
33
+ }, "strip", z.ZodTypeAny, {
34
+ offset: number;
35
+ proportion: number;
36
+ }, {
37
+ offset: number;
38
+ proportion: number;
39
+ }>>;
40
+ deviceType: z.ZodOptional<z.ZodEnum<["Mobile", "Desktop", "All", "iOS", "Android"]>>;
41
+ signedInStatus: z.ZodOptional<z.ZodEnum<["SignedIn", "SignedOut", "All"]>>;
42
+ consentStatus: z.ZodOptional<z.ZodEnum<["HasConsented", "HasNotConsented", "All"]>>;
43
+ methodologies: z.ZodOptional<z.ZodArray<z.ZodIntersection<z.ZodDiscriminatedUnion<"name", [z.ZodObject<{
44
+ name: z.ZodLiteral<"ABTest">;
45
+ }, "strip", z.ZodTypeAny, {
46
+ name: "ABTest";
47
+ }, {
48
+ name: "ABTest";
49
+ }>, z.ZodObject<{
50
+ name: z.ZodLiteral<"EpsilonGreedyBandit">;
51
+ epsilon: z.ZodNumber;
52
+ sampleCount: z.ZodOptional<z.ZodNumber>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ name: "EpsilonGreedyBandit";
55
+ epsilon: number;
56
+ sampleCount?: number | undefined;
57
+ }, {
58
+ name: "EpsilonGreedyBandit";
59
+ epsilon: number;
60
+ sampleCount?: number | undefined;
61
+ }>, z.ZodObject<{
62
+ name: z.ZodLiteral<"Roulette">;
63
+ sampleCount: z.ZodOptional<z.ZodNumber>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ name: "Roulette";
66
+ sampleCount?: number | undefined;
67
+ }, {
68
+ name: "Roulette";
69
+ sampleCount?: number | undefined;
70
+ }>]>, z.ZodObject<{
71
+ testName: z.ZodOptional<z.ZodString>;
72
+ }, "strip", z.ZodTypeAny, {
73
+ testName?: string | undefined;
74
+ }, {
75
+ testName?: string | undefined;
76
+ }>>, "many">>;
77
+ nickname: z.ZodOptional<z.ZodString>;
78
+ locations: z.ZodOptional<z.ZodArray<z.ZodEnum<["GBPCountries", "UnitedStates", "AUDCountries", "EURCountries", "International", "NZDCountries", "Canada"]>, "many">>;
79
+ regionTargeting: z.ZodOptional<z.ZodOptional<z.ZodObject<{
80
+ targetedCountryGroups: z.ZodArray<z.ZodEnum<["GBPCountries", "UnitedStates", "AUDCountries", "EURCountries", "International", "NZDCountries", "Canada"]>, "many">;
81
+ targetedCountryCodes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ targetedCountryGroups: ("GBPCountries" | "UnitedStates" | "AUDCountries" | "EURCountries" | "International" | "NZDCountries" | "Canada")[];
84
+ targetedCountryCodes?: string[] | undefined;
85
+ }, {
86
+ targetedCountryGroups: ("GBPCountries" | "UnitedStates" | "AUDCountries" | "EURCountries" | "International" | "NZDCountries" | "Canada")[];
87
+ targetedCountryCodes?: string[] | undefined;
88
+ }>>>;
89
+ variants: z.ZodArray<z.ZodObject<{
90
+ name: z.ZodString;
91
+ heading: z.ZodOptional<z.ZodString>;
92
+ paragraphs: z.ZodArray<z.ZodString, "many">;
93
+ highlightedText: z.ZodOptional<z.ZodString>;
94
+ cta: z.ZodOptional<z.ZodObject<{
95
+ text: z.ZodString;
96
+ baseUrl: z.ZodString;
97
+ }, "strip", z.ZodTypeAny, {
98
+ text: string;
99
+ baseUrl: string;
100
+ }, {
101
+ text: string;
102
+ baseUrl: string;
103
+ }>>;
104
+ secondaryCta: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
105
+ type: z.ZodLiteral<import("../../../shared/types").SecondaryCtaType.Custom>;
106
+ cta: z.ZodObject<{
107
+ text: z.ZodString;
108
+ baseUrl: z.ZodString;
109
+ }, "strip", z.ZodTypeAny, {
110
+ text: string;
111
+ baseUrl: string;
112
+ }, {
113
+ text: string;
114
+ baseUrl: string;
115
+ }>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ type: import("../../../shared/types").SecondaryCtaType.Custom;
118
+ cta: {
119
+ text: string;
120
+ baseUrl: string;
121
+ };
122
+ }, {
123
+ type: import("../../../shared/types").SecondaryCtaType.Custom;
124
+ cta: {
125
+ text: string;
126
+ baseUrl: string;
127
+ };
128
+ }>, z.ZodObject<{
129
+ type: z.ZodLiteral<import("../../../shared/types").SecondaryCtaType.ContributionsReminder>;
130
+ }, "strip", z.ZodTypeAny, {
131
+ type: import("../../../shared/types").SecondaryCtaType.ContributionsReminder;
132
+ }, {
133
+ type: import("../../../shared/types").SecondaryCtaType.ContributionsReminder;
134
+ }>]>>;
135
+ tickerSettings: z.ZodOptional<z.ZodObject<{
136
+ currencySymbol: z.ZodString;
137
+ copy: z.ZodObject<{
138
+ countLabel: z.ZodString;
139
+ }, "strip", z.ZodTypeAny, {
140
+ countLabel: string;
141
+ }, {
142
+ countLabel: string;
143
+ }>;
144
+ name: z.ZodEnum<["US", "AU", "global"]>;
145
+ tickerData: z.ZodOptional<z.ZodObject<{
146
+ total: z.ZodNumber;
147
+ goal: z.ZodNumber;
148
+ }, "strip", z.ZodTypeAny, {
149
+ total: number;
150
+ goal: number;
151
+ }, {
152
+ total: number;
153
+ goal: number;
154
+ }>>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ name: "global" | "US" | "AU";
157
+ copy: {
158
+ countLabel: string;
159
+ };
160
+ currencySymbol: string;
161
+ tickerData?: {
162
+ total: number;
163
+ goal: number;
164
+ } | undefined;
165
+ }, {
166
+ name: "global" | "US" | "AU";
167
+ copy: {
168
+ countLabel: string;
169
+ };
170
+ currencySymbol: string;
171
+ tickerData?: {
172
+ total: number;
173
+ goal: number;
174
+ } | undefined;
175
+ }>>;
176
+ showChoiceCards: z.ZodOptional<z.ZodBoolean>;
177
+ defaultChoiceCardFrequency: z.ZodOptional<z.ZodEnum<["ONE_OFF", "MONTHLY", "ANNUAL"]>>;
178
+ }, "strip", z.ZodTypeAny, {
179
+ name: string;
180
+ paragraphs: string[];
181
+ heading?: string | undefined;
182
+ highlightedText?: string | undefined;
183
+ cta?: {
184
+ text: string;
185
+ baseUrl: string;
186
+ } | undefined;
187
+ secondaryCta?: {
188
+ type: import("../../../shared/types").SecondaryCtaType.Custom;
189
+ cta: {
190
+ text: string;
191
+ baseUrl: string;
192
+ };
193
+ } | {
194
+ type: import("../../../shared/types").SecondaryCtaType.ContributionsReminder;
195
+ } | undefined;
196
+ tickerSettings?: {
197
+ name: "global" | "US" | "AU";
198
+ copy: {
199
+ countLabel: string;
200
+ };
201
+ currencySymbol: string;
202
+ tickerData?: {
203
+ total: number;
204
+ goal: number;
205
+ } | undefined;
206
+ } | undefined;
207
+ showChoiceCards?: boolean | undefined;
208
+ defaultChoiceCardFrequency?: "ONE_OFF" | "MONTHLY" | "ANNUAL" | undefined;
209
+ }, {
210
+ name: string;
211
+ paragraphs: string[];
212
+ heading?: string | undefined;
213
+ highlightedText?: string | undefined;
214
+ cta?: {
215
+ text: string;
216
+ baseUrl: string;
217
+ } | undefined;
218
+ secondaryCta?: {
219
+ type: import("../../../shared/types").SecondaryCtaType.Custom;
220
+ cta: {
221
+ text: string;
222
+ baseUrl: string;
223
+ };
224
+ } | {
225
+ type: import("../../../shared/types").SecondaryCtaType.ContributionsReminder;
226
+ } | undefined;
227
+ tickerSettings?: {
228
+ name: "global" | "US" | "AU";
229
+ copy: {
230
+ countLabel: string;
231
+ };
232
+ currencySymbol: string;
233
+ tickerData?: {
234
+ total: number;
235
+ goal: number;
236
+ } | undefined;
237
+ } | undefined;
238
+ showChoiceCards?: boolean | undefined;
239
+ defaultChoiceCardFrequency?: "ONE_OFF" | "MONTHLY" | "ANNUAL" | undefined;
240
+ }>, "many">;
241
+ }, "strip", z.ZodTypeAny, {
242
+ name: string;
243
+ channel: "Epic" | "EpicAMP" | "EpicAppleNews" | "EpicLiveblog" | "Banner1" | "Banner2" | "Header" | "GutterLiveblog";
244
+ priority: number;
245
+ status: "Live" | "Draft" | "Archived";
246
+ variants: {
247
+ name: string;
248
+ paragraphs: string[];
249
+ heading?: string | undefined;
250
+ highlightedText?: string | undefined;
251
+ cta?: {
252
+ text: string;
253
+ baseUrl: string;
254
+ } | undefined;
255
+ secondaryCta?: {
256
+ type: import("../../../shared/types").SecondaryCtaType.Custom;
257
+ cta: {
258
+ text: string;
259
+ baseUrl: string;
260
+ };
261
+ } | {
262
+ type: import("../../../shared/types").SecondaryCtaType.ContributionsReminder;
263
+ } | undefined;
264
+ tickerSettings?: {
265
+ name: "global" | "US" | "AU";
266
+ copy: {
267
+ countLabel: string;
268
+ };
269
+ currencySymbol: string;
270
+ tickerData?: {
271
+ total: number;
272
+ goal: number;
273
+ } | undefined;
274
+ } | undefined;
275
+ showChoiceCards?: boolean | undefined;
276
+ defaultChoiceCardFrequency?: "ONE_OFF" | "MONTHLY" | "ANNUAL" | undefined;
277
+ }[];
278
+ controlProportionSettings?: {
279
+ offset: number;
280
+ proportion: number;
281
+ } | undefined;
282
+ deviceType?: "Mobile" | "Desktop" | "All" | "iOS" | "Android" | undefined;
283
+ signedInStatus?: "All" | "SignedIn" | "SignedOut" | undefined;
284
+ consentStatus?: "All" | "HasConsented" | "HasNotConsented" | undefined;
285
+ methodologies?: (({
286
+ name: "ABTest";
287
+ } | {
288
+ name: "EpsilonGreedyBandit";
289
+ epsilon: number;
290
+ sampleCount?: number | undefined;
291
+ } | {
292
+ name: "Roulette";
293
+ sampleCount?: number | undefined;
294
+ }) & {
295
+ testName?: string | undefined;
296
+ })[] | undefined;
297
+ nickname?: string | undefined;
298
+ locations?: ("GBPCountries" | "UnitedStates" | "AUDCountries" | "EURCountries" | "International" | "NZDCountries" | "Canada")[] | undefined;
299
+ regionTargeting?: {
300
+ targetedCountryGroups: ("GBPCountries" | "UnitedStates" | "AUDCountries" | "EURCountries" | "International" | "NZDCountries" | "Canada")[];
301
+ targetedCountryCodes?: string[] | undefined;
302
+ } | undefined;
303
+ }, {
304
+ name: string;
305
+ channel: "Epic" | "EpicAMP" | "EpicAppleNews" | "EpicLiveblog" | "Banner1" | "Banner2" | "Header" | "GutterLiveblog";
306
+ priority: number;
307
+ status: "Live" | "Draft" | "Archived";
308
+ variants: {
309
+ name: string;
310
+ paragraphs: string[];
311
+ heading?: string | undefined;
312
+ highlightedText?: string | undefined;
313
+ cta?: {
314
+ text: string;
315
+ baseUrl: string;
316
+ } | undefined;
317
+ secondaryCta?: {
318
+ type: import("../../../shared/types").SecondaryCtaType.Custom;
319
+ cta: {
320
+ text: string;
321
+ baseUrl: string;
322
+ };
323
+ } | {
324
+ type: import("../../../shared/types").SecondaryCtaType.ContributionsReminder;
325
+ } | undefined;
326
+ tickerSettings?: {
327
+ name: "global" | "US" | "AU";
328
+ copy: {
329
+ countLabel: string;
330
+ };
331
+ currencySymbol: string;
332
+ tickerData?: {
333
+ total: number;
334
+ goal: number;
335
+ } | undefined;
336
+ } | undefined;
337
+ showChoiceCards?: boolean | undefined;
338
+ defaultChoiceCardFrequency?: "ONE_OFF" | "MONTHLY" | "ANNUAL" | undefined;
339
+ }[];
340
+ controlProportionSettings?: {
341
+ offset: number;
342
+ proportion: number;
343
+ } | undefined;
344
+ deviceType?: "Mobile" | "Desktop" | "All" | "iOS" | "Android" | undefined;
345
+ signedInStatus?: "All" | "SignedIn" | "SignedOut" | undefined;
346
+ consentStatus?: "All" | "HasConsented" | "HasNotConsented" | undefined;
347
+ methodologies?: (({
348
+ name: "ABTest";
349
+ } | {
350
+ name: "EpsilonGreedyBandit";
351
+ epsilon: number;
352
+ sampleCount?: number | undefined;
353
+ } | {
354
+ name: "Roulette";
355
+ sampleCount?: number | undefined;
356
+ }) & {
357
+ testName?: string | undefined;
358
+ })[] | undefined;
359
+ nickname?: string | undefined;
360
+ locations?: ("GBPCountries" | "UnitedStates" | "AUDCountries" | "EURCountries" | "International" | "NZDCountries" | "Canada")[] | undefined;
361
+ regionTargeting?: {
362
+ targetedCountryGroups: ("GBPCountries" | "UnitedStates" | "AUDCountries" | "EURCountries" | "International" | "NZDCountries" | "Canada")[];
363
+ targetedCountryCodes?: string[] | undefined;
364
+ } | undefined;
365
+ }>;
366
+ export type AmpEpicTest = z.infer<typeof ampEpicTestSchema>;
367
+ //# sourceMappingURL=ampEpicModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ampEpicModels.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/amp/ampEpicModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0BAA0B,CAAC,EAAE,qBAAqB,CAAC;CACtD;AAiBD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AmpVariantAssignments } from '../../lib/ampVariantAssignments';
2
+ import type { TickerDataProvider } from '../../lib/fetchTickerData';
3
+ import type { AMPEpic, AmpEpicTest } from './ampEpicModels';
4
+ type AmpExperiments = Record<string, {
5
+ variants: Record<string, number>;
6
+ }>;
7
+ export declare const isCountryTargetedForAmpEpic: (test: AmpEpicTest, countryCode?: string) => boolean;
8
+ export declare const getAmpExperimentData: (tests: AmpEpicTest[]) => Promise<AmpExperiments>;
9
+ export declare const selectAmpEpic: (tests: AmpEpicTest[], ampVariantAssignments: AmpVariantAssignments, tickerData: TickerDataProvider, countryCode?: string) => Promise<AMPEpic | null>;
10
+ export {};
11
+ //# sourceMappingURL=ampEpicSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ampEpicSelection.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/amp/ampEpicSelection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK5D,KAAK,cAAc,GAAG,MAAM,CACxB,MAAM,EACN;IACI,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CACJ,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,WAAW,gBAAgB,MAAM,KAAG,OAYrF,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAiB,WAAW,EAAE,KAAG,OAAO,CAAC,cAAc,CAyBvF,CAAC;AAEF,eAAO,MAAM,aAAa,UACf,WAAW,EAAE,yBACG,qBAAqB,cAChC,kBAAkB,gBAChB,MAAM,KACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAGpB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ValueReloader } from '../../utils/valueReloader';
2
+ import type { AmpEpicTest } from './ampEpicModels';
3
+ export declare const buildAmpEpicTestsReloader: () => Promise<ValueReloader<AmpEpicTest[]>>;
4
+ //# sourceMappingURL=ampEpicTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ampEpicTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/amp/ampEpicTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,eAAO,MAAM,yBAAyB,QAAO,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CACD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { TickerData, TickerSettings } from '../../../shared/types';
2
+ export interface AMPTicker {
3
+ percentage: string;
4
+ goalExceededMarkerPercentage?: string;
5
+ topLeft: string;
6
+ bottomLeft: string;
7
+ topRight: string;
8
+ bottomRight: string;
9
+ }
10
+ export declare const ampTicker: (tickerSettings: TickerSettings, tickerData: TickerData) => AMPTicker;
11
+ //# sourceMappingURL=ampTicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ampTicker.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/amp/ampTicker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExE,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,mBAAoB,cAAc,cAAc,UAAU,KAAG,SA8BlF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BannerTestGenerator } from '../../../shared/types';
2
+ export declare const abandonedBasketTests: BannerTestGenerator;
3
+ //# sourceMappingURL=abandonedBasketTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abandonedBasketTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/abandonedBasketTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAwD5F,eAAO,MAAM,oBAAoB,EAAE,mBAAkD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Banner deploy schedule -
3
+ * We automatically schedule banner re-deploys, per channel (but not per region).
4
+ */
5
+ interface ScheduledBannerDeploy {
6
+ dayOfWeek: number;
7
+ hour: number;
8
+ }
9
+ export interface ScheduledBannerDeploys {
10
+ contributions: ScheduledBannerDeploy[];
11
+ subscriptions: ScheduledBannerDeploy[];
12
+ }
13
+ export declare const defaultDeploySchedule: ScheduledBannerDeploys;
14
+ /**
15
+ * Returns a new Date in the past. E.g. if dayOfWeek is 2 and hour is 6, it goes back to the previous Tuesday at 06:00.
16
+ * @param now Current date
17
+ * @param dayOfWeek Day of the week to go back to. From 0-6, where 0 is sunday
18
+ * @param hour Hour of the day to go back to
19
+ */
20
+ export declare const previousScheduledDate: (now: Date, dayOfWeek: number, hour: number) => Date;
21
+ export declare const getLastScheduledDeploy: (date: Date, scheduledDeploys: ScheduledBannerDeploy[]) => Date;
22
+ export {};
23
+ //# sourceMappingURL=bannerDeploySchedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerDeploySchedule.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/bannerDeploySchedule.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,UAAU,qBAAqB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACnC,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,aAAa,EAAE,qBAAqB,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,qBAAqB,EAAE,sBAmBnC,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAS,IAAI,aAAa,MAAM,QAAQ,MAAM,KAAG,IAWlF,CAAC;AAEF,eAAO,MAAM,sBAAsB,SACzB,IAAI,oBACQ,qBAAqB,EAAE,KAC1C,IAMF,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { ValueProvider } from '../../utils/valueReloader';
2
+ /**
3
+ * Banner deploy cache -
4
+ * Banners can be manually re-deployed from the RRCP.
5
+ * This file maintains a cache of these deploy times, per channel and per region.
6
+ */
7
+ export type ReaderRevenueRegion = 'UnitedKingdom' | 'UnitedStates' | 'Australia' | 'RestOfWorld' | 'EuropeanUnion';
8
+ interface BannerDeployTimes {
9
+ UnitedKingdom: Date;
10
+ UnitedStates: Date;
11
+ Australia: Date;
12
+ RestOfWorld: Date;
13
+ EuropeanUnion: Date;
14
+ }
15
+ interface BannerDeployTimesProviders {
16
+ contributions: ValueProvider<BannerDeployTimes>;
17
+ subscriptions: ValueProvider<BannerDeployTimes>;
18
+ }
19
+ export declare class BannerDeployTimesProvider {
20
+ providers: BannerDeployTimesProviders;
21
+ constructor(providers: BannerDeployTimesProviders);
22
+ getDeployTimes(channel: 'contributions' | 'subscriptions'): BannerDeployTimes;
23
+ }
24
+ export declare const buildBannerDeployTimesReloader: () => Promise<BannerDeployTimesProvider>;
25
+ export {};
26
+ //# sourceMappingURL=bannerDeployTimes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerDeployTimes.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/bannerDeployTimes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG/D;;;;GAIG;AAEH,MAAM,MAAM,mBAAmB,GACzB,eAAe,GACf,cAAc,GACd,WAAW,GACX,aAAa,GACb,eAAe,CAAC;AAyBtB,UAAU,iBAAiB;IACvB,aAAa,EAAE,IAAI,CAAC;IACpB,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,aAAa,EAAE,IAAI,CAAC;CACvB;AAED,UAAU,0BAA0B;IAChC,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChD,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACnD;AAED,qBAAa,yBAAyB;IAClC,SAAS,EAAE,0BAA0B,CAAC;gBAE1B,SAAS,EAAE,0BAA0B;IAIjD,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,GAAG,iBAAiB;CAGhF;AAED,eAAO,MAAM,8BAA8B,QAAa,OAAO,CAAC,yBAAyB,CASxF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BannerDesignFromTool } from '../../../shared/types';
2
+ import type { ValueReloader } from '../../utils/valueReloader';
3
+ declare const buildBannerDesignsReloader: () => Promise<ValueReloader<BannerDesignFromTool[]>>;
4
+ export { buildBannerDesignsReloader };
5
+ //# sourceMappingURL=bannerDesigns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerDesigns.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/bannerDesigns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,QAAA,MAAM,0BAA0B,QAAO,OAAO,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC,CAC7C,CAAC;AAExC,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { BannerTargeting, BannerTest, BannerTestSelection, UserDeviceType } from '../../../shared/types';
2
+ import type { TestVariant } from '../../lib/params';
3
+ import type { BanditData } from '../../selection/banditData';
4
+ import type { ScheduledBannerDeploys } from './bannerDeploySchedule';
5
+ import type { BannerDeployTimesProvider, ReaderRevenueRegion } from './bannerDeployTimes';
6
+ export declare const readerRevenueRegionFromCountryCode: (countryCode: string) => ReaderRevenueRegion;
7
+ export declare const isCountryTargetedForBanner: (test: BannerTest, targeting: BannerTargeting) => boolean;
8
+ /**
9
+ * If the banner has been closed previously, can we show it again?
10
+ * Takes into account both the manual deploys (from RRCP) and the scheduled deploys.
11
+ *
12
+ * @param targeting - the targeting data from the client
13
+ * @param test - the banner test config
14
+ * @param manualBannerDeployTimes - holds the times of manual banner deploys
15
+ * @param now - the time now
16
+ * @param scheduledBannerDeploys - the configured banner channel deploy schedule
17
+ */
18
+ export declare const canShowBannerAgain: (targeting: BannerTargeting, test: BannerTest, manualBannerDeployTimes: BannerDeployTimesProvider, now: Date, scheduledBannerDeploys?: ScheduledBannerDeploys) => boolean;
19
+ export declare const selectBannerTest: (targeting: BannerTargeting, userDeviceType: UserDeviceType, baseUrl: string, tests: BannerTest[], bannerDeployTimes: BannerDeployTimesProvider, enableHardcodedBannerTests: boolean, enableScheduledDeploys: boolean, banditData: BanditData[], forcedTestVariant?: TestVariant, now?: Date) => BannerTestSelection | null;
20
+ //# sourceMappingURL=bannerSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerSelection.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/bannerSelection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,eAAe,EACf,UAAU,EACV,mBAAmB,EAEnB,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1F,eAAO,MAAM,kCAAkC,gBAAiB,MAAM,KAAG,mBAaxE,CAAC;AAcF,eAAO,MAAM,0BAA0B,SAC7B,UAAU,aACL,eAAe,KAC3B,OAYF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,cAChB,eAAe,QACpB,UAAU,2BACS,yBAAyB,OAC7C,IAAI,2BACgB,sBAAsB,KAChD,OA8CF,CAAC;AA4DF,eAAO,MAAM,gBAAgB,cACd,eAAe,kBACV,cAAc,WACrB,MAAM,SACR,UAAU,EAAE,qBACA,yBAAyB,8BAChB,OAAO,0BACX,OAAO,cACnB,UAAU,EAAE,sBACJ,WAAW,QAC1B,IAAI,KACV,mBAAmB,GAAG,IAmExB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { BannerTargeting } from '../../../shared/types';
2
+ import type { TargetingTest } from '../../lib/targetingTesting';
3
+ export declare const bannerTargetingTests: Array<TargetingTest<BannerTargeting>>;
4
+ //# sourceMappingURL=bannerTargetingTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerTargetingTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/bannerTargetingTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAM,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BannerTest } from '../../../shared/types';
2
+ import type { ValueReloader } from '../../utils/valueReloader';
3
+ declare const buildBannerTestsReloader: () => Promise<ValueReloader<BannerTest[]>>;
4
+ export { buildBannerTestsReloader };
5
+ //# sourceMappingURL=bannerTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/bannerTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAuB/D,QAAA,MAAM,wBAAwB,QAAO,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CACzC,CAAC;AAEhC,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { OphanComponentType } from '@guardian/libs';
2
+ import type { BannerChannel, BannerDesignFromTool, BannerTestGenerator, BannerVariant, ConfigurableDesign } from '../../../shared/types';
3
+ export declare const BannerTemplateComponentTypes: Record<BannerChannel, OphanComponentType>;
4
+ export declare const getDesignForVariant: (variant: BannerVariant, designs: BannerDesignFromTool[]) => ConfigurableDesign | undefined;
5
+ export declare const channel1BannersAllTestsGenerator: BannerTestGenerator;
6
+ export declare const channel2BannersAllTestsGenerator: BannerTestGenerator;
7
+ //# sourceMappingURL=channelBannerTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelBannerTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/channelBannerTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EACR,aAAa,EACb,oBAAoB,EAGpB,mBAAmB,EACnB,aAAa,EAEb,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAKlF,CAAC;AAEF,eAAO,MAAM,mBAAmB,YACnB,aAAa,WACb,oBAAoB,EAAE,KAChC,kBAAkB,GAAG,SAMvB,CAAC;AAwBF,eAAO,MAAM,gCAAgC,qBAAkD,CAAC;AAChG,eAAO,MAAM,gCAAgC,qBAAkD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BannerTestGenerator } from '../../../shared/types';
2
+ export declare const signInPromptTests: BannerTestGenerator;
3
+ //# sourceMappingURL=signInPromptTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signInPromptTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/banners/signInPromptTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAiL5F,eAAO,MAAM,iBAAiB,EAAE,mBAAkD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { EpicTargeting, EpicTest, EpicVariant, EpicViewLog, UserCohort, UserDeviceType, WeeklyArticleHistory } from '../../../shared/types';
2
+ import type { TestVariant } from '../../lib/params';
3
+ import type { SuperModeArticle } from '../../lib/superMode';
4
+ import type { BanditData } from '../../selection/banditData';
5
+ export interface Filter {
6
+ id: string;
7
+ test: (test: EpicTest, targeting: EpicTargeting) => boolean;
8
+ }
9
+ export declare const getUserCohorts: (targeting: EpicTargeting) => UserCohort[];
10
+ export declare const correctSignedInStatusFilter: Filter;
11
+ export declare const pageContextFilter: Filter;
12
+ export declare const isLive: Filter;
13
+ export declare const canShow: (targeting: EpicTargeting) => Filter;
14
+ export declare const hasCountryCode: Filter;
15
+ export declare const isCountryTargetedForEpic: Filter;
16
+ export declare const withinMaxViews: (log: EpicViewLog, now?: Date) => Filter;
17
+ export declare const withinArticleViewedSettings: (history: WeeklyArticleHistory, now?: Date) => Filter;
18
+ export declare const inCorrectCohort: (userCohorts: UserCohort[], isSuperModePass: boolean) => Filter;
19
+ export declare const shouldNotRender: Filter;
20
+ export declare const isNotExpired: (now?: Date) => Filter;
21
+ export declare const respectArticleCountOptOut: Filter;
22
+ export declare const deviceTypeMatchesFilter: (userDeviceType: UserDeviceType) => Filter;
23
+ type FilterResults = Record<string, boolean>;
24
+ export type Debug = Record<string, FilterResults>;
25
+ export interface Result {
26
+ result?: {
27
+ test: EpicTest;
28
+ variant: EpicVariant;
29
+ };
30
+ debug?: Debug;
31
+ }
32
+ export declare const findTestAndVariant: (tests: EpicTest[], targeting: EpicTargeting, userDeviceType: UserDeviceType, superModeArticles: SuperModeArticle[], banditData: BanditData[], includeDebug?: boolean) => Result;
33
+ export declare const findForcedTestAndVariant: (tests: EpicTest[], force: TestVariant) => Result;
34
+ export {};
35
+ //# sourceMappingURL=epicSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epicSelection.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/epics/epicSelection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,oBAAoB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC;CAC/D;AAED,eAAO,MAAM,cAAc,cAAe,aAAa,KAAG,UAAU,EAKnE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAGzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAe/B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAGpB,CAAC;AAEF,eAAO,MAAM,OAAO,cAAe,aAAa,KAAG,MAGjD,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,MAI5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAetC,CAAC;AAEF,eAAO,MAAM,cAAc,QAAS,WAAW,QAAO,IAAI,KAAgB,MAiBxE,CAAC;AAEH,eAAO,MAAM,2BAA2B,YAC3B,oBAAoB,QACxB,IAAI,KACV,MAID,CAAC;AAEH,eAAO,MAAM,eAAe,gBAAiB,UAAU,EAAE,mBAAmB,OAAO,KAAG,MASpF,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,MAG7B,CAAC;AAEF,eAAO,MAAM,YAAY,SAAS,IAAI,KAAgB,MAYpD,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,MASvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,mBAAoB,cAAc,KAAG,MAGvE,CAAC;AAEH,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAElD,MAAM,WAAW,MAAM;IACnB,MAAM,CAAC,EAAE;QACL,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,WAAW,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,UACpB,QAAQ,EAAE,aACN,aAAa,kBACR,cAAc,qBACX,gBAAgB,EAAE,cACzB,UAAU,EAAE,6BAEzB,MAoFF,CAAC;AAaF,eAAO,MAAM,wBAAwB,UAAW,QAAQ,EAAE,SAAS,WAAW,KAAG,MAKhF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { EpicTest, EpicVariant } from '../../../shared/types';
2
+ import type { ValueReloader } from '../../utils/valueReloader';
3
+ export declare const variantHasArticleCountCopy: (variant: EpicVariant) => boolean;
4
+ export declare const buildEpicTestsReloader: () => Promise<ValueReloader<EpicTest[]>>;
5
+ export declare const buildEpicLiveblogTestsReloader: () => Promise<ValueReloader<EpicTest[]>>;
6
+ //# sourceMappingURL=epicTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epicTests.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/epics/epicTests.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,QAAQ,EAAoB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,eAAO,MAAM,0BAA0B,YAAa,WAAW,KAAG,OAOjE,CAAC;AAeF,eAAO,MAAM,sBAAsB,QAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CACpB,CAAC;AAExD,eAAO,MAAM,8BAA8B,QAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CACpB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { WeeklyArticleHistory, WeeklyArticleLog } from '../../../shared/types';
2
+ import type { Filter } from './epicSelection';
3
+ export declare function getThreeMonthsHistory(articleHistory: WeeklyArticleHistory, now?: Date): {
4
+ mostRecentMonthHistory: WeeklyArticleLog[];
5
+ secondMostRecentMonthHistory: WeeklyArticleLog[];
6
+ thirdMostRecentMonthHistory: WeeklyArticleLog[];
7
+ };
8
+ export declare function getCategoriesForThreeMonths(articleHistory: WeeklyArticleHistory, now: Date): {
9
+ categoryForThirdMonth: number;
10
+ categoryForSecondMonth: number;
11
+ categoryForFirstMonth: number;
12
+ };
13
+ export declare function isIncreasedEngagement(articleHistory: WeeklyArticleHistory, now?: Date): boolean;
14
+ export declare const momentumMatches: Filter;
15
+ //# sourceMappingURL=momentumTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"momentumTest.d.ts","sourceRoot":"","sources":["../../../../src/server/tests/epics/momentumTest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGpF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA0B9C,wBAAgB,qBAAqB,CACjC,cAAc,EAAE,oBAAoB,EACpC,GAAG,GAAE,IAAiB;;;;EAqBzB;AAED,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,EAAE,IAAI;;;;EAS1F;AAkBD,wBAAgB,qBAAqB,CACjC,cAAc,EAAE,oBAAoB,EACpC,GAAG,GAAE,IAAiB,GACvB,OAAO,CA0CT;AAED,eAAO,MAAM,eAAe,EAAE,MAe7B,CAAC"}