@griddo/cx 10.6.4 → 10.6.6
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.
- package/README.md +0 -2
- package/build/adapters/gatsby/index.d.ts +1 -1
- package/build/artifacts/cx.d.ts +6 -0
- package/build/artifacts/gatsby.d.ts +6 -0
- package/build/artifacts/index.d.ts +15 -0
- package/build/build-complete.js +74 -34
- package/build/constants/endpoints.d.ts +18 -0
- package/build/constants/envs.d.ts +33 -0
- package/build/constants/index.d.ts +53 -0
- package/build/index.d.ts +4 -3
- package/build/index.js +90 -49
- package/build/reset-render.js +74 -34
- package/build/run-start-render.js +90 -49
- package/build/services/navigation.d.ts +0 -27
- package/build/services/robots.d.ts +2 -21
- package/build/services/settings.d.ts +3 -22
- package/build/services/sites.d.ts +20 -37
- package/build/start-render.js +90 -49
- package/build/types/global.d.ts +10 -14
- package/build/upload-search-content.js +70 -30
- package/build/utils/core-utils.d.ts +18 -60
- package/build/utils/domains.d.ts +5 -1
- package/build/utils/folders.d.ts +38 -13
- package/build/utils/loggin.d.ts +49 -0
- package/build/utils/render.d.ts +11 -0
- package/build/utils/store.d.ts +0 -1
- package/cx.config.d.ts +0 -15
- package/cx.config.js +3 -16
- package/exporter/adapters/gatsby/index.ts +94 -253
- package/exporter/adapters/gatsby/utils.ts +11 -10
- package/exporter/artifacts/README.md +28 -0
- package/exporter/artifacts/cx.ts +26 -0
- package/exporter/artifacts/gatsby.ts +28 -0
- package/exporter/artifacts/index.ts +30 -0
- package/exporter/browser/index.ts +4 -4
- package/exporter/constants/endpoints.ts +42 -0
- package/exporter/constants/envs.ts +86 -0
- package/exporter/constants/index.ts +120 -0
- package/exporter/errors/index.ts +2 -2
- package/exporter/index.ts +11 -10
- package/exporter/react/GriddoIntegrations/index.tsx +3 -3
- package/exporter/{build-complete.ts → scripts/build-complete.ts} +4 -4
- package/exporter/{reset-render.ts → scripts/reset-render.ts} +3 -3
- package/exporter/scripts/start-render.ts +26 -0
- package/exporter/{upload-search-content.ts → scripts/upload-search-content.ts} +3 -3
- package/exporter/services/auth.ts +7 -5
- package/exporter/services/distributors.ts +12 -18
- package/exporter/services/domains.ts +2 -12
- package/exporter/services/navigation.ts +10 -35
- package/exporter/services/robots.ts +35 -58
- package/exporter/services/settings.ts +7 -44
- package/exporter/services/sites.ts +101 -160
- package/exporter/services/store.ts +24 -29
- package/exporter/types/api.ts +1 -2
- package/exporter/types/global.ts +14 -22
- package/exporter/types/pages.ts +0 -9
- package/exporter/types/sites.ts +0 -3
- package/exporter/utils/api.ts +11 -10
- package/exporter/utils/core-utils.ts +66 -181
- package/exporter/utils/domains.ts +21 -3
- package/exporter/utils/folders.ts +163 -50
- package/exporter/utils/health-checks.ts +4 -4
- package/exporter/utils/instance.ts +3 -3
- package/exporter/utils/integrations.ts +12 -12
- package/exporter/utils/loggin.ts +159 -0
- package/exporter/utils/pages.ts +15 -15
- package/exporter/utils/render.ts +49 -0
- package/exporter/utils/searches.ts +5 -5
- package/exporter/utils/sites.ts +42 -48
- package/exporter/utils/store.ts +9 -10
- package/gatsby-browser.tsx +46 -48
- package/gatsby-config.ts +5 -5
- package/gatsby-node.ts +7 -7
- package/package.json +23 -28
- package/src/components/Head.tsx +1 -1
- package/src/gatsby-node-utils.ts +1 -1
- package/src/types.ts +0 -1
- package/src/utils.ts +1 -1
- package/exporter/start-render.ts +0 -18
- /package/build/{build-complete.d.ts → scripts/build-complete.d.ts} +0 -0
- /package/build/{move-assets.d.ts → scripts/move-assets.d.ts} +0 -0
- /package/build/{reset-render.d.ts → scripts/reset-render.d.ts} +0 -0
- /package/build/{run-start-render.d.ts → scripts/run-start-render.d.ts} +0 -0
- /package/build/{start-render.d.ts → scripts/start-render.d.ts} +0 -0
- /package/build/{upload-search-content.d.ts → scripts/upload-search-content.d.ts} +0 -0
- /package/exporter/{move-assets.ts → scripts/move-assets.ts} +0 -0
- /package/exporter/{run-start-render.ts → scripts/run-start-render.ts} +0 -0
|
@@ -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 };
|
package/exporter/errors/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ErrorsType } from "./errors-data";
|
|
2
2
|
|
|
3
|
-
import {
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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 "
|
|
7
|
-
import {
|
|
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
|
|
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 "
|
|
2
|
-
import {
|
|
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
|
|
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 "
|
|
6
|
-
import { getInstanceDomains } from "
|
|
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 "
|
|
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 =
|
|
17
|
-
this.password =
|
|
18
|
-
this.baseUrl =
|
|
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:
|
|
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 {
|
|
10
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { Footer, Header } from "../types/navigation";
|
|
2
2
|
import type { APIPageObject } from "../types/pages";
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* TODO: JSDoc
|
|
6
|
-
*/
|
|
7
4
|
class NavigationService {
|
|
8
5
|
private _defaultHeaders: Record<string, Header>;
|
|
9
6
|
private _defaultFooters: Record<string, Footer>;
|
|
@@ -21,29 +18,20 @@ class NavigationService {
|
|
|
21
18
|
this._defaultFooters = {};
|
|
22
19
|
}
|
|
23
20
|
|
|
24
|
-
/**
|
|
25
|
-
* TODO: JSDoc
|
|
26
|
-
*/
|
|
27
21
|
set navigations(navigations) {
|
|
28
22
|
this._navigations = navigations;
|
|
29
23
|
this._defaultFooters = this.getDefaultFooters();
|
|
30
24
|
this._defaultHeaders = this.getDefaultHeaders();
|
|
31
25
|
}
|
|
32
26
|
|
|
33
|
-
/**
|
|
34
|
-
* TODO: JSDoc
|
|
35
|
-
*/
|
|
36
27
|
get navigations() {
|
|
37
28
|
return this._navigations;
|
|
38
29
|
}
|
|
39
30
|
|
|
40
|
-
/**
|
|
41
|
-
* TODO: JSDoc
|
|
42
|
-
*/
|
|
43
31
|
getDefaultFooters() {
|
|
44
32
|
const safeFooters = [...this.navigations.footers];
|
|
45
33
|
const defaultFooters = safeFooters.filter(
|
|
46
|
-
(footer) => !!footer.setAsDefault
|
|
34
|
+
(footer) => !!footer.setAsDefault,
|
|
47
35
|
);
|
|
48
36
|
const defaultFootersByLang = defaultFooters.reduce((prev, footer) => {
|
|
49
37
|
const { language } = footer;
|
|
@@ -54,13 +42,10 @@ class NavigationService {
|
|
|
54
42
|
return defaultFootersByLang;
|
|
55
43
|
}
|
|
56
44
|
|
|
57
|
-
/**
|
|
58
|
-
* TODO: JSDoc
|
|
59
|
-
*/
|
|
60
45
|
getDefaultHeaders() {
|
|
61
46
|
const safeHeaders = [...this.navigations.headers];
|
|
62
47
|
const defaultHeaders = safeHeaders.filter(
|
|
63
|
-
(header) => !!header.setAsDefault
|
|
48
|
+
(header) => !!header.setAsDefault,
|
|
64
49
|
);
|
|
65
50
|
const defaultHeadersByLang = defaultHeaders.reduce((prev, header) => {
|
|
66
51
|
const { language } = header;
|
|
@@ -71,9 +56,6 @@ class NavigationService {
|
|
|
71
56
|
return defaultHeadersByLang;
|
|
72
57
|
}
|
|
73
58
|
|
|
74
|
-
/**
|
|
75
|
-
* TODO: JSDoc
|
|
76
|
-
*/
|
|
77
59
|
getRightLanguage(
|
|
78
60
|
list: Array<{
|
|
79
61
|
language: number;
|
|
@@ -81,7 +63,7 @@ class NavigationService {
|
|
|
81
63
|
id: number;
|
|
82
64
|
}>,
|
|
83
65
|
id: number,
|
|
84
|
-
language: number
|
|
66
|
+
language: number,
|
|
85
67
|
) {
|
|
86
68
|
if (!list || !id) {
|
|
87
69
|
return null;
|
|
@@ -90,7 +72,9 @@ class NavigationService {
|
|
|
90
72
|
const rightLanguageItem = list.find(
|
|
91
73
|
(item) =>
|
|
92
74
|
item.language === language &&
|
|
93
|
-
item.navigationLanguages?.find(
|
|
75
|
+
item.navigationLanguages?.find(
|
|
76
|
+
(version) => version.navigationId === id,
|
|
77
|
+
),
|
|
94
78
|
);
|
|
95
79
|
|
|
96
80
|
const result = rightLanguageItem || list.find((item) => item.id === id);
|
|
@@ -98,23 +82,14 @@ class NavigationService {
|
|
|
98
82
|
return result ? { ...result } : null;
|
|
99
83
|
}
|
|
100
84
|
|
|
101
|
-
/**
|
|
102
|
-
* TODO: JSDoc
|
|
103
|
-
*/
|
|
104
85
|
getPageHeader(id: number, language: number) {
|
|
105
86
|
return this.getRightLanguage(this.navigations.headers, id, language);
|
|
106
87
|
}
|
|
107
88
|
|
|
108
|
-
/**
|
|
109
|
-
* TODO: JSDoc
|
|
110
|
-
*/
|
|
111
89
|
getPageFooter(id: number, language: number) {
|
|
112
90
|
return this.getRightLanguage(this.navigations.footers, id, language);
|
|
113
91
|
}
|
|
114
92
|
|
|
115
|
-
/**
|
|
116
|
-
* TODO: JSDoc
|
|
117
|
-
*/
|
|
118
93
|
getPageNavigations(page: APIPageObject) {
|
|
119
94
|
const {
|
|
120
95
|
header: pageHeader,
|
|
@@ -149,14 +124,14 @@ class NavigationService {
|
|
|
149
124
|
const header = headerID
|
|
150
125
|
? this.getPageHeader(headerID, language)
|
|
151
126
|
: headerID === 0
|
|
152
|
-
|
|
153
|
-
|
|
127
|
+
? null
|
|
128
|
+
: this._defaultHeaders[language];
|
|
154
129
|
|
|
155
130
|
const footer = footerID
|
|
156
131
|
? this.getPageFooter(footerID, language)
|
|
157
132
|
: footerID === 0
|
|
158
|
-
|
|
159
|
-
|
|
133
|
+
? null
|
|
134
|
+
: this._defaultFooters[language];
|
|
160
135
|
|
|
161
136
|
return {
|
|
162
137
|
header,
|