gatsby-core-theme 44.2.5 → 44.2.7

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 (38) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/gatsby-node.mjs +83 -275
  3. package/package.json +1 -1
  4. package/src/components/organisms/anchor/template-one/anchor.stories.js +1 -1
  5. package/src/components/organisms/anchor/template-one/anchor.test.js +1 -1
  6. package/src/components/organisms/anchor/template-two/template-two.stories.js +1 -1
  7. package/src/components/organisms/anchor/template-two/template-two.test.js +1 -1
  8. package/src/constants/site-settings/main.mjs +1 -1
  9. package/src/helpers/server-data.js +2 -2
  10. package/src/resolver/archive.mjs +216 -0
  11. package/src/resolver/archive.test.js +179 -0
  12. package/src/{helpers/processor → resolver}/common.mjs +2 -2
  13. package/src/{helpers/processor → resolver}/cryptos.mjs +1 -1
  14. package/src/{helpers/processor → resolver}/cryptos.test.js +2 -2
  15. package/src/{helpers/processor → resolver}/games.mjs +1 -1
  16. package/src/{helpers/processor → resolver}/index.mjs +9 -11
  17. package/src/{helpers/processor → resolver}/index.test.js +1 -1
  18. package/src/{helpers/processor → resolver}/modules.mjs +16 -14
  19. package/src/{helpers/processor → resolver}/modules.test.js +1 -1
  20. package/src/{helpers/processor → resolver}/operators.mjs +1 -1
  21. package/src/{helpers/processor → resolver}/operators.test.js +2 -2
  22. package/src/{helpers/processor → resolver}/page.mjs +1 -1
  23. package/src/{helpers/processor → resolver}/payment.mjs +2 -2
  24. package/src/{helpers/processor → resolver}/providers.mjs +1 -1
  25. package/src/resolver/redirect.mjs +52 -0
  26. package/src/resolver/redirect.test.js +99 -0
  27. package/src/{helpers/processor → resolver}/relations.mjs +22 -1
  28. package/src/{helpers/processor → resolver}/sports-relations.mjs +1 -1
  29. package/src/{helpers/processor → resolver}/sports-relations.test.js +1 -1
  30. package/src/{helpers → services}/api.mjs +5 -6
  31. package/src/{helpers/fetch-site-settings.mjs → services/fetch.mjs} +14 -10
  32. package/tests/factories/modules/modules.factory.js +2 -3
  33. /package/src/helpers/{keygen.js → keygen.mjs} +0 -0
  34. /package/src/{helpers/processor → resolver}/common.test.js +0 -0
  35. /package/src/{helpers/processor → resolver}/games.test.js +0 -0
  36. /package/src/{helpers/processor → resolver}/page.test.js +0 -0
  37. /package/src/{helpers/processor → resolver}/processor.test.js +0 -0
  38. /package/src/{helpers/processor → resolver}/relations.test.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,42 @@
