@griddo/cx 11.7.6 → 11.7.7-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +27 -226
  2. package/build/adapters/gatsby/actions/clean.js +10 -0
  3. package/build/adapters/gatsby/actions/clean.js.map +1 -0
  4. package/build/adapters/gatsby/actions/close.js +12 -0
  5. package/build/adapters/gatsby/actions/close.js.map +1 -0
  6. package/build/adapters/gatsby/actions/data.js +18 -0
  7. package/build/adapters/gatsby/actions/data.js.map +1 -0
  8. package/build/adapters/gatsby/actions/healthCheck.js +10 -0
  9. package/build/adapters/gatsby/actions/healthCheck.js.map +1 -0
  10. package/build/adapters/gatsby/actions/init.js +9 -0
  11. package/build/adapters/gatsby/actions/init.js.map +1 -0
  12. package/build/adapters/gatsby/actions/meta.js +14 -0
  13. package/build/adapters/gatsby/actions/meta.js.map +1 -0
  14. package/build/adapters/gatsby/actions/prepare.js +9 -0
  15. package/build/adapters/gatsby/actions/prepare.js.map +1 -0
  16. package/build/adapters/gatsby/actions/relocation.js +15 -0
  17. package/build/adapters/gatsby/actions/relocation.js.map +1 -0
  18. package/build/adapters/gatsby/actions/restore.js +26 -0
  19. package/build/adapters/gatsby/actions/restore.js.map +1 -0
  20. package/build/adapters/gatsby/actions/ssg.js +9 -0
  21. package/build/adapters/gatsby/actions/ssg.js.map +1 -0
  22. package/build/adapters/gatsby/actions/sync.js +51 -0
  23. package/build/adapters/gatsby/actions/sync.js.map +1 -0
  24. package/build/adapters/gatsby/index.js +79 -0
  25. package/build/adapters/gatsby/index.js.map +1 -0
  26. package/build/adapters/gatsby/shared/context.js +31 -0
  27. package/build/adapters/gatsby/shared/context.js.map +1 -0
  28. package/build/adapters/gatsby/shared/diff-assets.js +101 -0
  29. package/build/adapters/gatsby/shared/diff-assets.js.map +1 -0
  30. package/build/adapters/gatsby/shared/extract-assets.js +58 -0
  31. package/build/adapters/gatsby/shared/extract-assets.js.map +1 -0
  32. package/build/adapters/gatsby/shared/gatsby-build.js +49 -0
  33. package/build/adapters/gatsby/shared/gatsby-build.js.map +1 -0
  34. package/build/adapters/gatsby/shared/sync-render.js +210 -0
  35. package/build/adapters/gatsby/shared/sync-render.js.map +1 -0
  36. package/build/adapters/gatsby/shared/types.js +3 -0
  37. package/build/adapters/gatsby/shared/types.js.map +1 -0
  38. package/build/commands/end-render.js +88 -0
  39. package/build/commands/end-render.js.map +1 -0
  40. package/build/commands/prepare-assets-directory.js +32 -0
  41. package/build/commands/prepare-assets-directory.js.map +1 -0
  42. package/build/commands/prepare-domains-render.js +133 -0
  43. package/build/commands/prepare-domains-render.js.map +1 -0
  44. package/build/commands/reset-render.js +22 -0
  45. package/build/commands/reset-render.js.map +1 -0
  46. package/build/commands/start-render.js +45 -0
  47. package/build/commands/start-render.js.map +1 -0
  48. package/build/commands/upload-search-content.js +180 -0
  49. package/build/commands/upload-search-content.js.map +1 -0
  50. package/build/constants/endpoints.js +42 -0
  51. package/build/constants/endpoints.js.map +1 -0
  52. package/build/constants/envs.js +68 -0
  53. package/build/constants/envs.js.map +1 -0
  54. package/build/constants/errors.js +81 -0
  55. package/build/constants/errors.js.map +1 -0
  56. package/build/services/auth.js +40 -0
  57. package/build/services/auth.js.map +1 -0
  58. package/build/services/db-class.js +49 -0
  59. package/build/services/db-class.js.map +1 -0
  60. package/build/services/db.js +34 -0
  61. package/build/services/db.js.map +1 -0
  62. package/build/services/navigation.js +96 -0
  63. package/build/services/navigation.js.map +1 -0
  64. package/build/services/reference-fields.js +131 -0
  65. package/build/services/reference-fields.js.map +1 -0
  66. package/build/services/robots.js +60 -0
  67. package/build/services/robots.js.map +1 -0
  68. package/build/services/sites.js +109 -0
  69. package/build/services/sites.js.map +1 -0
  70. package/build/services/store.js +282 -0
  71. package/build/services/store.js.map +1 -0
  72. package/build/types/api.js +3 -0
  73. package/build/types/api.js.map +1 -0
  74. package/build/types/global.js +3 -0
  75. package/build/types/global.js.map +1 -0
  76. package/build/types/navigation.js +3 -0
  77. package/build/types/navigation.js.map +1 -0
  78. package/build/types/pages.js +3 -0
  79. package/build/types/pages.js.map +1 -0
  80. package/build/types/render.js +10 -0
  81. package/build/types/render.js.map +1 -0
  82. package/build/types/sites.js +3 -0
  83. package/build/types/sites.js.map +1 -0
  84. package/build/types/templates.js +3 -0
  85. package/build/types/templates.js.map +1 -0
  86. package/build/utils/api.js +161 -0
  87. package/build/utils/api.js.map +1 -0
  88. package/build/utils/artifacts.js +34 -0
  89. package/build/utils/artifacts.js.map +1 -0
  90. package/build/utils/brush.js +30 -0
  91. package/build/utils/brush.js.map +1 -0
  92. package/build/utils/cache.js +106 -0
  93. package/build/utils/cache.js.map +1 -0
  94. package/build/utils/check-health.js +68 -0
  95. package/build/utils/check-health.js.map +1 -0
  96. package/build/utils/core-utils.js +283 -0
  97. package/build/utils/core-utils.js.map +1 -0
  98. package/build/utils/domains.js +37 -0
  99. package/build/utils/domains.js.map +1 -0
  100. package/build/utils/errors.js +30 -0
  101. package/build/utils/errors.js.map +1 -0
  102. package/build/utils/folders.js +362 -0
  103. package/build/utils/folders.js.map +1 -0
  104. package/build/utils/images.js +45 -0
  105. package/build/utils/images.js.map +1 -0
  106. package/build/utils/instance.js +66 -0
  107. package/build/utils/instance.js.map +1 -0
  108. package/build/utils/loggin.js +108 -0
  109. package/build/utils/loggin.js.map +1 -0
  110. package/build/utils/pages.js +359 -0
  111. package/build/utils/pages.js.map +1 -0
  112. package/build/utils/render.js +144 -0
  113. package/build/utils/render.js.map +1 -0
  114. package/build/utils/sites.js +240 -0
  115. package/build/utils/sites.js.map +1 -0
  116. package/build/utils/store.js +193 -0
  117. package/build/utils/store.js.map +1 -0
  118. package/exporter/adapters/gatsby/actions/clean.ts +14 -0
  119. package/exporter/adapters/gatsby/actions/close.ts +17 -0
  120. package/exporter/adapters/gatsby/actions/data.ts +25 -0
  121. package/exporter/adapters/gatsby/actions/healthCheck.ts +10 -0
  122. package/exporter/adapters/gatsby/actions/init.ts +12 -0
  123. package/exporter/adapters/gatsby/actions/meta.ts +18 -0
  124. package/exporter/adapters/gatsby/actions/prepare.ts +9 -0
  125. package/exporter/adapters/gatsby/actions/relocation.ts +15 -0
  126. package/exporter/adapters/gatsby/actions/restore.ts +36 -0
  127. package/exporter/adapters/gatsby/actions/ssg.ts +12 -0
  128. package/exporter/adapters/gatsby/actions/sync.ts +71 -0
  129. package/exporter/adapters/gatsby/index.ts +67 -147
  130. package/exporter/adapters/gatsby/shared/context.ts +50 -0
  131. package/exporter/adapters/gatsby/shared/diff-assets.ts +113 -0
  132. package/exporter/adapters/gatsby/shared/extract-assets.ts +61 -0
  133. package/exporter/adapters/gatsby/shared/gatsby-build.ts +54 -0
  134. package/exporter/adapters/gatsby/shared/sync-render.ts +276 -0
  135. package/exporter/adapters/gatsby/shared/types.ts +35 -0
  136. package/exporter/build-esbuild.noop +42 -0
  137. package/exporter/build.sh +4 -38
  138. package/exporter/commands/end-render.ts +73 -69
  139. package/exporter/commands/prepare-assets-directory.ts +33 -0
  140. package/exporter/commands/prepare-domains-render.ts +144 -31
  141. package/exporter/commands/reset-render.ts +10 -1
  142. package/exporter/commands/start-render.ts +23 -44
  143. package/exporter/commands/upload-search-content.ts +194 -20
  144. package/exporter/constants/envs.ts +57 -55
  145. package/exporter/{errors/errors-data.ts → constants/errors.ts} +24 -14
  146. package/exporter/services/auth.ts +7 -6
  147. package/exporter/services/db-class.ts +54 -0
  148. package/exporter/services/db.ts +32 -0
  149. package/exporter/services/navigation.ts +4 -10
  150. package/exporter/services/reference-fields.ts +8 -23
  151. package/exporter/services/robots.ts +9 -16
  152. package/exporter/services/sites.ts +35 -24
  153. package/exporter/services/store.ts +120 -78
  154. package/exporter/types/api.ts +24 -27
  155. package/exporter/types/global.ts +7 -10
  156. package/exporter/types/navigation.ts +1 -1
  157. package/exporter/types/pages.ts +2 -3
  158. package/exporter/types/render.ts +59 -0
  159. package/exporter/types/sites.ts +1 -2
  160. package/exporter/utils/api.ts +46 -82
  161. package/exporter/utils/artifacts.ts +34 -0
  162. package/exporter/utils/brush.ts +34 -0
  163. package/exporter/utils/cache.ts +37 -62
  164. package/exporter/utils/check-health.ts +79 -0
  165. package/exporter/utils/core-utils.ts +129 -248
  166. package/exporter/utils/domains.ts +10 -7
  167. package/exporter/{errors/index.ts → utils/errors.ts} +10 -9
  168. package/exporter/utils/folders.ts +187 -95
  169. package/exporter/utils/images.ts +1 -6
  170. package/exporter/utils/instance.ts +9 -12
  171. package/exporter/utils/loggin.ts +32 -91
  172. package/exporter/utils/pages.ts +23 -88
  173. package/exporter/utils/render.ts +149 -48
  174. package/exporter/utils/sites.ts +81 -90
  175. package/exporter/utils/store.ts +87 -180
  176. package/gatsby-browser.tsx +41 -58
  177. package/gatsby-config.ts +6 -12
  178. package/gatsby-node.ts +15 -77
  179. package/gatsby-ssr.tsx +2 -1
  180. package/package.json +36 -78
  181. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
  182. package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
  183. package/{exporter/react → react}/Favicon/index.tsx +1 -7
  184. package/{exporter/react → react}/GriddoIntegrations/index.tsx +6 -14
  185. package/{exporter/react → react}/GriddoIntegrations/utils.ts +4 -9
  186. package/{build/react/index.d.ts → react/index.tsx} +1 -0
  187. package/src/components/Head.tsx +13 -46
  188. package/src/components/template.tsx +8 -30
  189. package/src/gatsby-node-utils.ts +91 -2
  190. package/src/html.tsx +2 -11
  191. package/src/types.ts +5 -5
  192. package/tsconfig.json +5 -3
  193. package/build/adapters/gatsby/index.d.ts +0 -4
  194. package/build/adapters/gatsby/utils.d.ts +0 -22
  195. package/build/artifacts/index.d.ts +0 -6
  196. package/build/commands/end-render.d.ts +0 -2
  197. package/build/commands/move-assets.d.ts +0 -1
  198. package/build/commands/prepare-domains-render.d.ts +0 -1
  199. package/build/commands/reset-render.d.ts +0 -2
  200. package/build/commands/start-render.d.ts +0 -2
  201. package/build/commands/upload-search-content.d.ts +0 -2
  202. package/build/constants/endpoints.d.ts +0 -19
  203. package/build/constants/envs.d.ts +0 -37
  204. package/build/constants/index.d.ts +0 -57
  205. package/build/end-render.js +0 -74
  206. package/build/end-render.js.map +0 -7
  207. package/build/errors/errors-data.d.ts +0 -22
  208. package/build/errors/index.d.ts +0 -15
  209. package/build/index.d.ts +0 -29
  210. package/build/index.js +0 -73
  211. package/build/index.js.map +0 -7
  212. package/build/prepare-domains-render.js +0 -73
  213. package/build/prepare-domains-render.js.map +0 -7
  214. package/build/react/Favicon/index.d.ts +0 -5
  215. package/build/react/Favicon/utils.d.ts +0 -9
  216. package/build/react/GriddoIntegrations/index.d.ts +0 -20
  217. package/build/react/GriddoIntegrations/utils.d.ts +0 -26
  218. package/build/react/index.js +0 -3
  219. package/build/registers/api.d.ts +0 -9
  220. package/build/registers/gatsby.d.ts +0 -9
  221. package/build/registers/index.d.ts +0 -3
  222. package/build/reset-render.js +0 -74
  223. package/build/reset-render.js.map +0 -7
  224. package/build/services/auth.d.ts +0 -10
  225. package/build/services/domains.d.ts +0 -6
  226. package/build/services/navigation.d.ts +0 -50
  227. package/build/services/reference-fields.d.ts +0 -20
  228. package/build/services/register.d.ts +0 -36
  229. package/build/services/robots.d.ts +0 -19
  230. package/build/services/settings.d.ts +0 -4
  231. package/build/services/sites.d.ts +0 -29
  232. package/build/services/store.d.ts +0 -6
  233. package/build/start-render.js +0 -100
  234. package/build/start-render.js.map +0 -7
  235. package/build/types/api.d.ts +0 -142
  236. package/build/types/global.d.ts +0 -84
  237. package/build/types/navigation.d.ts +0 -28
  238. package/build/types/pages.d.ts +0 -144
  239. package/build/types/sites.d.ts +0 -57
  240. package/build/types/templates.d.ts +0 -8
  241. package/build/upload-search-content.js +0 -74
  242. package/build/upload-search-content.js.map +0 -7
  243. package/build/utils/alerts.d.ts +0 -3
  244. package/build/utils/api.d.ts +0 -23
  245. package/build/utils/cache.d.ts +0 -35
  246. package/build/utils/core-utils.d.ts +0 -107
  247. package/build/utils/create-build-data.d.ts +0 -8
  248. package/build/utils/domains.d.ts +0 -13
  249. package/build/utils/folders.d.ts +0 -53
  250. package/build/utils/health-checks.d.ts +0 -7
  251. package/build/utils/images.d.ts +0 -16
  252. package/build/utils/instance.d.ts +0 -21
  253. package/build/utils/loggin.d.ts +0 -51
  254. package/build/utils/pages.d.ts +0 -34
  255. package/build/utils/render.d.ts +0 -13
  256. package/build/utils/searches.d.ts +0 -15
  257. package/build/utils/sites.d.ts +0 -31
  258. package/build/utils/store.d.ts +0 -81
  259. package/cx.config.d.ts +0 -5
  260. package/cx.config.js +0 -36
  261. package/exporter/adapters/gatsby/utils.ts +0 -161
  262. package/exporter/artifacts/README.md +0 -34
  263. package/exporter/artifacts/index.ts +0 -33
  264. package/exporter/commands/move-assets.ts +0 -11
  265. package/exporter/constants/index.ts +0 -129
  266. package/exporter/index.ts +0 -82
  267. package/exporter/react/index.tsx +0 -11
  268. package/exporter/registers/api.ts +0 -14
  269. package/exporter/registers/gatsby.ts +0 -14
  270. package/exporter/registers/index.ts +0 -4
  271. package/exporter/services/domains.ts +0 -16
  272. package/exporter/services/register.ts +0 -113
  273. package/exporter/services/settings.ts +0 -17
  274. package/exporter/utils/alerts.ts +0 -29
  275. package/exporter/utils/create-build-data.ts +0 -17
  276. package/exporter/utils/health-checks.ts +0 -64
  277. package/exporter/utils/searches.ts +0 -156
  278. package/src/README.md +0 -7
  279. package/start-render.js +0 -7
  280. /package/{exporter/react → react}/Favicon/utils.ts +0 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createAPICacheDir = createAPICacheDir;
