@griddo/cx 11.7.6-rc.1 → 11.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/README.md +228 -25
  2. package/build/adapters/gatsby/index.d.ts +4 -0
  3. package/build/adapters/gatsby/utils.d.ts +22 -0
  4. package/build/artifacts/index.d.ts +6 -0
  5. package/build/commands/move-assets.d.ts +1 -0
  6. package/build/commands/prepare-domains-render.d.ts +1 -0
  7. package/build/{exporter/constants → constants}/envs.d.ts +7 -1
  8. package/build/constants/index.d.ts +57 -0
  9. package/build/end-render.js +74 -0
  10. package/build/end-render.js.map +7 -0
  11. package/build/{exporter/constants/errors.d.ts → errors/errors-data.d.ts} +3 -5
  12. package/build/{exporter/utils/errors.d.ts → errors/index.d.ts} +3 -3
  13. package/build/index.d.ts +29 -0
  14. package/build/index.js +73 -0
  15. package/build/index.js.map +7 -0
  16. package/build/prepare-domains-render.js +73 -0
  17. package/build/prepare-domains-render.js.map +7 -0
  18. package/build/react/Favicon/index.d.ts +5 -0
  19. package/build/react/Favicon/utils.d.ts +9 -0
  20. package/build/react/GriddoIntegrations/index.d.ts +20 -0
  21. package/build/react/GriddoIntegrations/utils.d.ts +26 -0
  22. package/{react/index.tsx → build/react/index.d.ts} +0 -1
  23. package/build/react/index.js +3 -0
  24. package/build/registers/api.d.ts +9 -0
  25. package/build/registers/gatsby.d.ts +9 -0
  26. package/build/registers/index.d.ts +3 -0
  27. package/build/reset-render.js +74 -0
  28. package/build/reset-render.js.map +7 -0
  29. package/build/{exporter/services → services}/auth.d.ts +1 -1
  30. package/build/services/domains.d.ts +6 -0
  31. package/build/services/register.d.ts +36 -0
  32. package/build/{exporter/services → services}/robots.d.ts +6 -0
  33. package/build/services/settings.d.ts +4 -0
  34. package/build/{exporter/services → services}/sites.d.ts +2 -5
  35. package/build/services/store.d.ts +6 -0
  36. package/build/start-render.js +100 -0
  37. package/build/start-render.js.map +7 -0
  38. package/build/{exporter/types → types}/api.d.ts +4 -3
  39. package/build/{exporter/types → types}/global.d.ts +6 -6
  40. package/build/{exporter/types → types}/navigation.d.ts +1 -1
  41. package/build/{exporter/types → types}/sites.d.ts +2 -1
  42. package/build/upload-search-content.js +74 -0
  43. package/build/upload-search-content.js.map +7 -0
  44. package/build/utils/alerts.d.ts +3 -0
  45. package/build/{exporter/utils → utils}/cache.d.ts +12 -7
  46. package/build/utils/core-utils.d.ts +107 -0
  47. package/build/utils/create-build-data.d.ts +8 -0
  48. package/build/{exporter/utils → utils}/domains.d.ts +1 -1
  49. package/build/utils/folders.d.ts +53 -0
  50. package/build/{exporter/utils/check-health.d.ts → utils/health-checks.d.ts} +2 -2
  51. package/build/{exporter/utils → utils}/loggin.d.ts +16 -2
  52. package/build/{exporter/utils → utils}/pages.d.ts +2 -2
  53. package/build/utils/render.d.ts +13 -0
  54. package/build/utils/searches.d.ts +15 -0
  55. package/build/{exporter/utils → utils}/sites.d.ts +3 -3
  56. package/build/{exporter/utils → utils}/store.d.ts +38 -10
  57. package/cx.config.d.ts +5 -0
  58. package/cx.config.js +36 -0
  59. package/exporter/adapters/gatsby/index.ts +146 -60
  60. package/exporter/adapters/gatsby/utils.ts +161 -0
  61. package/exporter/artifacts/README.md +34 -0
  62. package/exporter/{utils/artifacts.ts → artifacts/index.ts} +8 -9
  63. package/exporter/build.sh +38 -5
  64. package/exporter/commands/end-render.ts +81 -56
  65. package/exporter/commands/move-assets.ts +11 -0
  66. package/exporter/commands/prepare-domains-render.ts +31 -149
  67. package/exporter/commands/reset-render.ts +3 -12
  68. package/exporter/commands/start-render.ts +47 -18
  69. package/exporter/commands/upload-search-content.ts +21 -206
  70. package/exporter/constants/envs.ts +51 -59
  71. package/exporter/constants/index.ts +129 -0
  72. package/exporter/{constants/errors.ts → errors/errors-data.ts} +15 -24
  73. package/exporter/{utils/errors.ts → errors/index.ts} +9 -10
  74. package/exporter/index.ts +82 -0
  75. package/{react → exporter/react}/Favicon/index.tsx +7 -1
  76. package/{react → exporter/react}/GriddoIntegrations/index.tsx +14 -6
  77. package/{react → exporter/react}/GriddoIntegrations/utils.ts +9 -4
  78. package/exporter/react/index.tsx +11 -0
  79. package/exporter/registers/api.ts +14 -0
  80. package/exporter/registers/gatsby.ts +14 -0
  81. package/exporter/registers/index.ts +4 -0
  82. package/exporter/services/auth.ts +6 -7
  83. package/exporter/services/domains.ts +16 -0
  84. package/exporter/services/navigation.ts +10 -4
  85. package/exporter/services/reference-fields.ts +23 -8
  86. package/exporter/services/register.ts +113 -0
  87. package/exporter/services/robots.ts +15 -8
  88. package/exporter/services/settings.ts +17 -0
  89. package/exporter/services/sites.ts +24 -35
  90. package/exporter/services/store.ts +76 -118
  91. package/exporter/types/api.ts +27 -24
  92. package/exporter/types/global.ts +10 -8
  93. package/exporter/types/navigation.ts +1 -1
  94. package/exporter/types/pages.ts +3 -2
  95. package/exporter/types/sites.ts +2 -1
  96. package/exporter/utils/alerts.ts +29 -0
  97. package/exporter/utils/api.ts +82 -46
  98. package/exporter/utils/cache.ts +59 -34
  99. package/exporter/utils/core-utils.ts +247 -86
  100. package/exporter/utils/create-build-data.ts +17 -0
  101. package/exporter/utils/domains.ts +7 -10
  102. package/exporter/utils/folders.ts +92 -161
  103. package/exporter/utils/health-checks.ts +64 -0
  104. package/exporter/utils/images.ts +6 -1
  105. package/exporter/utils/instance.ts +12 -9
  106. package/exporter/utils/loggin.ts +89 -24
  107. package/exporter/utils/pages.ts +88 -23
  108. package/exporter/utils/render.ts +48 -147
  109. package/exporter/utils/searches.ts +156 -0
  110. package/exporter/utils/sites.ts +77 -67
  111. package/exporter/utils/store.ts +178 -85
  112. package/gatsby-browser.tsx +58 -41
  113. package/gatsby-config.ts +12 -6
  114. package/gatsby-node.ts +77 -15
  115. package/gatsby-ssr.tsx +1 -2
  116. package/package.json +74 -33
  117. package/src/README.md +7 -0
  118. package/src/components/Head.tsx +46 -13
  119. package/src/components/template.tsx +30 -8
  120. package/src/gatsby-node-utils.ts +2 -91
  121. package/src/html.tsx +11 -2
  122. package/src/types.ts +5 -5
  123. package/start-render.js +3 -1
  124. package/tsconfig.json +2 -3
  125. package/build/adapters/gatsby/actions/clean.js +0 -10
  126. package/build/adapters/gatsby/actions/clean.js.map +0 -1
  127. package/build/adapters/gatsby/actions/close.js +0 -12
  128. package/build/adapters/gatsby/actions/close.js.map +0 -1
  129. package/build/adapters/gatsby/actions/data.js +0 -18
  130. package/build/adapters/gatsby/actions/data.js.map +0 -1
  131. package/build/adapters/gatsby/actions/healthCheck.js +0 -10
  132. package/build/adapters/gatsby/actions/healthCheck.js.map +0 -1
  133. package/build/adapters/gatsby/actions/init.js +0 -9
  134. package/build/adapters/gatsby/actions/init.js.map +0 -1
  135. package/build/adapters/gatsby/actions/meta.js +0 -14
  136. package/build/adapters/gatsby/actions/meta.js.map +0 -1
  137. package/build/adapters/gatsby/actions/prepare.js +0 -9
  138. package/build/adapters/gatsby/actions/prepare.js.map +0 -1
  139. package/build/adapters/gatsby/actions/relocation.js +0 -15
  140. package/build/adapters/gatsby/actions/relocation.js.map +0 -1
  141. package/build/adapters/gatsby/actions/restore.js +0 -26
  142. package/build/adapters/gatsby/actions/restore.js.map +0 -1
  143. package/build/adapters/gatsby/actions/ssg.js +0 -9
  144. package/build/adapters/gatsby/actions/ssg.js.map +0 -1
  145. package/build/adapters/gatsby/actions/sync.js +0 -50
  146. package/build/adapters/gatsby/actions/sync.js.map +0 -1
  147. package/build/adapters/gatsby/index.js +0 -74
  148. package/build/adapters/gatsby/index.js.map +0 -1
  149. package/build/adapters/gatsby/shared/context.js +0 -25
  150. package/build/adapters/gatsby/shared/context.js.map +0 -1
  151. package/build/adapters/gatsby/shared/extract-assets.js +0 -58
  152. package/build/adapters/gatsby/shared/extract-assets.js.map +0 -1
  153. package/build/adapters/gatsby/shared/gatsby-build.js +0 -49
  154. package/build/adapters/gatsby/shared/gatsby-build.js.map +0 -1
  155. package/build/adapters/gatsby/shared/sync-render.js +0 -208
  156. package/build/adapters/gatsby/shared/sync-render.js.map +0 -1
  157. package/build/adapters/gatsby/shared/types.js +0 -3
  158. package/build/adapters/gatsby/shared/types.js.map +0 -1
  159. package/build/commands/end-render.js +0 -63
  160. package/build/commands/end-render.js.map +0 -1
  161. package/build/commands/prepare-assets-directory.js +0 -32
  162. package/build/commands/prepare-assets-directory.js.map +0 -1
  163. package/build/commands/prepare-domains-render.js +0 -138
  164. package/build/commands/prepare-domains-render.js.map +0 -1
  165. package/build/commands/reset-render.js +0 -22
  166. package/build/commands/reset-render.js.map +0 -1
  167. package/build/commands/start-render.js +0 -35
  168. package/build/commands/start-render.js.map +0 -1
  169. package/build/commands/upload-search-content.js +0 -189
  170. package/build/commands/upload-search-content.js.map +0 -1
  171. package/build/constants/endpoints.js +0 -42
  172. package/build/constants/endpoints.js.map +0 -1
  173. package/build/constants/envs.js +0 -73
  174. package/build/constants/envs.js.map +0 -1
  175. package/build/constants/errors.js +0 -89
  176. package/build/constants/errors.js.map +0 -1
  177. package/build/exporter/adapters/gatsby/actions/clean.d.ts +0 -3
  178. package/build/exporter/adapters/gatsby/actions/close.d.ts +0 -3
  179. package/build/exporter/adapters/gatsby/actions/data.d.ts +0 -2
  180. package/build/exporter/adapters/gatsby/actions/healthCheck.d.ts +0 -2
  181. package/build/exporter/adapters/gatsby/actions/init.d.ts +0 -2
  182. package/build/exporter/adapters/gatsby/actions/meta.d.ts +0 -2
  183. package/build/exporter/adapters/gatsby/actions/prepare.d.ts +0 -2
  184. package/build/exporter/adapters/gatsby/actions/relocation.d.ts +0 -2
  185. package/build/exporter/adapters/gatsby/actions/restore.d.ts +0 -3
  186. package/build/exporter/adapters/gatsby/actions/ssg.d.ts +0 -3
  187. package/build/exporter/adapters/gatsby/actions/sync.d.ts +0 -3
  188. package/build/exporter/adapters/gatsby/index.d.ts +0 -9
  189. package/build/exporter/adapters/gatsby/shared/context.d.ts +0 -38
  190. package/build/exporter/adapters/gatsby/shared/extract-assets.d.ts +0 -7
  191. package/build/exporter/adapters/gatsby/shared/gatsby-build.d.ts +0 -7
  192. package/build/exporter/adapters/gatsby/shared/sync-render.d.ts +0 -36
  193. package/build/exporter/adapters/gatsby/shared/types.d.ts +0 -34
  194. package/build/exporter/commands/prepare-assets-directory.d.ts +0 -2
  195. package/build/exporter/commands/prepare-domains-render.d.ts +0 -2
  196. package/build/exporter/services/db.d.ts +0 -4
  197. package/build/exporter/services/store.d.ts +0 -15
  198. package/build/exporter/types/render.d.ts +0 -50
  199. package/build/exporter/utils/artifacts.d.ts +0 -6
  200. package/build/exporter/utils/brush.d.ts +0 -18
  201. package/build/exporter/utils/core-utils.d.ts +0 -77
  202. package/build/exporter/utils/folders.d.ts +0 -66
  203. package/build/exporter/utils/render.d.ts +0 -49
  204. package/build/services/auth.js +0 -39
  205. package/build/services/auth.js.map +0 -1
  206. package/build/services/db.js +0 -34
  207. package/build/services/db.js.map +0 -1
  208. package/build/services/navigation.js +0 -93
  209. package/build/services/navigation.js.map +0 -1
  210. package/build/services/reference-fields.js +0 -131
  211. package/build/services/reference-fields.js.map +0 -1
  212. package/build/services/robots.js +0 -58
  213. package/build/services/robots.js.map +0 -1
  214. package/build/services/sites.js +0 -109
  215. package/build/services/sites.js.map +0 -1
  216. package/build/services/store.js +0 -282
  217. package/build/services/store.js.map +0 -1
  218. package/build/types/api.js +0 -3
  219. package/build/types/api.js.map +0 -1
  220. package/build/types/global.js +0 -3
  221. package/build/types/global.js.map +0 -1
  222. package/build/types/navigation.js +0 -3
  223. package/build/types/navigation.js.map +0 -1
  224. package/build/types/pages.js +0 -3
  225. package/build/types/pages.js.map +0 -1
  226. package/build/types/render.js +0 -10
  227. package/build/types/render.js.map +0 -1
  228. package/build/types/sites.js +0 -3
  229. package/build/types/sites.js.map +0 -1
  230. package/build/types/templates.js +0 -3
  231. package/build/types/templates.js.map +0 -1
  232. package/build/utils/api.js +0 -161
  233. package/build/utils/api.js.map +0 -1
  234. package/build/utils/artifacts.js +0 -34
  235. package/build/utils/artifacts.js.map +0 -1
  236. package/build/utils/brush.js +0 -30
  237. package/build/utils/brush.js.map +0 -1
  238. package/build/utils/cache.js +0 -106
  239. package/build/utils/cache.js.map +0 -1
  240. package/build/utils/check-health.js +0 -68
  241. package/build/utils/check-health.js.map +0 -1
  242. package/build/utils/core-utils.js +0 -251
  243. package/build/utils/core-utils.js.map +0 -1
  244. package/build/utils/domains.js +0 -37
  245. package/build/utils/domains.js.map +0 -1
  246. package/build/utils/errors.js +0 -30
  247. package/build/utils/errors.js.map +0 -1
  248. package/build/utils/folders.js +0 -339
  249. package/build/utils/folders.js.map +0 -1
  250. package/build/utils/images.js +0 -45
  251. package/build/utils/images.js.map +0 -1
  252. package/build/utils/instance.js +0 -66
  253. package/build/utils/instance.js.map +0 -1
  254. package/build/utils/loggin.js +0 -102
  255. package/build/utils/loggin.js.map +0 -1
  256. package/build/utils/pages.js +0 -359
  257. package/build/utils/pages.js.map +0 -1
  258. package/build/utils/render.js +0 -144
  259. package/build/utils/render.js.map +0 -1
  260. package/build/utils/sites.js +0 -239
  261. package/build/utils/sites.js.map +0 -1
  262. package/build/utils/store.js +0 -193
  263. package/build/utils/store.js.map +0 -1
  264. package/exporter/adapters/gatsby/actions/clean.ts +0 -14
  265. package/exporter/adapters/gatsby/actions/close.ts +0 -17
  266. package/exporter/adapters/gatsby/actions/data.ts +0 -25
  267. package/exporter/adapters/gatsby/actions/healthCheck.ts +0 -10
  268. package/exporter/adapters/gatsby/actions/init.ts +0 -12
  269. package/exporter/adapters/gatsby/actions/meta.ts +0 -18
  270. package/exporter/adapters/gatsby/actions/prepare.ts +0 -9
  271. package/exporter/adapters/gatsby/actions/relocation.ts +0 -15
  272. package/exporter/adapters/gatsby/actions/restore.ts +0 -36
  273. package/exporter/adapters/gatsby/actions/ssg.ts +0 -12
  274. package/exporter/adapters/gatsby/actions/sync.ts +0 -70
  275. package/exporter/adapters/gatsby/shared/context.ts +0 -50
  276. package/exporter/adapters/gatsby/shared/extract-assets.ts +0 -61
  277. package/exporter/adapters/gatsby/shared/gatsby-build.ts +0 -54
  278. package/exporter/adapters/gatsby/shared/sync-render.ts +0 -294
  279. package/exporter/adapters/gatsby/shared/types.ts +0 -35
  280. package/exporter/build-esbuild.noop +0 -42
  281. package/exporter/commands/prepare-assets-directory.ts +0 -33
  282. package/exporter/services/db.ts +0 -32
  283. package/exporter/types/render.ts +0 -59
  284. package/exporter/utils/brush.ts +0 -34
  285. package/exporter/utils/check-health.ts +0 -79
  286. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +0 -55
  287. package/plugins/gatsby-plugin-svgr-loader/package.json +0 -8
  288. package/build/{exporter/commands → commands}/end-render.d.ts +0 -0
  289. package/build/{exporter/commands → commands}/reset-render.d.ts +0 -0
  290. package/build/{exporter/commands → commands}/start-render.d.ts +0 -0
  291. package/build/{exporter/commands → commands}/upload-search-content.d.ts +0 -0
  292. package/build/{exporter/constants → constants}/endpoints.d.ts +0 -0
  293. package/build/{exporter/services → services}/navigation.d.ts +0 -0
  294. package/build/{exporter/services → services}/reference-fields.d.ts +0 -0
  295. package/build/{exporter/types → types}/pages.d.ts +1 -1
  296. /package/build/{exporter/types → types}/templates.d.ts +0 -0
  297. /package/build/{exporter/utils → utils}/api.d.ts +0 -0
  298. /package/build/{exporter/utils → utils}/images.d.ts +0 -0
  299. /package/build/{exporter/utils → utils}/instance.d.ts +0 -0
  300. /package/{react → exporter/react}/Favicon/utils.ts +0 -0