1
+ ## [44.2.7](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/compare/v44.2.6...v44.2.7) (2025-06-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add license and map for pages that needs that path ([62ffa4b](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/62ffa4babe54d969b7513fe06bbcda0368f82e9b))
7
+ * enable reading time in rocket theme ([01b0e50](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/01b0e5049052196fa4154a8f762e580c3e5d294d))
8
+
9
+
10
+ * Merge branch 'tm-5535-mapp-providers-license' into 'master' ([8ea899b](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/8ea899b2773c3a69c9f5d39cdec8acae1a6324ce))
11
+
12
+ ## [44.2.6](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/compare/v44.2.5...v44.2.6) (2025-06-12)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * aligned branch with master ([96fa2db](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/96fa2db7af60fa9447c9ebe4e7beecb824efb290))
18
+ * folder structure ([6a630c9](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/6a630c916d1f5dc2b00792083e8f1ccf4079b4a1))
19
+ * merge conflicts ([40aad8d](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/40aad8d63c21721414f398be454a27ca3a4a9ad0))
20
+ * move hasArchive function to a helper ([cb1718c](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/cb1718cbf6c1e379c758bff468f7813e692068d1))
21
+ * remove unecessary coments ([a18c2e8](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/a18c2e87dff916f466f0c3a55f5fe0962ad13f00))
22
+ * remove unecessary constant ([197caf8](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/197caf89c65fc78bac6c487749fb67e3ceb3cc7c))
23
+ * rename files ([447e024](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/447e024c7da7c9c9253cc752985fc5d159c2dbaa))
24
+ * rename resolver components ([fb0dbf1](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/fb0dbf17e64b4b2c36b4789c9a7491e40a9c51f0))
25
+ * resolve conflicts ([236fc8e](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/236fc8e161d0a53efd3057ec2841b20dffd2d6b8))
26
+ * resolve conflicts ([a0d7004](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/a0d70044077ab7facfc80e96eba1a719e20e01c1))
27
+ * revert back the create page logic and tracking links logic back to gatsby-node file ([990a347](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/990a34728168bb27c60501fca078425d583515de))
28
+ * sameAs issue ([3b889c2](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/3b889c2a6139b91c7f9f56236c909cf0cb8a4d01))
29
+ * update build error ([7972c98](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/7972c9812f3d2bc24f4519e4c3a58a97912fd036))
30
+ * update createpage component as requested by reviewer ([35e04df](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/35e04df73315928777892926bbd39b097e08a748))
31
+ * update gatsby node by moving destructring it on smaller parts ([5b71b24](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/5b71b241f783960a2bc5735403cf4657d39ba906))
32
+ * update page an tracker components and their tests ([65577b9](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/65577b95b4ffe1bbecdecb1ea8f59b4f4fa4b1a5))
33
+ * update page context when 404 page ([5714135](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/571413596015baceaf97ef4cdc6b0341042978a1))
34
+ * update page context when 404 page ([dddb52d](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/dddb52dc088b10f2bcd4bfad4b191d9d885cc75b))
35
+
36
+
37
+ * Merge branch 'tm-5125-gatsby-node-update' into 'master' ([c54609f](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/c54609f0bba05bb9fdd45113758e5c31644bec4a))
38
+ * Merge branch 'master' into tm-5125-gatsby-node-update ([262ee42](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/262ee4233e902827398e41ad927267c78c5ce9c5))
39
+
1
40
  ## [44.2.5](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/compare/v44.2.4...v44.2.5) (2025-06-11)
2
41
 
3
42
 
package/gatsby-node.mjs CHANGED
@@ -10,18 +10,21 @@ import chalk from "chalk";
10
10
  import fs from "fs";
11
11
  import { dirname } from "path";
12
12
  import { fileURLToPath } from "url";
13
- import { getTranslations } from "./src/helpers/api.mjs";
14
- import { fetchSiteSettings } from "./src/helpers/fetch-site-settings.mjs";
13
+ import keygen from "./src/helpers/keygen.mjs";
14
+ import { getTranslations } from "./src/services/api.mjs";
15
+ import { fetchSiteSettings } from "./src/services/fetch.mjs";
15
16
  import { generateTrackerLink } from "./src/helpers/generators.mjs";
16
17
  import processor, {
17
18
  processSitemapPages,
18
- } from "./src/helpers/processor/index.mjs";
19
+ } from "./src/resolver/index.mjs";
19
20
  import settings from "./src/constants/settings.mjs";
20
- import { translate, is404Page } from "./src/helpers/getters.mjs";
21
21
  import {
22
22
  clean,
23
23
  removeUnwantedSections,
24
- } from "./src/helpers/processor/common.mjs";
24
+ } from "./src/resolver/common.mjs";
25
+ import { generateRedirects } from "./src/resolver/redirect.mjs";
26
+ import { translate, is404Page } from "./src/helpers/getters.mjs";
27
+ import { getArchivePages, hasArchiveModule } from "./src/resolver/archive.mjs";
25
28
 
26
29
  const __dirname = dirname(fileURLToPath(import.meta.url));
27
30
  const { cloneDeep, chunk, pick } = loadash;
@@ -32,7 +35,8 @@ let htmlSitemapPages = null;
32
35
  let prefilledModules = [];
33
36
  let operators = null;
34
37
 
35
- let context404 = null;
38
+ const contextHolder = { context404: null };
39
+
36
40
  let siteSchema = null;
37
41
  let authors = null;
38
42
 
@@ -45,217 +49,23 @@ let siteSettingsData = null;
45
49
  let siteGeneralData = null;
46
50
  let allMarketsData = null;
47
51
  let providersData = null;
