@griddo/cx 11.9.17 → 11.10.1
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 +13 -240
- package/build/commands/end-render.d.ts +0 -1
- package/build/commands/end-render.js +31 -0
- package/build/commands/end-render.js.map +7 -0
- package/build/commands/prepare-assets-directory.js +9 -0
- package/build/commands/prepare-assets-directory.js.map +7 -0
- package/build/commands/prepare-domains-render.js +40 -0
- package/build/commands/prepare-domains-render.js.map +7 -0
- package/build/commands/reset-render.d.ts +0 -1
- package/build/commands/reset-render.js +31 -0
- package/build/commands/reset-render.js.map +7 -0
- package/build/commands/single-domain-upload-search-content.d.ts +1 -0
- package/build/commands/start-render.d.ts +0 -1
- package/build/commands/start-render.js +66 -0
- package/build/commands/start-render.js.map +7 -0
- package/build/commands/upload-search-content.d.ts +0 -1
- package/build/commands/upload-search-content.js +32 -0
- package/build/commands/upload-search-content.js.map +7 -0
- package/build/core/GriddoLog.d.ts +16 -0
- package/build/{utils/health-checks.d.ts → core/check-env-health.d.ts} +4 -2
- package/build/core/db-class.d.ts +11 -0
- package/build/core/db.d.ts +4 -0
- package/build/core/dist-rollback.d.ts +11 -0
- package/build/core/errors.d.ts +26 -0
- package/build/core/fs.d.ts +69 -0
- package/build/core/life-cycle.d.ts +26 -0
- package/build/core/logger.d.ts +18 -0
- package/build/core/objects.d.ts +11 -0
- package/build/core/print-logos.d.ts +5 -0
- package/build/index.d.ts +10 -29
- package/build/index.js +404 -73
- package/build/react/DynamicScript/index.d.ts +4 -0
- package/build/react/GriddoFavicon/index.d.ts +4 -0
- package/build/react/GriddoIntegrations/index.d.ts +3 -4
- package/build/react/GriddoIntegrations/utils.d.ts +7 -6
- package/build/react/GriddoOpenGraph/index.d.ts +10 -0
- package/build/react/index.d.ts +3 -2
- package/build/react/index.js +1 -3
- package/build/{utils → services}/api.d.ts +1 -1
- package/build/services/auth.d.ts +2 -5
- package/build/services/domains.d.ts +3 -4
- package/build/services/manage-sites.d.ts +22 -0
- package/build/services/manage-store.d.ts +32 -0
- package/build/services/navigation.d.ts +16 -16
- package/build/{utils → services}/pages.d.ts +3 -3
- package/build/services/reference-fields.d.ts +3 -3
- package/build/services/render-artifacts.d.ts +6 -0
- package/build/services/render.d.ts +70 -0
- package/build/services/robots.d.ts +2 -19
- package/build/services/sitemaps.d.ts +5 -0
- package/build/services/sites.d.ts +8 -5
- package/build/services/store.d.ts +10 -1
- package/build/shared/context.d.ts +36 -0
- package/build/shared/envs.d.ts +17 -0
- package/build/{errors/errors-data.d.ts → shared/errors.d.ts} +5 -3
- package/build/shared/npm-modules/brush.d.ts +18 -0
- package/build/shared/npm-modules/find-up-simple.d.ts +34 -0
- package/build/shared/npm-modules/pkg-dir.d.ts +7 -0
- package/build/shared/npm-modules/xml-parser.d.ts +4 -0
- package/build/{types → shared/types}/api.d.ts +18 -18
- package/build/{types → shared/types}/global.d.ts +15 -16
- package/build/{types → shared/types}/navigation.d.ts +5 -5
- package/build/{types → shared/types}/pages.d.ts +9 -9
- package/build/shared/types/render.d.ts +56 -0
- package/build/{types → shared/types}/sites.d.ts +18 -19
- package/build/shared/types.d.ts +15 -0
- package/build/ssg-adapters/gatsby/actions/clean.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/close.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/data.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/healthCheck.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/init.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/logs.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/meta.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/prepare.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/relocation.d.ts +2 -0
- package/build/ssg-adapters/gatsby/actions/restore.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/ssg.d.ts +3 -0
- package/build/ssg-adapters/gatsby/actions/sync.d.ts +3 -0
- package/build/ssg-adapters/gatsby/index.d.ts +9 -0
- package/build/ssg-adapters/gatsby/shared/artifacts.d.ts +4 -0
- package/build/ssg-adapters/gatsby/shared/diff-assets.d.ts +15 -0
- package/build/ssg-adapters/gatsby/shared/extract-assets.d.ts +7 -0
- package/build/ssg-adapters/gatsby/shared/gatsby-build.d.ts +7 -0
- package/build/ssg-adapters/gatsby/shared/render-rollback.d.ts +18 -0
- package/build/ssg-adapters/gatsby/shared/sync-render.d.ts +26 -0
- package/build/ssg-adapters/gatsby/shared/types.d.ts +34 -0
- package/cli.mjs +231 -0
- package/exporter/build-esbuild.noop +42 -0
- package/exporter/build.sh +16 -24
- package/exporter/commands/README.md +142 -0
- package/exporter/commands/end-render.ts +53 -87
- package/exporter/commands/prepare-assets-directory.ts +35 -0
- package/exporter/commands/prepare-domains-render.ts +150 -33
- package/exporter/commands/reset-render.ts +13 -8
- package/exporter/commands/single-domain-upload-search-content.ts +206 -0
- package/exporter/commands/start-render.ts +14 -65
- package/exporter/commands/upload-search-content.ts +204 -26
- package/exporter/core/GriddoLog.ts +45 -0
- package/exporter/core/check-env-health.ts +203 -0
- package/exporter/core/db-class.ts +54 -0
- package/exporter/core/db.ts +33 -0
- package/exporter/core/dist-rollback.ts +49 -0
- package/exporter/core/errors.ts +93 -0
- package/exporter/core/fs.ts +385 -0
- package/exporter/{utils → core}/images.ts +1 -6
- package/exporter/{utils → core}/instance.ts +9 -13
- package/exporter/core/life-cycle.ts +73 -0
- package/exporter/core/logger.ts +137 -0
- package/exporter/core/objects.ts +37 -0
- package/exporter/core/print-logos.ts +21 -0
- package/exporter/index.ts +14 -56
- package/exporter/react/DynamicScript/index.tsx +33 -0
- package/exporter/react/{Favicon → GriddoFavicon}/index.tsx +3 -9
- package/exporter/react/GriddoIntegrations/index.tsx +17 -23
- package/exporter/react/GriddoIntegrations/utils.ts +24 -12
- package/exporter/react/GriddoOpenGraph/index.tsx +39 -0
- package/exporter/react/index.tsx +3 -9
- package/exporter/services/api.ts +306 -0
- package/exporter/services/auth.ts +8 -10
- package/exporter/services/domains.ts +23 -8
- package/exporter/services/manage-sites.ts +116 -0
- package/exporter/services/manage-store.ts +173 -0
- package/exporter/services/navigation.ts +12 -18
- package/exporter/{utils → services}/pages.ts +27 -92
- package/exporter/services/reference-fields.ts +14 -32
- package/exporter/services/render-artifacts.ts +44 -0
- package/exporter/services/render.ts +229 -0
- package/exporter/services/robots.ts +33 -61
- package/exporter/services/sitemaps.ts +129 -0
- package/exporter/services/sites.ts +40 -28
- package/exporter/services/store.ts +354 -321
- package/exporter/shared/context.ts +49 -0
- package/exporter/{constants → shared}/endpoints.ts +12 -11
- package/exporter/shared/envs.ts +58 -0
- package/exporter/{errors/errors-data.ts → shared/errors.ts} +24 -14
- package/exporter/shared/npm-modules/README.md +36 -0
- package/exporter/shared/npm-modules/brush.ts +34 -0
- package/exporter/shared/npm-modules/find-up-simple.ts +100 -0
- package/exporter/shared/npm-modules/pkg-dir.ts +17 -0
- package/exporter/shared/npm-modules/xml-parser.ts +57 -0
- package/exporter/{types → shared/types}/api.ts +40 -41
- package/exporter/{types → shared/types}/global.ts +17 -21
- package/exporter/{types → shared/types}/navigation.ts +3 -3
- package/exporter/{types → shared/types}/pages.ts +10 -11
- package/exporter/shared/types/render.ts +65 -0
- package/exporter/{types → shared/types}/sites.ts +18 -19
- package/exporter/shared/types.ts +15 -0
- package/exporter/ssg-adapters/gatsby/actions/clean.ts +26 -0
- package/exporter/ssg-adapters/gatsby/actions/close.ts +17 -0
- package/exporter/ssg-adapters/gatsby/actions/data.ts +22 -0
- package/exporter/ssg-adapters/gatsby/actions/healthCheck.ts +10 -0
- package/exporter/ssg-adapters/gatsby/actions/init.ts +12 -0
- package/exporter/ssg-adapters/gatsby/actions/logs.ts +10 -0
- package/exporter/ssg-adapters/gatsby/actions/meta.ts +13 -0
- package/exporter/ssg-adapters/gatsby/actions/prepare.ts +9 -0
- package/exporter/ssg-adapters/gatsby/actions/relocation.ts +15 -0
- package/exporter/ssg-adapters/gatsby/actions/restore.ts +21 -0
- package/exporter/ssg-adapters/gatsby/actions/ssg.ts +12 -0
- package/exporter/ssg-adapters/gatsby/actions/sync.ts +65 -0
- package/exporter/ssg-adapters/gatsby/index.ts +117 -0
- package/exporter/ssg-adapters/gatsby/shared/artifacts.ts +17 -0
- package/exporter/ssg-adapters/gatsby/shared/diff-assets.ts +128 -0
- package/exporter/ssg-adapters/gatsby/shared/extract-assets.ts +75 -0
- package/exporter/ssg-adapters/gatsby/shared/gatsby-build.ts +58 -0
- package/exporter/ssg-adapters/gatsby/shared/render-rollback.ts +33 -0
- package/exporter/ssg-adapters/gatsby/shared/sync-render.ts +298 -0
- package/exporter/ssg-adapters/gatsby/shared/types.ts +35 -0
- package/gatsby-browser.tsx +41 -58
- package/gatsby-config.ts +10 -17
- package/gatsby-node.ts +20 -79
- package/gatsby-ssr.tsx +2 -1
- package/package.json +41 -78
- package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
- package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
- package/src/components/Head.tsx +28 -73
- package/src/components/template.tsx +6 -29
- package/src/gatsby-node-utils.ts +81 -2
- package/src/html.tsx +2 -11
- package/src/types.ts +3 -3
- package/tsconfig.commands.json +36 -0
- package/tsconfig.exporter.json +21 -0
- package/tsconfig.json +5 -3
- package/build/adapters/gatsby/index.d.ts +0 -4
- package/build/adapters/gatsby/utils.d.ts +0 -26
- package/build/artifacts/index.d.ts +0 -6
- package/build/constants/envs.d.ts +0 -37
- package/build/constants/index.d.ts +0 -57
- package/build/end-render.js +0 -74
- package/build/end-render.js.map +0 -7
- package/build/errors/index.d.ts +0 -15
- package/build/index.js.map +0 -7
- package/build/prepare-domains-render.js +0 -73
- package/build/prepare-domains-render.js.map +0 -7
- package/build/react/Favicon/index.d.ts +0 -5
- package/build/registers/api.d.ts +0 -9
- package/build/registers/gatsby.d.ts +0 -9
- package/build/registers/index.d.ts +0 -3
- package/build/reset-render.js +0 -74
- package/build/reset-render.js.map +0 -7
- package/build/services/register.d.ts +0 -36
- package/build/services/settings.d.ts +0 -4
- package/build/start-render.js +0 -100
- package/build/start-render.js.map +0 -7
- package/build/upload-search-content.js +0 -74
- package/build/upload-search-content.js.map +0 -7
- package/build/utils/alerts.d.ts +0 -3
- package/build/utils/cache.d.ts +0 -35
- package/build/utils/core-utils.d.ts +0 -107
- package/build/utils/create-build-data.d.ts +0 -8
- package/build/utils/domains.d.ts +0 -13
- package/build/utils/folders.d.ts +0 -53
- package/build/utils/loggin.d.ts +0 -51
- package/build/utils/render.d.ts +0 -13
- package/build/utils/searches.d.ts +0 -15
- package/build/utils/sites.d.ts +0 -31
- package/build/utils/store.d.ts +0 -81
- package/cx.config.d.ts +0 -5
- package/cx.config.js +0 -36
- package/exporter/adapters/gatsby/index.ts +0 -182
- package/exporter/adapters/gatsby/utils.ts +0 -186
- package/exporter/artifacts/README.md +0 -34
- package/exporter/artifacts/index.ts +0 -33
- package/exporter/commands/move-assets.ts +0 -11
- package/exporter/constants/envs.ts +0 -94
- package/exporter/constants/index.ts +0 -129
- package/exporter/errors/index.ts +0 -40
- package/exporter/registers/api.ts +0 -14
- package/exporter/registers/gatsby.ts +0 -14
- package/exporter/registers/index.ts +0 -4
- package/exporter/services/register.ts +0 -113
- package/exporter/services/settings.ts +0 -17
- package/exporter/utils/alerts.ts +0 -29
- package/exporter/utils/api.ts +0 -243
- package/exporter/utils/cache.ts +0 -142
- package/exporter/utils/core-utils.ts +0 -458
- package/exporter/utils/create-build-data.ts +0 -17
- package/exporter/utils/domains.ts +0 -39
- package/exporter/utils/folders.ts +0 -320
- package/exporter/utils/health-checks.ts +0 -64
- package/exporter/utils/loggin.ts +0 -184
- package/exporter/utils/render.ts +0 -71
- package/exporter/utils/searches.ts +0 -156
- package/exporter/utils/sites.ts +0 -312
- package/exporter/utils/store.ts +0 -314
- package/src/README.md +0 -7
- package/start-render.js +0 -7
- /package/build/commands/{move-assets.d.ts → prepare-assets-directory.d.ts} +0 -0
- /package/build/{utils → core}/images.d.ts +0 -0
- /package/build/{utils → core}/instance.d.ts +0 -0
- /package/build/react/{Favicon → GriddoFavicon}/utils.d.ts +0 -0
- /package/build/{constants → shared}/endpoints.d.ts +0 -0
- /package/build/{types → shared/types}/templates.d.ts +0 -0
- /package/exporter/react/{Favicon → GriddoFavicon}/utils.ts +0 -0
- /package/exporter/{types → shared/types}/templates.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { Core, Fields } from "@griddo/core";
|
|
1
2
|
import type { EndSiteRenderBody } from "./api";
|
|
2
3
|
import type { Site } from "./sites";
|
|
3
|
-
import type { Core, Fields } from "@griddo/core";
|
|
4
4
|
|
|
5
5
|
interface Settings {
|
|
6
6
|
apiVersion?: string;
|
|
@@ -55,24 +55,22 @@ type Domain = {
|
|
|
55
55
|
url: string;
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
type Domains =
|
|
58
|
+
type Domains = Domain[];
|
|
59
59
|
|
|
60
60
|
/** Describes the type of build process data object. */
|
|
61
61
|
type BuildProcessData = Record<string, EndSiteRenderBody>;
|
|
62
62
|
|
|
63
63
|
type Robot = { path: string; content: string };
|
|
64
64
|
|
|
65
|
-
type Robots =
|
|
65
|
+
type Robots = Robot[];
|
|
66
66
|
|
|
67
67
|
interface RenderInfo {
|
|
68
68
|
buildProcessData: BuildProcessData;
|
|
69
|
-
createdPages:
|
|
70
|
-
sitesToPublish:
|
|
69
|
+
createdPages: number[];
|
|
70
|
+
sitesToPublish: Site[];
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
type
|
|
74
|
-
(...args: Array<unknown>) => unknown | Promise<unknown>
|
|
75
|
-
>;
|
|
73
|
+
type LifeCycleAction = (...args: unknown[]) => void | Promise<void>;
|
|
76
74
|
|
|
77
75
|
type LifeCyclesNames =
|
|
78
76
|
| "Init"
|
|
@@ -82,12 +80,11 @@ type LifeCyclesNames =
|
|
|
82
80
|
| "SSG"
|
|
83
81
|
| "Relocation"
|
|
84
82
|
| "Meta"
|
|
85
|
-
| "
|
|
83
|
+
| "Sync"
|
|
86
84
|
| "Clean"
|
|
87
85
|
| "Close"
|
|
88
86
|
| "HealthCheck"
|
|
89
|
-
| "Close"
|
|
90
|
-
| "__DEBUG__";
|
|
87
|
+
| "Close";
|
|
91
88
|
|
|
92
89
|
type PlaceholderPath =
|
|
93
90
|
| "__exports"
|
|
@@ -97,13 +94,11 @@ type PlaceholderPath =
|
|
|
97
94
|
| "__components"
|
|
98
95
|
| "__root"
|
|
99
96
|
| "__exports_dist"
|
|
100
|
-
| "
|
|
97
|
+
| "__sites";
|
|
101
98
|
|
|
102
99
|
interface CXConfig {
|
|
103
|
-
proDomain: string;
|
|
104
100
|
griddoVersion: string;
|
|
105
101
|
buildReportFileName: string;
|
|
106
|
-
paths: (domain?: string) => Record<PlaceholderPath, string>;
|
|
107
102
|
}
|
|
108
103
|
|
|
109
104
|
interface AIEmbeddingsResponse {
|
|
@@ -111,16 +106,17 @@ interface AIEmbeddingsResponse {
|
|
|
111
106
|
message: string;
|
|
112
107
|
}
|
|
113
108
|
|
|
114
|
-
interface
|
|
115
|
-
disposables:
|
|
116
|
-
cacheables:
|
|
117
|
-
initials:
|
|
118
|
-
archivables:
|
|
109
|
+
interface RenderArtifacts {
|
|
110
|
+
disposables: string[];
|
|
111
|
+
cacheables: string[];
|
|
112
|
+
initials: string[];
|
|
113
|
+
archivables: string[];
|
|
114
|
+
restaurable: string[];
|
|
119
115
|
}
|
|
120
116
|
|
|
121
117
|
export type {
|
|
122
118
|
AIEmbeddingsResponse,
|
|
123
|
-
|
|
119
|
+
RenderArtifacts,
|
|
124
120
|
BuildProcessData,
|
|
125
121
|
CXConfig,
|
|
126
122
|
Domain,
|
|
@@ -134,5 +130,5 @@ export type {
|
|
|
134
130
|
Robot,
|
|
135
131
|
Robots,
|
|
136
132
|
Settings,
|
|
137
|
-
|
|
133
|
+
LifeCycleAction,
|
|
138
134
|
};
|
|
@@ -4,7 +4,7 @@ export type Header = {
|
|
|
4
4
|
id: number;
|
|
5
5
|
isDefault: boolean;
|
|
6
6
|
language: number;
|
|
7
|
-
navigationLanguages:
|
|
7
|
+
navigationLanguages: { navigationId: number }[];
|
|
8
8
|
setAsDefault: boolean;
|
|
9
9
|
theme: null | string;
|
|
10
10
|
title: string;
|
|
@@ -17,9 +17,9 @@ export type Footer = {
|
|
|
17
17
|
id: number;
|
|
18
18
|
isDefault: boolean;
|
|
19
19
|
language: number;
|
|
20
|
-
navigationLanguages:
|
|
20
|
+
navigationLanguages: { navigationId: number }[];
|
|
21
21
|
setAsDefault: boolean;
|
|
22
22
|
theme: null | string;
|
|
23
23
|
title: string;
|
|
24
|
-
type: "
|
|
24
|
+
type: "footer";
|
|
25
25
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { Core, Fields } from "@griddo/core";
|
|
1
2
|
import type { SocialsResponse } from "./api";
|
|
2
3
|
import type { Settings } from "./global";
|
|
3
4
|
import type { Site } from "./sites";
|
|
4
|
-
import type { Core, Fields } from "@griddo/core";
|
|
5
5
|
|
|
6
6
|
// TODO: In @griddo/core the type Core.Page has header/footer as React-Types,
|
|
7
7
|
// but API return `number | null`.
|
|
@@ -35,7 +35,7 @@ export type GriddoSinglePage = Core.Page & {
|
|
|
35
35
|
|
|
36
36
|
export type GriddoListPage = Core.Page & {
|
|
37
37
|
page: APIPageObject;
|
|
38
|
-
pages:
|
|
38
|
+
pages: Fields.QueriedDataItem[][];
|
|
39
39
|
isRoot?: boolean;
|
|
40
40
|
defaultLang?: Core.SiteLanguage;
|
|
41
41
|
template: {
|
|
@@ -45,7 +45,7 @@ export type GriddoListPage = Core.Page & {
|
|
|
45
45
|
activeSectionSlug: string;
|
|
46
46
|
activeSectionBase: string;
|
|
47
47
|
};
|
|
48
|
-
totalQueriedItems:
|
|
48
|
+
totalQueriedItems: Fields.QueriedDataItem[];
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export type GriddoMultiPage = Core.Page & {
|
|
@@ -62,7 +62,7 @@ export interface AdditionalInfo {
|
|
|
62
62
|
griddoVersion: string;
|
|
63
63
|
instance?: string;
|
|
64
64
|
publicBaseUrl: string;
|
|
65
|
-
siteLangs:
|
|
65
|
+
siteLangs: Core.SiteLanguage[];
|
|
66
66
|
siteMetadata: Site["siteMetadata"];
|
|
67
67
|
siteSlug: string;
|
|
68
68
|
socials: SocialsResponse;
|
|
@@ -90,14 +90,14 @@ export interface PageAdditionalInfo extends AdditionalInfo {
|
|
|
90
90
|
export type MultiPageElement = {
|
|
91
91
|
component: string;
|
|
92
92
|
title: string | Required<Fields.Heading>;
|
|
93
|
-
elements:
|
|
94
|
-
componentModules:
|
|
93
|
+
elements: Record<string, unknown>[];
|
|
94
|
+
componentModules: Record<string, unknown>[];
|
|
95
95
|
sectionSlug: string;
|
|
96
96
|
metaTitle: string;
|
|
97
97
|
metaDescription: string;
|
|
98
98
|
};
|
|
99
99
|
|
|
100
|
-
export type MultiPageElements =
|
|
100
|
+
export type MultiPageElements = MultiPageElement[];
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* Gatsby page object format.
|
|
@@ -140,7 +140,7 @@ export type GriddoPageObject = {
|
|
|
140
140
|
siteMetadata: Site["siteMetadata"];
|
|
141
141
|
theme: string;
|
|
142
142
|
title: string;
|
|
143
|
-
siteLangs:
|
|
143
|
+
siteLangs: Core.SiteLanguage[];
|
|
144
144
|
siteOptions: AdditionalInfo["siteOptions"];
|
|
145
145
|
siteScript: string;
|
|
146
146
|
socials: SocialsResponse;
|
|
@@ -153,11 +153,10 @@ export interface Dimensions {
|
|
|
153
153
|
values: Record<string, string> | null;
|
|
154
154
|
contentSelect?: "group" | "individual" | null;
|
|
155
155
|
groupSelect?: string;
|
|
156
|
-
dimensionsSelect?:
|
|
156
|
+
dimensionsSelect?: string[];
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
export interface GatsbyPageTemplateProps
|
|
160
|
-
extends Omit<GriddoPageObject, "context"> {
|
|
159
|
+
export interface GatsbyPageTemplateProps extends Omit<GriddoPageObject, "context"> {
|
|
161
160
|
pageContext: GriddoPageObject["context"] & {
|
|
162
161
|
page: Core.Page;
|
|
163
162
|
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { RenderInfo } from "./global";
|
|
2
|
+
|
|
3
|
+
const RENDER_MODE = {
|
|
4
|
+
FROM_SCRATCH: "FROM_SCRATCH",
|
|
5
|
+
INCREMENTAL: "INCREMENTAL",
|
|
6
|
+
IDLE: "IDLE",
|
|
7
|
+
ERROR: "ERROR",
|
|
8
|
+
COMPLETED: "COMPLETED",
|
|
9
|
+
} as const;
|
|
10
|
+
|
|
11
|
+
type RenderMode = (typeof RENDER_MODE)[keyof typeof RENDER_MODE];
|
|
12
|
+
|
|
13
|
+
export interface RenderModeTuple {
|
|
14
|
+
renderMode: RenderMode;
|
|
15
|
+
reason?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type DomainLike = string;
|
|
19
|
+
|
|
20
|
+
type RenderDB = {
|
|
21
|
+
griddoVersion: string;
|
|
22
|
+
buildReportFileName: string;
|
|
23
|
+
sortedDomains: DomainLike[];
|
|
24
|
+
needsRollbackOnError: boolean;
|
|
25
|
+
currentRenderingDomain: string | null;
|
|
26
|
+
commitHash: string;
|
|
27
|
+
commitMessage: string;
|
|
28
|
+
paths: {
|
|
29
|
+
root: string;
|
|
30
|
+
cx: string;
|
|
31
|
+
ssg: string;
|
|
32
|
+
cxCache: string;
|
|
33
|
+
components: string;
|
|
34
|
+
exportsDir: string;
|
|
35
|
+
exportsDirBackup: string;
|
|
36
|
+
};
|
|
37
|
+
domains: {
|
|
38
|
+
[key: DomainLike]: {
|
|
39
|
+
renderMode?: RenderMode;
|
|
40
|
+
shouldBeRendered?: boolean;
|
|
41
|
+
isRendering?: boolean;
|
|
42
|
+
renderInfo?: RenderInfo;
|
|
43
|
+
renderModeReason?: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
interface Report {
|
|
49
|
+
authControl:
|
|
50
|
+
| {
|
|
51
|
+
Authorization: string;
|
|
52
|
+
"Cache-Control": string;
|
|
53
|
+
lang?: string | undefined;
|
|
54
|
+
}
|
|
55
|
+
| undefined;
|
|
56
|
+
sites: {
|
|
57
|
+
siteId: number;
|
|
58
|
+
publishHashes: string[];
|
|
59
|
+
siteHash: string | null;
|
|
60
|
+
unpublishHashes: string[];
|
|
61
|
+
publishPagesIds: number[];
|
|
62
|
+
}[];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { RENDER_MODE, type RenderDB, type RenderMode, type Report };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { Core } from "@griddo/core";
|
|
1
2
|
import type { SocialsResponse } from "./api";
|
|
2
3
|
import type { Footer, Header } from "./navigation";
|
|
3
|
-
import type { Core } from "@griddo/core";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Describes a Griddo site object from API.
|
|
@@ -28,12 +28,12 @@ export interface Site
|
|
|
28
28
|
> {
|
|
29
29
|
author: string;
|
|
30
30
|
deleted: number;
|
|
31
|
-
domains:
|
|
32
|
-
footers:
|
|
31
|
+
domains: Record<string, string>[];
|
|
32
|
+
footers: Footer[];
|
|
33
33
|
hash: string | null;
|
|
34
|
-
headers:
|
|
35
|
-
languages:
|
|
36
|
-
languageSites:
|
|
34
|
+
headers: Header[];
|
|
35
|
+
languages: Core.SiteLanguage[]; // in Core is number[]
|
|
36
|
+
languageSites: number[];
|
|
37
37
|
navigationModules: { header?: string; footer?: string } | null;
|
|
38
38
|
/**
|
|
39
39
|
* Array of all pages (from day 0): published, unpublished and deleted
|
|
@@ -41,9 +41,8 @@ export interface Site
|
|
|
41
41
|
* `select/site/33/pages` -> [{id,label}, {id,label}, {id,label}] // array of published, pending, unpublished... page objects
|
|
42
42
|
* `select/site/33/pages?liveStatus=active` -> // array of publishedpage objects
|
|
43
43
|
*/
|
|
44
|
-
pages:
|
|
45
|
-
onlinePages:
|
|
46
|
-
changedPages: Array<number>;
|
|
44
|
+
pages: number[];
|
|
45
|
+
onlinePages: number[];
|
|
47
46
|
published: string;
|
|
48
47
|
rendering: boolean;
|
|
49
48
|
renderingHours: number;
|
|
@@ -52,23 +51,23 @@ export interface Site
|
|
|
52
51
|
smallAvatar: string;
|
|
53
52
|
updated: boolean;
|
|
54
53
|
pagesStatus: {
|
|
55
|
-
active:
|
|
56
|
-
uploadPending:
|
|
57
|
-
offlinePending:
|
|
58
|
-
offline:
|
|
59
|
-
deleted:
|
|
54
|
+
active: number[];
|
|
55
|
+
uploadPending: number[];
|
|
56
|
+
offlinePending: number[];
|
|
57
|
+
offline: number[];
|
|
58
|
+
deleted: number[];
|
|
60
59
|
};
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
export interface SiteData {
|
|
64
63
|
siteInfo: Site;
|
|
65
|
-
validPagesIds:
|
|
64
|
+
validPagesIds: number[];
|
|
66
65
|
siteHash: string | null;
|
|
67
|
-
unpublishHashes:
|
|
68
|
-
siteLangs:
|
|
66
|
+
unpublishHashes: string[];
|
|
67
|
+
siteLangs: Core.SiteLanguage[];
|
|
69
68
|
defaultLang: Core.SiteLanguage | undefined;
|
|
70
|
-
headers:
|
|
71
|
-
footers:
|
|
69
|
+
headers: Header[];
|
|
70
|
+
footers: Footer[];
|
|
72
71
|
socials: SocialsResponse;
|
|
73
72
|
}
|
|
74
73
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Core } from "@griddo/core";
|
|
2
|
+
import type { Dimensions, GriddoPageObject } from "@griddo/cx";
|
|
3
|
+
import type { HeadProps } from "gatsby";
|
|
4
|
+
|
|
5
|
+
interface CustomHeadProps extends HeadProps {
|
|
6
|
+
pageContext: GriddoPageObject["context"] & {
|
|
7
|
+
page: Core.Page & {
|
|
8
|
+
defaultLang: { id: number };
|
|
9
|
+
dimensions: Dimensions;
|
|
10
|
+
disableHrefLangs: number[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type { CustomHeadProps };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
import type { SSG } from "../shared/types";
|
|
3
|
+
|
|
4
|
+
import fsp from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
|
|
7
|
+
import { rmDirs } from "../../../core/fs";
|
|
8
|
+
import { RENDER_MODE } from "../../../shared/types/render";
|
|
9
|
+
|
|
10
|
+
export async function cleanAction(context: RenderContext<SSG>) {
|
|
11
|
+
const {
|
|
12
|
+
renderArtifacts,
|
|
13
|
+
ssg: { ssgArtifacts },
|
|
14
|
+
pathsHydratedWithDomain: { __cache, __exports },
|
|
15
|
+
renderMode,
|
|
16
|
+
} = context;
|
|
17
|
+
|
|
18
|
+
if (renderMode === RENDER_MODE.FROM_SCRATCH) {
|
|
19
|
+
await fsp.rm(path.join(__cache, ".cache"), { recursive: true, force: true });
|
|
20
|
+
await fsp.rm(path.join(__exports, "dist"), { recursive: true, force: true });
|
|
21
|
+
await fsp.rm(path.join(__exports, "assets"), { recursive: true, force: true });
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
await rmDirs(renderArtifacts.disposables);
|
|
25
|
+
await rmDirs(ssgArtifacts.disposables);
|
|
26
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
import type { SSG } from "../shared/types";
|
|
3
|
+
|
|
4
|
+
import { rmDirs } from "../../../core/fs";
|
|
5
|
+
import { updateCommitFile } from "../../../services/render";
|
|
6
|
+
|
|
7
|
+
export async function closeAction(context: RenderContext<SSG>) {
|
|
8
|
+
const {
|
|
9
|
+
renderArtifacts,
|
|
10
|
+
ssg: { ssgArtifacts },
|
|
11
|
+
pathsHydratedWithDomain: { __cache },
|
|
12
|
+
} = context;
|
|
13
|
+
|
|
14
|
+
await rmDirs(renderArtifacts.disposables);
|
|
15
|
+
await rmDirs(ssgArtifacts.disposables);
|
|
16
|
+
await updateCommitFile({ basePath: __cache });
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
|
|
3
|
+
import { createStore } from "../../../services/store";
|
|
4
|
+
|
|
5
|
+
export async function dataAction(context: RenderContext) {
|
|
6
|
+
const {
|
|
7
|
+
domain,
|
|
8
|
+
renderMode,
|
|
9
|
+
renderMetadata: { griddoVersion },
|
|
10
|
+
pathsHydratedWithDomain: { __root },
|
|
11
|
+
} = context;
|
|
12
|
+
|
|
13
|
+
const { pagesToCreate, pagesToDelete } = await createStore({
|
|
14
|
+
domain,
|
|
15
|
+
renderMode,
|
|
16
|
+
griddoVersion,
|
|
17
|
+
basePath: __root,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
context.pagesToCreate = pagesToCreate;
|
|
21
|
+
context.pagesToDelete = pagesToDelete;
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
|
|
3
|
+
import { assertRenderIsValid, markRenderAsCompleted } from "../../../services/render";
|
|
4
|
+
|
|
5
|
+
export async function healthCheckAction(context: RenderContext) {
|
|
6
|
+
const { domain } = context;
|
|
7
|
+
|
|
8
|
+
await assertRenderIsValid(domain);
|
|
9
|
+
await markRenderAsCompleted(domain);
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
|
|
3
|
+
import { markRenderAsStarted } from "../../../services/render";
|
|
4
|
+
|
|
5
|
+
export async function initAction(context: RenderContext) {
|
|
6
|
+
const {
|
|
7
|
+
domain,
|
|
8
|
+
pathsHydratedWithDomain: { __root },
|
|
9
|
+
} = context;
|
|
10
|
+
|
|
11
|
+
await markRenderAsStarted({ basePath: __root, domain });
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
import type { SSG } from "../shared/types";
|
|
3
|
+
|
|
4
|
+
import { saveDetailRenderLog } from "../../../core/logger";
|
|
5
|
+
|
|
6
|
+
export async function logsAction(context: RenderContext<SSG>) {
|
|
7
|
+
const { domain } = context;
|
|
8
|
+
|
|
9
|
+
await saveDetailRenderLog(domain);
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
|
|
3
|
+
import { generateBuildReport } from "../../../services/render";
|
|
4
|
+
import { generateRobots } from "../../../services/robots";
|
|
5
|
+
import { generateSitemaps } from "../../../services/sitemaps";
|
|
6
|
+
|
|
7
|
+
export async function metaAction(context: RenderContext) {
|
|
8
|
+
const { domain } = context;
|
|
9
|
+
|
|
10
|
+
await generateBuildReport(domain);
|
|
11
|
+
await generateSitemaps(domain);
|
|
12
|
+
await generateRobots(domain);
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
|
|
3
|
+
import fsp from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
|
|
6
|
+
export async function relocationAction(context: RenderContext) {
|
|
7
|
+
const {
|
|
8
|
+
pathsHydratedWithDomain: { __root, __ssg },
|
|
9
|
+
} = context;
|
|
10
|
+
|
|
11
|
+
const src = path.join(__ssg, "public");
|
|
12
|
+
const dst = path.join(__root, "current-dist");
|
|
13
|
+
|
|
14
|
+
await fsp.rename(src, dst);
|
|
15
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
import type { SSG } from "../shared/types";
|
|
3
|
+
|
|
4
|
+
import { cpDirs, mvDirs } from "../../../core/fs";
|
|
5
|
+
import { RENDER_MODE } from "../../../shared/types/render";
|
|
6
|
+
|
|
7
|
+
export async function restoreAction(context: RenderContext<SSG>) {
|
|
8
|
+
const {
|
|
9
|
+
renderMode,
|
|
10
|
+
ssg: { ssgArtifacts },
|
|
11
|
+
renderArtifacts,
|
|
12
|
+
pathsHydratedWithDomain: { __components, __root, __cache, __ssg },
|
|
13
|
+
} = context;
|
|
14
|
+
|
|
15
|
+
await cpDirs(__components, __ssg, ["static"]);
|
|
16
|
+
|
|
17
|
+
if (renderMode === RENDER_MODE.INCREMENTAL) {
|
|
18
|
+
await mvDirs(__cache, __ssg, ssgArtifacts.cacheables);
|
|
19
|
+
await mvDirs(__cache, __root, renderArtifacts.cacheables);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
import type { SSG } from "../shared/types";
|
|
3
|
+
|
|
4
|
+
import { gatsbyBuild } from "../shared/gatsby-build";
|
|
5
|
+
|
|
6
|
+
export async function ssgAction(context: RenderContext<SSG>) {
|
|
7
|
+
const {
|
|
8
|
+
ssg: { assetPrefix },
|
|
9
|
+
} = context;
|
|
10
|
+
|
|
11
|
+
await gatsbyBuild(assetPrefix);
|
|
12
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { RenderContext } from "../../../shared/context";
|
|
2
|
+
import type { SSG } from "../shared/types";
|
|
3
|
+
|
|
4
|
+
import fsp from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
|
|
7
|
+
import { deleteDisposableSiteDirs, deleteEmptyDirectories, mvDirs } from "../../../core/fs";
|
|
8
|
+
import { RENDER_MODE } from "../../../shared/types/render";
|
|
9
|
+
import { extractAssetsFromDist } from "../shared/extract-assets";
|
|
10
|
+
import { SyncRender } from "../shared/sync-render";
|
|
11
|
+
|
|
12
|
+
export async function syncAction(context: RenderContext<SSG>) {
|
|
13
|
+
const {
|
|
14
|
+
renderMode,
|
|
15
|
+
renderArtifacts,
|
|
16
|
+
domain,
|
|
17
|
+
pagesToCreate,
|
|
18
|
+
pagesToDelete,
|
|
19
|
+
pathsHydratedWithDomain: { __root, __ssg, __cache, __exports },
|
|
20
|
+
ssg: { ssgArtifacts, assetPrefix },
|
|
21
|
+
} = context;
|
|
22
|
+
|
|
23
|
+
const needsAssetPrefix = !!assetPrefix && assetPrefix !== "";
|
|
24
|
+
const currentDist = path.join(__root, "current-dist");
|
|
25
|
+
const previousDist = path.join(__exports, "dist");
|
|
26
|
+
|
|
27
|
+
// caching...
|
|
28
|
+
await mvDirs(__root, __cache, renderArtifacts.cacheables, { override: true });
|
|
29
|
+
await mvDirs(__ssg, __cache, ssgArtifacts.cacheables, { override: true });
|
|
30
|
+
|
|
31
|
+
if (renderMode === RENDER_MODE.FROM_SCRATCH) {
|
|
32
|
+
await deleteDisposableSiteDirs(currentDist);
|
|
33
|
+
// Es render nuevo, así que el current-dist generado por gatsby hay que renombrarlo a dist
|
|
34
|
+
// porque muchas de las acciones posteriores asumen ese nombre en ese path...
|
|
35
|
+
// TODO: Cambiar eso y atomizar más las acciones.
|
|
36
|
+
await fsp.rm(previousDist, { force: true, recursive: true });
|
|
37
|
+
await fsp.rename(currentDist, previousDist);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (renderMode === RENDER_MODE.INCREMENTAL) {
|
|
41
|
+
await deleteDisposableSiteDirs(previousDist);
|
|
42
|
+
|
|
43
|
+
const syncRender = new SyncRender({
|
|
44
|
+
src: currentDist,
|
|
45
|
+
dst: previousDist,
|
|
46
|
+
pagesToCreate,
|
|
47
|
+
pagesToDelete,
|
|
48
|
+
artifactsToCopyToExports: ["build-report.json"],
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
await syncRender.execute();
|
|
52
|
+
// después syncRender.execute() currentDist (que lo hizo gatsby) ya no es necesario
|
|
53
|
+
// esta todo en __exports/dist porque syncRender.execute() ya sincroninizó.
|
|
54
|
+
await fsp.rm(currentDist, { force: true, recursive: true });
|
|
55
|
+
await deleteEmptyDirectories(path.join(__exports, "dist"));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (needsAssetPrefix) {
|
|
59
|
+
// TODO: Mejorar performance
|
|
60
|
+
await extractAssetsFromDist(domain);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// rsync assets
|
|
64
|
+
await mvDirs(__root, __exports, renderArtifacts.archivables, { override: true });
|
|
65
|
+
}
|