@griddo/cx 11.7.10 → 11.7.12-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 (302) 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 +14 -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 +22 -0
  11. package/build/adapters/gatsby/actions/init.js.map +1 -0
  12. package/build/adapters/gatsby/actions/logs.js +9 -0
  13. package/build/adapters/gatsby/actions/logs.js.map +1 -0
  14. package/build/adapters/gatsby/actions/meta.js +13 -0
  15. package/build/adapters/gatsby/actions/meta.js.map +1 -0
  16. package/build/adapters/gatsby/actions/prepare.js +9 -0
  17. package/build/adapters/gatsby/actions/prepare.js.map +1 -0
  18. package/build/adapters/gatsby/actions/relocation.js +15 -0
  19. package/build/adapters/gatsby/actions/relocation.js.map +1 -0
  20. package/build/adapters/gatsby/actions/restore.js +26 -0
  21. package/build/adapters/gatsby/actions/restore.js.map +1 -0
  22. package/build/adapters/gatsby/actions/ssg.js +9 -0
  23. package/build/adapters/gatsby/actions/ssg.js.map +1 -0
  24. package/build/adapters/gatsby/actions/sync.js +51 -0
  25. package/build/adapters/gatsby/actions/sync.js.map +1 -0
  26. package/build/adapters/gatsby/index.js +78 -0
  27. package/build/adapters/gatsby/index.js.map +1 -0
  28. package/build/adapters/gatsby/shared/artifacts.js +20 -0
  29. package/build/adapters/gatsby/shared/artifacts.js.map +1 -0
  30. package/build/adapters/gatsby/shared/context.js +31 -0
  31. package/build/adapters/gatsby/shared/context.js.map +1 -0
  32. package/build/adapters/gatsby/shared/diff-assets.js +101 -0
  33. package/build/adapters/gatsby/shared/diff-assets.js.map +1 -0
  34. package/build/adapters/gatsby/shared/extract-assets.js +58 -0
  35. package/build/adapters/gatsby/shared/extract-assets.js.map +1 -0
  36. package/build/adapters/gatsby/shared/gatsby-build.js +55 -0
  37. package/build/adapters/gatsby/shared/gatsby-build.js.map +1 -0
  38. package/build/adapters/gatsby/shared/sync-render.js +210 -0
  39. package/build/adapters/gatsby/shared/sync-render.js.map +1 -0
  40. package/build/adapters/gatsby/shared/types.js +3 -0
  41. package/build/adapters/gatsby/shared/types.js.map +1 -0
  42. package/build/commands/end-render.js +87 -0
  43. package/build/commands/end-render.js.map +1 -0
  44. package/build/commands/prepare-assets-directory.js +30 -0
  45. package/build/commands/prepare-assets-directory.js.map +1 -0
  46. package/build/commands/prepare-domains-render.js +133 -0
  47. package/build/commands/prepare-domains-render.js.map +1 -0
  48. package/build/commands/reset-render.js +21 -0
  49. package/build/commands/reset-render.js.map +1 -0
  50. package/build/commands/start-render.js +44 -0
  51. package/build/commands/start-render.js.map +1 -0
  52. package/build/commands/upload-search-content.js +180 -0
  53. package/build/commands/upload-search-content.js.map +1 -0
  54. package/build/constants/endpoints.js +43 -0
  55. package/build/constants/endpoints.js.map +1 -0
  56. package/build/constants/envs.js +68 -0
  57. package/build/constants/envs.js.map +1 -0
  58. package/build/constants/errors.js +81 -0
  59. package/build/constants/errors.js.map +1 -0
  60. package/build/services/auth.js +40 -0
  61. package/build/services/auth.js.map +1 -0
  62. package/build/services/db-class.js +49 -0
  63. package/build/services/db-class.js.map +1 -0
  64. package/build/services/db.js +34 -0
  65. package/build/services/db.js.map +1 -0
  66. package/build/services/navigation.js +96 -0
  67. package/build/services/navigation.js.map +1 -0
  68. package/build/services/reference-fields.js +131 -0
  69. package/build/services/reference-fields.js.map +1 -0
  70. package/build/services/robots.js +60 -0
  71. package/build/services/robots.js.map +1 -0
  72. package/build/services/sites.js +110 -0
  73. package/build/services/sites.js.map +1 -0
  74. package/build/services/store.js +257 -0
  75. package/build/services/store.js.map +1 -0
  76. package/build/types/api.js +3 -0
  77. package/build/types/api.js.map +1 -0
  78. package/build/types/global.js +3 -0
  79. package/build/types/global.js.map +1 -0
  80. package/build/types/navigation.js +3 -0
  81. package/build/types/navigation.js.map +1 -0
  82. package/build/types/pages.js +3 -0
  83. package/build/types/pages.js.map +1 -0
  84. package/build/types/render.js +10 -0
  85. package/build/types/render.js.map +1 -0
  86. package/build/types/sites.js +3 -0
  87. package/build/types/sites.js.map +1 -0
  88. package/build/types/templates.js +3 -0
  89. package/build/types/templates.js.map +1 -0
  90. package/build/utils/api.js +165 -0
  91. package/build/utils/api.js.map +1 -0
  92. package/build/utils/artifacts.js +38 -0
  93. package/build/utils/artifacts.js.map +1 -0
  94. package/build/utils/brush.js +30 -0
  95. package/build/utils/brush.js.map +1 -0
  96. package/build/utils/cache.js +106 -0
  97. package/build/utils/cache.js.map +1 -0
  98. package/build/utils/check-environment-health.js +69 -0
  99. package/build/utils/check-environment-health.js.map +1 -0
  100. package/build/utils/core-utils.js +270 -0
  101. package/build/utils/core-utils.js.map +1 -0
  102. package/build/utils/domains.js +37 -0
  103. package/build/utils/domains.js.map +1 -0
  104. package/build/utils/errors.js +30 -0
  105. package/build/utils/errors.js.map +1 -0
  106. package/build/utils/folders.js +341 -0
  107. package/build/utils/folders.js.map +1 -0
  108. package/build/utils/images.js +45 -0
  109. package/build/utils/images.js.map +1 -0
  110. package/build/utils/instance.js +66 -0
  111. package/build/utils/instance.js.map +1 -0
  112. package/build/utils/loggin.js +119 -0
  113. package/build/utils/loggin.js.map +1 -0
  114. package/build/utils/npm-deps/find-up-simple.js +75 -0
  115. package/build/utils/npm-deps/find-up-simple.js.map +1 -0
  116. package/build/utils/npm-deps/pkg-dir.js +20 -0
  117. package/build/utils/npm-deps/pkg-dir.js.map +1 -0
  118. package/build/utils/npm-deps/xml-parser.js +49 -0
  119. package/build/utils/npm-deps/xml-parser.js.map +1 -0
  120. package/build/utils/pages.js +359 -0
  121. package/build/utils/pages.js.map +1 -0
  122. package/build/utils/render.js +168 -0
  123. package/build/utils/render.js.map +1 -0
  124. package/build/utils/sitemaps.js +110 -0
  125. package/build/utils/sitemaps.js.map +1 -0
  126. package/build/utils/sites.js +105 -0
  127. package/build/utils/sites.js.map +1 -0
  128. package/build/utils/store.js +193 -0
  129. package/build/utils/store.js.map +1 -0
  130. package/exporter/adapters/gatsby/actions/clean.ts +14 -0
  131. package/exporter/adapters/gatsby/actions/close.ts +20 -0
  132. package/exporter/adapters/gatsby/actions/data.ts +25 -0
  133. package/exporter/adapters/gatsby/actions/healthCheck.ts +10 -0
  134. package/exporter/adapters/gatsby/actions/init.ts +26 -0
  135. package/exporter/adapters/gatsby/actions/logs.ts +10 -0
  136. package/exporter/adapters/gatsby/actions/meta.ts +16 -0
  137. package/exporter/adapters/gatsby/actions/prepare.ts +9 -0
  138. package/exporter/adapters/gatsby/actions/relocation.ts +15 -0
  139. package/exporter/adapters/gatsby/actions/restore.ts +36 -0
  140. package/exporter/adapters/gatsby/actions/ssg.ts +12 -0
  141. package/exporter/adapters/gatsby/actions/sync.ts +71 -0
  142. package/exporter/adapters/gatsby/index.ts +73 -153
  143. package/exporter/adapters/gatsby/shared/artifacts.ts +16 -0
  144. package/exporter/adapters/gatsby/shared/context.ts +50 -0
  145. package/exporter/adapters/gatsby/shared/diff-assets.ts +113 -0
  146. package/exporter/adapters/gatsby/shared/extract-assets.ts +61 -0
  147. package/exporter/adapters/gatsby/shared/gatsby-build.ts +58 -0
  148. package/exporter/adapters/gatsby/shared/sync-render.ts +276 -0
  149. package/exporter/adapters/gatsby/shared/types.ts +35 -0
  150. package/exporter/build-esbuild.noop +42 -0
  151. package/exporter/build.sh +4 -38
  152. package/exporter/commands/end-render.ts +72 -70
  153. package/exporter/commands/prepare-assets-directory.ts +30 -0
  154. package/exporter/commands/prepare-domains-render.ts +143 -31
  155. package/exporter/commands/reset-render.ts +10 -3
  156. package/exporter/commands/start-render.ts +22 -45
  157. package/exporter/commands/upload-search-content.ts +194 -21
  158. package/exporter/constants/endpoints.ts +2 -1
  159. package/exporter/constants/envs.ts +57 -55
  160. package/exporter/{errors/errors-data.ts → constants/errors.ts} +24 -14
  161. package/exporter/services/auth.ts +7 -6
  162. package/exporter/services/db-class.ts +54 -0
  163. package/exporter/services/db.ts +32 -0
  164. package/exporter/services/navigation.ts +4 -10
  165. package/exporter/services/reference-fields.ts +9 -24
  166. package/exporter/services/robots.ts +9 -16
  167. package/exporter/services/sites.ts +36 -24
  168. package/exporter/services/store.ts +107 -96
  169. package/exporter/types/api.ts +27 -28
  170. package/exporter/types/global.ts +8 -11
  171. package/exporter/types/navigation.ts +1 -1
  172. package/exporter/types/pages.ts +2 -3
  173. package/exporter/types/render.ts +59 -0
  174. package/exporter/types/sites.ts +1 -2
  175. package/exporter/utils/api.ts +55 -75
  176. package/exporter/utils/artifacts.ts +38 -0
  177. package/exporter/utils/brush.ts +34 -0
  178. package/exporter/utils/cache.ts +37 -62
  179. package/exporter/utils/check-environment-health.ts +80 -0
  180. package/exporter/utils/core-utils.ts +133 -272
  181. package/exporter/utils/domains.ts +10 -7
  182. package/exporter/{errors/index.ts → utils/errors.ts} +10 -9
  183. package/exporter/utils/folders.ts +163 -98
  184. package/exporter/utils/images.ts +1 -6
  185. package/exporter/utils/instance.ts +9 -13
  186. package/exporter/utils/loggin.ts +44 -91
  187. package/exporter/utils/npm-deps/find-up-simple.ts +100 -0
  188. package/exporter/utils/npm-deps/pkg-dir.ts +17 -0
  189. package/exporter/utils/npm-deps/xml-parser.ts +57 -0
  190. package/exporter/utils/pages.ts +23 -88
  191. package/exporter/utils/render.ts +180 -48
  192. package/exporter/utils/sitemaps.ts +129 -0
  193. package/exporter/utils/sites.ts +19 -197
  194. package/exporter/utils/store.ts +87 -180
  195. package/gatsby-browser.tsx +41 -58
  196. package/gatsby-config.ts +10 -17
  197. package/gatsby-node.ts +17 -78
  198. package/gatsby-ssr.tsx +2 -1
  199. package/package.json +35 -86
  200. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
  201. package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
  202. package/react/DynamicScript/index.tsx +33 -0
  203. package/{exporter/react → react}/Favicon/index.tsx +1 -7
  204. package/{exporter/react → react}/GriddoIntegrations/index.tsx +16 -22
  205. package/{exporter/react → react}/GriddoIntegrations/utils.ts +21 -9
  206. package/{build/react/index.d.ts → react/index.tsx} +1 -0
  207. package/src/components/Head.tsx +13 -46
  208. package/src/components/template.tsx +8 -30
  209. package/src/gatsby-node-utils.ts +73 -2
  210. package/src/html.tsx +2 -11
  211. package/src/types.ts +5 -5
  212. package/tsconfig.commands.json +36 -0
  213. package/tsconfig.exporter.json +19 -0
  214. package/tsconfig.json +5 -3
  215. package/build/adapters/gatsby/index.d.ts +0 -4
  216. package/build/adapters/gatsby/utils.d.ts +0 -22
  217. package/build/artifacts/index.d.ts +0 -6
  218. package/build/commands/end-render.d.ts +0 -2
  219. package/build/commands/move-assets.d.ts +0 -1
  220. package/build/commands/prepare-domains-render.d.ts +0 -1
  221. package/build/commands/reset-render.d.ts +0 -2
  222. package/build/commands/start-render.d.ts +0 -2
  223. package/build/commands/upload-search-content.d.ts +0 -2
  224. package/build/constants/endpoints.d.ts +0 -19
  225. package/build/constants/envs.d.ts +0 -37
  226. package/build/constants/index.d.ts +0 -57
  227. package/build/end-render.js +0 -74
  228. package/build/end-render.js.map +0 -7
  229. package/build/errors/errors-data.d.ts +0 -22
  230. package/build/errors/index.d.ts +0 -15
  231. package/build/index.d.ts +0 -29
  232. package/build/index.js +0 -73
  233. package/build/index.js.map +0 -7
  234. package/build/prepare-domains-render.js +0 -73
  235. package/build/prepare-domains-render.js.map +0 -7
  236. package/build/react/Favicon/index.d.ts +0 -5
  237. package/build/react/Favicon/utils.d.ts +0 -9
  238. package/build/react/GriddoIntegrations/index.d.ts +0 -20
  239. package/build/react/GriddoIntegrations/utils.d.ts +0 -26
  240. package/build/react/index.js +0 -3
  241. package/build/registers/api.d.ts +0 -9
  242. package/build/registers/gatsby.d.ts +0 -9
  243. package/build/registers/index.d.ts +0 -3
  244. package/build/reset-render.js +0 -74
  245. package/build/reset-render.js.map +0 -7
  246. package/build/services/auth.d.ts +0 -10
  247. package/build/services/domains.d.ts +0 -6
  248. package/build/services/navigation.d.ts +0 -50
  249. package/build/services/reference-fields.d.ts +0 -20
  250. package/build/services/register.d.ts +0 -36
  251. package/build/services/robots.d.ts +0 -19
  252. package/build/services/settings.d.ts +0 -4
  253. package/build/services/sites.d.ts +0 -29
  254. package/build/services/store.d.ts +0 -6
  255. package/build/start-render.js +0 -100
  256. package/build/start-render.js.map +0 -7
  257. package/build/types/api.d.ts +0 -142
  258. package/build/types/global.d.ts +0 -84
  259. package/build/types/navigation.d.ts +0 -28
  260. package/build/types/pages.d.ts +0 -144
  261. package/build/types/sites.d.ts +0 -57
  262. package/build/types/templates.d.ts +0 -8
  263. package/build/upload-search-content.js +0 -74
  264. package/build/upload-search-content.js.map +0 -7
  265. package/build/utils/alerts.d.ts +0 -3
  266. package/build/utils/api.d.ts +0 -23
  267. package/build/utils/cache.d.ts +0 -35
  268. package/build/utils/core-utils.d.ts +0 -107
  269. package/build/utils/create-build-data.d.ts +0 -8
  270. package/build/utils/domains.d.ts +0 -13
  271. package/build/utils/folders.d.ts +0 -53
  272. package/build/utils/health-checks.d.ts +0 -7
  273. package/build/utils/images.d.ts +0 -16
  274. package/build/utils/instance.d.ts +0 -21
  275. package/build/utils/loggin.d.ts +0 -51
  276. package/build/utils/pages.d.ts +0 -34
  277. package/build/utils/render.d.ts +0 -13
  278. package/build/utils/searches.d.ts +0 -15
  279. package/build/utils/sites.d.ts +0 -31
  280. package/build/utils/store.d.ts +0 -81
  281. package/cx.config.d.ts +0 -5
  282. package/cx.config.js +0 -36
  283. package/exporter/adapters/gatsby/utils.ts +0 -161
  284. package/exporter/artifacts/README.md +0 -34
  285. package/exporter/artifacts/index.ts +0 -33
  286. package/exporter/commands/move-assets.ts +0 -11
  287. package/exporter/constants/index.ts +0 -129
  288. package/exporter/index.ts +0 -82
  289. package/exporter/react/index.tsx +0 -11
  290. package/exporter/registers/api.ts +0 -14
  291. package/exporter/registers/gatsby.ts +0 -14
  292. package/exporter/registers/index.ts +0 -4
  293. package/exporter/services/domains.ts +0 -16
  294. package/exporter/services/register.ts +0 -113
  295. package/exporter/services/settings.ts +0 -17
  296. package/exporter/utils/alerts.ts +0 -29
  297. package/exporter/utils/create-build-data.ts +0 -17
  298. package/exporter/utils/health-checks.ts +0 -64
  299. package/exporter/utils/searches.ts +0 -156
  300. package/src/README.md +0 -7
  301. package/start-render.js +0 -7
  302. /package/{exporter/react → react}/Favicon/utils.ts +0 -0
