@griddo/cx 10.6.3 → 10.6.5

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 (72) hide show
  1. package/README.md +0 -2
  2. package/build/adapters/gatsby/index.d.ts +1 -1
  3. package/build/build-complete.js +69 -30
  4. package/build/constants/endpoints.d.ts +18 -0
  5. package/build/constants/envs.d.ts +33 -0
  6. package/build/constants/index.d.ts +53 -0
  7. package/build/index.d.ts +4 -3
  8. package/build/index.js +90 -49
  9. package/build/reset-render.js +69 -30
  10. package/build/run-start-render.js +90 -49
  11. package/build/services/settings.d.ts +3 -22
  12. package/build/services/sites.d.ts +34 -36
  13. package/build/start-render.js +90 -49
  14. package/build/types/global.d.ts +1 -1
  15. package/build/upload-search-content.js +70 -31
  16. package/build/utils/core-utils.d.ts +9 -60
  17. package/build/utils/domains.d.ts +5 -1
  18. package/build/utils/loggin.d.ts +49 -0
  19. package/build/utils/render.d.ts +11 -0
  20. package/cx.config.js +3 -4
  21. package/exporter/adapters/gatsby/index.ts +95 -257
  22. package/exporter/adapters/gatsby/utils.ts +11 -10
  23. package/exporter/browser/index.ts +4 -4
  24. package/exporter/constants/endpoints.ts +42 -0
  25. package/exporter/constants/envs.ts +86 -0
  26. package/exporter/constants/index.ts +120 -0
  27. package/exporter/errors/index.ts +2 -2
  28. package/exporter/index.ts +11 -10
  29. package/exporter/react/GriddoIntegrations/index.tsx +3 -3
  30. package/exporter/{build-complete.ts → scripts/build-complete.ts} +4 -4
  31. package/exporter/{reset-render.ts → scripts/reset-render.ts} +3 -3
  32. package/exporter/scripts/start-render.ts +26 -0
  33. package/exporter/{upload-search-content.ts → scripts/upload-search-content.ts} +3 -3
  34. package/exporter/services/auth.ts +7 -5
  35. package/exporter/services/distributors.ts +12 -18
  36. package/exporter/services/domains.ts +2 -12
  37. package/exporter/services/navigation.ts +10 -8
  38. package/exporter/services/robots.ts +2 -6
  39. package/exporter/services/settings.ts +7 -44
  40. package/exporter/services/sites.ts +115 -159
  41. package/exporter/services/store.ts +24 -29
  42. package/exporter/types/api.ts +1 -1
  43. package/exporter/types/global.ts +1 -0
  44. package/exporter/utils/api.ts +11 -10
  45. package/exporter/utils/core-utils.ts +49 -180
  46. package/exporter/utils/domains.ts +21 -3
  47. package/exporter/utils/folders.ts +3 -3
  48. package/exporter/utils/health-checks.ts +4 -4
  49. package/exporter/utils/instance.ts +3 -3
  50. package/exporter/utils/integrations.ts +12 -12
  51. package/exporter/utils/loggin.ts +159 -0
  52. package/exporter/utils/pages.ts +15 -15
  53. package/exporter/utils/render.ts +49 -0
  54. package/exporter/utils/searches.ts +5 -5
  55. package/exporter/utils/sites.ts +42 -48
  56. package/exporter/utils/store.ts +9 -9
  57. package/gatsby-browser.tsx +46 -48
  58. package/gatsby-config.ts +5 -5
  59. package/gatsby-node.ts +7 -7
  60. package/package.json +21 -26
  61. package/src/components/Head.tsx +1 -1
  62. package/src/gatsby-node-utils.ts +1 -1
  63. package/src/utils.ts +1 -1
  64. package/exporter/start-render.ts +0 -18
  65. /package/build/{build-complete.d.ts → scripts/build-complete.d.ts} +0 -0
  66. /package/build/{move-assets.d.ts → scripts/move-assets.d.ts} +0 -0
  67. /package/build/{reset-render.d.ts → scripts/reset-render.d.ts} +0 -0
  68. /package/build/{run-start-render.d.ts → scripts/run-start-render.d.ts} +0 -0
  69. /package/build/{start-render.d.ts → scripts/start-render.d.ts} +0 -0
  70. /package/build/{upload-search-content.d.ts → scripts/upload-search-content.d.ts} +0 -0
  71. /package/exporter/{move-assets.ts → scripts/move-assets.ts} +0 -0
  72. /package/exporter/{run-start-render.ts → scripts/run-start-render.ts} +0 -0