52
+ let licensesData = null;
48
53
  let gamesData = null;
49
54
  let sportsData = null;
50
55
  let ribbonsData = null;
51
56
  let operatorData = null;
52
57
  let cryptoExchangesData = null;
53
58
  let cryptoBrokersData = null;
54
- let countriesData = null
59
+ let countriesData = null;
55
60
  let paymentData = null;
56
61
  let allMarketPrefixes = [];
57
62
  let allMarketSectionsData = null;
58
63
  let schemaData = null;
59
64
  let templatesData = null;
60
65
  let defaultLanguage = null;
66
+ const pagesToCreate = [];
61
67
  const relations = {};
62
68
 
63
- function createArchivePage(
64
- pageObject,
65
- marketSections,
66
- prefilledModules,
67
- createPage
68
- ) {
69
- const archiveModuleIndex = pageObject.sections.main.modules.findIndex(
70
- (module) => module.name === "archive"
71
- );
72
- const archiveModule = pageObject.sections.main.modules[archiveModuleIndex];
73
- let archivePages = cloneDeep(
74
- pages[pageObject.market][archiveModule.model_type]
75
- );
76
-
77
- if (archiveModule.sort_by !== "random") {
78
- archivePages = archivePages.sort((a, b) => {
79
- const key = archiveModule.sort_by;
80
- const dateA = new Date(a[key].replace(" ", "T"));
81
- const dateB = new Date(b[key].replace(" ", "T"));
82
-
83
- return archiveModule.sort_order === "ascending"
84
- ? dateA - dateB
85
- : dateB - dateA;
86
- });
87
- }
88
-
89
- if (process.env.CUSTOM_CONTENT_PAGES_PATH && archivePages) {
90
- // eslint-disable-next-line array-callback-return
91
- archivePages = archivePages && archivePages.filter((item) => {
92
- if (item.path.includes(process.env.CUSTOM_CONTENT_PAGES_PATH)) {
93
- return item;
94
- }
95
- });
96
- }
97
- if (!archivePages) {
98
- console.log(`Archive for ${pageObject.path} broken`);
99
- }
100
-
101
- if (archiveModule.pagination_type !== "load_more") {
102
- const numOfColumns = archiveModule.desktop_num_of_columns;
103
- const calDefaultNrOfItems = (numOfColumns !== null ? numOfColumns : 4) * 3;
104
- const numOfItemsPerPage = Math.sign(archiveModule.num_of_items)
105
- ? archiveModule.num_of_items
106
- : calDefaultNrOfItems;
107
- const chunked =
108
- archivePages && chunk(cloneDeep(archivePages), numOfItemsPerPage);
109
-
110
- if (chunked) {
111
- chunked.forEach((value, index) => {
112
- let activeItems = value;
113
- if (value.type === "operator") {
114
- activeItems = value.filter(
115
- (item) => item.relation?.status === "active"
116
- );
117
- }
118
-
119
- const page = cloneDeep(pageObject);
120
- page.hasArchive = true;
121
- const numOfPages = chunked.length;
122
- const archive = cloneDeep(
123
- page.sections.main.modules[archiveModuleIndex]
124
- );
125
- const pageTitleFromHercules = page.title;
126
- archive.currentPage = 1 + index; // 0 skip 0
127
- archive.numOfPages = numOfPages;
128
- archive.rootPath =
129
- pageObject.path.charAt(0) !== "/"
130
- ? `/${pageObject.path}`
131
- : pageObject.path;
132
-
133
- archive.items = activeItems.map((item) =>
134
- processor.clonePage(item, false)
135
- );
136
- switch (archive.currentPage) {
137
- case 1:
138
- page.path = pageObject.path;
139
- break;
140
- default:
141
- page.path = `${pageObject.path}/${translate(
142
- translationsData[pageObject.language],
143
- "archive_page_path",
144
- "page"
145
- )}/${archive.currentPage}`;
146
-
147
- page.title = `
148
- ${pageTitleFromHercules}
149
- ${translate(
150
- translationsData[pageObject.language],
151
- "archive_page_title_suffix",
152
- ""
153
- ).replace("[number]", archive.currentPage)}
154
- `;
155
-
156
- page.meta_title = `${translate(
157
- translationsData[pageObject.language],
158
- "archive_title_prefix",
159
- ""
160
- ).replace("[number]", archive.currentPage)} ${page.meta_title} ${
161
- process.env.ARCHIVE_SHOW_SUFFIX === "true"
162
- ? translate(
163
- translationsData[pageObject.language],
164
- "archive_title_prefix",
165
- " - Page [number]"
166
- ).replace("[number]", archive.currentPage)
167
- : ""
168
- }`;
169
-
170
- page.meta_description = `${translate(
171
- translationsData[pageObject.language],
172
- "archive_description_prefix",
173
- ""
174
- ).replace("[number]", archive.currentPage)} ${
175
- page.meta_description
176
- } ${
177
- process.env.ARCHIVE_SHOW_SUFFIX === "true"
178
- ? translate(
179
- translationsData[pageObject.language],
180
- "archive_description_suffix",
181
- " - Page [number]"
182
- ).replace("[number]", archive.currentPage)
183
- : ""
184
- }`;
185
- break;
186
- }
187
- page.sections.main.modules[archiveModuleIndex] = archive;
188
-
189
- createPage({
190
- path: page.path,
191
- component: `${__dirname}/src/components/app.js`,
192
- context: {
193
- page,
194
- marketSections,
195
- prefilledModules,
196
- siteGeneralData,
197
- allMarkets: allMarketsData,
198
- },
199
- });
200
- });
201
- } else {
202
- const page = cloneDeep(pageObject);
203
- page.hasArchive = true;
204
- createPage({
205
- path: page.path,
206
- component: `${__dirname}/src/components/app.js`,
207
- context: {
208
- page,
209
- marketSections,
210
- prefilledModules,
211
- siteGeneralData,
212
- allMarkets: allMarketsData,
213
- },
214
- });
215
- }
216
- } else {
217
- const page = cloneDeep(pageObject);
218
- const numOfItemsPerPage = Math.sign(archiveModule.num_of_items);
219
-
220
- const archive = cloneDeep(page.sections.main.modules[archiveModuleIndex]);
221
- archive.items = cloneDeep(archivePages)
222
- .filter((item) =>
223
- item.type === "operator" ? item.relation?.status === "active" : true
224
- )
225
- .map((item) => processor.clonePage(item));
226
-
227
- page.sections.main.modules[archiveModuleIndex] = archive;
228
- createPage({
229
- path: page.path,
230
- component: `${__dirname}/src/components/app.js`,
231
- context: {
232
- page,
233
- marketSections,
234
- prefilledModules,
235
- siteGeneralData,
236
- allMarkets: allMarketsData,
237
- },
238
- });
239
- }
240
- }
241
-
242
- function hasArchiveModule(page) {
243
- if (!page.sections) return false;
244
- return Object.keys(page.sections).find((sectionKey) => {
245
- if (!page.sections[sectionKey] || !page.sections[sectionKey].modules)
246
- return false;
247
- return page.sections[sectionKey].modules.find(
248
- (module) => module.name === "archive"
249
- );
250
- });
251
- }
252
-
253
- function keygen() {
254
- const chr4 = () => Math.random().toString(16).slice(-4);
255
-
256
- return `${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}`;
257
- }
258
-
259
69
  // eslint-disable-next-line import/prefer-default-export