package/README.md CHANGED
@@ -1,246 +1,47 @@
1
- # Griddo CX
1
+ # Proceso de renderizado de Griddo con incremental builds.
2
2
 
3
- Griddo CX es un package dentro del monorepo de Griddo (`packages/griddo-cx`) que se encarga de ofrecer herramientas para orquestar el render de una instancia utilizando la biblioteca de componentes, un framework SSG y los datos obtenidos de la API privada de Griddo.
3
+ Este documento describe el flujo de trabajo del renderizado en Griddo, centrándose en el proceso genérico y el incremental build.
4
4
 
5
- # Arquitectura
5
+ ## 1. Flujo del render genérico
6
6
 
7
- CX está escrito como una biblioteca en TypeScript. \**Los consumidores de la misma son el *Adapter, el framework SSG y una serie de scripts en TypeScript que viven en el propio `package/griddo-cx` y que son utilizados por infra, normalmente invocados mediante un `npm run ...`
7
+ El proceso de renderizado comienza cuando la **infra** detecta que es necesario un nuevo render y activa el flujo/orquestación. A continuación, se detallan las fases principales.
8
8
 
9
- \*Para los casos del Adapter y los “scripts para infra”, estos utilizarán directamente el código Typescript de la biblioteca de CX. Para el caso del SSG, este utilizará el código bundlelizado disponible en `@griddo/cx` y `griddo/cx/react`
9
+ ### 1. `prepare-renders-domain`
10
10
 