@@ -1,239 +0,0 @@
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.generateBuildReport = generateBuildReport;
7
- exports.generateSitemaps = generateSitemaps;
8
- exports.getSiteData = getSiteData;
9
- exports.getSitesToRender = getSitesToRender;
10
- exports.unpublishSites = unpublishSites;
11
- const promises_1 = __importDefault(require("node:fs/promises"));
12
- const node_path_1 = __importDefault(require("node:path"));
13
- const js2xmlparser_1 = require("js2xmlparser");
14
- const envs_1 = require("../constants/envs");
15
- const auth_1 = require("../services/auth");
16
- const sites_1 = require("../services/sites");
17
- const folders_1 = require("./folders");
18
- const loggin_1 = require("./loggin");
19
- const render_1 = require("./render");
20
- const store_1 = require("./store");
21
- /**
22
- * Check the instance sites and returns site prepared to be published and unpublished.
23
- */
24
- async function getSitesToRender(domain) {
25
- console.info(`API URL ${envs_1.GRIDDO_API_URL}`);
26
- // Login to API
27
- // await AuthService.login();
28
- // Get all sites. An array of Site
29
- const allSites = await (0, sites_1.getAllSites)(domain);
30
- // Filter the array of sites to get only the ones to build/render
31
- const validSites = envs_1.GRIDDO_RENDER_ALL_SITES
32
- ? allSites.filter((site) => !envs_1.GRIDDO_RENDER_SITE || site.id === envs_1.GRIDDO_RENDER_SITE)
33
- : allSites.filter((site) => envs_1.GRIDDO_RENDER_SITE ? site.id === envs_1.GRIDDO_RENDER_SITE : !!site.shouldBeUpdated);
34
- // If there are valid sites...
35
- // En este paso se añade al objeto `Site` la información de los dominios
36
- // utilizando los idiomas.
37
- if (validSites.length) {
38
- for (const site of validSites) {
39
- const { items } = await (0, sites_1.getSiteLanguages)(site.id);
40
- // Añadimos la prop domains con el dominio "cocinado" con los
41
- // idiomas y teniendo en cuenta solo el dominio actual.
42
- site.domains = items
43
- .filter((item) => item.domain && (item.domain.slug === domain || item.domain.slug === `/${domain}`))
44
- .map((item) => ({ [item.id]: `${item.domain.slug}${item.path}` }));
45
- }
46
- }
47
- // Save sites object to publish
48
- const sitesToPublish = validSites.filter((site) => envs_1.GRIDDO_RENDER_SITE ? site.id === envs_1.GRIDDO_RENDER_SITE : !!site.isPublished);
49
- // Save sites object to unpublish
50
- const sitesToUnpublish = validSites.filter((site) => !site.isPublished && site.shouldBeUpdated);
51
- return {
52
- sitesToPublish,
53
- sitesToUnpublish,
54
- };
55
- }
56
- /**
57
- * Unpublish an array of sites sending the information to the API.
58
- *
59
- * @param sites An array of sites
60
- * @see https://griddoio.notion.site/Sites-d7bb0b7cb8d24894a5337e1139fc3d09#2019d3255bda4d219c7e19cf28d0c4fe
61
- */
62
- async function unpublishSites(sites) {
63
- const { __cx } = await (0, render_1.getRenderPathsFromDB)();
64
- for (const site of sites) {
65
- // API
66
- const buildInfo = await (0, sites_1.startSiteRender)(site.id);
67
- const { siteHash } = buildInfo;
68
- const body = {
69
- siteHash,
70
- publishHashes: [],
71
- unpublishHashes: [],
72
- publishPagesIds: [],
73
- };
74
- await (0, sites_1.endSiteRender)(site.id, body);
75
- // STORE
76
- // Remove site directory from the Store
77
- // @todo: quitar. Como ya no hay persistenci de store, esto debería eliminarse de forma segura.
78
- await promises_1.default.rm(node_path_1.default.join(__cx, "store", site.id.toString()), {
79
- force: true,
80
- recursive: true,
81
- });
82
- }
83
- }
84
- /**
85
- * Return a single site generic data.
86
- *
87
- * @param siteID The site id.
88
- * @see SiteData
89
- */
90
- async function getSiteData(siteID) {
91
- const buildData = await (0, sites_1.startSiteRender)(siteID);
92
- const siteInfo = await (0, sites_1.getSiteInfo)(siteID);
93
- const siteLangs = await (0, sites_1.getSiteLanguages)(siteID);
94
- const socials = await (0, sites_1.getSiteSocials)(siteID);
95
- const siteLangsInfo = siteLangs.items;
96
- const defaultLang = siteLangsInfo.find((lang) => lang.isDefault);
97
- const { siteHash, unpublishHashes, publishIds } = buildData;
98
- const { headers, footers } = siteInfo;
99
- const validPagesIds = envs_1.GRIDDO_RENDER_PAGES.length
100
- ? envs_1.GRIDDO_RENDER_PAGES.filter((item) => publishIds.includes(item))
101
- : publishIds;
102
- const siteData = {
103
- siteInfo,
104
- validPagesIds,
105
- siteHash,
106
- unpublishHashes,
107
- siteLangs: siteLangsInfo,
108
- defaultLang,
109
- headers,
110
- footers,
111
- socials,
112
- };
113
- return siteData;
114
- }
115
- /**
116
- * Save a file with the end of build process to use as `build-end` signal.
117
- */
118
- async function generateBuildReport(domain) {
119
- const authControl = await auth_1.AuthService.login();
120
- const { __cx } = await (0, render_1.getRenderPathsFromDB)();
121
- const { buildReportFileName } = await (0, render_1.getRenderMetadataFromDB)();
122
- const { buildProcessData } = await (0, store_1.getBuildMetadata)(domain);
123
- const buildSitesInfo = Object.keys(buildProcessData).map((siteID) => ({
124
- ...buildProcessData[siteID],
125
- siteId: Number.parseInt(siteID),
126
- }));
127
- const report = {
128
- authControl,
129
- sites: buildSitesInfo,
130
- };
131
- const reportFilePath = node_path_1.default.join(__cx, "dist", buildReportFileName);
132
- await promises_1.default.writeFile(reportFilePath, JSON.stringify(report));
133
- (0, loggin_1.verboseLog)(`build report saved in ${reportFilePath}`);
134
- }
135
- /**
136
- * Generate sitemaps and save them into file system.
137
- */
138
- async function generateSitemaps(domain) {
139
- const { __cx } = await (0, render_1.getRenderPathsFromDB)();
140
- const { sitesToPublish } = await (0, store_1.getBuildMetadata)(domain);
141
- const distDir = node_path_1.default.join(__cx, "dist");
142
- const templateSitemapPrefix = "sitemap-";
143
- const isGriddoSitemapFile = (file) => file === "sitemap.xml" || (file.startsWith(templateSitemapPrefix) && file.endsWith(".xml"));
144
- for (const site of sitesToPublish) {
145
- const { id, languages } = site;
146
- for (const lang of languages) {
147
- // Local copy of headers to avoid mutating the shared object
148
- const localHeaders = auth_1.AuthService.headers
149
- ? { ...auth_1.AuthService.headers }
150
- : {};
151
- localHeaders.lang = lang.id.toString();
152
- const response = await (0, sites_1.getSitemap)({ siteId: id, headers: localHeaders });
153
- if (!response) {
154
- continue;
155
- }
156
- const { items: sitemapPagesGroup, url } = response;
157
- const { home, domain } = url;
158
- if (!home) {
159
- continue;
160
- }
161
- const domainLanguage = site.domains.find((domain) => Object.keys(domain)[0] === lang.id.toString());
162
- if (!domainLanguage) {
163
- continue;
164
- }
165
- const slug = Object.values(domainLanguage)[0];
166
- const sitemaps = [];
167
- const sitemapPageGroupKeys = Object.keys(sitemapPagesGroup);
168
- const sitemapBasePath = node_path_1.default.join(distDir, slug.replace(domain, ""));
169
- /** delete every griddo sitemap file before create the new ones */
170
- if (await (0, folders_1.pathExists)(sitemapBasePath)) {
171
- try {
172
- const files = await promises_1.default.readdir(sitemapBasePath);
173
- for (const file of files) {
174
- if (isGriddoSitemapFile(file)) {
175
- const filePath = node_path_1.default.join(sitemapBasePath, file);
176
- try {
177
- await promises_1.default.rm(filePath);
178
- }
179
- catch (err) {
180
- console.error(`Error deleting file ${filePath}:`, err);
181
- }
182
- }
183
- }
184
- }
185
- catch (err) {
186
- console.error(`Error reading ${sitemapBasePath}:`, err);
187
- }
188
- }
189
- for (const templateId of sitemapPageGroupKeys) {
190
- const sitemapPages = sitemapPagesGroup[templateId];
191
- if (!sitemapPages.length) {
192
- continue;
193
- }
194
- const siteMap = (0, js2xmlparser_1.parse)("urlset", {
195
- "@": {
196
- xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9",
197
- "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
198
- "xsi:schemaLocation": "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd",
199
- },
200
- url: sitemapPages,
201
- });
202
- const sitemapName = `/${templateSitemapPrefix}${templateId.toLowerCase()}.xml`;
203
- const exactPath = node_path_1.default.join(sitemapBasePath, sitemapName);
204
- await saveFile(exactPath, siteMap);
205
- sitemaps.push(`${home.endsWith("/") ? home.slice(0, -1) : home}${sitemapName}`);
206
- }
207
- if (!sitemaps.length) {
208
- continue;
209
- }
210
- const siteMap = (0, js2xmlparser_1.parse)("sitemapindex", {
211
- "@": { xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9" },
212
- sitemap: sitemaps.map((loc) => ({ loc })),
213
- });
214
- const exactPath = node_path_1.default.join(sitemapBasePath, "sitemap.xml");
215
- await saveFile(exactPath, siteMap);
216
- (0, loggin_1.verboseLog)(`sitemap generated in ${exactPath}`);
217
- }
218
- }
219
- }
220
- /**
221
- * Saves the content to a file specified by its path. If the file exists, it will be overwritten.
222
- *
223
- * @param filePath The path of the file to save the content to.
224
- * @param content The content to save to the file.
225
- */
226
- async function saveFile(filePath, content) {
227
- try {
228
- const pathName = node_path_1.default.dirname(filePath);
229
- if (!(await (0, folders_1.pathExists)(pathName))) {
230
- await promises_1.default.mkdir(pathName, { recursive: true });
231
- }
232
- await promises_1.default.writeFile(filePath, content);
233
- }
234
- catch (error) {
235
- console.log(error);
236
- throw new Error(`Error saving a file`);
237
- }
238
- }
239
- //# sourceMappingURL=sites.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../exporter/utils/sites.ts"],"names":[],"mappings":"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"}
@@ -1,193 +0,0 @@
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.getBuildMetadata = getBuildMetadata;
7
- exports.getPageInStoreDir = getPageInStoreDir;
8
- exports.getZombiePagesInStore = getZombiePagesInStore;
9
- exports.removeOrphanSites = removeOrphanSites;
10
- exports.removeSitePagesFromStore = removeSitePagesFromStore;
11
- exports.saveRenderInfoInStore = saveRenderInfoInStore;
12
- exports.saveSitePagesInStore = saveSitePagesInStore;
13
- exports.writeUniqueFileSync = writeUniqueFileSync;
14
- const promises_1 = __importDefault(require("node:fs/promises"));
15
- const node_path_1 = __importDefault(require("node:path"));
16
- const errors_1 = require("../constants/errors");
17
- const db_1 = require("../services/db");
18
- const core_utils_1 = require("./core-utils");
19
- const errors_2 = require("./errors");
20
- const folders_1 = require("./folders");
21
- const loggin_1 = require("./loggin");
22
- const render_1 = require("./render");
23
- /**
24
- * Get the build metadata from the Store.
25
- */
26
- async function getBuildMetadata(domain) {
27
- const db = await (0, db_1.readDB)();
28
- const { sitesToPublish, createdPages, buildProcessData } = db.domains[domain].renderInfo || {};
29
- if (!sitesToPublish || !createdPages || !buildProcessData) {
30
- throw new Error("Build metadata not found");
31
- }
32
- return {
33
- buildProcessData,
34
- createdPages,
35
- sitesToPublish,
36
- };
37
- }
38
- /**
39
- * Write render info into a file.
40
- * @param renderInfo - Data that will be saved related to the render process.
41
- */
42
- async function saveRenderInfoInStore(renderInfo, domain) {
43
- const db = await (0, db_1.readDB)();
44
- db.domains[domain] = db.domains[domain] || {};
45
- db.domains[domain].renderInfo = renderInfo;
46
- await (0, db_1.writeDB)(db);
47
- }
48
- /**
49
- * Return an array of ids only from `.json` files (no dirs) in the `basePath` dir based in the file name and filtered by the pages ids in a concrete site.
50
- * @param basePath - Absolute path of the dir from which files will be read.
51
- * @returns A Array<number> of pages ids in `basePath` dir filtered by pages ids in a concrete site.
52
- */
53
- // function getPagesInStoreDirBySitePages(
54
- // basePath: string,
55
- // pages: Array<number>,
56
- // ): Array<number> {
57
- // const allPagesInStore = getPageInStoreDir(basePath);
58
- // const pagesBySite = allPagesInStore.filter((page) => pages.includes(page));
59
- // return pagesBySite;
60
- // }
61
- /**
62
- * Return an array of paths only from `.json` files (no dirs) in the `basePath` dir based in the file name.
63
- * @param basePath - Absolute path of the dir from which files will be read.
64
- * @returns A Array<number> of pages ids in `basePath` dir.
65
- */
66
- async function getPageInStoreDir(basePath) {
67
- const filesInStore = await promises_1.default.readdir(basePath);
68
- return filesInStore
69
- .filter(async (file) => {
70
- const fullPathFile = `${basePath}/${file}`;
71
- const stat = await promises_1.default.stat(fullPathFile);
72
- // Si es un directorio, no lo incluimos.
73
- if (stat?.isDirectory()) {
74
- return false;
75
- }
76
- // Si es un archivo pero no tiene la extensión `.json`, no lo incluimos
77
- if (node_path_1.default.extname(file) !== ".json") {
78
- return false;
79
- }
80
- // no es dir, es json.
81
- return true;
82
- })
83
- .map((page) => {
84
- return node_path_1.default.join(basePath, page);
85
- });
86
- }
87
- /**
88
- * Save the pages into the file system.
89
- * @param pages - An array of Griddo page objects to be saved.
90
- */
91
- async function saveSitePagesInStore(siteDirName, pages) {
92
- const { __cx } = await (0, render_1.getRenderPathsFromDB)();
93
- try {
94
- for (const page of pages) {
95
- (0, core_utils_1.removeProperties)(page, ["editorID", "parentEditorID"]);
96
- const filename = `${page.context.page.id}.json`;
97
- const filePath = node_path_1.default.join(__cx, "store", siteDirName, filename);
98
- // En los listados estáticos y multipage los ids de las páginas son iguales
99
- await writeUniqueFileSync(filePath, JSON.stringify(page));
100
- }
101
- }
102
- catch (error) {
103
- (0, errors_2.throwError)(errors_1.WriteToStoreError, error);
104
- }
105
- }
106
- /**
107
- * Removes JSON files from the specified site directory based on the provided arrays of page numbers.
108
- * For each number in the arrays, a corresponding file with the format `<number>.json` is removed if it exists.
109
- *
110
- * WARNING: This function may end up handling large arrays, so don't be tempted
111
- * to refactor it to use something cool like the spread operator and make a
112
- * single array, etc..
113
- *
114
- * @param siteDirName - The name of the site directory containing the pages.
115
- * @param pageIdsArray - A two-dimensional array where each inner array contains numbers representing page files to be removed.
116
- */
117
- async function removeSitePagesFromStore(siteDirName, pageIdsArray) {
118
- const { __cx } = await (0, render_1.getRenderPathsFromDB)();
119
- const processPageIdsArray = async (pageIds) => {
120
- for (const filename of pageIds) {
121
- const filePath = node_path_1.default.join(__cx, "store", siteDirName, `${filename}.json`);
122
- try {
123
- if (await (0, folders_1.pathExists)(filePath)) {
124
- await promises_1.default.unlink(filePath);
125
- (0, loggin_1.verboseLog)(`Removed file: ${filePath}`);
126
- }
127
- }
128
- catch (error) {
129
- console.log(error);
130
- throw new Error(`Error removing file ${filename}`);
131
- }
132
- }
133
- };
134
- for (const pageIds of pageIdsArray) {
135
- await processPageIdsArray(pageIds);
136
- }
137
- }
138
- /**
139
- * Removes sites that exist in the store that should no longer be there because
140
- * the domain has been changed. This is necessary because those sites will not
141
- * be marked as `sitesToUnpublish` so they must be removed manually.
142
- */
143
- async function removeOrphanSites(sitesToPublish, domain) {
144
- const { __cx } = await (0, render_1.getRenderPathsFromDB)({ domain });
145
- const storePath = node_path_1.default.join(__cx, "store");
146
- if (!(await (0, folders_1.pathExists)(storePath))) {
147
- return;
148
- }
149
- const currentSitesInStore = await promises_1.default.readdir(storePath);
150
- const sitesFromAPI = sitesToPublish.map(({ id }) => `${id}`);
151
- const sitesToDelete = currentSitesInStore.filter((site) => !sitesFromAPI.includes(site));
152
- for (const site of sitesToDelete) {
153
- await promises_1.default.rm(node_path_1.default.join(storePath, site), { recursive: true, force: true });
154
- (0, loggin_1.verboseLog)(`Removed orphan site id: ${site}`);
155
- }
156
- }
157
- /**
158
- * Get pages that are not active anymore but are in the store.
159
- */
160
- async function getZombiePagesInStore(siteDir, activePages) {
161
- const { __cx } = await (0, render_1.getRenderPathsFromDB)();
162
- const storeDir = node_path_1.default.join(__cx, "store", siteDir);
163
- const sitePages = await promises_1.default.readdir(storeDir);
164
- const zombiePages = [];
165
- for (const pageFileName of sitePages) {
166
- const pageFileNameWithoutExtension = pageFileName.split(".")[0];
167
- const pageInStore = Number.parseInt(pageFileNameWithoutExtension);
168
- // What the hell is `pageIdInStore > 0` ??
169
- // Las páginas de listados estáticos y multipage tiene ids "basura", que
170
- // en este caso son ids negativos y siempre so borran al final del render.
171
- // En este caso hay que ignorarlas porque NUNCA van a estar en el
172
- // `activePages`, estaríamos borrándolas siempre antes de la fase de
173
- // SSG.
174
- if (!activePages.includes(pageInStore) && pageInStore > 0) {
175
- zombiePages.push(pageInStore);
176
- }
177
- }
178
- return zombiePages;
179
- }
180
- async function writeUniqueFileSync(filePath, content) {
181
- const dir = node_path_1.default.dirname(filePath);
182
- const ext = node_path_1.default.extname(filePath);
183
- const base = node_path_1.default.basename(filePath, ext);
184
- let uniquePath = filePath;
185
- let counter = 1;
186
- while (await (0, folders_1.pathExists)(uniquePath)) {
187
- const newName = `${base}-${counter}${ext}`;
188
- uniquePath = node_path_1.default.join(dir, newName);
189
- counter++;
190
- }
191
- await promises_1.default.writeFile(uniquePath, content);
192
- }
193
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../exporter/utils/store.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
- import type { SSG } from "../shared/types";
3
-
4
- import { removeDirs } from "../../../utils/folders";
5
-
6
- export async function cleanAction(context: RenderContext<SSG>) {
7
- const {
8
- cxArtifacts,
9
- ssg: { ssgArtifacts },
10
- } = context;
11
-
12
- await removeDirs(cxArtifacts.disposables);
13
- await removeDirs(ssgArtifacts.disposables);
14
- }
@@ -1,17 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
- import type { SSG } from "../shared/types";
3
-
4
- import { removeDirs } from "../../../utils/folders";
5
- import { updateCommitFile } from "../../../utils/render";
6
-
7
- export async function closeAction(context: RenderContext<SSG>) {
8
- const {
9
- cxArtifacts,
10
- ssg: { ssgArtifacts },
11
- paths: { __cache },
12
- } = context;
13
-
14
- await removeDirs(cxArtifacts.disposables);
15
- await removeDirs(ssgArtifacts.disposables);
16
- await updateCommitFile({ basePath: __cache });
17
- }
@@ -1,25 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
-
3
- import { createStore } from "../../../services/store";
4
- import { createAPICacheDir } from "../../../utils/cache";
5
-
6
- export async function dataAction(context: RenderContext) {
7
- const {
8
- domain,
9
- renderMode,
10
- renderMetadata: { griddoVersion },
11
- paths: { __cx },
12
- } = context;
13
-
14
- await createAPICacheDir({ basePath: __cx });
15
-
16
- const { pagesToCreate, pagesToDelete } = await createStore({
17
- domain,
18
- renderMode,
19
- griddoVersion,
20
- basePath: __cx,
21
- });
22
-
23
- context.pagesToCreate = pagesToCreate;
24
- context.pagesToDelete = pagesToDelete;
25
- }
@@ -1,10 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
-
3
- import { assertRenderIsValid, markRenderAsCompleted } from "../../../utils/render";
4
-
5
- export async function healthCheckAction(context: RenderContext) {
6
- const { domain } = context;
7
-
8
- await assertRenderIsValid();
9
- await markRenderAsCompleted(domain);
10
- }
@@ -1,12 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
-
3
- import { markRenderAsStarted } from "../../../utils/render";
4
-
5
- export async function initAction(context: RenderContext) {
6
- const {
7
- domain,
8
- paths: { __cx },
9
- } = context;
10
-
11
- await markRenderAsStarted({ basePath: __cx, domain });
12
- }
@@ -1,18 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
-
3
- import { RobotsService } from "../../../services/robots";
4
- import { saveBuildEndLogs } from "../../../utils/core-utils";
5
- import { generateBuildReport, generateSitemaps } from "../../../utils/sites";
6
-
7
- export async function metaAction(context: RenderContext) {
8
- const {
9
- domain,
10
- paths: { __cx },
11
- } = context;
12
-
13
- await generateBuildReport(domain);
14
- await generateSitemaps(domain);
15
- await RobotsService.writeFiles(domain);
16
-
17
- await saveBuildEndLogs({ basePath: __cx, domain });
18
- }
@@ -1,9 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
-
3
- import { createDirs } from "../../../utils/folders";
4
-
5
- export async function prepareAction(context: RenderContext) {
6
- const { cxArtifacts } = context;
7
-
8
- await createDirs(cxArtifacts.initials);
9
- }
@@ -1,15 +0,0 @@
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
- paths: { __cx, __ssg },
9
- } = context;
10
-
11
- const src = path.join(__ssg, "public");
12
- const dst = path.join(__cx, "dist");
13
-
14
- await fsp.rename(src, dst);
15
- }
@@ -1,36 +0,0 @@
1
- import type { RenderContext } from "../shared/context";
2
- import type { SSG } from "../shared/types";
3
-
4
- import path from "node:path";
5
-
6
- import { RENDER_MODE } from "../../../types/render";
7
- import { copyDirs, moveDirs, removeDirs, renamePath } from "../../../utils/folders";
8
-
9
- export async function restoreAction(context: RenderContext<SSG>) {
10
- const {
11
- renderMode,
12
- ssg: { ssgArtifacts },
13
- cxArtifacts,
14
- paths: { __components, __cx, __cache, __exports, __ssg },
15
- } = context;
16
-
17
- await copyDirs(__components, __ssg, ["static"]);
18
-
19
- if (renderMode === RENDER_MODE.FROM_SCRATCH) {
20
- // NO RESTAURAMOS NADA!
21
- // De hecho hay que borrar los cacheables
22
- await removeDirs(
23
- cxArtifacts.cacheables.map((artifactName) => path.join(__cache, artifactName)),
24
- );
25
- await removeDirs(
26
- ssgArtifacts.cacheables.map((artifactName) => path.join(__cache, artifactName)),
27
- );
28
- }
29
-
30
- if (renderMode === RENDER_MODE.INCREMENTAL) {
31
- await moveDirs(__cache, __ssg, ssgArtifacts.cacheables);
32
- await moveDirs(__cache, __cx, cxArtifacts.cacheables);
33
- await copyDirs(__exports, __cx, cxArtifacts.restaurable);
34
- await renamePath(path.join(__cx, "dist"), path.join(__cx, "dist-restored"));
35
- }
36
- }
@@ -1,12 +0,0 @@
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
- }