260
70
  export const createPages = async (
261
71
  { actions: { createPage } },
@@ -263,41 +73,7 @@ export const createPages = async (
263
73
  ) => {
264
74
  process.env.GATSBY_SITE_NAME = String(themeOptions.siteName);
265
75
 
266
- const stream = fs.createWriteStream("rewrites.conf");
267
- console.log(
268
- chalk.magenta("info") + chalk.whiteBright(" creating rewrite rules")
269
- );
270
- if (siteSettingsData.redirects) {
271
- Object.entries(siteSettingsData.redirects).forEach(([key, value]) => {
272
- const normalizedFrom = value.from.replace(
273
- `https://www.${process.env.GATSBY_SITE_NAME}`,
274
- ""
275
- );
276
- const normalizedTo = value.to.replace(
277
- `https://www.${process.env.GATSBY_SITE_NAME}`,
278
- ""
279
- );
280
-
281
- if (![301, 302, 410].includes(parseInt(value.type))) return;
282
- if ([301, 302].includes(parseInt(value.type))) {
283
- const redirectName =
284
- parseInt(value.type) === 301 ? "permanent" : "redirect";
285
-
286
- const toSanitized = normalizedTo !== "/" ? normalizedTo.replace(/\/$/, '') : normalizedTo;
287
- const to = toSanitized !== "/" ? (process.env.TRAILING_SLASH === 'true' ? `${toSanitized}/` : toSanitized) : toSanitized;
288
-
289
- stream.write(
290
- `rewrite (?i)^${normalizedFrom}/?$ ${to} ${redirectName}; \n`
291
- );
292
- }
293
-
294
- if (parseInt(value.type) === 410) {
295
- stream.write(`location ~ /${normalizedFrom} { return 410; } \n`);
296
- }
297
- });
298
- }
299
- stream.end();
300
-
76
+ generateRedirects(siteSettingsData);
301
77
  preconnectLinks = themeOptions.preconnectLinks || [];
302
78
  console.log(chalk.magenta("info") + chalk.whiteBright(" starting processor"));
303
79
 
@@ -321,6 +97,7 @@ export const createPages = async (
321
97
  crypto_exchanges: cryptoExchangesData,
322
98
  crypto_brokers: cryptoBrokersData,
323
99
  countries: countriesData,
100
+ operators_license: licensesData,
324
101
  },
325
102
  },
326
103
  themeOptions,
@@ -347,12 +124,12 @@ export const createPages = async (
347
124
 
348
125
  // create every single page
349
126
  Object.keys(processed.site_markets).forEach((siteMarket) => {
350
- if (!processed.pages[siteMarket]["page"])
127
+ if (!processed.pages[siteMarket]["page"]) {
351
128
  processed.pages[siteMarket]["page"] = [];
352
- let count = 0;
129
+ }
130
+
353
131
  Object.keys(processed.pages[siteMarket]).forEach((pageType) => {
354
132
  processed.pages[siteMarket][pageType].forEach((page) => {
355
- count += 1;
356
133
  const marketSection = allMarketSectionsData[siteMarket];
357
134
  prefilledModules = processed.prefilled_market_modules[siteMarket];
358
135
 
@@ -360,28 +137,40 @@ export const createPages = async (
360
137
  processedPage.preconnect_links = preconnectLinks;
361
138
 
362
139
  siteSchema = schemaData[page["market_id"]];
363
- authors = siteSettingsData.authors;
140
+ authors = siteSettingsData;
364
141
 
365
- // siteInfo, siteSchema and authors are added to page for schemaGenerator()
366
142
  page.siteInfo = siteGeneralData;
367
143
  page.siteSchema = siteSchema;
368
144
 
369
145
  if (hasArchiveModule(page)) {
370
- createArchivePage(page, marketSection, prefilledModules, createPage);
146
+ const archivePages = getArchivePages(
147
+ page,
148
+ marketSection,
149
+ prefilledModules,
150
+ translate,
151
+ translationsData,
152
+ processed.pages,
153
+ siteGeneralData,
154
+ allMarketsData,
155
+ __dirname
156
+ );
157
+
158
+ pagesToCreate.push(...archivePages);
371
159
  return;
372
160
  }
373
-
374
- // TO DO: Move this logic in sports relation
375
161
  if (page.relation_type === "event" && !page.relation) {
376
162
  return;
377
163
  }
378
-
379
164
  const template = templatesData[page.template_id];
380
165
  const autogenerated = template && template.autogenerated_content;
381
166
  const contextData = clean({
382
167
  page,
383
168
  allMarkets: allMarketsData,
384
- marketSections: removeUnwantedSections(marketSection, page.type, ribbonsData),
169
+ marketSections: removeUnwantedSections(
170
+ marketSection,
171
+ page.type,
172
+ ribbonsData
173
+ ),
385
174
  prefilledModules,
386
175
  siteGeneralData,
387
176
  autogenerated,
@@ -396,17 +185,17 @@ export const createPages = async (
396
185
  : null;
397
186
 
398
187
  if (page.path === "404") {
399
- context404 = contextData;
188
+ contextHolder.context404 = contextData;
400
189
  } else if (
401
190
  page.path ===
402
- `${pathPrefix || ""}${translate(
403
- translationsData[page.language],
404
- "sitemap",
405
- "sitemap"
406
- )}` || page.template === 'sitemap'
191
+ `${pathPrefix || ""}${translate(
192
+ translationsData[page.language],
193
+ "sitemap",
194
+ "sitemap"
195
+ )}` ||
196
+ page.template === "sitemap"
407
197
  ) {
408
-
409
- createPage({
198
+ pagesToCreate.push({
410
199
  path: `/${page.path}`,
411
200
  component: `${__dirname}/src/components/app.js`,
412
201
  context: {
@@ -419,7 +208,7 @@ export const createPages = async (
419
208
  page.path === `${pathPrefix || ""}s` ||
420
209
  page.template === "search"
421
210
  ) {
422
- createPage({
211
+ pagesToCreate.push({
423
212
  path: `/${page.path}`,
424
213
  component: `${__dirname}/src/components/app-ssr.js`,
425
214
  context: {
@@ -427,11 +216,13 @@ export const createPages = async (
427
216
  },
428
217
  });
429
218
  } else {
430
- const component = settings.app_ssr.includes(page.template) || settings.site_ssr.includes(process.env.GATSBY_SITE_NAME)
431
- ? `${__dirname}/src/components/app-ssr.js`
432
- : `${__dirname}/src/components/app.js`;
219
+ const component =
220
+ settings.app_ssr.includes(page.template) ||
221
+ settings.site_ssr.includes(process.env.GATSBY_SITE_NAME)
222
+ ? `${__dirname}/src/components/app-ssr.js`
223
+ : `${__dirname}/src/components/app.js`;
433
224
 
434
- createPage({
225
+ pagesToCreate.push({
435
226
  path: page.path.charAt(0) === "/" ? page.path : `/${page.path}`,
436
227
  component,
437
228
  context: {
@@ -443,12 +234,15 @@ export const createPages = async (
443
234
  });
444
235
  });
445
236
 
446
- // Generating Affiliate Tracker Link
447
- const pageTemplate = "tracker";
237
+ pagesToCreate.forEach((config) => createPage(config));
448
238
 
449
239
  // Creating Tracking links
240
+ const pageTemplate = "tracker";
241
+ const trackingPages = [];
242
+
450
243
  Object.keys(operators || {}).forEach((operatorId) => {
451
244
  const operator = operators[operatorId];
245
+
452
246
  if (operator.links) {
453
247
  const trackerLinks = Object.keys(operator.links);
454
248
  const tracker = trackerLinks.map((key) =>
@@ -458,10 +252,10 @@ export const createPages = async (
458
252
  .replace(" ", "_")
459
253
  : null
460
254
  );
255
+
461
256
  const marketOperator = operator.market.match(/_(\w+)/)[1];
462
257
 
463
258
  tracker.forEach((trackerPath) => {
464
- // Create splash page
465
259
  if (trackerPath) {
466
260
  const trackerPageObject = {
467
261
  meta_title: "Tracker",
@@ -472,21 +266,34 @@ export const createPages = async (
472
266
  path: trackerPath,
473
267
  meta_robots: ["noindex", "nofollow"],
474
268
  };
475
- createPage({
269
+
270
+ trackingPages.push({
476
271
  path: trackerPath,
477
- component: `${__dirname}/src/components/${process.env.IS_TRACKING_SSR === 'true' ? 'app-tracker-ssr.js' : 'app-tracker.js'}`,
478
- context: {
479
- page: trackerPageObject,
480
- siteGeneralData,
481
- operator: cloneDeep(operator),
482
- isTracker: true,
483
- isLiveStreamProvider: false,
484
- },
272
+ page: trackerPageObject,
273
+ operator: cloneDeep(operator),
485
274
  });
486
275
  }
487
276
  });
488
277
  }
489
278
  });
279
+
280
+ trackingPages.forEach(({ path, page, operator }) => {
281
+ createPage({
282
+ path,
283
+ component: `${__dirname}/src/components/${
284
+ process.env.IS_TRACKING_SSR === "true"
285
+ ? "app-tracker-ssr.js"
286
+ : "app-tracker.js"
287
+ }`,
288
+ context: {
289
+ page,
290
+ siteGeneralData,
291
+ operator,
292
+ isTracker: true,
293
+ isLiveStreamProvider: false,
294
+ },
295
+ });
296
+ });
490
297
  };
491
298
 
492
299
  export const onCreatePage = async ({ page, actions }) => {
@@ -510,7 +317,7 @@ export const onCreatePage = async ({ page, actions }) => {
510
317
  ...page,
511
318
  context: {
512
319
  page: {
513
- ...context404.page,
320
+ ...contextHolder.context404.page,
514
321
  market: marketCode,
515
322
  language: marketLang,
516
323
  },
@@ -526,7 +333,7 @@ export const onCreatePage = async ({ page, actions }) => {
526
333
  createPage({
527
334
  path: page.path,
528
335
  component: `${__dirname}/src/components/app.js`,
529
- context: context404,
336
+ context: contextHolder.context404,
530
337
  });
531
338
  } else if (page.path.includes("preview")) {
532
339
  createPage({
@@ -569,6 +376,7 @@ export const onPreBootstrap = async () => {
569
376
  cryptoExchangesData,
570
377
  cryptoBrokersData,
571
378
  countriesData,
379
+ licensesData,
572
380
  } = await fetchSiteSettings(process.env.GATSBY_SITE_NAME));
573
381
  };
574
382
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-core-theme",
3
- "version": "44.2.5",
3
+ "version": "44.2.7",
4
4
  "description": "Gatsby Theme NPM Package",
5
5
  "author": "",
6
6
  "license": "ISC",
@@ -12,7 +12,7 @@ import getNavigation from '~tests/factories/sections/navigationStatic.factory';
12
12
  import siteLogo from '../../../../../static/images/logo.svg';
13
13
  import Anchor from '.';
14
14
  import Navigation from '~organisms/navigation';
15
- import { processAnchor } from '../../../../helpers/processor/modules.mjs';
15
+ import { processAnchor } from '../../../../resolver/modules.mjs';
16
16
  import getPageData from '~tests/factories/pages/default.factory';
17
17
 
18
18
  const page = getPageData();
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { render, cleanup, fireEvent } from '@testing-library/react';
3
3
  import '@testing-library/jest-dom/extend-expect';
4
- import { processAnchor } from '../../../../helpers/processor/modules.mjs';
4
+ import { processAnchor } from '../../../../resolver/modules.mjs';
5
5
  import '~tests/helpers/match-media.mock';
6
6
  import Anchor from '.';
7
7
  import getPageData from '~tests/factories/pages/default.factory';
@@ -10,7 +10,7 @@ import {
10
10
  } from '@storybook/addon-docs/blocks';
11
11
 
12
12
  import Anchor from '.';
13
- import { processAnchor } from '../../../../helpers/processor/modules.mjs';
13
+ import { processAnchor } from '../../../../resolver/modules.mjs';
14
14
  import getPageData from '~tests/factories/pages/default.factory';
15
15
 
16
16
  const page = getPageData();
@@ -3,7 +3,7 @@ import { render, cleanup, fireEvent } from '@testing-library/react';
3
3
  import '@testing-library/jest-dom/extend-expect';
4
4
  import '~tests/helpers/match-media.mock';
5
5
  import Anchor from '.';
6
- import { processAnchor } from '../../../../helpers/processor/modules.mjs';
6
+ import { processAnchor } from '../../../../resolver/modules.mjs';
7
7
  import getPageData from '~tests/factories/pages/default.factory';
8
8
 
9
9
  const page = getPageData();
@@ -15,7 +15,7 @@ export const mainSettings = {
15
15
  article: {
16
16
  reading_time: {
17
17
  "spielhallen.com": true,
18
- "demo-matrix-theme.gigmedia.com": true,
18
+ "demo-rocket-theme.gigmedia.com": true,
19
19
  default: false,
20
20
  },
21
21
  },
@@ -6,8 +6,8 @@ import chalk from "chalk";
6
6
  import loadSource from "~helpers/search-source";
7
7
  import { deparam } from "~helpers/strings";
8
8
  import { groupBy } from "~helpers/getters";
9
- import processor from "./processor/index.mjs";
10
- import { fetchSiteSettings } from "./fetch-site-settings.mjs";
9
+ import processor from "../resolver/index.mjs";
10
+ import { fetchSiteSettings } from "../services/fetch.mjs";
11
11
 
12
12
  export async function getAPIData(page, url, headers, preview) {
13
13
  if (preview) {