11
- Como ejemplo aquí vemos un snippet dentro de Gatsby (actual framework SSG) importando un componente `<GriddoIntegrations>` que forma parte de la biblioteca de CX, en concreto del export de react.
11
+ La **infra** llama a `npm run prepare-renders-domain` para iniciar esta fase.
12
12
 
13
- ```tsx
14
- // src/components/template.tsx
15
- import { GriddoIntegrations } from "@griddo/cx/react";
16
- ```
13
+ 1. Se crea el archivo `<ROOT>/.cx-cache/db.json`, que actúa como base de datos para almacenar meta-datos relevantes del render, como dominios, modos de render, hashes, etc. La carpeta `.cx-cache` también que se ha creado en este paso también guardará archivos de caché de Gatsby y CX. Es "la carpeta de caché de CX".
14
+ 2. Se genera el archivo `<CX-PACKAGE>/domains.json` con la lista de dominios a renderizar (por ejemplo, `["pro-griddo", "pre-griddo"]`), ordenados, en principio, de menor a mayor por la cantidad de páginas. Esto se podría deprecar y usar exclusivamente el archivo `db.json` que contiene entre otras cosas la lista de dominios ordenados por el mismo criterio.
17
15
 
18
- ## Exports
16
+ ### 2. `start-render` (bucle por dominios)
19
17
 