@@ -0,0 +1,42 @@
1
+ import { GRIDDO_API_URL } from "./envs";
2
+
3
+ const WITH_URI = `${GRIDDO_API_URL}/site/`;
4
+
5
+ const GET_ALL = `${GRIDDO_API_URL}/sites/all`;
6
+ const SETTINGS = `${GRIDDO_API_URL}/settings`;
7
+ const RESET_RENDER = `${GRIDDO_API_URL}/debug/reset-render`;
8
+ const GET_PAGE = `${GRIDDO_API_URL}/page`;
9
+ const SEARCH = `${GRIDDO_API_URL}/search`;
10
+ const DOMAINS = `${GRIDDO_API_URL}/domains`;
11
+ const ROBOTS = `${GRIDDO_API_URL}/domains/robots`;
12
+ const LOGIN = `${GRIDDO_API_URL}/login_check`;
13
+ const AI_EMBEDDINGS = `${GRIDDO_API_URL}/ai/embeddings`;
14
+
15
+ const INFO = [WITH_URI, "/all"];
16
+ const LANGUAGES = [WITH_URI, "/languages"];
17
+ const BUILD_START = [WITH_URI, "/build/start"];
18
+ const BUILD_END = [WITH_URI, "/build/end"];
19
+ const GET_REFERENCE_FIELD_DATA = [WITH_URI, "/distributor"];
20
+ const GET_SITEMAP = [WITH_URI, "/sitemap"];
21
+ const SOCIALS = [WITH_URI, "/socials"];
22
+ const GET_PAGES = [WITH_URI, "/pages?pagination=false"];
23
+
24
+ export {
25
+ AI_EMBEDDINGS,
26
+ BUILD_END,
27
+ BUILD_START,
28
+ DOMAINS,
29
+ GET_ALL,
30
+ GET_PAGE,
31
+ GET_PAGES,
32
+ GET_REFERENCE_FIELD_DATA,
33
+ GET_SITEMAP,
34
+ INFO,
35
+ LANGUAGES,
36
+ LOGIN,
37
+ RESET_RENDER,
38
+ ROBOTS,
39
+ SEARCH,
40
+ SETTINGS,
41
+ SOCIALS,
42
+ };
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Here are all the environment variables that the CX code uses.
3
+ */
4
+
5
+ import dotenv from "dotenv";
6
+
7
+ import { isTruthy } from "../utils/core-utils";
8
+
9
+ dotenv.config();
10
+
11
+ //
12
+ // Credentials
13
+ //
14
+ /* prettier-ignore */ const GRIDDO_API_URL = process.env.GRIDDO_API_URL || process.env.API_URL;
15
+ /* prettier-ignore */ const GRIDDO_PUBLIC_API_URL = process.env.GRIDDO_PUBLIC_API_URL || process.env.PUBLIC_API_URL;
16
+ /* prettier-ignore */ const GRIDDO_BOT_USER = process.env.botEmail;
17
+ /* prettier-ignore */ const GRIDDO_BOT_PASSWORD = process.env.botPassword;
18
+
19
+ //
20
+ // Rendering
21
+ //
22
+ /* prettier-ignore */ const GRIDDO_API_CONCURRENCY_COUNT = Number.parseInt( process.env.GRIDDO_API_CONCURRENCY_COUNT || "10");
23
+ /* prettier-ignore */ const GRIDDO_RENDER_ALL_SITES = isTruthy(process.env.GRIDDO_RENDER_ALL_SITES || process.env.updateAllSites);
24
+ /* prettier-ignore */ const GRIDDO_RENDER_SITE = Number.parseInt(process.env.GRIDDO_RENDER_SITE || "")
25
+ /* prettier-ignore */ const GRIDDO_RENDER_PAGES = (process.env.GRIDDO_RENDER_PAGES || "").split(",").map((item) => Number.parseInt(item)).filter(Boolean);
26
+ /* prettier-ignore */ const GRIDDO_SKIP_BUILD_CHECKS = isTruthy(process.env.GRIDDO_SKIP_BUILD_CHECKS)
27
+ /* prettier-ignore */ const GRIDDO_DEBUG_LOGS = isTruthy(process.env.GRIDDO_DEBUG_LOGS);
28
+ /* prettier-ignore */ const GRIDDO_BUILD_LOGS = isTruthy(process.env.GRIDDO_BUILD_LOGS);
29
+ /* prettier-ignore */ const GRIDDO_RENDER_BREAKPOINTS_FEATURE = isTruthy(process.env.GRIDDO_RENDER_BREAKPOINTS_FEATURE);
30
+ /* prettier-ignore */ const GRIDDO_SSG_VERBOSE_LOGS = isTruthy(process.env.GRIDDO_SSG_VERBOSE_LOGS)
31
+ /* prettier-ignore */ const GRIDDO_SEARCH_FEATURE = isTruthy(process.env.GRIDGRIDDO_SEARCH_FEATURE_FEATURE);
32
+ /* prettier-ignore */ const GRIDDO_ASSET_PREFIX = process.env.GRIDDO_ASSET_PREFIX || process.env.ASSET_PREFIX;
33
+ /* prettier-ignore */ const GRIDDO_REACT_APP_INSTANCE = process.env.GRIDDO_REACT_APP_INSTANCE || process.env.REACT_APP_INSTANCE;
34
+ /* prettier-ignore */ const GRIDDO_AI_EMBEDDINGS = isTruthy(process.env.GRIDDO_AI_EMBEDDINGS);
35
+ /* prettier-ignore */ const GRIDDO_VERBOSE_LOGS = isTruthy(process.env.GRIDDO_VERBOSE_LOGS);
36
+
37
+ //
38
+ // LifeCycle
39
+ //
40
+ /* prettier-ignore */ const GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS || "1");
41
+ /* prettier-ignore */ const GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS || "1");
42
+ /* prettier-ignore */ const GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS || "1");
43
+ /* prettier-ignore */ const GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS || "1");
44
+ /* prettier-ignore */ const GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS || "1");
45
+ /* prettier-ignore */ const GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS || "2");
46
+ /* prettier-ignore */ const GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS || "1");
47
+ /* prettier-ignore */ const GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS || "4");
48
+ /* prettier-ignore */ const GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS = Number.parseInt(process.env.GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS || "1");
49
+
50
+ //
51
+ // Testing
52
+ //
53
+ /* prettier-ignore */ const GRIDDO_FIXTURES_DOMAIN_NAMES = process.env.GRIDDO_CX_FIXTURES_DOMAIN_NAMES;
54
+ /* prettier-ignore */ const GRIDDO_FIXTURES_SITE_NAMES = process.env.GRIDDO_CX_FIXTURES_SITE_NAMES;
55
+
56
+ export {
57
+ GRIDDO_AI_EMBEDDINGS,
58
+ GRIDDO_API_CONCURRENCY_COUNT,
59
+ GRIDDO_API_URL,
60
+ GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS,
61
+ GRIDDO_ASSET_PREFIX,
62
+ GRIDDO_BOT_PASSWORD,
63
+ GRIDDO_BOT_USER,
64
+ GRIDDO_BUILD_LOGS,
65
+ GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS,
66
+ GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS,
67
+ GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS,
68
+ GRIDDO_DEBUG_LOGS,
69
+ GRIDDO_FIXTURES_DOMAIN_NAMES,
70
+ GRIDDO_FIXTURES_SITE_NAMES,
71
+ GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS,
72
+ GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS,
73
+ GRIDDO_PUBLIC_API_URL,
74
+ GRIDDO_REACT_APP_INSTANCE,
75
+ GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS,
76
+ GRIDDO_RENDER_ALL_SITES,
77
+ GRIDDO_RENDER_BREAKPOINTS_FEATURE,
78
+ GRIDDO_RENDER_PAGES,
79
+ GRIDDO_RENDER_SITE,
80
+ GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS,
81
+ GRIDDO_SEARCH_FEATURE,
82
+ GRIDDO_SKIP_BUILD_CHECKS,
83
+ GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS,
84
+ GRIDDO_SSG_VERBOSE_LOGS,
85
+ GRIDDO_VERBOSE_LOGS,
86
+ };
@@ -0,0 +1,120 @@
1
+ import type { LifeCyclesNames } from "../types/global";
2
+
3
+ import {
4
+ AI_EMBEDDINGS,
5
+ BUILD_END,
6
+ BUILD_START,
7
+ DOMAINS,
8
+ GET_ALL,
9
+ GET_PAGE,
10
+ GET_PAGES,
11
+ GET_REFERENCE_FIELD_DATA,
12
+ GET_SITEMAP,
13
+ INFO,
14
+ LANGUAGES,
15
+ LOGIN,
16
+ RESET_RENDER,
17
+ ROBOTS,
18
+ SEARCH,
19
+ SETTINGS,
20
+ SOCIALS,
21
+ } from "./endpoints";
22
+ import {
23
+ GRIDDO_AI_EMBEDDINGS,
24
+ GRIDDO_API_CONCURRENCY_COUNT,
25
+ GRIDDO_API_URL,
26
+ GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS,
27
+ GRIDDO_ASSET_PREFIX,
28
+ GRIDDO_BOT_PASSWORD,
29
+ GRIDDO_BOT_USER,
30
+ GRIDDO_BUILD_LOGS,
31
+ GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS,
32
+ GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS,
33
+ GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS,
34
+ GRIDDO_DEBUG_LOGS,
35
+ GRIDDO_FIXTURES_DOMAIN_NAMES,
36
+ GRIDDO_FIXTURES_SITE_NAMES,
37
+ GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS,
38
+ GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS,
39
+ GRIDDO_PUBLIC_API_URL,
40
+ GRIDDO_REACT_APP_INSTANCE,
41
+ GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS,
42
+ GRIDDO_RENDER_ALL_SITES,
43
+ GRIDDO_RENDER_BREAKPOINTS_FEATURE,
44
+ GRIDDO_RENDER_PAGES,
45
+ GRIDDO_RENDER_SITE,
46
+ GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS,
47
+ GRIDDO_SEARCH_FEATURE,
48
+ GRIDDO_SKIP_BUILD_CHECKS,
49
+ GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS,
50
+ GRIDDO_SSG_VERBOSE_LOGS,
51
+ GRIDDO_VERBOSE_LOGS,
52
+ } from "./envs";
53
+
54
+ const endpoints = {
55
+ AI_EMBEDDINGS,
56
+ BUILD_END,
57
+ BUILD_START,
58
+ DOMAINS,
59
+ GET_ALL,
60
+ GET_PAGE,
61
+ GET_PAGES,
62
+ GET_REFERENCE_FIELD_DATA,
63
+ GET_SITEMAP,
64
+ INFO,
65
+ LANGUAGES,
66
+ LOGIN,
67
+ RESET_RENDER,
68
+ ROBOTS,
69
+ SEARCH,
70
+ SETTINGS,
71
+ SOCIALS,
72
+ };
73
+
74
+ const envs = {
75
+ GRIDDO_AI_EMBEDDINGS,
76
+ GRIDDO_API_CONCURRENCY_COUNT,
77
+ GRIDDO_API_URL,
78
+ GRIDDO_ARCHIVE_LIFECYCLE_MAX_ATTEMPTS,
79
+ GRIDDO_ASSET_PREFIX,
80
+ GRIDDO_BOT_PASSWORD,
81
+ GRIDDO_BOT_USER,
82
+ GRIDDO_BUILD_LOGS,
83
+ GRIDDO_CLEAN_LIFECYCLE_MAX_ATTEMPTS,
84
+ GRIDDO_CLOSE_LIFECYCLE_MAX_ATTEMPTS,
85
+ GRIDDO_DATA_LIFECYCLE_MAX_ATTEMPTS,
86
+ GRIDDO_DEBUG_LOGS,
87
+ GRIDDO_FIXTURES_DOMAIN_NAMES,
88
+ GRIDDO_FIXTURES_SITE_NAMES,
89
+ GRIDDO_META_LIFECYCLE_MAX_ATTEMPTS,
90
+ GRIDDO_PREPARE_LIFECYCLE_MAX_ATTEMPTS,
91
+ GRIDDO_PUBLIC_API_URL,
92
+ GRIDDO_REACT_APP_INSTANCE,
93
+ GRIDDO_RELOCATION_LIFECYCLE_MAX_ATTEMPTS,
94
+ GRIDDO_RENDER_ALL_SITES,
95
+ GRIDDO_RENDER_BREAKPOINTS_FEATURE,
96
+ GRIDDO_RENDER_PAGES,
97
+ GRIDDO_RENDER_SITE,
98
+ GRIDDO_RESTORE_LIFECYCLE_MAX_ATTEMPTS,
99
+ GRIDDO_SEARCH_FEATURE,
100
+ GRIDDO_SKIP_BUILD_CHECKS,
101
+ GRIDDO_SSG_LIFECYCLE_MAX_ATTEMPTS,
102
+ GRIDDO_SSG_VERBOSE_LOGS,
103
+ GRIDDO_VERBOSE_LOGS,
104
+ };
105
+
106
+ const lifeCycleNames: Record<LifeCyclesNames, LifeCyclesNames> = {
107
+ HealthCheck: "HealthCheck",
108
+ __DEBUG__: "__DEBUG__",
109
+ Clean: "Clean",
110
+ Close: "Close",
111
+ Prepare: "Prepare",
112
+ Restore: "Restore",
113
+ Data: "Data",
114
+ SSG: "SSG",
115
+ Relocation: "Relocation",
116
+ Meta: "Meta",
117
+ Archive: "Archive",
118
+ } as const;
119
+
120
+ export { endpoints, envs, lifeCycleNames };
@@ -1,6 +1,6 @@
1
1
  import type { ErrorsType } from "./errors-data";
