@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.
- package/README.md +0 -2
- package/build/adapters/gatsby/index.d.ts +1 -1
- package/build/build-complete.js +69 -30
- 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 +69 -30
- package/build/run-start-render.js +90 -49
- package/build/services/settings.d.ts +3 -22
- package/build/services/sites.d.ts +34 -36
- package/build/start-render.js +90 -49
- package/build/types/global.d.ts +1 -1
- package/build/upload-search-content.js +70 -31
- package/build/utils/core-utils.d.ts +9 -60
- package/build/utils/domains.d.ts +5 -1
- package/build/utils/loggin.d.ts +49 -0
- package/build/utils/render.d.ts +11 -0
- package/cx.config.js +3 -4
- package/exporter/adapters/gatsby/index.ts +95 -257
- package/exporter/adapters/gatsby/utils.ts +11 -10
- 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 -8
- package/exporter/services/robots.ts +2 -6
- package/exporter/services/settings.ts +7 -44
- package/exporter/services/sites.ts +115 -159
- package/exporter/services/store.ts +24 -29
- package/exporter/types/api.ts +1 -1
- package/exporter/types/global.ts +1 -0
- package/exporter/utils/api.ts +11 -10
- package/exporter/utils/core-utils.ts +49 -180
- package/exporter/utils/domains.ts +21 -3
- package/exporter/utils/folders.ts +3 -3
- 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 -9
- package/gatsby-browser.tsx +46 -48
- package/gatsby-config.ts +5 -5
- package/gatsby-node.ts +7 -7
- package/package.json +21 -26
- package/src/components/Head.tsx +1 -1
- package/src/gatsby-node-utils.ts +1 -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,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 };
|
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
|
|
|
@@ -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(
|
|
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
|
-
|
|
153
|
-
|
|
154
|
+
? null
|
|
155
|
+
: this._defaultHeaders[language];
|
|
154
156
|
|
|
155
157
|
const footer = footerID
|
|
156
158
|
? this.getPageFooter(footerID, language)
|
|
157
159
|
: footerID === 0
|
|
158
|
-
|
|
159
|
-
|
|
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
|
-
|
|
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 =
|
|
24
|
+
this.endpoint = endpoints.ROBOTS;
|
|
29
25
|
}
|
|
30
26
|
|
|
31
27
|
/**
|