20
- CX tiene dos exports separados: **main y react**.
18
+ La **infra** ejecuta `npm run start-render <domain-name>` para cada dominio (los del `domains.json`)
21
19
 
22
- - **main** se exporta en `@griddo/cx` . Es código que se ejecuta en un entorno nodejs.
23
- - **react** se exporta en `@griddo-cx/react` . Es código React :)
20
+ 1. Se realiza un **`check-health`**. Si algo falla, el render se aborta.
21
+ 2. Si el `check-health` es exitoso, comienza el render con sus fases correspondientes: **restore**, **data**, **ssg**, **archive**, etc.
22
+ 3. Si el render falla, se aborta el proceso e **infra** llama a `npm run reset-render`.
23
+ 4. Si el render finaliza correctamente, **infra** comienza a subir los archivos del render a S3.
24
24
 
25
- **Ejemplo de import**
25
+ ### 3. `end-render` (bucle por dominios)
26
26
 
27
- ```tsx
28
- // React import
29
- import { GriddoIntegrations } from "@griddo/cx/react";
30
- // Core import
31
- import {
32
- IS_COMPONENT_LIBRARY,
33
- PROJECT_ALIASES,
34
- resolveComponentsPath,
35
- } from "@griddo/cx";
36
- ```
27
+ 1. Cuando la subida a S3 ha terminado, **infra** llama a `npm run end-render <domain-name>` para notificar el nuevo estado de las páginas.
37
28
 
38
- ## Bundle
29
+ ### `upload-search-content`
39
30
 