2
2
 
3
- import { logBox } from "../utils/core-utils";
3
+ import { boxLog } from "../utils/loggin";
4
4
 
5
5
  export type ErrorData = {
6
6
  id: number;
@@ -24,7 +24,7 @@ class RenderError extends Error {
24
24
  function throwError({ error, message, expected = "", hint = "" }: ErrorData) {
25
25
  const errorMessage = [message, expected, hint].filter(Boolean).join("\n");
26
26
 
27
- logBox(errorMessage, error, 1, 0);
27
+ boxLog(errorMessage, error, 1, 0);
28
28
  throw new RenderError();
29
29
  }
30
30
 
package/exporter/index.ts CHANGED
@@ -23,30 +23,31 @@
23
23
  /* prettier-ignore */ import type { AdditionalInfo, Dimensions, GriddoListPage, GriddoMultiPage, GriddoPageObject, GriddoSinglePage } from "./types/pages";
24
24
  /* prettier-ignore */ import type { Site } from "./types/sites";
25
25
 
26
- /* prettier-ignore */ import { startRender } from "./start-render";
27
- /* prettier-ignore */ import { getConfig, logInfo, logPageSize, verbose, walk } from "./utils/core-utils";
26
+ /* prettier-ignore */ import { startRender } from "./scripts/start-render";
27
+ /* prettier-ignore */ import { getConfig, walk } from "./utils/core-utils";
28
28
  /* prettier-ignore */ import { IS_COMPONENT_LIBRARY, PROJECT_ALIASES, resolveComponentsPath } from "./utils/instance";
29
+ /* prettier-ignore */ import { infoLog, pageSizeLog, verboseLog } from "./utils/loggin";
29
30
  /* prettier-ignore */ import { getBuildPagesFromCachedStore, getBuildPagesFromStore, getBuildPagesPath } from "./utils/store";
30
31
 
31
32
  export {
32
33
  AdditionalInfo,
33
34
  Dimensions,
35
+ getBuildPagesFromCachedStore,
36
+ getBuildPagesFromStore,
37
+ getBuildPagesPath,
38
+ getConfig,
34
39
  GriddoListPage,
35
40
  GriddoMultiPage,
36
41
  GriddoPageObject,
37
42
  GriddoSinglePage,
43
+ infoLog,
38
44
  IS_COMPONENT_LIBRARY,
45
+ pageSizeLog,
39
46
  PROJECT_ALIASES,
47
+ resolveComponentsPath,
40
48
  Site,
41
49
  SocialsResponse,
42
- getBuildPagesFromCachedStore,
43
- getBuildPagesFromStore,
44
- getBuildPagesPath,
45
- getConfig,
46
- logInfo,
47
- logPageSize,
48
- resolveComponentsPath,
49
50
  startRender,
50
- verbose,
51
+ verboseLog,
51
52
  walk,
52
53
  };
@@ -63,8 +63,8 @@ function GriddoIntegrations(props: GriddoIntegrationsProps) {
63
63
  siteScript,
64
64
  dimensions,
65
65
  pageInfo,
66
- generateAutomaticDimensions
67
- )
66
+ generateAutomaticDimensions,
67
+ )
68
68
  : { analyticsDimensions: null, analyticsScript: null };
69
69
 
70
70
  const analyticsScriptSrc =
@@ -86,7 +86,7 @@ function GriddoIntegrations(props: GriddoIntegrationsProps) {
86
86
  // AX?
87
87
  const fixedAnalyticsCode = Array.isArray(analyticsCodeSnippet)
88
88
  ? analyticsCodeSnippet.find((item) => item.type === "script") ||
89
- emptyCodeScript
89
+ emptyCodeScript
90
90
  : analyticsCodeSnippet;
91
91
 
92
92
  const {
@@ -3,8 +3,8 @@ import path from "node:path";
3
3
 
4
4
  import pkgDir from "pkg-dir";
5
5
 
6
- import { AuthService } from "./services/auth";
7
- import { SitesService } from "./services/sites";
6
+ import { AuthService } from "../services/auth";
7
+ import { endSiteRender } from "../services/sites";
8
8
 
9
9
  // Where we are going to find export dirs
10
10
  const execBasePath = pkgDir.sync(path.resolve(__dirname, "../.."))!;
@@ -41,7 +41,7 @@ export async function buildComplete(report: Report) {
41
41
 
42
42
  console.info(`Deploying ending call to site ${siteId}:`);
43
43
 
44
- await SitesService.endSiteRender(siteId, body);
44
+ await endSiteRender(siteId, body);
45
45
  }
46
46
 
47
47
  console.info(`Build end's signal sent for ${report.sites.length} site(s)`);
@@ -64,7 +64,7 @@ function getBuildReports(domains: Array<string>) {
64
64
  exportArchiveBasePath,
65
65
  domain,
66
66
  "dist",
67
- "__build-report__.json"
67
+ "__build-report__.json",
68
68
  );
69
69
 
70
70
  if (!fs.existsSync(buildReportFile)) {
@@ -1,9 +1,9 @@
1
- import { AuthService } from "./services/auth";
2
- import { SettingsService } from "./services/settings";
1
+ import { AuthService } from "../services/auth";
2
+ import { resetRender } from "../services/settings";
3
3
 
4
4
  async function main() {
5
5
  await AuthService.login();
6
- await SettingsService.resetRender();
6
+ await resetRender();
7
7
  }
8
8
 
9
9
  main().catch((err) => {
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable node/shebang */
3
+
4
+ import { runGatsbyAdapter } from "../adapters";
5
+ import { measureExecutionTime } from "../utils/core-utils";
6
+ import { getInstanceDomainsOrThrow } from "../utils/domains";
7
+ import { boxLog } from "../utils/loggin";
8
+
9
+ async function startRender() {
10
+ try {
11
+ const domains = await getInstanceDomainsOrThrow();
12
+ const exeTime = await measureExecutionTime([
13
+ () => runGatsbyAdapter(domains),
14
+ ]);
15
+
16
+ boxLog(`All domains rendered in ${exeTime}s.`, "", 1, 0);
17
+
18
+ process.exit(0);
19
+ } catch (error) {
20
+ console.log(error);
21
+
22
+ process.exit(1);
23
+ }
24
+ }
25
+
26
+ export { startRender };
@@ -2,12 +2,12 @@ import fs from "node:fs";
2
2
 
3
3
  import dotenv from "dotenv";
4
4
 
5
- import { getConfig, isTruthy } from "./utils/core-utils";
6
- import { getInstanceDomains } from "./utils/domains";
5
+ import { getConfig, isTruthy } from "../utils/core-utils";
6
+ import { getInstanceDomains } from "../utils/domains";
7
7
  import {
8
8
  startAIEmbeddings,
9
9
  uploadRenderedSearchContentToAPI,
10
- } from "./utils/searches";
10
+ } from "../utils/searches";
11
11
 
12
12
  dotenv.config();
13
13
 
@@ -1,6 +1,8 @@
1
1
  import axios from "axios";
2
2
  import chalk from "chalk";
3
3
 
4
+ import { endpoints, envs } from "../constants";
5
+
4
6
  /**
5
7
  * Service for authentication in the Griddo Private API
6
8
  */
@@ -13,15 +15,15 @@ class AuthService {
13
15
  | undefined;
14
16
 
15
17
  constructor() {
16
- this.user = process.env.botEmail;
17
- this.password = process.env.botPassword;
18
- this.baseUrl = process.env.API_URL;
18
+ this.user = envs.GRIDDO_BOT_USER;
19
+ this.password = envs.GRIDDO_BOT_PASSWORD;
20
+ this.baseUrl = envs.GRIDDO_API_URL;
19
21
  }
20
22
 
21
23
  async login() {
22
24
  try {
23
25
  const response = await axios({
24
- url: `${this.baseUrl}/login_check`,
26
+ url: endpoints.LOGIN,
25
27
  method: "POST",
26
28
  headers: {
27
29
  "Content-Type": "application/json",
@@ -50,7 +52,7 @@ class AuthService {
50
52
  │ Access credentials failure │
51
53
  │ Check that the login details are correct in your .env file │
52
54
  ╰────────────────────────────────────────────────────────────╯
53
- `)
55
+ `),
54
56
  );
55
57
 
56
58
  process.exit(1);
@@ -6,8 +6,8 @@ import type {
6
6
  Reference,
7
7
  } from "@griddo/core/dist/types/api-response-fields";
8
8
 
9
- import { SitesService } from "./sites";
10
- import { logBox } from "../utils/core-utils";
9
+ import { getDistributorData } from "./sites";
10
+ import { boxLog } from "../utils/loggin";
11
11
 
12
12
  /**
13
13
  * Service to work with distributors.
@@ -60,7 +60,7 @@ class DistributorService {
60
60
  }
61
61
 
62
62
  console.log(
63
- `Error: Distribuidor mode: ${mode} is not recognized on page ${page?.id}.`
63
+ `Error: Distribuidor mode: ${mode} is not recognized on page ${page?.id}.`,
64
64
  );
65
65
 
66
66
  return data;
@@ -84,9 +84,9 @@ class DistributorService {
84
84
 
85
85
  // Distrubutor with `hasDistributorDat: true` but without `data` prop
86
86
  if (!data) {
87
- logBox(
87
+ boxLog(
88
88
  `Error: Page ${page.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,
89
- "No data in ReferenceField"
89
+ "No data in ReferenceField",
90
90
  );
91
91
 
92
92
  return [];
@@ -94,9 +94,9 @@ class DistributorService {
94
94
 
95
95
  // Avoid fetch distributors with empty `data.sources`
96
96
  if (Array.isArray(data.sources) && data.sources.length < 1) {
97
- logBox(
97
+ boxLog(
98
98
  `Warning: Page with id: ${page.id} has a ReferenceField with empty \`data.sources\``,
99
- "Empty data.sources in ReferenceField"
99
+ "Empty data.sources in ReferenceField",
100
100
  );
101
101
 
102
102
  return [];
@@ -106,21 +106,15 @@ class DistributorService {
106
106
 
107
107
  // Infor that the distributor has not dat.sources
108
108
  if (!data.sources && data.mode === "auto") {
109
- logBox(
109
+ boxLog(
110
110
  `Warning: Page with id: ${page.id} has a ReferenceField with \`undefined\` \`data.sources\``,
111
- "undefined data.sources in ReferenceField"
111
+ "undefined data.sources in ReferenceField",
112
112
  );
113
113
  }
114
114
 
115
115
  const body = this.getBody(data, page);
116
116
 
117
- const response = await SitesService.getDistributorData(
118
- page,
119
- body,
120
- cacheKey,
121
- site,
122
- lang
123
- );
117
+ const response = await getDistributorData(page, body, cacheKey, site, lang);
124
118
 
125
119
  return response;
126
120
  }
@@ -147,7 +141,7 @@ class DistributorService {
147
141
  hasDistributorData?: boolean;
148
142
  queriedItems: QueriedData<unknown>;
149
143
  },
150
- level = 1
144
+ level = 1,
151
145
  ) => {
152
146
  // If it doesn't a "template strcuture"
153
147
  if (!templateChunk || typeof templateChunk !== "object") return;
@@ -165,7 +159,7 @@ class DistributorService {
165
159
  if (key === "queriedItems") continue;
166
160
 
167
161
  const _key = key as "hasDistributorData" | "queriedItems";
168
- const component = (templateChunk[_key] as unknown) as {
162
+ const component = templateChunk[_key] as unknown as {
169
163
  data: Reference<unknown>;
170
164
  queriedItems: QueriedData<unknown>;
171
165
  hasDistributorData: boolean;
@@ -1,24 +1,14 @@
1
1
  import type { Domains } from "../types/global";
2
2
 
3
+ import { endpoints } from "../constants";
3
4
  import { get } from "../utils/api";
4
5
 
5
- // Envs
6
- const API_URL = process.env.API_URL;
7
-
8
- // Consts
9
- const ENDPOINTS = {
10
- GET_ALL: `${API_URL}/domains`,
11
- };
12
-
13
6
  /**
14
7
  * Get an array of domains availables.
15
8
  */
16
9
  class DomainsService {
17
10
  static async getAll() {
18
- const { GET_ALL } = ENDPOINTS;
19
- const response = await get<Domains>({ endpoint: GET_ALL });
20
-
21
- return response;
11
+ return await get<Domains>({ endpoint: endpoints.DOMAINS });
22
12
  }
23
13
  }
24
14
 
@@ -43,7 +43,7 @@ class NavigationService {
43
43
  getDefaultFooters() {
44
44
  const safeFooters = [...this.navigations.footers];
45
45
  const defaultFooters = safeFooters.filter(
46
- (footer) => !!footer.setAsDefault
46
+ (footer) => !!footer.setAsDefault,
47
47
  );
48
48
  const defaultFootersByLang = defaultFooters.reduce((prev, footer) => {
49
49
  const { language } = footer;
@@ -60,7 +60,7 @@ class NavigationService {
60
60
  getDefaultHeaders() {
61
61
  const safeHeaders = [...this.navigations.headers];
62
62
  const defaultHeaders = safeHeaders.filter(
63
- (header) => !!header.setAsDefault
63
+ (header) => !!header.setAsDefault,
64
64
  );
65
65
  const defaultHeadersByLang = defaultHeaders.reduce((prev, header) => {
66
66
  const { language } = header;
@@ -81,7 +81,7 @@ class NavigationService {
81
81
  id: number;
82
82
  }>,
83
83
  id: number,
84
- language: number
84
+ language: number,
85
85
  ) {
86
86
  if (!list || !id) {
87
87
  return null;
@@ -90,7 +90,9 @@ class NavigationService {
90
90
  const rightLanguageItem = list.find(
91
91
  (item) =>
92
92
  item.language === language &&
93
- item.navigationLanguages?.find((version) => version.navigationId === id)
93
+ item.navigationLanguages?.find(
94
+ (version) => version.navigationId === id,
95
+ ),
94
96
  );
95
97
 
96
98
  const result = rightLanguageItem || list.find((item) => item.id === id);
@@ -149,14 +151,14 @@ class NavigationService {
149
151
  const header = headerID
150
152
  ? this.getPageHeader(headerID, language)
151
153
  : headerID === 0
152
- ? null
153
- : this._defaultHeaders[language];
154
+ ? null
155
+ : this._defaultHeaders[language];
154
156
 
155
157
  const footer = footerID
156
158
  ? this.getPageFooter(footerID, language)
157
159
  : footerID === 0
158
- ? null
159
- : this._defaultFooters[language];
160
+ ? null
161
+ : this._defaultFooters[language];
160
162
 
161
163
  return {
162
164
  header,
@@ -3,10 +3,7 @@ import type { Robots } from "../types/global";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
 
6
- dotenv.config();
7
-
8
- import dotenv from "dotenv";
9
-
6
+ import { endpoints } from "../constants";
10
7
  import { get } from "../utils/api";
11
8
  import { getConfig } from "../utils/core-utils";
12
9
 
@@ -23,9 +20,8 @@ class RobotsService {
23
20
 
24
21
  constructor() {
25
22
  this.robots = [];
26
- this.baseURL = process.env.API_URL;
27
23
  this.settings = {};
28
- this.endpoint = `${this.baseURL}/domains/robots`;
24
+ this.endpoint = endpoints.ROBOTS;
29
25
  }
30
26
 
31
27
  /**