7
+ exports.saveCache = saveCache;
8
+ exports.searchCacheData = searchCacheData;
9
+ exports.updatedSiteHash = updatedSiteHash;
10
+ const node_crypto_1 = __importDefault(require("node:crypto"));
11
+ const promises_1 = __importDefault(require("node:fs/promises"));
12
+ const node_path_1 = __importDefault(require("node:path"));
13
+ const folders_1 = require("../utils/folders");
14
+ const render_1 = require("./render");
15
+ /**
16
+ * Creates an `apiCache` dir to store pages fetched from them API.
17
+ */
18
+ async function createAPICacheDir(options) {
19
+ const { basePath } = options;
20
+ const apiCacheDir = node_path_1.default.join(basePath, "apiCache");
21
+ if (!(await (0, folders_1.pathExists)(apiCacheDir))) {
22
+ await promises_1.default.mkdir(apiCacheDir);
23
+ }
24
+ console.info("Cache initialized");
25
+ }
26
+ /**
27
+ * Generate a filename with a hash using a Petition object
28
+ * @param petition An object
29
+ */
30
+ async function generateFilenameWithHash(petition) {
31
+ const { __root } = await (0, render_1.getRenderPathsFromDB)();
32
+ const apiCacheDir = node_path_1.default.join(__root, "apiCache");
33
+ const hashSum = node_crypto_1.default.createHash("sha256");
34
+ hashSum.update(JSON.stringify(petition));
35
+ return `${apiCacheDir}/${hashSum.digest("hex")}`;
36
+ }
37
+ /**
38
+ * Save a file using a hash name.
39
+ *
40
+ * @param petition An object.
41
+ * @param content Content to be saved.
42
+ */
43
+ async function saveCache(petition, content) {
44
+ const stringContent = typeof content === "string" ? content : JSON.stringify(content);
45
+ const filename = await generateFilenameWithHash(petition);
46
+ const filepath = node_path_1.default.dirname(filename);
47
+ if (!(await (0, folders_1.pathExists)(filepath))) {
48
+ await promises_1.default.mkdir(filepath, { recursive: true });
49
+ }
50
+ await promises_1.default.writeFile(filename, stringContent, "utf8");
51
+ }
52
+ /**
53
+ * Search in the `apiCache` dir for a file using the petition as hash generator.
54
+ * Return the file content if found or null if not.
55
+ *
56
+ * @param petition An object
57
+ */
58
+ async function searchCacheData(petition) {
59
+ try {
60
+ const file = await generateFilenameWithHash(petition);
61
+ const fileContent = await promises_1.default.readFile(file, "utf8");
62
+ const jsonData = JSON.parse(fileContent);
63
+ return jsonData;
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ }
69
+ /**
70
+ * Get site hashes from the file as an object
71
+ */
72
+ async function getHashSites() {
73
+ const { __root } = await (0, render_1.getRenderPathsFromDB)();
74
+ const apiCacheDir = node_path_1.default.join(__root, "apiCache");
75
+ const siteHasFilename = `${apiCacheDir}/siteHash.json`;
76
+ try {
77
+ const fileContent = await promises_1.default.readFile(siteHasFilename, "utf8");
78
+ const jsonData = JSON.parse(fileContent);
79
+ return jsonData || {};
80
+ }
81
+ catch {
82
+ return {};
83
+ }
84
+ }
85
+ /**
86
+ * Update (write) the site hash file.
87
+ *
88
+ * @param siteId The id of the site.
89
+ * @param siteHash The has of the site.
90
+ */
91
+ async function updatedSiteHash(siteId, siteHash) {
92
+ const allHash = await getHashSites();
93
+ const lastHash = allHash[siteId];
94
+ const currentHash = siteHash || lastHash || Date.now();
95
+ const { __root } = await (0, render_1.getRenderPathsFromDB)();
96
+ const apiCacheDir = node_path_1.default.join(__root, "apiCache");
97
+ const siteHasFilename = `${apiCacheDir}/siteHash.json`;
98
+ if (currentHash !== lastHash) {
99
+ allHash[siteId] = currentHash;
100
+ await promises_1.default.writeFile(siteHasFilename, JSON.stringify(allHash), {
101
+ encoding: "utf-8",
102
+ });
103
+ }
104
+ return currentHash.toString();
105
+ }
106
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../exporter/utils/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.checkHealth = checkHealth;
5
+ const errors_1 = require("../constants/errors");
6
+ const core_utils_1 = require("./core-utils");
7
+ const errors_2 = require("./errors");
8
+ const GRIDDO_ENVS_VARS = [];
9
+ const GRIDDO_SKIP_BUILD_CHECKS = (0, core_utils_1.isTruthy)(process.env.GRIDDO_SKIP_BUILD_CHECKS);
10
+ /**
11
+ * Check if a list of environments variables exist with any value.
12
+ *
13
+ * @todo Also check the value.
14
+ * @param envs An array of environments variables
15
+ * @returns exists with (1) if there are missing envs vars
16
+ */
17
+ function checkEnvsVars(envs) {
18
+ const missingEnvs = envs.filter((envName) => {
19
+ return !process.env[envName];
20
+ });
21
+ if (missingEnvs.length) {
22
+ const missingEnvsMsg = missingEnvs.join("\n");
23
+ console.error(`Env check failed. These envs vars are missing: \n\n${missingEnvsMsg}`);
24
+ return false;
25
+ }
26
+ return true;
27
+ }
28
+ function checkEnvsVarsAndValues(envs) {
29
+ for (const env of envs) {
30
+ const [key, expected] = Object.entries(env)[0];
31
+ const actual = process.env[key];
32
+ if (actual !== expected) {
33
+ return false;
34
+ }
35
+ }
36
+ return true;
37
+ }
38
+ /**
39
+ * Check if the environment is secure to launch a render.
40
+ * If something fails then log an error message and exit from the process.
41
+ * Otherwise just return true.
42
+ */
43
+ function checkHealth() {
44
+ // Bypass the check using this env var, handy for local renders.
45
+ if (GRIDDO_SKIP_BUILD_CHECKS) {
46
+ console.info("Build health check skipped");
47
+ return true;
48
+ }
49
+ // Checklist
50
+ // check if it's setted
51
+ const areRequiredEnvsSet = checkEnvsVars(GRIDDO_ENVS_VARS);
52
+ // check if it's setted and the value
53
+ const areEnvsMatchingExpected = checkEnvsVarsAndValues([
54
+ {
55
+ GRIDDO_RENDER_BY_DOMAINS: "true",
56
+ },
57
+ ]);
58
+ // Render is safe if...
59
+ const isSafeToRender = areRequiredEnvsSet && areEnvsMatchingExpected;
60
+ // The environment is suitable for a build-render
61
+ if (isSafeToRender) {
62
+ console.info("\nBuild health check passed\n");
63
+ return true;
64
+ }
65
+ // Error
66
+ (0, errors_2.throwError)(errors_1.CheckHealthError);
67
+ }
68
+ //# sourceMappingURL=check-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-health.js","sourceRoot":"","sources":["../../exporter/utils/check-health.ts"],"names":[],"mappings":";;;;AAEA,gDAAuD;AACvD,6CAAwC;AACxC,qCAAsC;AAEtC,MAAM,gBAAgB,GAA0B,EAAE,CAAC;AACnD,MAAM,wBAAwB,GAAG,IAAA,qBAAQ,EAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,IAA2B,EAAE;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAAA,CAC7B,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,sDAAsD,cAAc,EAAE,CAAC,CAAC;QAEtF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACZ;AAED,SAAS,sBAAsB,CAAC,IAAmC,EAAW;IAC7E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACZ;AAED;;;;GAIG;AACH,uBAA8B;IAC7B,gEAAgE;IAChE,IAAI,wBAAwB,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,YAAY;IACZ,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC3D,qCAAqC;IACrC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;QACtD;YACC,wBAAwB,EAAE,MAAM;SAChC;KACD,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,cAAc,GAAG,kBAAkB,IAAI,uBAAuB,CAAC;IAErE,iDAAiD;IACjD,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;IACR,IAAA,mBAAU,EAAC,yBAAgB,CAAC,CAAC;AAAA,CAC7B"}
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lifeCycleNames = void 0;
7
+ exports.delay = delay;
8
+ exports.doLifeCycle = doLifeCycle;
9
+ exports.executeAndReturnExecutionTime = executeAndReturnExecutionTime;
10
+ exports.getSafeSiteId = getSafeSiteId;
11
+ exports.isTruthy = isTruthy;
12
+ exports.msToSec = msToSec;
13
+ exports.removeAllSiteDirsFromStore = removeAllSiteDirsFromStore;
14
+ exports.removeProperties = removeProperties;
15
+ exports.saveBuildEndLogs = saveBuildEndLogs;
16
+ exports.walkStore = walkStore;
17
+ exports.hasAnyKeyDeep = hasAnyKeyDeep;
18
+ const promises_1 = __importDefault(require("node:fs/promises"));
19
+ const node_path_1 = __importDefault(require("node:path"));
20
+ const errors_1 = require("../constants/errors");
21
+ const db_1 = require("../services/db");
22
+ const brush_1 = require("./brush");
23
+ const errors_2 = require("./errors");
24
+ const folders_1 = require("./folders");
25
+ const loggin_1 = require("./loggin");
26
+ const render_1 = require("./render");
27
+ /**
28
+ * Returns true for "true", "on", true and positive numbers.
29
+ * Returns false for "false", "off", false, 0, negative integers and anything else.
30
+ */
31
+ function isTruthy(value) {
32
+ // Return if Boolean
33
+ if (typeof value === "boolean") {
34
+ return value;
35
+ }
36
+ // Return false if null or undefined
37
+ if (value === undefined || value === null) {
38
+ return false;
39
+ }
40
+ // If the String is true or false
41
+ if (value.toLowerCase() === "true") {
42
+ return true;
43
+ }
44
+ if (value.toLowerCase() === "false") {
45
+ return false;
46
+ }
47
+ // "on" | "off", We love them in Griddo ^^.
48
+ if (value.toLowerCase() === "on") {
49
+ return true;
50
+ }
51
+ if (value.toLowerCase() === "off") {
52
+ return false;
53
+ }
54
+ // Now check if it's a number
55
+ const number = Number.parseInt(value, 10);
56
+ if (Number.isNaN(number)) {
57
+ return false;
58
+ }
59
+ if (number > 0) {
60
+ return true;
61
+ }
62
+ // Default to false
63
+ return false;
64
+ }
65
+ /**
66
+ * Walk a directory and returns the JSON file absolute paths with one level of depth.
67
+ * /abs/.../sotre/<siteId>/jsonfile.json
68
+ * /abs/.../sotre/<siteId>/jsonfile.json
69
+ * /abs/.../sotre/<siteId>/jsonfile.json
70
+ * /abs/.../sotre/<siteId>/jsonfile.json
71
+ */
72
+ async function* walkStore(storeDir) {
73
+ const rootDirHandle = await promises_1.default.opendir(storeDir);
74
+ for await (const siteDirent of rootDirHandle) {
75
+ if (siteDirent.isDirectory()) {
76
+ const siteDirPath = node_path_1.default.join(storeDir, siteDirent.name);
77
+ const siteDirHandle = await promises_1.default.opendir(siteDirPath);
78
+ for await (const jsonFileDirent of siteDirHandle) {
79
+ const jsonFilePath = node_path_1.default.join(siteDirPath, jsonFileDirent.name);
80
+ yield jsonFilePath;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ /**
86
+ * Custom delay using the "promise hack",
87
+ *
88
+ * @param ms Amount of miliseconds to be delayed
89
+ */
90
+ function delay(ms) {
91
+ return new Promise((res) => setTimeout(res, ms));
92
+ }
93
+ /**
94
+ * Converts milliseconds to seconds with a fixed number of decimals.
95
+ *
96
+ * @param ms The number in milliseconds.
97
+ * @param fixed The amount of fixed decimals.
98
+ * @returns The converted number in seconds with the fixed number of decimals.
99
+ */
100
+ function msToSec(ms, decimals = 3) {
101
+ return (ms / 1000).toFixed(decimals);
102
+ }
103
+ /**
104
+ * Return a siteID from a response object if exist
105
+ * @param response A response object
106
+ */
107
+ function getSafeSiteId(response) {
108
+ if (typeof response === "string") {
109
+ return undefined;
110
+ }
111
+ return "site" in response && response.site ? response?.site : undefined;
112
+ }
113
+ /**
114
+ * Remove props from an object
115
+ *
116
+ * @param obj The object
117
+ * @param props An array of props to be removed
118
+ */
119
+ function removeProperties(obj, props) {
120
+ for (const key in obj) {
121
+ if (props.includes(key)) {
122
+ delete obj[key];
123
+ }
124
+ else if (typeof obj[key] === "object") {
125
+ removeProperties(obj[key], props);
126
+ }
127
+ }
128
+ }
129
+ /**
130
+ * Measures the execution time of a series of sync or async functions.
131
+ *
132
+ * @async
133
+ * @param functions - Functions to be executed to measure their execution time.
134
+ * @returns A promise that resolves with the total execution time in seconds.
135
+ */
136
+ async function executeAndReturnExecutionTime(func) {
137
+ const start = process.hrtime.bigint();
138
+ await Promise.resolve(func());
139
+ const end = process.hrtime.bigint();
140
+ return Number((Number(end - start) / 1e9).toFixed(3));
141
+ }
142
+ /**
143
+ * Executes a life cycle process, which involves executing a callback
144
+ * function, printing to the console, and handling errors with optional retries.
145
+ *
146
+ * @async
147
+ * @param name - The name of the life cycle.
148
+ * @param action - A callback function to execute.
149
+ * @param options - Optional configuration for the life cycle process.
150
+ * @param options.maxRetrys - The maximum number of retries for the life cycle.
151
+ * @param options.enabled - Whether the life cycle process should be executed.
152
+ * @returns - A promise that resolves when the life cycle process is completed.
153
+ */
154
+ async function doLifeCycle(name, action, options) {
155
+ const { maxRetrys = 3, skip } = options || {};
156
+ if (skip) {
157
+ console.log(`Skiping life-cycle. Reason: ${skip}`);
158
+ return;
159
+ }
160
+ let trysCount = 0;
161
+ while (trysCount < maxRetrys) {
162
+ try {
163
+ (0, loggin_1.infoLog)(`start ${name} life-cycle`);
164
+ // let counter = 0;
165
+ // process.stdout.write("\x1B[?25l");
166
+ // const spinnerChars = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
167
+ // const interval = setInterval(() => {
168
+ // const spinner = spinnerChars[counter % spinnerChars.length];
169
+ // process.stdout.write(`\r${spinner} ${name} life-cycle...`);
170
+ // counter++;
171
+ // }, 60);
172
+ const exeTime = await executeAndReturnExecutionTime(action);
173
+ // clearInterval(interval);
174
+ // process.stdout.write("\x1B[?25h");
175
+ (0, loggin_1.successLog)(`${name} - ${exeTime}s\n`);
176
+ break;
177
+ }
178
+ catch (error) {
179
+ const errorString = brush_1.brush.red(` Error in ${name} LifeCycle `);
180
+ const attemptsString = brush_1.brush.yellow(`Attempt (${trysCount + 1})`);
181
+ console.log(`\n${errorString} ${attemptsString}\n`);
182
+ console.log(error);
183
+ console.log();
184
+ trysCount++;
185
+ }
186
+ }
187
+ if (trysCount === maxRetrys) {
188
+ (0, errors_2.throwError)((0, errors_1.LifecycleExecutionError)(maxRetrys, name));
189
+ }
190
+ }
191
+ async function removeAllSiteDirsFromStore() {
192
+ const { __root } = await (0, render_1.getRenderPathsFromDB)();
193
+ const storeDir = node_path_1.default.join(__root, "store");
194
+ const allDirs = await promises_1.default.readdir(storeDir);
195
+ const allSiteDirs = allDirs.filter((dirname) => dirname !== "metadata");
196
+ const allSiteDirsFullPath = allSiteDirs.map((name) => node_path_1.default.join(storeDir, name));
197
+ // Remove all site directories except "metadata" directory.
198
+ for (const site of allSiteDirsFullPath) {
199
+ await promises_1.default.rm(site, { recursive: true, force: true });
200
+ }
201
+ }
202
+ function getFormattedDateTime() {
203
+ const now = new Date();
204
+ const date = [
205
+ String(now.getDate()).padStart(2, "0"),
206
+ String(now.getMonth() + 1).padStart(2, "0"),
207
+ now.getFullYear(),
208
+ ].join("-");
209
+ const time = [
210
+ String(now.getHours()).padStart(2, "0"),
211
+ String(now.getMinutes()).padStart(2, "0"),
212
+ String(now.getSeconds()).padStart(2, "0"),
213
+ ].join(":");
214
+ return `${date}_${time}`;
215
+ }
216
+ /**
217
+ * Save render information to a file to use as debug log.
218
+ *
219
+ * This information will **not** be sent to any API.
220
+ */
221
+ async function saveBuildEndLogs(options) {
222
+ const { basePath, domain } = options;
223
+ const db = await (0, db_1.readDB)();
224
+ const { sitesToPublish, createdPages, buildProcessData } = db.domains[domain].renderInfo || {};
225
+ const dateString = getFormattedDateTime();
226
+ const buildEndLogsDir = node_path_1.default.join(basePath, "debug", "build-end");
227
+ if (!(await (0, folders_1.pathExists)(buildEndLogsDir))) {
228
+ await promises_1.default.mkdir(buildEndLogsDir, { recursive: true });
229
+ }
230
+ // Log
231
+ await promises_1.default.writeFile(node_path_1.default.join(buildEndLogsDir, `${dateString}.json`), JSON.stringify({
232
+ date: new Date().toLocaleString(),
233
+ log: {
234
+ sitesToPublish,
235
+ createdPages,
236
+ buildProcessData,
237
+ },
238
+ }, null, 2));
239
+ // Update index
240
+ await (0, folders_1.prependFileSync)(node_path_1.default.join(buildEndLogsDir, "index.html"), `<pre><a href="${dateString}.json">${dateString}</a></pre>\n`);
241
+ }
242
+ const lifeCycleNames = {
243
+ Sync: "Sync",
244
+ Clean: "Clean",
245
+ Close: "Close",
246
+ Data: "Data",
247
+ HealthCheck: "HealthCheck",
248
+ Init: "Init",
249
+ Meta: "Meta",
250
+ Prepare: "Prepare",
251
+ Relocation: "Relocation",
252
+ Restore: "Restore",
253
+ SSG: "SSG",
254
+ };
255
+ exports.lifeCycleNames = lifeCycleNames;
256
+ /**
257
+ * Busca de forma recursiva si ALGUNA de las claves de un array existe como propiedad propia
258
+ * en un objeto anidado. La búsqueda se detiene en cuanto se encuentra la primera coincidencia.
259
+ *
260
+ * @param obj El objeto a inspeccionar.
261
+ * @param keysToFind Un array de claves que se buscan.
262
+ * @param visited Un WeakSet para evitar ciclos de referencia.
263
+ * @returns Retorna `true` si al menos una de las claves se encuentra, de lo contrario `false`.
264
+ */
265
+ function hasAnyKeyDeep(obj, keysToFind, visited = new WeakSet()) {
266
+ // 1. Casos base: no procesar no-objetos, si ya lo visitamos, o si el array de claves está vacío.
267
+ if (typeof obj !== "object" || obj === null || visited.has(obj)) {
268
+ return false;
269
+ }
270
+ if (keysToFind.length === 0) {
271
+ return false;
272
+ }
273
+ visited.add(obj);
274
+ // 2. Comprobar si ALGUNA de las claves buscadas es una propiedad propia del objeto actual.
275
+ // Usamos .some() porque se detiene en la primera coincidencia (eficiencia).
276
+ const foundKey = keysToFind.some((key) => Object.hasOwn(obj, key));
277
+ if (foundKey) {
278
+ return true;
279
+ }
280
+ // 3. Si no se encontró ninguna clave en este nivel, recorrer los valores y buscar recursivamente.
281
+ return Object.values(obj).some((value) => typeof value === "object" && hasAnyKeyDeep(value, keysToFind, visited));
282
+ }
283
+ //# sourceMappingURL=core-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-utils.js","sourceRoot":"","sources":["../../exporter/utils/core-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDomainSlugs = getDomainSlugs;
4
+ exports.getInstanceDomains = getInstanceDomains;
5
+ const endpoints_1 = require("../constants/endpoints");
6
+ const errors_1 = require("../constants/errors");
7
+ const api_1 = require("./api");
8
+ const errors_2 = require("./errors");
9
+ const loggin_1 = require("./loggin");
10
+ /**
11
+ * Return an array of domains name (string) of the current instance.
12
+ */
13
+ async function getInstanceDomains() {
14
+ // await AuthService.login();
15
+ const domains = await (0, api_1.get)({
16
+ endpoint: endpoints_1.DOMAINS,
17
+ useApiCacheDir: false,
18
+ });
19
+ if (!domains.length) {
20
+ (0, errors_2.throwError)(errors_1.NoDomainsFoundError);
21
+ }
22
+ (0, loggin_1.verboseLog)(`getting domains names (${domains.length})`);
23
+ return getDomainSlugs(domains);
24
+ }
25
+ /**
26
+ * Return an unique array of domains, filtered without "/".
27
+ *
28
+ * @param domains An array of domains
29
+ * @see Domains
30
+ */
31
+ function getDomainSlugs(domains) {
32
+ const filteredDomains = domains
33
+ .filter(({ slug }) => !!slug)
34
+ .map(({ slug }) => slug.replace("/", ""));
35
+ return [...new Set(filteredDomains)];
36
+ }
37
+ //# sourceMappingURL=domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../exporter/utils/domains.ts"],"names":[],"mappings":";;QAyCS,cAAc;QAAE,kBAAkB;AAvC3C,sDAAiD;AACjD,gDAA0D;AAC1D,+BAA4B;AAC5B,qCAAsC;AACtC,qCAAsC;AAEtC;;GAEG;AACH,KAAK,UAAU,kBAAkB,GAAG;IACnC,6BAA6B;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAA,SAAG,EAAU;QAClC,QAAQ,EAAE,mBAAO;QACjB,cAAc,EAAE,KAAK;KACrB,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,IAAA,mBAAU,EAAC,4BAAmB,CAAC,CAAC;IACjC,CAAC;IAED,IAAA,mBAAU,EAAC,0BAA0B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAExD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AAAA,CAC/B;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAgB,EAAE;IACzC,MAAM,eAAe,GAAG,OAAO;SAC7B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC5B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAAA,CACrC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderError = void 0;
4
+ exports.throwError = throwError;
5
+ const brush_1 = require("./brush");
6
+ class RenderError extends Error {
7
+ constructor(originalError) {
8
+ super(originalError instanceof Error ? originalError.message : String(originalError));
9
+ this.name = "InternalCXError";
10
+ this.stack = originalError instanceof Error ? originalError.stack : "";
11
+ }
12
+ }
13
+ exports.RenderError = RenderError;
14
+ /**
15
+ * Throws an error with the provided error message, expected value, and hint.
16
+ */
17
+ function throwError(options, stack) {
18
+ const { error, message, expected, hint } = options;
19
+ const errorColor = console.log(brush_1.brush.red(`[ ${error} ]`));
20
+ const extraText = [expected, hint].filter(Boolean).join("\n");
21
+ console.log(`
22
+ ${errorColor}
23
+ ${message}
24
+ ${extraText}
25
+
26
+ ${brush_1.brush.red("stack")}
27
+ ${JSON.stringify(stack, null, 2)}`);
28
+ throw new RenderError(stack);
29
+ }
30
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../exporter/utils/errors.ts"],"names":[],"mappings":";;;QAwCS,UAAU;AAtCnB,mCAAgC;AAShC,iBAAyB,SAAQ,KAAK;IACrC,YAAY,aAAuB,EAAE;QACpC,KAAK,CAAC,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAAA,CACvE;CACD;;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,OAAkB,EAAE,KAAe,EAAS;IAC/D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAK,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,CAAC;EACX,UAAU;EACV,OAAO;EACP,SAAS;;EAET,aAAK,CAAC,GAAG,CAAC,OAAO,CAAC;EAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAAA,CAC7B"}