@griddo/cx 11.7.12-rc.3 → 11.7.12
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 +226 -27
- package/build/adapters/gatsby/index.d.ts +4 -0
- package/build/adapters/gatsby/utils.d.ts +22 -0
- package/build/artifacts/index.d.ts +6 -0
- package/build/commands/end-render.d.ts +2 -0
- package/build/commands/move-assets.d.ts +1 -0
- package/build/commands/prepare-domains-render.d.ts +1 -0
- package/build/commands/reset-render.d.ts +2 -0
- package/build/commands/start-render.d.ts +2 -0
- package/build/commands/upload-search-content.d.ts +2 -0
- package/build/constants/endpoints.d.ts +19 -0
- package/build/constants/envs.d.ts +37 -0
- package/build/constants/index.d.ts +57 -0
- package/build/end-render.js +74 -0
- package/build/end-render.js.map +7 -0
- package/build/errors/errors-data.d.ts +22 -0
- package/build/errors/index.d.ts +15 -0
- package/build/index.d.ts +29 -0
- package/build/index.js +73 -0
- package/build/index.js.map +7 -0
- package/build/prepare-domains-render.js +73 -0
- package/build/prepare-domains-render.js.map +7 -0
- package/build/react/Favicon/index.d.ts +5 -0
- package/build/react/Favicon/utils.d.ts +9 -0
- package/build/react/GriddoIntegrations/index.d.ts +20 -0
- package/build/react/GriddoIntegrations/utils.d.ts +26 -0
- package/{react/index.tsx → build/react/index.d.ts} +0 -1
- package/build/react/index.js +3 -0
- package/build/registers/api.d.ts +9 -0
- package/build/registers/gatsby.d.ts +9 -0
- package/build/registers/index.d.ts +3 -0
- package/build/reset-render.js +74 -0
- package/build/reset-render.js.map +7 -0
- package/build/services/auth.d.ts +10 -0
- package/build/services/domains.d.ts +6 -0
- package/build/services/navigation.d.ts +50 -0
- package/build/services/reference-fields.d.ts +20 -0
- package/build/services/register.d.ts +36 -0
- package/build/services/robots.d.ts +19 -0
- package/build/services/settings.d.ts +4 -0
- package/build/services/sites.d.ts +29 -0
- package/build/services/store.d.ts +6 -0
- package/build/start-render.js +100 -0
- package/build/start-render.js.map +7 -0
- package/build/types/api.d.ts +142 -0
- package/build/types/global.d.ts +84 -0
- package/build/types/navigation.d.ts +28 -0
- package/build/types/pages.d.ts +144 -0
- package/build/types/sites.d.ts +57 -0
- package/build/types/templates.d.ts +8 -0
- package/build/upload-search-content.js +74 -0
- package/build/upload-search-content.js.map +7 -0
- package/build/utils/alerts.d.ts +3 -0
- package/build/utils/api.d.ts +23 -0
- package/build/utils/cache.d.ts +35 -0
- package/build/utils/core-utils.d.ts +107 -0
- package/build/utils/create-build-data.d.ts +8 -0
- package/build/utils/domains.d.ts +13 -0
- package/build/utils/folders.d.ts +53 -0
- package/build/utils/health-checks.d.ts +7 -0
- package/build/utils/images.d.ts +16 -0
- package/build/utils/instance.d.ts +21 -0
- package/build/utils/loggin.d.ts +51 -0
- package/build/utils/pages.d.ts +34 -0
- package/build/utils/render.d.ts +13 -0
- package/build/utils/searches.d.ts +15 -0
- package/build/utils/sites.d.ts +31 -0
- package/build/utils/store.d.ts +81 -0
- package/cx.config.d.ts +5 -0
- package/cx.config.js +36 -0
- package/exporter/adapters/gatsby/index.ts +153 -73
- package/exporter/adapters/gatsby/utils.ts +161 -0
- package/exporter/artifacts/README.md +34 -0
- package/exporter/artifacts/index.ts +33 -0
- package/exporter/build.sh +38 -4
- package/exporter/commands/end-render.ts +70 -72
- package/exporter/commands/move-assets.ts +11 -0
- package/exporter/commands/prepare-domains-render.ts +31 -143
- package/exporter/commands/reset-render.ts +3 -10
- package/exporter/commands/start-render.ts +45 -22
- package/exporter/commands/upload-search-content.ts +21 -194
- package/exporter/constants/endpoints.ts +1 -2
- package/exporter/constants/envs.ts +55 -57
- package/exporter/constants/index.ts +129 -0
- package/exporter/{constants/errors.ts → errors/errors-data.ts} +14 -24
- package/exporter/{utils/errors.ts → errors/index.ts} +9 -10
- package/exporter/index.ts +82 -0
- package/{react → exporter/react}/Favicon/index.tsx +7 -1
- package/{react → exporter/react}/GriddoIntegrations/index.tsx +22 -16
- package/{react → exporter/react}/GriddoIntegrations/utils.ts +9 -21
- package/exporter/react/index.tsx +11 -0
- package/exporter/registers/api.ts +14 -0
- package/exporter/registers/gatsby.ts +14 -0
- package/exporter/registers/index.ts +4 -0
- package/exporter/services/auth.ts +6 -7
- package/exporter/services/domains.ts +16 -0
- package/exporter/services/navigation.ts +10 -4
- package/exporter/services/reference-fields.ts +24 -9
- package/exporter/services/register.ts +113 -0
- package/exporter/services/robots.ts +16 -9
- package/exporter/services/settings.ts +17 -0
- package/exporter/services/sites.ts +24 -36
- package/exporter/services/store.ts +96 -107
- package/exporter/types/api.ts +28 -27
- package/exporter/types/global.ts +11 -8
- package/exporter/types/navigation.ts +1 -1
- package/exporter/types/pages.ts +3 -2
- package/exporter/types/sites.ts +2 -1
- package/exporter/utils/alerts.ts +29 -0
- package/exporter/utils/api.ts +75 -55
- package/exporter/utils/cache.ts +62 -37
- package/exporter/utils/core-utils.ts +272 -133
- package/exporter/utils/create-build-data.ts +17 -0
- package/exporter/utils/domains.ts +7 -10
- package/exporter/utils/folders.ts +98 -163
- package/exporter/utils/health-checks.ts +64 -0
- package/exporter/utils/images.ts +6 -1
- package/exporter/utils/instance.ts +13 -9
- package/exporter/utils/loggin.ts +91 -44
- package/exporter/utils/pages.ts +88 -23
- package/exporter/utils/render.ts +48 -180
- package/exporter/utils/searches.ts +156 -0
- package/exporter/utils/sites.ts +197 -19
- package/exporter/utils/store.ts +180 -87
- package/gatsby-browser.tsx +58 -41
- package/gatsby-config.ts +17 -10
- package/gatsby-node.ts +78 -17
- package/gatsby-ssr.tsx +1 -2
- package/package.json +86 -36
- package/src/README.md +7 -0
- package/src/components/Head.tsx +46 -13
- package/src/components/template.tsx +30 -8
- package/src/gatsby-node-utils.ts +2 -73
- package/src/html.tsx +11 -2
- package/src/types.ts +5 -5
- package/start-render.js +7 -0
- package/tsconfig.json +3 -5
- package/build/adapters/gatsby/actions/clean.js +0 -10
- package/build/adapters/gatsby/actions/clean.js.map +0 -1
- package/build/adapters/gatsby/actions/close.js +0 -12
- package/build/adapters/gatsby/actions/close.js.map +0 -1
- package/build/adapters/gatsby/actions/data.js +0 -18
- package/build/adapters/gatsby/actions/data.js.map +0 -1
- package/build/adapters/gatsby/actions/healthCheck.js +0 -10
- package/build/adapters/gatsby/actions/healthCheck.js.map +0 -1
- package/build/adapters/gatsby/actions/init.js +0 -22
- package/build/adapters/gatsby/actions/init.js.map +0 -1
- package/build/adapters/gatsby/actions/logs.js +0 -11
- package/build/adapters/gatsby/actions/logs.js.map +0 -1
- package/build/adapters/gatsby/actions/meta.js +0 -13
- package/build/adapters/gatsby/actions/meta.js.map +0 -1
- package/build/adapters/gatsby/actions/prepare.js +0 -9
- package/build/adapters/gatsby/actions/prepare.js.map +0 -1
- package/build/adapters/gatsby/actions/relocation.js +0 -15
- package/build/adapters/gatsby/actions/relocation.js.map +0 -1
- package/build/adapters/gatsby/actions/restore.js +0 -26
- package/build/adapters/gatsby/actions/restore.js.map +0 -1
- package/build/adapters/gatsby/actions/ssg.js +0 -9
- package/build/adapters/gatsby/actions/ssg.js.map +0 -1
- package/build/adapters/gatsby/actions/sync.js +0 -51
- package/build/adapters/gatsby/actions/sync.js.map +0 -1
- package/build/adapters/gatsby/index.js +0 -78
- package/build/adapters/gatsby/index.js.map +0 -1
- package/build/adapters/gatsby/shared/artifacts.js +0 -20
- package/build/adapters/gatsby/shared/artifacts.js.map +0 -1
- package/build/adapters/gatsby/shared/context.js +0 -31
- package/build/adapters/gatsby/shared/context.js.map +0 -1
- package/build/adapters/gatsby/shared/diff-assets.js +0 -101
- package/build/adapters/gatsby/shared/diff-assets.js.map +0 -1
- package/build/adapters/gatsby/shared/extract-assets.js +0 -58
- package/build/adapters/gatsby/shared/extract-assets.js.map +0 -1
- package/build/adapters/gatsby/shared/gatsby-build.js +0 -55
- package/build/adapters/gatsby/shared/gatsby-build.js.map +0 -1
- package/build/adapters/gatsby/shared/sync-render.js +0 -210
- package/build/adapters/gatsby/shared/sync-render.js.map +0 -1
- package/build/adapters/gatsby/shared/types.js +0 -3
- package/build/adapters/gatsby/shared/types.js.map +0 -1
- package/build/commands/end-render.js +0 -87
- package/build/commands/end-render.js.map +0 -1
- package/build/commands/prepare-assets-directory.js +0 -30
- package/build/commands/prepare-assets-directory.js.map +0 -1
- package/build/commands/prepare-domains-render.js +0 -133
- package/build/commands/prepare-domains-render.js.map +0 -1
- package/build/commands/reset-render.js +0 -21
- package/build/commands/reset-render.js.map +0 -1
- package/build/commands/start-render.js +0 -44
- package/build/commands/start-render.js.map +0 -1
- package/build/commands/upload-search-content.js +0 -180
- package/build/commands/upload-search-content.js.map +0 -1
- package/build/constants/endpoints.js +0 -43
- package/build/constants/endpoints.js.map +0 -1
- package/build/constants/envs.js +0 -68
- package/build/constants/envs.js.map +0 -1
- package/build/constants/errors.js +0 -81
- package/build/constants/errors.js.map +0 -1
- package/build/services/auth.js +0 -40
- package/build/services/auth.js.map +0 -1
- package/build/services/db-class.js +0 -49
- package/build/services/db-class.js.map +0 -1
- package/build/services/db.js +0 -34
- package/build/services/db.js.map +0 -1
- package/build/services/navigation.js +0 -96
- package/build/services/navigation.js.map +0 -1
- package/build/services/reference-fields.js +0 -131
- package/build/services/reference-fields.js.map +0 -1
- package/build/services/robots.js +0 -60
- package/build/services/robots.js.map +0 -1
- package/build/services/sites.js +0 -110
- package/build/services/sites.js.map +0 -1
- package/build/services/store.js +0 -257
- package/build/services/store.js.map +0 -1
- package/build/types/api.js +0 -3
- package/build/types/api.js.map +0 -1
- package/build/types/global.js +0 -3
- package/build/types/global.js.map +0 -1
- package/build/types/navigation.js +0 -3
- package/build/types/navigation.js.map +0 -1
- package/build/types/pages.js +0 -3
- package/build/types/pages.js.map +0 -1
- package/build/types/render.js +0 -10
- package/build/types/render.js.map +0 -1
- package/build/types/sites.js +0 -3
- package/build/types/sites.js.map +0 -1
- package/build/types/templates.js +0 -3
- package/build/types/templates.js.map +0 -1
- package/build/utils/api.js +0 -165
- package/build/utils/api.js.map +0 -1
- package/build/utils/artifacts.js +0 -38
- package/build/utils/artifacts.js.map +0 -1
- package/build/utils/brush.js +0 -30
- package/build/utils/brush.js.map +0 -1
- package/build/utils/cache.js +0 -106
- package/build/utils/cache.js.map +0 -1
- package/build/utils/check-environment-health.js +0 -73
- package/build/utils/check-environment-health.js.map +0 -1
- package/build/utils/core-utils.js +0 -270
- package/build/utils/core-utils.js.map +0 -1
- package/build/utils/domains.js +0 -37
- package/build/utils/domains.js.map +0 -1
- package/build/utils/errors.js +0 -30
- package/build/utils/errors.js.map +0 -1
- package/build/utils/folders.js +0 -341
- package/build/utils/folders.js.map +0 -1
- package/build/utils/images.js +0 -45
- package/build/utils/images.js.map +0 -1
- package/build/utils/instance.js +0 -66
- package/build/utils/instance.js.map +0 -1
- package/build/utils/loggin.js +0 -119
- package/build/utils/loggin.js.map +0 -1
- package/build/utils/npm-deps/find-up-simple.js +0 -75
- package/build/utils/npm-deps/find-up-simple.js.map +0 -1
- package/build/utils/npm-deps/pkg-dir.js +0 -20
- package/build/utils/npm-deps/pkg-dir.js.map +0 -1
- package/build/utils/npm-deps/xml-parser.js +0 -49
- package/build/utils/npm-deps/xml-parser.js.map +0 -1
- package/build/utils/pages.js +0 -359
- package/build/utils/pages.js.map +0 -1
- package/build/utils/render.js +0 -168
- package/build/utils/render.js.map +0 -1
- package/build/utils/sitemaps.js +0 -110
- package/build/utils/sitemaps.js.map +0 -1
- package/build/utils/sites.js +0 -105
- package/build/utils/sites.js.map +0 -1
- package/build/utils/store.js +0 -193
- package/build/utils/store.js.map +0 -1
- package/cli.mjs +0 -136
- package/exporter/adapters/gatsby/actions/clean.ts +0 -14
- package/exporter/adapters/gatsby/actions/close.ts +0 -17
- package/exporter/adapters/gatsby/actions/data.ts +0 -25
- package/exporter/adapters/gatsby/actions/healthCheck.ts +0 -10
- package/exporter/adapters/gatsby/actions/init.ts +0 -26
- package/exporter/adapters/gatsby/actions/logs.ts +0 -12
- package/exporter/adapters/gatsby/actions/meta.ts +0 -16
- package/exporter/adapters/gatsby/actions/prepare.ts +0 -9
- package/exporter/adapters/gatsby/actions/relocation.ts +0 -15
- package/exporter/adapters/gatsby/actions/restore.ts +0 -36
- package/exporter/adapters/gatsby/actions/ssg.ts +0 -12
- package/exporter/adapters/gatsby/actions/sync.ts +0 -71
- package/exporter/adapters/gatsby/shared/artifacts.ts +0 -16
- package/exporter/adapters/gatsby/shared/context.ts +0 -50
- package/exporter/adapters/gatsby/shared/diff-assets.ts +0 -113
- package/exporter/adapters/gatsby/shared/extract-assets.ts +0 -61
- package/exporter/adapters/gatsby/shared/gatsby-build.ts +0 -58
- package/exporter/adapters/gatsby/shared/sync-render.ts +0 -276
- package/exporter/adapters/gatsby/shared/types.ts +0 -35
- package/exporter/build-esbuild.noop +0 -42
- package/exporter/commands/prepare-assets-directory.ts +0 -30
- package/exporter/services/db-class.ts +0 -54
- package/exporter/services/db.ts +0 -32
- package/exporter/types/render.ts +0 -59
- package/exporter/utils/artifacts.ts +0 -38
- package/exporter/utils/brush.ts +0 -34
- package/exporter/utils/check-environment-health.ts +0 -84
- package/exporter/utils/npm-deps/find-up-simple.ts +0 -100
- package/exporter/utils/npm-deps/pkg-dir.ts +0 -17
- package/exporter/utils/npm-deps/xml-parser.ts +0 -57
- package/exporter/utils/sitemaps.ts +0 -129
- package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +0 -55
- package/plugins/gatsby-plugin-svgr-loader/package.json +0 -8
- package/react/DynamicScript/index.tsx +0 -33
- package/tsconfig.commands.json +0 -36
- package/tsconfig.exporter.json +0 -19
- /package/{react → exporter/react}/Favicon/utils.ts +0 -0
|
@@ -1,107 +1,105 @@
|
|
|
1
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import pkgDir from "pkg-dir";
|
|
7
|
+
|
|
7
8
|
import { AuthService } from "../services/auth";
|
|
8
9
|
import { endSiteRender } from "../services/sites";
|
|
10
|
+
import { getConfig } from "../utils/core-utils";
|
|
9
11
|
import { getInstanceDomains } from "../utils/domains";
|
|
10
|
-
import { throwError } from "../utils/errors";
|
|
11
|
-
import { pathExists } from "../utils/folders";
|
|
12
12
|
import { infoLog } from "../utils/loggin";
|
|
13
|
-
import { getRenderMetadataFromDB, getRenderMode, getRenderPathsFromDB } from "../utils/render";
|
|
14
13
|
|
|
15
|
-
const
|
|
14
|
+
const RENDER_BY_DOMAIN = process.env.GRIDDO_RENDER_BY_DOMAINS || "";
|
|
15
|
+
|
|
16
|
+
// Where we are going to find export dirs
|
|
17
|
+
const execBasePath = pkgDir.sync(path.resolve(__dirname, "../.."))!;
|
|
18
|
+
|
|
19
|
+
// Where we are going to find archived exports
|
|
20
|
+
const exportArchiveBasePath = path.resolve(execBasePath, "exports/sites");
|
|
21
|
+
|
|
22
|
+
type Report = {
|
|
23
|
+
authControl:
|
|
24
|
+
| {
|
|
25
|
+
Authorization: string;
|
|
26
|
+
"Cache-Control": string;
|
|
27
|
+
lang?: string | undefined;
|
|
28
|
+
}
|
|
29
|
+
| undefined;
|
|
30
|
+
sites: Array<{
|
|
31
|
+
siteId: number;
|
|
32
|
+
publishHashes: Array<string>;
|
|
33
|
+
siteHash: string | null;
|
|
34
|
+
unpublishHashes: Array<string>;
|
|
35
|
+
publishPagesIds: Array<number>;
|
|
36
|
+
}>;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
function getDomainRenderReport(domain: string) {
|
|
40
|
+
const reports: Array<Report> = [];
|
|
41
|
+
const { buildReportFileName } = getConfig();
|
|
16
42
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const buildReportFile = path.resolve(exportArchiveBasePath, domain, "dist", buildReportFileName);
|
|
43
|
+
const buildReportFile = path.resolve(
|
|
44
|
+
exportArchiveBasePath,
|
|
45
|
+
domain,
|
|
46
|
+
"dist",
|
|
47
|
+
buildReportFileName,
|
|
48
|
+
);
|
|
24
49
|
|
|
25
|
-
if (!(
|
|
26
|
-
|
|
27
|
-
throwError(ArtifactError);
|
|
50
|
+
if (!fs.existsSync(buildReportFile)) {
|
|
51
|
+
console.info(`Build report file "${buildReportFile}" not found.`);
|
|
28
52
|
}
|
|
29
53
|
|
|
30
|
-
|
|
31
|
-
}
|
|
54
|
+
const buildReport = JSON.parse(fs.readFileSync(buildReportFile, "utf-8"));
|
|
32
55
|
|
|
33
|
-
|
|
34
|
-
const sites = report.sites;
|
|
56
|
+
reports.push(buildReport);
|
|
35
57
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
infoLog(`Site (${siteId})`);
|
|
39
|
-
await endSiteRender(siteId, body);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
58
|
+
return reports;
|
|
59
|
+
}
|
|
42
60
|
|
|
43
|
-
async
|
|
44
|
-
const
|
|
45
|
-
|
|
61
|
+
(async () => {
|
|
62
|
+
const sendEndSiteRender = async (reports: Array<Report>) => {
|
|
63
|
+
for (const report of reports) {
|
|
64
|
+
const sites = report.sites;
|
|
46
65
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const [domain] = process.argv.slice(2);
|
|
50
|
-
const { renderMode } = await getRenderMode(domain);
|
|
66
|
+
for (const site of sites) {
|
|
67
|
+
const { siteId, ...body } = site;
|
|
51
68
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
console.info(`Site (${siteId})`);
|
|
70
|
+
|
|
71
|
+
await endSiteRender(siteId, body);
|
|
72
|
+
}
|
|
55
73
|
}
|
|
74
|
+
};
|
|
56
75
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
76
|
+
if (RENDER_BY_DOMAIN) {
|
|
77
|
+
await AuthService.login();
|
|
78
|
+
const domain = process.argv.splice(2)[0];
|
|
79
|
+
const reports = getDomainRenderReport(domain);
|
|
62
80
|
|
|
63
81
|
infoLog(`Sending ending call to ${domain} sites`);
|
|
64
82
|
|
|
65
|
-
for (const
|
|
66
|
-
site
|
|
67
|
-
|
|
83
|
+
for (const report of reports) {
|
|
84
|
+
for (const site of report.sites) {
|
|
85
|
+
site.publishHashes = [...new Set(site.publishHashes)];
|
|
86
|
+
site.unpublishHashes = [...new Set(site.unpublishHashes)];
|
|
87
|
+
}
|
|
68
88
|
}
|
|
69
89
|
|
|
70
|
-
await sendEndSiteRender(
|
|
90
|
+
await sendEndSiteRender(reports);
|
|
71
91
|
} else {
|
|
72
|
-
|
|
92
|
+
// Legacy render
|
|
73
93
|
const domains = await getInstanceDomains();
|
|
74
94
|
for (const domain of domains) {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
if (renderMode === "IDLE") {
|
|
78
|
-
infoLog(`Skipping build-end for domain ${domain} as it is marked as IDLE.`);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const report = await getRenderReport({
|
|
83
|
-
domain,
|
|
84
|
-
exportsSiteDir: __sites,
|
|
85
|
-
buildReportFileName,
|
|
86
|
-
});
|
|
95
|
+
const reports = getDomainRenderReport(domain);
|
|
87
96
|
|
|
88
97
|
infoLog(`Sending ending call to ${domain} sites`);
|
|
89
98
|
|
|
90
|
-
|
|
91
|
-
site.publishHashes = [...new Set(site.publishHashes)];
|
|
92
|
-
site.unpublishHashes = [...new Set(site.unpublishHashes)];
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
await sendEndSiteRender(report);
|
|
99
|
+
await sendEndSiteRender(reports);
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
async function main() {
|
|
101
|
-
await endRender();
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
main().catch((err) => {
|
|
102
|
+
})().catch((err) => {
|
|
105
103
|
console.error("Error", err?.stdout?.toString() || err);
|
|
106
104
|
process.exit(1);
|
|
107
105
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
const domainName = "pro-griddo";
|
|
5
|
+
const domainPath = path.resolve(
|
|
6
|
+
__dirname,
|
|
7
|
+
`../../../exports/sites/${domainName}`,
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
execSync(`mkdir -p ${domainPath}/assets/${domainName}`);
|
|
11
|
+
execSync(`cp -R ${domainPath}/assets/* ${domainPath}/assets/${domainName}`);
|
|
@@ -1,158 +1,46 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import fsp from "node:fs/promises";
|
|
1
|
+
import fs from "node:fs";
|
|
4
2
|
import path from "node:path";
|
|
5
3
|
|
|
6
|
-
import {
|
|
7
|
-
import { AuthService } from "../services/auth";
|
|
8
|
-
import { readDB, writeDB } from "../services/db";
|
|
4
|
+
import { getConfig } from "../utils/core-utils";
|
|
9
5
|
import { getInstanceDomains } from "../utils/domains";
|
|
10
|
-
import {
|
|
11
|
-
import { resolveComponentsPath } from "../utils/instance";
|
|
12
|
-
import { showExporterVersion } from "../utils/loggin";
|
|
13
|
-
import { pkgDir } from "../utils/npm-deps/pkg-dir";
|
|
14
|
-
import { resolveDomainRenderMode } from "../utils/render";
|
|
6
|
+
import { infoLog, successLog } from "../utils/loggin";
|
|
15
7
|
import { getSitesToRender } from "../utils/sites";
|
|
16
8
|
|
|
17
|
-
async
|
|
18
|
-
|
|
19
|
-
domains.map(async (domain) => {
|
|
20
|
-
// Get the sites to render for the domain
|
|
21
|
-
const { sitesToPublish, sitesToUnpublish } = await getSitesToRender(domain);
|
|
22
|
-
|
|
23
|
-
// Only count pages (offlinePending && publishPending) if sitesToPublish
|
|
24
|
-
// is not empty. Otherwise we set the domain has having 0 pages.
|
|
25
|
-
const pages: Array<number> = [];
|
|
26
|
-
|
|
27
|
-
if (sitesToPublish.length > 0) {
|
|
28
|
-
for (const site of sitesToPublish) {
|
|
29
|
-
// el site ya está publicado
|
|
30
|
-
if (site.isPublished && !site.shouldBeUpdated) {
|
|
31
|
-
const { pagesStatus } = site;
|
|
32
|
-
const { offlinePending, uploadPending } = pagesStatus;
|
|
33
|
-
const total = offlinePending.length + uploadPending.length;
|
|
34
|
-
pages.push(total);
|
|
35
|
-
}
|
|
36
|
-
// el site esta pendiente de publicar
|
|
37
|
-
if (site.isPublished && site.shouldBeUpdated) {
|
|
38
|
-
const { pagesStatus } = site;
|
|
39
|
-
const { offlinePending, uploadPending, active } = pagesStatus;
|
|
40
|
-
const total = offlinePending.length + uploadPending.length + active.length;
|
|
41
|
-
pages.push(total);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
} else if (sitesToUnpublish.length > 0) {
|
|
45
|
-
// si tiene sites para despublicar marcamos el dominio como que tiene 1 página
|
|
46
|
-
pages.push(1);
|
|
47
|
-
} else {
|
|
48
|
-
// si eldominio no tiene nada ni para publicar ni despublicar lomarcamos como 0
|
|
49
|
-
pages.push(0);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const totalPages = pages.reduce((a, b) => a + b);
|
|
53
|
-
|
|
54
|
-
return { domain, totalPages };
|
|
55
|
-
}),
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
return results;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function getDomainsSortedByNumberOfPages(
|
|
62
|
-
domainsInfo: Array<{
|
|
63
|
-
domain: string;
|
|
64
|
-
totalPages: number;
|
|
65
|
-
}>,
|
|
66
|
-
) {
|
|
67
|
-
domainsInfo.sort((a, b) => a.totalPages - b.totalPages);
|
|
68
|
-
|
|
69
|
-
return domainsInfo.map(({ domain }) => domain);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
async function initRender() {
|
|
73
|
-
const root = (await pkgDir({ cwd: path.resolve(__dirname, "../../..") })) || "";
|
|
74
|
-
const cx = root;
|
|
75
|
-
const ssg = path.resolve((await pkgDir({ cwd: __dirname })) || "");
|
|
76
|
-
const cxCache = path.resolve(root, ".cx-cache");
|
|
77
|
-
const components = resolveComponentsPath();
|
|
78
|
-
const exportsDir = path.join(root, "exports/sites");
|
|
9
|
+
(async () => {
|
|
10
|
+
infoLog("Checking domains size");
|
|
79
11
|
|
|
80
|
-
const
|
|
81
|
-
proDomainPrefix: "pro-",
|
|
82
|
-
griddoVersion,
|
|
83
|
-
buildReportFileName: "build-report.json",
|
|
84
|
-
sortedDomains: [],
|
|
85
|
-
domains: {},
|
|
86
|
-
paths: {
|
|
87
|
-
components,
|
|
88
|
-
cx,
|
|
89
|
-
cxCache,
|
|
90
|
-
exportsDir,
|
|
91
|
-
root,
|
|
92
|
-
ssg,
|
|
93
|
-
},
|
|
94
|
-
};
|
|
12
|
+
const { __cx } = getConfig().paths();
|
|
95
13
|
|
|
96
|
-
// create the main cache folder for cx if it doesn't exist.
|
|
97
|
-
if (!(await pathExists(cxCache))) {
|
|
98
|
-
await fsp.mkdir(cxCache, { recursive: true });
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
await writeDB(data);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
async function prepareDomains() {
|
|
105
|
-
await AuthService.login();
|
|
106
|
-
|
|
107
|
-
const db = await readDB();
|
|
108
|
-
|
|
109
|
-
const __ssg = db.paths.ssg;
|
|
110
14
|
const domains = await getInstanceDomains();
|
|
111
|
-
const
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
15
|
+
const domainsInfo = [];
|
|
16
|
+
const domainsFilePath = path.join(__cx, "domains.json");
|
|
17
|
+
|
|
18
|
+
for (const domain of domains) {
|
|
19
|
+
const { sitesToPublish } = await getSitesToRender(domain);
|
|
20
|
+
|
|
21
|
+
// Only count pages (changedPages) if sitesToPublish is not empty.
|
|
22
|
+
// Otherwise we set the domain has having 0 pages.
|
|
23
|
+
const pages = [];
|
|
24
|
+
if (sitesToPublish.length > 0) {
|
|
25
|
+
for (const site of sitesToPublish) {
|
|
26
|
+
pages.push(site.changedPages.length);
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
pages.push(0);
|
|
30
|
+
}
|
|
127
31
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
db.domains[domain].shouldBeRendered = shouldBeRendered;
|
|
131
|
-
db.domains[domain].renderModeReason = reason;
|
|
32
|
+
const totalPages = pages.reduce((a, b) => a + b);
|
|
33
|
+
domainsInfo.push({ domain, totalPages });
|
|
132
34
|
}
|
|
133
35
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
async function clean() {
|
|
138
|
-
const db = await readDB();
|
|
139
|
-
const { root: __root } = db.paths;
|
|
140
|
-
await removeDirs([path.join(__root, "apiCache")]);
|
|
141
|
-
}
|
|
36
|
+
// sort domains, smaller first
|
|
37
|
+
domainsInfo.sort((a, b) => a.totalPages - b.totalPages);
|
|
38
|
+
const domainSorted = domainsInfo.map(({ domain }) => domain);
|
|
142
39
|
|
|
143
|
-
|
|
144
|
-
* Prepare domains to render.
|
|
145
|
-
* It creates a `domains.json` file with the sorted list of domains and writes a
|
|
146
|
-
* `RENDE-STATE.json` file to persist a state between all cx-infra commands.
|
|
147
|
-
*/
|
|
148
|
-
async function main() {
|
|
149
|
-
await showExporterVersion();
|
|
150
|
-
await initRender();
|
|
151
|
-
await prepareDomains();
|
|
152
|
-
await clean();
|
|
153
|
-
}
|
|
40
|
+
fs.writeFileSync(domainsFilePath, JSON.stringify(domainSorted));
|
|
154
41
|
|
|
155
|
-
|
|
156
|
-
|
|
42
|
+
successLog(`Checking domains size`);
|
|
43
|
+
})().catch((err) => {
|
|
44
|
+
console.error(err);
|
|
157
45
|
process.exit(1);
|
|
158
46
|
});
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import { AuthService } from "../services/auth";
|
|
3
|
-
import { post } from "../utils/api";
|
|
1
|
+
#!/usr/bin/env node
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
endpoint: RESET_RENDER,
|
|
8
|
-
useApiCacheDir: false,
|
|
9
|
-
});
|
|
10
|
-
}
|
|
3
|
+
import { AuthService } from "../services/auth";
|
|
4
|
+
import { resetRender } from "../services/settings";
|
|
11
5
|
|
|
12
6
|
async function main() {
|
|
13
7
|
await AuthService.login();
|
|
14
8
|
await resetRender();
|
|
15
|
-
console.log(`The render status has been reset.`);
|
|
16
9
|
}
|
|
17
10
|
|
|
18
11
|
main().catch((err) => {
|
|
@@ -1,45 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { checkEnvironmentHealth } from "../utils/check-environment-health";
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { renderDomainsWithGatsbyAdapter } from "../adapters/gatsby";
|
|
3
|
+
import { RenderError } from "../errors";
|
|
5
4
|
import { getInstanceDomains } from "../utils/domains";
|
|
6
|
-
import {
|
|
5
|
+
import { errorLabelLog, showExporterVersion } from "../utils/loggin";
|
|
6
|
+
import { sendGriddoDefaultAlerts } from "../utils/render";
|
|
7
7
|
|
|
8
|
-
const
|
|
8
|
+
const GRIDDO_RENDER_DOMAINS = process.env.GRIDDO_RENDER_DOMAINS || "";
|
|
9
|
+
const RENDER_BY_DOMAIN = process.env.GRIDDO_RENDER_BY_DOMAINS || "";
|
|
9
10
|
|
|
10
11
|
async function startRender() {
|
|
11
12
|
try {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
// DOMAINS
|
|
14
|
+
// This block is just for the local instance renders.
|
|
15
|
+
if (GRIDDO_RENDER_DOMAINS) {
|
|
16
|
+
console.log("USANDO EL .ENV");
|
|
17
|
+
showExporterVersion();
|
|
18
|
+
for (const domain of GRIDDO_RENDER_DOMAINS.split(",")) {
|
|
19
|
+
await renderDomainsWithGatsbyAdapter(domain);
|
|
20
|
+
}
|
|
21
|
+
await sendGriddoDefaultAlerts();
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// This will render every domain opposed to the new logic of render each
|
|
26
|
+
// domain separately.
|
|
27
|
+
if (RENDER_BY_DOMAIN) {
|
|
28
|
+
const domain = process.argv.splice(2)[0];
|
|
29
|
+
|
|
30
|
+
if (!domain) {
|
|
31
|
+
console.log("Needs the domain name argument");
|
|
32
|
+
throw new RenderError();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
showExporterVersion();
|
|
36
|
+
await renderDomainsWithGatsbyAdapter(domain);
|
|
37
|
+
await sendGriddoDefaultAlerts();
|
|
38
|
+
|
|
39
|
+
process.exit(0);
|
|
15
40
|
} else {
|
|
16
|
-
|
|
41
|
+
showExporterVersion();
|
|
42
|
+
|
|
43
|
+
console.log("( Legacy Render Mode )\n");
|
|
44
|
+
|
|
17
45
|
const domains = await getInstanceDomains();
|
|
46
|
+
|
|
18
47
|
for (const domain of domains) {
|
|
19
|
-
await
|
|
48
|
+
await renderDomainsWithGatsbyAdapter(domain);
|
|
49
|
+
await sendGriddoDefaultAlerts();
|
|
20
50
|
}
|
|
51
|
+
process.exit(0);
|
|
21
52
|
}
|
|
22
|
-
|
|
23
|
-
return;
|
|
24
53
|
} catch (error) {
|
|
25
54
|
if (error instanceof RenderError) {
|
|
26
|
-
|
|
55
|
+
errorLabelLog("GRIDDO_ERROR InternalCXError");
|
|
27
56
|
process.exit(1);
|
|
28
57
|
}
|
|
29
58
|
|
|
30
|
-
|
|
59
|
+
errorLabelLog("GRIDDO_ERROR UnknownError");
|
|
31
60
|
console.error(error);
|
|
32
61
|
process.exit(1);
|
|
33
62
|
}
|
|
34
63
|
}
|
|
35
64
|
|
|
36
|
-
|
|
37
|
-
checkEnvironmentHealth();
|
|
38
|
-
await AuthService.login();
|
|
39
|
-
await startRender();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
main().catch((err) => {
|
|
65
|
+
startRender().catch((err) => {
|
|
43
66
|
console.error("Error", err?.stdout?.toString() || err);
|
|
44
67
|
process.exit(1);
|
|
45
68
|
});
|