40
- El bundle del código TypeScript se genera con [esbuild](https://esbuild.github.io/). Compilando el código a CommonJS junto con las definiciones de tipos.
31
+ Este script sube contenido a la base de datos a través de una llamada `POST` a la API. Si la variable de entorno correspondiente no está activada, el script no hace nada.
41
32
 
42
- Se puede ejecutar el bundle de todo CX con `yarn run build` desde `packages/griddo-cx` . Esto creará los distintos exports: _node_, _react_ y también los scripts para _infra_: reset-render, build-complete y upload-search-content junto con los archivos de definición de tipos.
33
+ Aunque este script funciona de manera independiente, necesita que se haya realizado un render previo para tener contenido que subir. Además, si están activados, también invoca a los **embeddings**.
43
34
 
44
- Este comando, `yarn run build` se ejecuta en el despliegue del monorepo, npm prepare, etc. No es necesario que manualmente hagamos un build para los despliegues.
35
+ ---
45
36
 
46
- # Features
37
+ ## 2. Flujo del render incremental
47
38
 
48
- ## Archivo de configuración
39
+ Las fases del render incremental son las mismas que las del flujo genérico: `repare-domains-render`, `start-render`, `reset-render`/`end-render` y `upload-search-content`.
49
40
 
50
- CX tiene un archivo de configuración en el raíz del package `griddo-cx/cx.config.js` donde se establecen ciertos valores globales para todo el package.
41
+ Cuando una orden de render llega a CX, `prepare-domains-render` evalúa todos los dominios de la instancia para determinar su `RenderMode` (nueva feature). Esta nueva función permite saber si un dominio tiene o no tiene cambios, si es la primera vez que se renderiza, etc.
51
42
 
52
- Los siguientes puntos están incluidos en el archivo de configuración y deben ser leídos de este, evitando hardcodear o volver a calcularlos en el resto del código.
43
+ Estos son los nuevos `RenderModes` que el proceso de render ( `start-render` ) va a utilizar creando un render desde cero, uno de tipo incremental o directamente ignorando el render del dominio.
53
44
 
54
- ```jsx
55
- const config = {
56
- proDomain: "pro-", // Prefijo para los dominios "pro"
57
- griddoVersion, // Versión de griddo obtenida del package.json
58
- buildReportFileName: "build-report.json", // Archivo de reporte de render
59
- // función que resuelve la ruta absoluta a los placeholders
60
- paths: (domain) => ({
61
- __cache: path.join(CX_CACHE_DIR, domain || ""),
62
- __components: COMPONENTS_DIR,
63
- __cx: CX_ROOT_DIR,
64
- __exports: path.join(EXPORTS_DIR, domain || ""),
65
- __root: REPO_ROOT_DIR,
66
- __ssg: SSG_DIR,
67
- }),
68
- };
69
- ```
70
-
71
- El contenido del archivo de configuración se leerá con la función `getConfig()` donde sea que necesitemos acceder a la misma.
72
-
73
- **Ejemplo**
74
-
75
- ```tsx
76
- const config = getConfig()
77
- const { proDomain, ... } = config
78
- ```
79
-
80
- ### Dominio \*pro-\*\*
81
-
82
- En los renders de Griddo se diferencia cuando el render es de un dominio de producción, esto es que el dominio interno empieza por `pro-` , por ejemplo `pro-griddo`
83
-
84
- Este `pro-` se especifica directamente y una sola vez en el archivo de configuración.
85
-
86
- ### Versión de Griddo
87
-
88
- Si es necesario obtener la versión de CX la podemos tomar directamente del archivo de configuración
89
-
90
- ### Sistema de paths interno
91
-
92
- Mediante el archivo de configuración se establecen unas rutas absolutas globales a todo CX e instancia (ya sea instancia interna del monorepo o la de un cliente) que nos ayudará a orquestar los artefactos durante los LifeCycles de un render. Un uso parecido a los `__dirname` o `__filename` de javascript CommonJS.
93
-
94
- **Rutas con el dominio actual concatenado**
95
-
96
- Ya que la mayoría de las veces el uso de estas rutas son durante el render de un dominio, la ruta incluirá el dominio para así hacer operaciones más fácilmente sin tener que estar adjuntándolo (concat) constantemente. Esto es así para los placeholders `__exports` y `__cache` . Para ello a `paths()` hay que pasarle el dominio como único argumento cuando obtengamos las rutas con `config.paths()`
97
-
98
- **Ejemplo**
99
-
100
- ```tsx
101
- const { __exports, __cache } = getConfig().paths("mi-dominio");
102
- console.log(__exports); // ...export/sites/**mi-dominio**
103
- console.log(__cache); // ...griddo-cx/.cx-cache/**mi-dominio**
104
- ```
105
-
106
- Esta son las rutas existentes.
107
-
108
- - `__cx` La ruta absoluta del package de CX
109
- - `__ssg` La ruta absoluta del SGG configurado
110
- - `__exports` La ruta donde se aloja el render final
111
- - `__cache` La ruta del caché de CX, donde se guardan artefactos entre renders
112
- - `__components` La ruta de la instancia. En el monorepo la de `griddo-components`
113
- - `__root` El directorio raíz siempre, en el monorepo y en la instancia. (uso residual)
114
-
115
- **Ejemplo de uso real**
116
-
117
- ```tsx
118
- import { getConfig } from "./utils/config";
119
-
120
- // Sin dominio
121
- const config = await getConfig();
122
- const { __cx, __ssg } = config.paths();
123
- const storeDir = path.join(__cx, "store");
124
- const templateFile = path.join(__ssg, "src/components/template.tsx");
125
-
126
- // Con dominio
127
- const { __cache } = config.paths("pre-griddo");
128
- console.log(__exports); // /griddo/packages/griddo-cx/.cx-cache/**pre-griddo**
129
- ```
130
-
131
- ## LifeCycles
132
-
133
- Los LifeCycles se utilizan dentro del contexto de un _Adapter_. Se usa a través de la función `doLifeCycle` que ejecuta un batch de funciones (`actions`) de forma secuencial. Informando por consola del inicio, fin y tiempo invertido en ejecutar todas las funciones del `actions`, manejando cualquier error en las mismas. En caso de error, es posible indicar un número de _attempts_ que hará que se ejecute de nuevo el clico de vida las veces indicadas.
134
-
135
- En CX existen estos LifeCycles: `Prepare`, `Restore`, `Data`, `SSG`, `Relocation`, `Meta`, `Archive`, `Clean`, `HealthCheck` y uno de `__DEBUG__` internamente son iguales (usan `doLifeCycle`) y se utilizan estos distintos nombres para identificarlos dentro de un render, poner distintos _attempts_, etc..
136
-
137
- **Ejemplo:**
138
-
139
- ```tsx
140
- await doLifeCycle({
141
- name: "SSG",
142
- attempts: 2, // intentará hacer **todos** las actions dos veces si hay un error en alguno de ellos
143
- actions: [func1, func2, func3],
144
- });
145
- ```
146
-
147
- # Scripts para infra.
148
-
149
- Como hemos visto uno de los consumidores de CX son scripts “individuales” que están alojados en `griddo-cx/src/scripts` Estos scripts son siempre llamados por infra, o por el desarrollador cuando se hacen render en local.
150
-
151
- ## `start-render`
152
-
153
- CX es una biblioteca por lo tanto no tiene nada ejecutable como tal, no hay un entry point desde el punto de vista del _package_. En el package.json existe un binario `griddo-cx` que usa infra/API para ejecutar un render, este binario apunta a `griddo-cx/start-rener.js` con el que se desencadena el proceso de publicación.
154
-
155
- ## `reset-render`
156
-
157
- Lo ejecuta infra mediante `yarn run reset-render` . Este resetea la API en caso de que un render salga mal. De esa manera la API al ser preguntada volverá a comunicar que hay un render pendiente y comenzará con ello de nuevo.
158
-
159
- Si no se llamase correctamente al script, la API se quedaría esperando a que finalice el render “eternamente”. Hay un time-out de X horas.
160
-
161
- ## `build-complete`
162
-
163
- Lo ejecuta infra mediante `yarn run build-complete` cuando un render acaba de manera exitosa y el contenido ha sido subido al servidor, es decir, cuando se ha completado **una publicación**. Este script envía a la API información del render y le comunica que este ha terminado y que está disponible para un rrnuevo render.
164
-
165
- ## `upload-search-content`
166
-
167
- Lo ejecuta infra mediante `yarn run upload-search-content` cuando un render ha acabado o con cierta frecuencia. Sube contenido de los estáticos del render a un endpoint para el uso en buscadores.
168
-
169
- # Adapter
170
-
171
- Un Adapter es una función que se ejecuta en el script `start-render.js` que es el que se triggea cuando API avisa de un nuevo render. Los Adapters están en el directorio `griddo-cx/exporter/adapters`
172
-
173
- El Adapter es el responsable de manejar el proceso de render mediante las utilidades de la biblioteca. En el proceso puede hacer lo que estime oportuno salvando ciertas obligaciones para que un render sea Griddo-compliant.
174
-
175
- <aside>
176
- 💡 Los Adapters utilizarán el código TypeScript de CX, no el bundlelizado. Ya que el propio adapter también se bundleliza.
177
-
178
- </aside>
179
-
180
- ### **Obligaciones de un Adapter**
181
-
182
- **Exports**
183
-
184
- **Dist**
185
-
186
- Dejar una carpeta con los archivos estáticos finales en el path `__exports` , que es una carpeta `exports/sites/<dominio>/dist` donde `dominio` es cada dominio de la instancia de Griddo. Una vez terminado el render, _infra_ tomará esa carpeta y la subirá. Infra la sube mediante sincronización por lo que siempre tiene que estar actualizada y con la totalidad de los datos. Si en la carpeta destino hay un archivo que no existe en la carpeta fuente `exports/sites/<dominio>/dist` se borrará.
187
-
188
- **Assets**
189
-
190
- Igualmente dejar una carpeta con los “assets” de javascript. Esto es verdad en el mundo Gatsby no sabremos qué pasará con otros frameworks.
191
-
192
- **Caches**
193
-
194
- El adapter deberá manejar manualmente la caché de Griddo utilizando las funciones `moveDirsSync`, `copyDirsSync` y `removeDirsSync`.
195
-
196
- La caché de Griddo son dos directorios que se crean en `griddo-cx` por cada render y dominio: `store` y `apiCache` . Para facilitar el trabajo CX cuenta con placeholders para las rutas, en este caso `__cache` que haría referencia `griddo-cx/.cx-cache/<domain>`
197
-
198
- ```tsx
199
- griddo-cx
200
- |-.cx-cache
201
- |- store
202
- |- apiCache
203
- ```
204
-
205
- ¿Cómo se maneja la caché? ¿Qué hago con ella?
206
-
207
- Los datos de la caché se generan de forma automática en `griddo-cx`El manejo se basa en _restaurar (Restore)_, _archivar_ (Arhive) o _invalidar (Clean)_ los directorios de la caché, tanto `store` como `apiCache`
208
-
209
- **Restaurando la caché**
210
-
211
- Cuando se inicia un render debemos mover tanto `store` como `apiCache` que estarán dentro de `griddo-cx/.rendrr-cache/<dominio>` al raíz de CX `griddo-cx` para que el proceso de render haga uso de las mismas.
212
-
213
- **Archivando la caché**
214
-
215
- Cuando el render de un dominio termina correctamente, se deben mover las carpetas `store` y `apiCache` a la carpeta de caches `griddo-cx/.cx-cache/<domain>` para poder restaurarlas en un próximo render.
216
-
217
- **Invalidando la caché**
218
-
219
- Si un render ha dado error pueden quedarse en el raíz de CX las carpetas `store` y `apiCache`. **Estas deben ser borradas** antes de la nueva fase de restauración. De hecho probablemente no exista nada que restaurar porque el render dio error. En ese caso lo que ocurre es que efectivamente no hay nada que restaurar y habrá que descargarse de nuevo todos los datos.
220
-
221
- A su vez, en cada despliegue que exista en la instancia también se borrarán ya que de alguna manera se alojan en lo que sería el `node_modules` de la instancia. Y se borrará CX enteramente.
222
-
223
- <aside>
224
- 💡 Coming soon: Gestión automática de la caché de Griddo (no de los frameworks SSGS)
225
-
226
- </aside>
227
-
228
- # Logs
229
-
230
-
231
-
232
- # Errores
233
-
234
-
235
-
236
- # Testing
237
-
238
-
239
-
240
- # FAQ’s
241
-
242
- ### ¿Griddo procesa imágenes en tiempo de render?
243
-
244
- No, los proyectos actuales de Griddo se apoyan en imágenes alojadas en remoto, en concreto en un servicio externo “DAM” propiedad de Secuoyas. Este servicio ofrece las transformaciones necesarias. Existen un componente de React en Griddo `<GriddoImage>` que las instancias pueden utilizar y que se integra con el “DAM”.
245
-
246
- Algunas de las primeras instancias utilizan la misma estrategia con cloudinary, usando un componente de React proporcionado también por Griddo: `<CloudinaryImage>`
45
+ - **`FROM_SCRATCH`**: Indica que el dominio debe ser renderizado desde cero, incluyendo todas las páginas publicadas y pendientes de publicar. Esto puede ocurrir en el primer render de una máquina, cuando se ha subido código a la instancia o si hubo un error en un render anterior.
46
+ - **`INCREMENTAL`**: (CAMBIOS GRANDES EN EL CÓDIGO DE CX) Indica que el dominio ya tiene un render previo. El nuevo render incluirá solo las páginas que necesitan ser renderizadas o eliminadas. Posteriormente, CX realizará una **sincronización** con el resultado del nuevo render y lo que ya existía del anterior. Este apartado es el que tiene el 90% del refactor en cuanto al incremental ya que la sincronización que hace Gatsby de los renders se ha delegado al 100% a CX y hay algo de "reverse engineering" de cómo funciona Gatsby por dentro en cuanto a los page-data, etc.
47
+ - **`IDLE`**: El dominio no presenta ningún tipo de cambio y se ignora por completo. En este caso, no se ejecutan **`end-render`**, **`upload-search-content`**, ni otras fases.
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanAction = cleanAction;
4
+ const folders_1 = require("../../../utils/folders");
5
+ async function cleanAction(context) {
6
+ const { cxArtifacts, ssg: { ssgArtifacts }, } = context;
7
+ await (0, folders_1.removeDirs)(cxArtifacts.disposables);
8
+ await (0, folders_1.removeDirs)(ssgArtifacts.disposables);
9
+ }
10
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/clean.ts"],"names":[],"mappings":";;;AAGA,oDAAoD;AAE7C,KAAK,sBAAsB,OAA2B,EAAE;IAC9D,MAAM,EACL,WAAW,EACX,GAAG,EAAE,EAAE,YAAY,EAAE,GACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,oBAAU,EAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,IAAA,oBAAU,EAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAAA,CAC3C"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.closeAction = closeAction;
4
+ const core_utils_1 = require("../../../utils/core-utils");
5
+ const folders_1 = require("../../../utils/folders");
6
+ const render_1 = require("../../../utils/render");
7
+ async function closeAction(context) {
8
+ const { cxArtifacts, ssg: { ssgArtifacts }, paths: { __cache }, domain, } = context;
9
+ await (0, core_utils_1.saveDetailRenderLog)(domain);
10
+ await (0, folders_1.removeDirs)(cxArtifacts.disposables);
11
+ await (0, folders_1.removeDirs)(ssgArtifacts.disposables);
12
+ await (0, render_1.updateCommitFile)({ basePath: __cache });
13
+ }
14
+ //# sourceMappingURL=close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/close.ts"],"names":[],"mappings":";;;AAGA,0DAAgE;AAChE,oDAAoD;AACpD,kDAAyD;AAElD,KAAK,sBAAsB,OAA2B,EAAE;IAC9D,MAAM,EACL,WAAW,EACX,GAAG,EAAE,EAAE,YAAY,EAAE,EACrB,KAAK,EAAE,EAAE,OAAO,EAAE,EAClB,MAAM,GACN,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,gCAAmB,EAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAA,oBAAU,EAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,IAAA,oBAAU,EAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,IAAA,yBAAgB,EAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAAA,CAC9C"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dataAction = dataAction;
4
+ const store_1 = require("../../../services/store");
5
+ const cache_1 = require("../../../utils/cache");
6
+ async function dataAction(context) {
7
+ const { domain, renderMode, renderMetadata: { griddoVersion }, paths: { __root }, } = context;
8
+ await (0, cache_1.createAPICacheDir)({ basePath: __root });
9
+ const { pagesToCreate, pagesToDelete } = await (0, store_1.createStore)({
10
+ domain,
11
+ renderMode,
12
+ griddoVersion,
13
+ basePath: __root,
14
+ });
15
+ context.pagesToCreate = pagesToCreate;
16
+ context.pagesToDelete = pagesToDelete;
17
+ }
18
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/data.ts"],"names":[],"mappings":";;;AAEA,mDAAsD;AACtD,gDAAyD;AAElD,KAAK,qBAAqB,OAAsB,EAAE;IACxD,MAAM,EACL,MAAM,EACN,UAAU,EACV,cAAc,EAAE,EAAE,aAAa,EAAE,EACjC,KAAK,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,yBAAiB,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9C,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,mBAAW,EAAC;QAC1D,MAAM;QACN,UAAU;QACV,aAAa;QACb,QAAQ,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IACtC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AAAA,CACtC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.healthCheckAction = healthCheckAction;
4
+ const render_1 = require("../../../utils/render");
5
+ async function healthCheckAction(context) {
6
+ const { domain } = context;
7
+ await (0, render_1.assertRenderIsValid)(domain);
8
+ await (0, render_1.markRenderAsCompleted)(domain);
9
+ }
10
+ //# sourceMappingURL=healthCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healthCheck.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/healthCheck.ts"],"names":[],"mappings":";;;AAEA,kDAAmF;AAE5E,KAAK,4BAA4B,OAAsB,EAAE;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,IAAA,4BAAmB,EAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAA,8BAAqB,EAAC,MAAM,CAAC,CAAC;AAAA,CACpC"}
@@ -0,0 +1,22 @@
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.initAction = initAction;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const loggin_1 = require("../../../utils/loggin");
10
+ const render_1 = require("../../../utils/render");
11
+ async function initAction(context) {
12
+ const { domain, paths: { __root, __cache, __exports }, renderMode, } = context;
13
+ if (renderMode === "FROM_SCRATCH") {
14
+ (0, loggin_1.infoLog)("Removing old files...\n");
15
+ promises_1.default.rm(__cache, { force: true, recursive: true });
16
+ promises_1.default.rm(node_path_1.default.join(__exports, "dist"), { force: true, recursive: true });
17
+ promises_1.default.rm(node_path_1.default.join(__exports, "assets"), { force: true, recursive: true });
18
+ promises_1.default.rm(node_path_1.default.join(__exports, domain), { force: true, recursive: true }); // only clocal
19
+ }
20
+ await (0, render_1.markRenderAsStarted)({ basePath: __root, domain });
21
+ }
22
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/init.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAmC;AACnC,0DAA6B;AAE7B,kDAAgD;AAChD,kDAA4D;AAErD,KAAK,qBAAqB,OAAsB,EAAE;IACxD,MAAM,EACL,MAAM,EACN,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EACrC,UAAU,GACV,GAAG,OAAO,CAAC;IAEZ,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;QACnC,IAAA,gBAAO,EAAC,yBAAyB,CAAC,CAAC;QAEnC,kBAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,kBAAG,CAAC,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,kBAAG,CAAC,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,kBAAG,CAAC,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc;IACvF,CAAC;IAED,MAAM,IAAA,4BAAmB,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAAA,CACxD"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logsAction = logsAction;
4
+ const core_utils_1 = require("../../../utils/core-utils");
5
+ async function logsAction(context) {
6
+ const { domain } = context;
7
+ await (0, core_utils_1.saveDetailRenderLog)(domain);
8
+ }
9
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/logs.ts"],"names":[],"mappings":";;;AAGA,0DAAgE;AAEzD,KAAK,qBAAqB,OAA2B,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,IAAA,gCAAmB,EAAC,MAAM,CAAC,CAAC;AAAA,CAClC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.metaAction = metaAction;
4
+ const robots_1 = require("../../../services/robots");
5
+ const render_1 = require("../../../utils/render");
6
+ const sitemaps_1 = require("../../../utils/sitemaps");
7
+ async function metaAction(context) {
8
+ const { domain, paths: { __root }, } = context;
9
+ await (0, render_1.generateBuildReport)(domain);
10
+ await (0, sitemaps_1.generateSitemaps)(domain);
11
+ await robots_1.RobotsService.writeFiles(domain);
12
+ }
13
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/meta.ts"],"names":[],"mappings":";;;AAEA,qDAAyD;AACzD,kDAA4D;AAC5D,sDAA2D;AAEpD,KAAK,qBAAqB,OAAsB,EAAE;IACxD,MAAM,EACL,MAAM,EACN,KAAK,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,4BAAmB,EAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,sBAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAAA,CACvC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareAction = prepareAction;
4
+ const folders_1 = require("../../../utils/folders");
5
+ async function prepareAction(context) {
6
+ const { cxArtifacts } = context;
7
+ await (0, folders_1.createDirs)(cxArtifacts.initials);
8
+ }
9
+ //# sourceMappingURL=prepare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/prepare.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AAE7C,KAAK,wBAAwB,OAAsB,EAAE;IAC3D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhC,MAAM,IAAA,oBAAU,EAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAAA,CACvC"}
@@ -0,0 +1,15 @@
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.relocationAction = relocationAction;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ async function relocationAction(context) {
10
+ const { paths: { __root, __ssg }, } = context;
11
+ const src = node_path_1.default.join(__ssg, "public");
12
+ const dst = node_path_1.default.join(__root, "dist");
13
+ await promises_1.default.rename(src, dst);
14
+ }
15
+ //# sourceMappingURL=relocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relocation.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/relocation.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAmC;AACnC,0DAA6B;AAEtB,KAAK,2BAA2B,OAAsB,EAAE;IAC9D,MAAM,EACL,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GACxB,GAAG,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,mBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,MAAM,kBAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAAA,CAC3B"}
@@ -0,0 +1,26 @@
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.restoreAction = restoreAction;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const render_1 = require("../../../types/render");
9
+ const folders_1 = require("../../../utils/folders");
10
+ async function restoreAction(context) {
11
+ const { renderMode, ssg: { ssgArtifacts }, cxArtifacts, paths: { __components, __root, __cache, __exports, __ssg }, } = context;
12
+ await (0, folders_1.copyDirs)(__components, __ssg, ["static"]);
13
+ if (renderMode === render_1.RENDER_MODE.FROM_SCRATCH) {
14
+ // NO RESTAURAMOS NADA!
15
+ // De hecho hay que borrar los cacheables
16
+ await (0, folders_1.removeDirs)(cxArtifacts.cacheables.map((artifactName) => node_path_1.default.join(__cache, artifactName)));
17
+ await (0, folders_1.removeDirs)(ssgArtifacts.cacheables.map((artifactName) => node_path_1.default.join(__cache, artifactName)));
18
+ }
19
+ if (renderMode === render_1.RENDER_MODE.INCREMENTAL) {
20
+ await (0, folders_1.moveDirs)(__cache, __ssg, ssgArtifacts.cacheables);
21
+ await (0, folders_1.moveDirs)(__cache, __root, cxArtifacts.cacheables);
22
+ await (0, folders_1.copyDirs)(__exports, __root, cxArtifacts.restaurable);
23
+ await (0, folders_1.renamePath)(node_path_1.default.join(__root, "dist"), node_path_1.default.join(__root, "dist-restored"));
24
+ }
25
+ }
26
+ //# sourceMappingURL=restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/restore.ts"],"names":[],"mappings":";;;;;;AAGA,0DAA6B;AAE7B,kDAAoD;AACpD,oDAAoF;AAE7E,KAAK,wBAAwB,OAA2B,EAAE;IAChE,MAAM,EACL,UAAU,EACV,GAAG,EAAE,EAAE,YAAY,EAAE,EACrB,WAAW,EACX,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAC1D,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,kBAAQ,EAAC,YAAY,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhD,IAAI,UAAU,KAAK,oBAAW,CAAC,YAAY,EAAE,CAAC;QAC7C,uBAAuB;QACvB,yCAAyC;QACzC,MAAM,IAAA,oBAAU,EACf,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAC9E,CAAC;QACF,MAAM,IAAA,oBAAU,EACf,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAC/E,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,oBAAW,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAA,kBAAQ,EAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,IAAA,kBAAQ,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,IAAA,kBAAQ,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,IAAA,oBAAU,EAAC,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IACjF,CAAC;AAAA,CACD"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ssgAction = ssgAction;
4
+ const gatsby_build_1 = require("../shared/gatsby-build");
5
+ async function ssgAction(context) {
6
+ const { ssg: { assetPrefix }, } = context;
7
+ await (0, gatsby_build_1.gatsbyBuild)(assetPrefix);
8
+ }
9
+ //# sourceMappingURL=ssg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssg.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/ssg.ts"],"names":[],"mappings":";;;AAGA,yDAAqD;AAE9C,KAAK,oBAAoB,OAA2B,EAAE;IAC5D,MAAM,EACL,GAAG,EAAE,EAAE,WAAW,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,0BAAW,EAAC,WAAW,CAAC,CAAC;AAAA,CAC/B"}
@@ -0,0 +1,51 @@
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.syncAction = syncAction;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const render_1 = require("../../../types/render");
10
+ const folders_1 = require("../../../utils/folders");
11
+ const extract_assets_1 = require("../shared/extract-assets");
12
+ const sync_render_1 = require("../shared/sync-render");
13
+ async function syncAction(context) {
14
+ const { renderMode, cxArtifacts, domain, pagesToCreate, pagesToDelete, paths: { __root, __ssg, __cache, __exports }, ssg: { ssgArtifacts, assetPrefix }, } = context;
15
+ const needsAssetPrefix = !!assetPrefix && assetPrefix !== "";
16
+ const distDir = node_path_1.default.join(__root, "dist");
17
+ const distRestoredDir = node_path_1.default.join(__root, "dist-restored");
18
+ const storeDir = node_path_1.default.join(__root, "store");
19
+ // ESTO YA NO TIENE SENTIDO??? EL STORE???
20
+ await (0, folders_1.removeVirtualPages)(storeDir);
21
+ // caching...
22
+ await (0, folders_1.moveDirs)(__root, __cache, cxArtifacts.cacheables);
23
+ await (0, folders_1.moveDirs)(__ssg, __cache, ssgArtifacts.cacheables);
24
+ if (renderMode === render_1.RENDER_MODE.FROM_SCRATCH) {
25
+ await (0, folders_1.deleteDisposableSiteDirs)(distDir);
26
+ }
27
+ if (renderMode === render_1.RENDER_MODE.INCREMENTAL) {
28
+ await (0, folders_1.deleteDisposableSiteDirs)(distRestoredDir);
29
+ const syncRender = new sync_render_1.SyncRender({
30
+ src: distDir,
31
+ dst: distRestoredDir,
32
+ pagesToCreate,
33
+ pagesToDelete,
34
+ artifactsToCopyToExports: ["build-report.json"],
35
+ });
36
+ await syncRender.execute();
37
+ // elimina el dist recién creado, ya no hace falta porque lo hemos utilizado en syncRender.execute()
38
+ await promises_1.default.rm(distDir, { force: true, recursive: true });
39
+ // renombra el nuevo dist-temporal que es el que aglutina todos los cambios -> dist
40
+ await promises_1.default.rename(distRestoredDir, distDir);
41
+ await (0, folders_1.deleteEmptyDirectories)(distDir);
42
+ }
43
+ if (needsAssetPrefix) {
44
+ await (0, extract_assets_1.extractAssetsFromDist)(domain);
45
+ }
46
+ // archiving...
47
+ await (0, folders_1.moveDirs)(__root, __exports, cxArtifacts.archivables, {
48
+ withBackup: true,
49
+ });
50
+ }
51
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/sync.ts"],"names":[],"mappings":";;;;;;AAGA,gEAAmC;AACnC,0DAA6B;AAE7B,kDAAoD;AACpD,oDAKgC;AAChC,6DAAiE;AACjE,uDAAmD;AAE5C,KAAK,qBAAqB,OAA2B,EAAE;IAC7D,MAAM,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,aAAa,EACb,aAAa,EACb,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAC5C,GAAG,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,GAClC,GAAG,OAAO,CAAC;IAEZ,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,IAAI,WAAW,KAAK,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C,0CAA0C;IAC1C,MAAM,IAAA,4BAAkB,EAAC,QAAQ,CAAC,CAAC;IACnC,aAAa;IACb,MAAM,IAAA,kBAAQ,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,IAAA,kBAAQ,EAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAExD,IAAI,UAAU,KAAK,oBAAW,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,UAAU,KAAK,oBAAW,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAA,kCAAwB,EAAC,eAAe,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAG,IAAI,wBAAU,CAAC;YACjC,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,eAAe;YACpB,aAAa;YACb,aAAa;YACb,wBAAwB,EAAE,CAAC,mBAAmB,CAAC;SAC/C,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAE3B,qGAAoG;QACpG,MAAM,kBAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,mFAAmF;QACnF,MAAM,kBAAG,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAA,sCAAqB,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,eAAe;IACf,MAAM,IAAA,kBAAQ,EAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,WAAW,EAAE;QAC1D,UAAU,EAAE,IAAI;KAChB,CAAC,CAAC;AAAA,CACH"}