@griddo/cx 11.7.7-rc.0 → 11.7.7-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +226 -27
  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/end-render.d.ts +2 -0
  6. package/build/commands/move-assets.d.ts +1 -0
  7. package/build/commands/prepare-domains-render.d.ts +1 -0
  8. package/build/commands/reset-render.d.ts +2 -0
  9. package/build/commands/start-render.d.ts +2 -0
  10. package/build/commands/upload-search-content.d.ts +2 -0
  11. package/build/constants/endpoints.d.ts +19 -0
  12. package/build/constants/envs.d.ts +37 -0
  13. package/build/constants/index.d.ts +57 -0
  14. package/build/end-render.js +74 -0
  15. package/build/end-render.js.map +7 -0
  16. package/build/errors/errors-data.d.ts +22 -0
  17. package/build/errors/index.d.ts +15 -0
  18. package/build/index.d.ts +29 -0
  19. package/build/index.js +73 -0
  20. package/build/index.js.map +7 -0
  21. package/build/prepare-domains-render.js +73 -0
  22. package/build/prepare-domains-render.js.map +7 -0
  23. package/build/react/Favicon/index.d.ts +5 -0
  24. package/build/react/Favicon/utils.d.ts +9 -0
  25. package/build/react/GriddoIntegrations/index.d.ts +20 -0
  26. package/build/react/GriddoIntegrations/utils.d.ts +26 -0
  27. package/{react/index.tsx → build/react/index.d.ts} +0 -1
  28. package/build/react/index.js +3 -0
  29. package/build/registers/api.d.ts +9 -0
  30. package/build/registers/gatsby.d.ts +9 -0
  31. package/build/registers/index.d.ts +3 -0
  32. package/build/reset-render.js +74 -0
  33. package/build/reset-render.js.map +7 -0
  34. package/build/services/auth.d.ts +10 -0
  35. package/build/services/domains.d.ts +6 -0
  36. package/build/services/navigation.d.ts +50 -0
  37. package/build/services/reference-fields.d.ts +20 -0
  38. package/build/services/register.d.ts +36 -0
  39. package/build/services/robots.d.ts +19 -0
  40. package/build/services/settings.d.ts +4 -0
  41. package/build/services/sites.d.ts +29 -0
  42. package/build/services/store.d.ts +6 -0
  43. package/build/start-render.js +100 -0
  44. package/build/start-render.js.map +7 -0
  45. package/build/types/api.d.ts +142 -0
  46. package/build/types/global.d.ts +84 -0
  47. package/build/types/navigation.d.ts +28 -0
  48. package/build/types/pages.d.ts +144 -0
  49. package/build/types/sites.d.ts +57 -0
  50. package/build/types/templates.d.ts +8 -0
  51. package/build/upload-search-content.js +74 -0
  52. package/build/upload-search-content.js.map +7 -0
  53. package/build/utils/alerts.d.ts +3 -0
  54. package/build/utils/api.d.ts +23 -0
  55. package/build/utils/cache.d.ts +35 -0
  56. package/build/utils/core-utils.d.ts +107 -0
  57. package/build/utils/create-build-data.d.ts +8 -0
  58. package/build/utils/domains.d.ts +13 -0
  59. package/build/utils/folders.d.ts +53 -0
  60. package/build/utils/health-checks.d.ts +7 -0
  61. package/build/utils/images.d.ts +16 -0
  62. package/build/utils/instance.d.ts +21 -0
  63. package/build/utils/loggin.d.ts +51 -0
  64. package/build/utils/pages.d.ts +34 -0
  65. package/build/utils/render.d.ts +13 -0
  66. package/build/utils/searches.d.ts +15 -0
  67. package/build/utils/sites.d.ts +31 -0
  68. package/build/utils/store.d.ts +81 -0
  69. package/cx.config.d.ts +5 -0
  70. package/cx.config.js +36 -0
  71. package/exporter/adapters/gatsby/index.ts +147 -67
  72. package/exporter/adapters/gatsby/utils.ts +161 -0
  73. package/exporter/artifacts/README.md +34 -0
  74. package/exporter/artifacts/index.ts +33 -0
  75. package/exporter/build.sh +38 -4
  76. package/exporter/commands/end-render.ts +69 -73
  77. package/exporter/commands/move-assets.ts +11 -0
  78. package/exporter/commands/prepare-domains-render.ts +31 -144
  79. package/exporter/commands/reset-render.ts +1 -10
  80. package/exporter/commands/start-render.ts +44 -23
  81. package/exporter/commands/upload-search-content.ts +20 -194
  82. package/exporter/constants/envs.ts +55 -57
  83. package/exporter/constants/index.ts +129 -0
  84. package/exporter/{constants/errors.ts → errors/errors-data.ts} +14 -24
  85. package/exporter/{utils/errors.ts → errors/index.ts} +9 -10
  86. package/exporter/index.ts +82 -0
  87. package/{react → exporter/react}/Favicon/index.tsx +7 -1
  88. package/{react → exporter/react}/GriddoIntegrations/index.tsx +14 -6
  89. package/{react → exporter/react}/GriddoIntegrations/utils.ts +9 -4
  90. package/exporter/react/index.tsx +11 -0
  91. package/exporter/registers/api.ts +14 -0
  92. package/exporter/registers/gatsby.ts +14 -0
  93. package/exporter/registers/index.ts +4 -0
  94. package/exporter/services/auth.ts +6 -7
  95. package/exporter/services/domains.ts +16 -0
  96. package/exporter/services/navigation.ts +10 -4
  97. package/exporter/services/reference-fields.ts +23 -8
  98. package/exporter/services/register.ts +113 -0
  99. package/exporter/services/robots.ts +16 -9
  100. package/exporter/services/settings.ts +17 -0
  101. package/exporter/services/sites.ts +24 -35
  102. package/exporter/services/store.ts +78 -120
  103. package/exporter/types/api.ts +27 -24
  104. package/exporter/types/global.ts +10 -7
  105. package/exporter/types/navigation.ts +1 -1
  106. package/exporter/types/pages.ts +3 -2
  107. package/exporter/types/sites.ts +2 -1
  108. package/exporter/utils/alerts.ts +29 -0
  109. package/exporter/utils/api.ts +82 -46
  110. package/exporter/utils/cache.ts +62 -37
  111. package/exporter/utils/core-utils.ts +248 -129
  112. package/exporter/utils/create-build-data.ts +17 -0
  113. package/exporter/utils/domains.ts +7 -10
  114. package/exporter/utils/folders.ts +95 -187
  115. package/exporter/utils/health-checks.ts +64 -0
  116. package/exporter/utils/images.ts +6 -1
  117. package/exporter/utils/instance.ts +12 -9
  118. package/exporter/utils/loggin.ts +91 -32
  119. package/exporter/utils/pages.ts +88 -23
  120. package/exporter/utils/render.ts +48 -149
  121. package/exporter/utils/searches.ts +156 -0
  122. package/exporter/utils/sites.ts +90 -81
  123. package/exporter/utils/store.ts +180 -87
  124. package/gatsby-browser.tsx +58 -41
  125. package/gatsby-config.ts +12 -6
  126. package/gatsby-node.ts +77 -15
  127. package/gatsby-ssr.tsx +1 -2
  128. package/package.json +78 -36
  129. package/src/README.md +7 -0
  130. package/src/components/Head.tsx +46 -13
  131. package/src/components/template.tsx +30 -8
  132. package/src/gatsby-node-utils.ts +2 -91
  133. package/src/html.tsx +11 -2
  134. package/src/types.ts +5 -5
  135. package/start-render.js +7 -0
  136. package/tsconfig.json +3 -5
  137. package/build/adapters/gatsby/actions/clean.js +0 -10
  138. package/build/adapters/gatsby/actions/clean.js.map +0 -1
  139. package/build/adapters/gatsby/actions/close.js +0 -12
  140. package/build/adapters/gatsby/actions/close.js.map +0 -1
  141. package/build/adapters/gatsby/actions/data.js +0 -18
  142. package/build/adapters/gatsby/actions/data.js.map +0 -1
  143. package/build/adapters/gatsby/actions/healthCheck.js +0 -10
  144. package/build/adapters/gatsby/actions/healthCheck.js.map +0 -1
  145. package/build/adapters/gatsby/actions/init.js +0 -9
  146. package/build/adapters/gatsby/actions/init.js.map +0 -1
  147. package/build/adapters/gatsby/actions/meta.js +0 -14
  148. package/build/adapters/gatsby/actions/meta.js.map +0 -1
  149. package/build/adapters/gatsby/actions/prepare.js +0 -9
  150. package/build/adapters/gatsby/actions/prepare.js.map +0 -1
  151. package/build/adapters/gatsby/actions/relocation.js +0 -15
  152. package/build/adapters/gatsby/actions/relocation.js.map +0 -1
  153. package/build/adapters/gatsby/actions/restore.js +0 -26
  154. package/build/adapters/gatsby/actions/restore.js.map +0 -1
  155. package/build/adapters/gatsby/actions/ssg.js +0 -9
  156. package/build/adapters/gatsby/actions/ssg.js.map +0 -1
  157. package/build/adapters/gatsby/actions/sync.js +0 -51
  158. package/build/adapters/gatsby/actions/sync.js.map +0 -1
  159. package/build/adapters/gatsby/index.js +0 -79
  160. package/build/adapters/gatsby/index.js.map +0 -1
  161. package/build/adapters/gatsby/shared/context.js +0 -31
  162. package/build/adapters/gatsby/shared/context.js.map +0 -1
  163. package/build/adapters/gatsby/shared/diff-assets.js +0 -101
  164. package/build/adapters/gatsby/shared/diff-assets.js.map +0 -1
  165. package/build/adapters/gatsby/shared/extract-assets.js +0 -58
  166. package/build/adapters/gatsby/shared/extract-assets.js.map +0 -1
  167. package/build/adapters/gatsby/shared/gatsby-build.js +0 -49
  168. package/build/adapters/gatsby/shared/gatsby-build.js.map +0 -1
  169. package/build/adapters/gatsby/shared/sync-render.js +0 -210
  170. package/build/adapters/gatsby/shared/sync-render.js.map +0 -1
  171. package/build/adapters/gatsby/shared/types.js +0 -3
  172. package/build/adapters/gatsby/shared/types.js.map +0 -1
  173. package/build/commands/end-render.js +0 -88
  174. package/build/commands/end-render.js.map +0 -1
  175. package/build/commands/prepare-assets-directory.js +0 -32
  176. package/build/commands/prepare-assets-directory.js.map +0 -1
  177. package/build/commands/prepare-domains-render.js +0 -133
  178. package/build/commands/prepare-domains-render.js.map +0 -1
  179. package/build/commands/reset-render.js +0 -22
  180. package/build/commands/reset-render.js.map +0 -1
  181. package/build/commands/start-render.js +0 -45
  182. package/build/commands/start-render.js.map +0 -1
  183. package/build/commands/upload-search-content.js +0 -180
  184. package/build/commands/upload-search-content.js.map +0 -1
  185. package/build/constants/endpoints.js +0 -42
  186. package/build/constants/endpoints.js.map +0 -1
  187. package/build/constants/envs.js +0 -68
  188. package/build/constants/envs.js.map +0 -1
  189. package/build/constants/errors.js +0 -81
  190. package/build/constants/errors.js.map +0 -1
  191. package/build/services/auth.js +0 -40
  192. package/build/services/auth.js.map +0 -1
  193. package/build/services/db-class.js +0 -49
  194. package/build/services/db-class.js.map +0 -1
  195. package/build/services/db.js +0 -34
  196. package/build/services/db.js.map +0 -1
  197. package/build/services/navigation.js +0 -96
  198. package/build/services/navigation.js.map +0 -1
  199. package/build/services/reference-fields.js +0 -131
  200. package/build/services/reference-fields.js.map +0 -1
  201. package/build/services/robots.js +0 -60
  202. package/build/services/robots.js.map +0 -1
  203. package/build/services/sites.js +0 -109
  204. package/build/services/sites.js.map +0 -1
  205. package/build/services/store.js +0 -282
  206. package/build/services/store.js.map +0 -1
  207. package/build/types/api.js +0 -3
  208. package/build/types/api.js.map +0 -1
  209. package/build/types/global.js +0 -3
  210. package/build/types/global.js.map +0 -1
  211. package/build/types/navigation.js +0 -3
  212. package/build/types/navigation.js.map +0 -1
  213. package/build/types/pages.js +0 -3
  214. package/build/types/pages.js.map +0 -1
  215. package/build/types/render.js +0 -10
  216. package/build/types/render.js.map +0 -1
  217. package/build/types/sites.js +0 -3
  218. package/build/types/sites.js.map +0 -1
  219. package/build/types/templates.js +0 -3
  220. package/build/types/templates.js.map +0 -1
  221. package/build/utils/api.js +0 -161
  222. package/build/utils/api.js.map +0 -1
  223. package/build/utils/artifacts.js +0 -34
  224. package/build/utils/artifacts.js.map +0 -1
  225. package/build/utils/brush.js +0 -30
  226. package/build/utils/brush.js.map +0 -1
  227. package/build/utils/cache.js +0 -106
  228. package/build/utils/cache.js.map +0 -1
  229. package/build/utils/check-health.js +0 -68
  230. package/build/utils/check-health.js.map +0 -1
  231. package/build/utils/core-utils.js +0 -283
  232. package/build/utils/core-utils.js.map +0 -1
  233. package/build/utils/domains.js +0 -37
  234. package/build/utils/domains.js.map +0 -1
  235. package/build/utils/errors.js +0 -30
  236. package/build/utils/errors.js.map +0 -1
  237. package/build/utils/folders.js +0 -362
  238. package/build/utils/folders.js.map +0 -1
  239. package/build/utils/images.js +0 -45
  240. package/build/utils/images.js.map +0 -1
  241. package/build/utils/instance.js +0 -66
  242. package/build/utils/instance.js.map +0 -1
  243. package/build/utils/loggin.js +0 -108
  244. package/build/utils/loggin.js.map +0 -1
  245. package/build/utils/pages.js +0 -359
  246. package/build/utils/pages.js.map +0 -1
  247. package/build/utils/render.js +0 -144
  248. package/build/utils/render.js.map +0 -1
  249. package/build/utils/sites.js +0 -240
  250. package/build/utils/sites.js.map +0 -1
  251. package/build/utils/store.js +0 -193
  252. package/build/utils/store.js.map +0 -1
  253. package/exporter/adapters/gatsby/actions/clean.ts +0 -14
  254. package/exporter/adapters/gatsby/actions/close.ts +0 -17
  255. package/exporter/adapters/gatsby/actions/data.ts +0 -25
  256. package/exporter/adapters/gatsby/actions/healthCheck.ts +0 -10
  257. package/exporter/adapters/gatsby/actions/init.ts +0 -12
  258. package/exporter/adapters/gatsby/actions/meta.ts +0 -18
  259. package/exporter/adapters/gatsby/actions/prepare.ts +0 -9
  260. package/exporter/adapters/gatsby/actions/relocation.ts +0 -15
  261. package/exporter/adapters/gatsby/actions/restore.ts +0 -36
  262. package/exporter/adapters/gatsby/actions/ssg.ts +0 -12
  263. package/exporter/adapters/gatsby/actions/sync.ts +0 -71
  264. package/exporter/adapters/gatsby/shared/context.ts +0 -50
  265. package/exporter/adapters/gatsby/shared/diff-assets.ts +0 -113
  266. package/exporter/adapters/gatsby/shared/extract-assets.ts +0 -61
  267. package/exporter/adapters/gatsby/shared/gatsby-build.ts +0 -54
  268. package/exporter/adapters/gatsby/shared/sync-render.ts +0 -276
  269. package/exporter/adapters/gatsby/shared/types.ts +0 -35
  270. package/exporter/build-esbuild.noop +0 -42
  271. package/exporter/commands/prepare-assets-directory.ts +0 -33
  272. package/exporter/services/db-class.ts +0 -54
  273. package/exporter/services/db.ts +0 -32
  274. package/exporter/types/render.ts +0 -59
  275. package/exporter/utils/artifacts.ts +0 -34
  276. package/exporter/utils/brush.ts +0 -34
  277. package/exporter/utils/check-health.ts +0 -79
  278. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +0 -55
  279. package/plugins/gatsby-plugin-svgr-loader/package.json +0 -8
  280. /package/{react → exporter/react}/Favicon/utils.ts +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@griddo/cx",
3
3
  "description": "Griddo SSG based on Gatsby",
4
- "version": "11.7.7-rc.0",
4
+ "version": "11.7.7-rc.1",
5
5
  "authors": [
6
6
  "Álvaro Sánchez' <alvaro.sanches@secuoyas.com>",
7
7
  "Diego M. Béjar <diego.bejar@secuoyas.com>",
@@ -15,78 +15,120 @@
15
15
  "type": "git",
16
16
  "url": "https://github.com/griddo/griddo"
17
17
  },
18
+ "bin": {
19
+ "griddo-cx": "./start-render.js",
20
+ "griddo-start-render": "./start-render.js"
21
+ },
22
+ "exports": {
23
+ ".": {
24
+ "import": "./build/index.js",
25
+ "require": "./build/index.js",
26
+ "types": "./build/index.d.ts"
27
+ },
28
+ "./react": {
29
+ "import": "./build/react/index.js",
30
+ "require": "./build/react/index.js",
31
+ "types": "./build/react/index.d.ts"
32
+ }
33
+ },
18
34
  "scripts": {
19
35
  "// NPM": "",
20
36
  "prepare": "yarn run build",
21
37
  "// BUILD": "",
22
- "build": "rm -rf build && sh ./exporter/build.sh",
23
- "build:debug": "rm -rf build && sh ./exporter/build.sh --debug",
38
+ "build": "sh ./exporter/build.sh",
39
+ "build:debug": "sh ./exporter/build.sh --debug",
24
40
  "// TESTS": "",
25
- "test": "npm run test:create-render-fixtures && NODE_OPTIONS='--import tsx' env-cmd node --test ./__tests__/* && npm run test:remove-render-fixtures",
41
+ "test": "NODE_OPTIONS='--import tsx' env-cmd node --test ./__tests__/*",
26
42
  "test:create-render-fixtures": "env-cmd tsx ./__tests__/utils/create-fixtures.ts",
27
43
  "test:remove-render-fixtures": "env-cmd tsx ./__tests__/utils/remove-fixtures.ts",
28
44
  "// INFRA SCRIPTS": "",
29
- "prepare-domains-render": "node ./build/commands/prepare-domains-render",
30
- "start-render": "node ./build/commands/start-render",
31
- "end-render": "node ./build/commands/end-render",
32
- "upload-search-content": "node ./build/commands/upload-search-content",
33
- "reset-render": "node ./build/commands/reset-render",
34
- "// ONLY LOCAL SCRIPTS": "",
35
- "prepare-assets-directory": "node ./build/commands/prepare-assets-directory",
45
+ "upload-search-content": "node ./build/upload-search-content.js",
46
+ "complete-render": "node ./build/end-render.js",
47
+ "end-render": "node ./build/end-render.js",
48
+ "start-render": "node ./build/start-render.js",
49
+ "reset-render": "node ./build/reset-render.js",
50
+ "prepare-domains-render": "node ./build/prepare-domains-render.js",
36
51
  "// SSG": "",
37
- "gatsby-build": "gatsby build --prefix-paths",
38
- "// LINTER & FORMATTER": "",
39
- "lint": "biome check --write",
40
- "format": "biome format --write",
41
- "flint": "npm run lint && npm run format",
42
- "ts-lint": "tsgo --noEmit",
43
- "watch:ts-lint": "tsc --noEmit --watch"
52
+ "clean": "gatsby clean; rm -rf assets .cx-cache caches store apiCache build .render-sentinel",
53
+ "gatsby-build": "gatsby telemetry --disable && gatsby build --prefix-paths",
54
+ "// LINTER": "",
55
+ "run:ts-lint": "tsc --noEmit",
56
+ "watch:ts-lint": "tsc --noEmit --watch",
57
+ "run:eslint": "eslint .",
58
+ "run:lint": "yarn run:ts-lint && yarn run:eslint",
59
+ "// FORMATTER": "",
60
+ "run:format": "prettier --write ."
44
61
  },
45
62
  "dependencies": {
63
+ "@babel/core": "7.26.0",
64
+ "@babel/plugin-transform-class-properties": "7.25.9",
65
+ "@babel/preset-env": "7.26.0",
66
+ "@babel/preset-react": "7.26.3",
67
+ "@babel/preset-typescript": "7.26.0",
68
+ "@griddo/core": "11.7.7-rc.1",
46
69
  "@svgr/webpack": "5.5.0",
47
- "find-up-simple": "1.0.1",
48
- "gatsby": "5.15.0",
49
- "html-react-parser": "5.2.6",
70
+ "axios": "1.7.9",
71
+ "babel-loader": "9.2.1",
72
+ "babel-plugin-transform-runtime": "6.23.0",
73
+ "babel-polyfill": "6.26.0",
74
+ "dotenv": "16.4.5",
75
+ "esbuild": "0.24.0",
76
+ "find-up": "5.0.0",
77
+ "fs-extra": "11.2.0",
78
+ "gatsby": "5.14.0",
79
+ "gatsby-plugin-svgr-loader": "0.1.0",
80
+ "html-react-parser": "5.2.0",
81
+ "js2xmlparser": "5.0.0",
82
+ "kleur": "4.1.5",
50
83
  "p-limit": "3.1.0",
51
- "typescript": "5.9.2",
52
- "webpack": "5.101.3",
53
- "xmlbuilder2": "3.1.1"
84
+ "path-browserify": "1.0.1",
85
+ "pkg-dir": "5.0.0",
86
+ "typescript": "5.7.2",
87
+ "webpack": "5.76.1"
54
88
  },
55
89
  "devDependencies": {
56
- "@biomejs/biome": "2.2.4",
57
- "@types/cheerio": "1.0.0",
58
- "@types/node": "20.19.2",
90
+ "@types/cheerio": "0.22.35",
91
+ "@types/eslint": "8.56.10",
92
+ "@types/fs-extra": "11.0.4",
93
+ "@types/node": "20.17.10",
59
94
  "@types/webpack": "5.28.5",
60
- "@types/xml2js": "0.4.14",
61
- "@typescript/native-preview": "7.0.0-dev.20250912.1",
62
- "cheerio": "1.1.2"
95
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
96
+ "@typescript-eslint/parser": "^8.0.0",
97
+ "cheerio": "1.0.0",
98
+ "eslint": "^9.0.0",
99
+ "eslint-plugin-import": "2.31.0",
100
+ "eslint-plugin-node": "11.1.0",
101
+ "eslint-plugin-react": "7.37.4",
102
+ "eslint-plugin-react-hooks": "^4.6.0",
103
+ "eslint-plugin-testing-library": "^6.2.0",
104
+ "globals": "^16.0.0",
105
+ "prettier": "3.4.2"
63
106
  },
64
107
  "peerDependencies": {
65
- "@griddo/core": "*",
66
108
  "@types/react": ">=18 <19",
67
109
  "@types/react-dom": ">=18 <19",
68
110
  "react": ">=18 <19",
69
111
  "react-dom": ">=18 <19"
70
112
  },
71
113
  "engines": {
72
- "node": ">=20.19"
114
+ "node": ">=20"
73
115
  },
74
116
  "files": [
75
117
  "build",
76
118
  "exporter",
77
119
  "src",
78
- "react",
120
+ "cx.config.d.ts",
121
+ "cx.config.js",
79
122
  "gatsby-browser.tsx",
80
123
  "gatsby-config.ts",
81
124
  "gatsby-node.ts",
82
125
  "gatsby-ssr.tsx",
83
126
  "global.d.ts",
84
127
  "start-render.js",
85
- "tsconfig.json",
86
- "plugins"
128
+ "tsconfig.json"
87
129
  ],
88
130
  "publishConfig": {
89
131
  "access": "public"
90
132
  },
91
- "gitHead": "f6902efb7f79644a1d27790f7ad439bc7d0a7d8f"
133
+ "gitHead": "b93c8114778a77063bc59cac69bc613a94b609e2"
92
134
  }
package/src/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # Griddo CX + Gatsby
2
+
3
+ The `/src` dir and almost every file in the root dir is now 100% Gatsby related code along with the historical `/public`, `/dist`, `/apiCache`, `/store`, etc.. render dirs.
4
+
5
+ Griddo CX code (the business logic) is now in `/exporter` dir.
6
+
7
+ In the future, Griddo CX and Gatsby will split int their own packages dirs inside the mono-repo.
@@ -1,7 +1,7 @@
1
1
  import type { CustomHeadProps } from "../types";
2
2
 
3
- import { Favicon } from "../../react/Favicon";
4
- import { GriddoIntegrations } from "../../react/GriddoIntegrations";
3
+ import { Favicon, GriddoIntegrations } from "@griddo/cx/react";
4
+ import * as React from "react";
5
5
 
6
6
  /**
7
7
  * Gatsby Head API
@@ -12,7 +12,13 @@ const Head = (props: CustomHeadProps) => {
12
12
  pageContext: {
13
13
  locale,
14
14
  openGraph,
15
- page: { disableHrefLangs, fullUrl, defaultLang, integrations = [], dimensions },
15
+ page: {
16
+ disableHrefLangs,
17
+ fullUrl,
18
+ defaultLang,
19
+ integrations = [],
20
+ dimensions,
21
+ },
16
22
  pageMetadata,
17
23
  siteMetadata,
18
24
  siteOptions,
@@ -25,13 +31,19 @@ const Head = (props: CustomHeadProps) => {
25
31
  );
26
32
 
27
33
  const showMetaRobots =
28
- !!metaRobots && (siteOptions?.showBasicMetaRobots || metaRobots !== "index,follow");
34
+ !!metaRobots &&
35
+ (siteOptions?.showBasicMetaRobots || metaRobots !== "index,follow");
29
36
 
30
- const cleanPageLanguages = pageMetadata?.pageLanguages?.filter((item) => item.isLive) || [];
37
+ // Validate options
38
+ const cleanPageLanguages =
39
+ pageMetadata?.pageLanguages?.filter((item) => item.isLive) || [];
31
40
 
32
41
  const useCanonical =
33
42
  !!pageMetadata?.canonical &&
34
- !(siteOptions?.avoidSelfReferenceCanonicals && pageMetadata?.canonical === fullUrl);
43
+ !(
44
+ siteOptions?.avoidSelfReferenceCanonicals &&
45
+ pageMetadata?.canonical === fullUrl
46
+ );
35
47
 
36
48
  const useHrefLangs =
37
49
  !(
@@ -48,7 +60,8 @@ const Head = (props: CustomHeadProps) => {
48
60
  (useHrefLangs &&
49
61
  !siteOptions?.avoidHrefLangXDefault &&
50
62
  defaultLangId &&
51
- cleanPageLanguages.find((item) => item.languageId === defaultLangId)?.url) ||
63
+ cleanPageLanguages.find((item) => item.languageId === defaultLangId)
64
+ ?.url) ||
52
65
  null;
53
66
 
54
67
  return (
@@ -59,9 +72,12 @@ const Head = (props: CustomHeadProps) => {
59
72
  {!!pageMetadata?.description && (
60
73
  <meta name="description" content={pageMetadata?.description} />
61
74
  )}
62
- {siteOptions?.useMetaTitle && <meta name="title" content={pageMetadata?.title} />}
75
+ {siteOptions?.useMetaTitle && (
76
+ <meta name="title" content={pageMetadata?.title} />
77
+ )}
63
78
  {useCanonical && <link rel="canonical" href={pageMetadata?.canonical} />}
64
79
 
80
+ {/* Favicon images */}
65
81
  <Favicon url={siteMetadata?.favicon} />
66
82
 
67
83
  {/* Alternate, solo si se indexa la página y tiene traducciones */}
@@ -82,11 +98,15 @@ const Head = (props: CustomHeadProps) => {
82
98
  {showMetaRobots && <meta name="robots" content={metaRobots} />}
83
99
 
84
100
  {/* Open Graph */}
85
- {/* @todo: Create a <GriddoOpenGraph /> component */}
86
- {!!siteMetadata?.title && <meta property="og:site_name" content={siteMetadata?.title} />}
101
+ {!!siteMetadata?.title && (
102
+ <meta property="og:site_name" content={siteMetadata?.title} />
103
+ )}
87
104
  {!!locale && <meta property="og:locale" content={locale} />}
88
105
  {(!!openGraph?.title || !!pageMetadata?.title) && (
89
- <meta property="og:title" content={openGraph?.title || pageMetadata?.title} />
106
+ <meta
107
+ property="og:title"
108
+ content={openGraph?.title || pageMetadata?.title}
109
+ />
90
110
  )}
91
111
  <meta property="og:type" content={openGraph?.type || "website"} />
92
112
  {(!!openGraph?.description || !!pageMetadata?.description) && (
@@ -95,8 +115,13 @@ const Head = (props: CustomHeadProps) => {
95
115
  content={openGraph?.description || pageMetadata?.description}
96
116
  />
97
117
  )}
98
- {!!openGraph?.image && <meta property="og:image" content={openGraph?.image} />}
99
- <meta property="og:url" content={pageMetadata?.canonical || fullUrl || ""} />
118
+ {!!openGraph?.image && (
119
+ <meta property="og:image" content={openGraph?.image} />
120
+ )}
121
+ <meta
122
+ property="og:url"
123
+ content={pageMetadata?.canonical || fullUrl || ""}
124
+ />
100
125
 
101
126
  {/* Twitter */}
102
127
  <meta property="twitter:card" content="summary_large_image" />
@@ -104,6 +129,14 @@ const Head = (props: CustomHeadProps) => {
104
129
  <meta property="twitter:image" content={openGraph?.twitterImage} />
105
130
  )}
106
131
 
132
+ {/* Debug */}
133
+ {/* {!siteOptions?.avoidDebugMetas && (
134
+ <meta
135
+ property="debug"
136
+ content={`Griddo v${griddoVersion} @ ${renderDate}}`}
137
+ />
138
+ )} */}
139
+
107
140
  {/* Keywords */}
108
141
  {siteOptions?.useMetaKeywords && !!pageMetadata?.metaKeywords && (
109
142
  <meta name="keywords" content={pageMetadata.metaKeywords} />
@@ -1,17 +1,30 @@
1
- import type { Core } from "@griddo/core";
2
1
  import type { TemplateProps } from "../types";
2
+ import type { Core } from "@griddo/core";
3
3
 
4
4
  import { Page as RenderGriddoPage } from "@griddo/core";
5
- import { components, formsTemplates, SiteProvider, templates } from "@griddo-instance";
5
+ import { GriddoIntegrations } from "@griddo/cx/react";
6
+ import {
7
+ components,
8
+ SiteProvider,
9
+ templates,
10
+ formsTemplates,
11
+ } from "@griddo-instance";
6
12
  import { Link, navigate } from "gatsby";
13
+ import * as React from "react";
7
14
 
8
- import { GriddoIntegrations } from "../../react/GriddoIntegrations";
9
-
15
+ // Gatsby Head
10
16
  export { Head } from "./Head";
11
17
 
12
18
  const Template = (data: TemplateProps) => {
13
19
  const {
14
- pageContext: { cloudinaryName, page, siteLangs, siteMetadata, socials, theme },
20
+ pageContext: {
21
+ cloudinaryName,
22
+ page,
23
+ siteLangs,
24
+ siteMetadata,
25
+ socials,
26
+ theme,
27
+ },
15
28
  } = data;
16
29
 
17
30
  const library = {
@@ -20,6 +33,8 @@ const Template = (data: TemplateProps) => {
20
33
  formsTemplates,
21
34
  };
22
35
 
36
+ const mappedTheme = theme || "default-theme";
37
+
23
38
  const header = data.pageContext.header as Core.HeaderModule;
24
39
  const footer = data.pageContext.footer as Core.FooterModule;
25
40
 
@@ -37,10 +52,14 @@ const Template = (data: TemplateProps) => {
37
52
  siteLangs={siteLangs}
38
53
  siteMetadata={siteMetadata}
39
54
  socials={socials}
40
- theme={theme}
55
+ theme={mappedTheme}
41
56
  >
42
- <GriddoIntegrations location="start-body" integrations={page.integrations} />
57
+ <GriddoIntegrations
58
+ location="start-body"
59
+ integrations={page.integrations}
60
+ />
43
61
 
62
+ {/* Render every page */}
44
63
  <RenderGriddoPage
45
64
  apiUrl={page.apiUrl}
46
65
  content={page}
@@ -51,7 +70,10 @@ const Template = (data: TemplateProps) => {
51
70
  pageLanguages={page.pageLanguages}
52
71
  />
53
72
 
54
- <GriddoIntegrations location="end-body" integrations={page.integrations} />
73
+ <GriddoIntegrations
74
+ location="end-body"
75
+ integrations={page.integrations}
76
+ />
55
77
  </SiteProvider>
56
78
  );
57
79
  };
@@ -1,15 +1,6 @@
1
1
  import type { GatsbyNode } from "gatsby";
2
- import type { GriddoPageObject } from "../exporter/types/pages";
3
2
 
4
- import fsp from "node:fs/promises";
5
- import path from "node:path";
6
-
7
- import { ReadFromStoreError } from "../exporter/constants/errors";
8
- import { brush } from "../exporter/utils/brush";
9
- import { walkStore } from "../exporter/utils/core-utils";
10
- import { throwError } from "../exporter/utils/errors";
11
- import { componentLibraryPathAlias, isComponentLibrary } from "../exporter/utils/instance";
12
- import { getRenderPathsFromDB } from "../exporter/utils/render";
3
+ import { componentLibraryPathAlias, isComponentLibrary } from "@griddo/cx";
13
4
 
14
5
  const onCreateWebpackConfig: GatsbyNode["onCreateWebpackConfig"] = ({
15
6
  actions,
@@ -49,87 +40,7 @@ const onCreateWebpackConfig: GatsbyNode["onCreateWebpackConfig"] = ({
49
40
  // No sourcemaps on builds
50
41
  if (stage === "build-javascript") {
51
42
  actions.setWebpackConfig({ devtool: false });
52
-
53
- // TODO: Hablar con infra para no invalidar cache de los assets
54
- // const newWebpackConfig = {
55
- // ...getConfig(),
56
- // output: {
57
- // filename: `[name].js`, // no contenthash
58
- // chunkFilename: `[name].js`, // no contenthash
59
- // path: getConfig().output.path,
60
- // publicPath: getConfig().output.publicPath,
61
- // },
62
- // };
63
-
64
- // actions.replaceWebpackConfig(newWebpackConfig);
65
43
  }
66
44
  };
67
45
 
68
- /**
69
- * Return a scale size colors with a number and a measure string (KB by default).
70
- *
71
- * @param size The page size in KB.
72
- * @param measure The measure string to be added in the log.
73
- */
74
- function pageSizeLog(size: number, measure = "KB") {
75
- const sizeScale = {
76
- low: 50,
77
- mid: 80,
78
- large: 130,
79
- extraLarge: 210,
80
- };
81
-
82
- // Ternary pawa!
83
- const color =
84
- size > sizeScale.large
85
- ? "red"
86
- : size > sizeScale.mid
87
- ? "magenta"
88
- : size > sizeScale.low
89
- ? "blue"
90
- : "green";
91
-
92
- return brush[color](`${size}${measure}`);
93
- }
94
-
95
- /**
96
- * Read all pages stored in the `store` Griddo directory and returns one by one
97
- * with a generator.
98
- *
99
- * @param basePath - Base directory to get pages from.
100
- * @param options.withSizeProp - Add size prop to the page object.
101
- * @todo throw error if the basePath is not an store folder
102
- */
103
- async function* getBuildPagesFromStore<PageType extends GriddoPageObject>(args?: {
104
- basePath?: string;
105
- withSizeProp?: boolean;
106
- dbFilePath?: string;
107
- }): AsyncGenerator<PageType> {
108
- const { basePath, withSizeProp, dbFilePath } = args || {};
109
- const { __root } = await getRenderPathsFromDB({
110
- dbFilePath,
111
- });
112
- const pagesDirPath = basePath || path.join(__root, "store");
113
-
114
- // Procesamos archivos JSON uno por uno sin cargar todos los paths en memoria
115
- for await (const filePath of walkStore(pagesDirPath)) {
116
- try {
117
- const fileContent = await fsp.readFile(filePath, "utf-8");
118
- const page = JSON.parse(fileContent) as PageType;
119
-
120
- if (withSizeProp) {
121
- const fileStats = await fsp.stat(filePath);
122
- page.size = fileStats.size / 1024;
123
- }
124
-
125
- // SECURITY: Only returns valid page objects
126
- if (page.path) {
127
- yield page;
128
- }
129
- } catch (error) {
130
- throwError(ReadFromStoreError, error);
131
- }
132
- }
133
- }
134
-
135
- export { getBuildPagesFromStore, onCreateWebpackConfig, pageSizeLog };
46
+ export { onCreateWebpackConfig };
package/src/html.tsx CHANGED
@@ -1,17 +1,26 @@
1
1
  import type { HtmlProps } from "./types";
2
2
 
3
+ import * as React from "react";
4
+
3
5
  function HTML(props: HtmlProps) {
4
6
  return (
5
7
  <html {...props.htmlAttributes}>
6
8
  <head>
7
9
  <meta charSet="utf-8" />
8
10
  <meta httpEquiv="x-ua-compatible" content="ie=edge" />
9
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
11
+ <meta
12
+ name="viewport"
13
+ content="width=device-width, initial-scale=1, shrink-to-fit=no"
14
+ />
10
15
  {props.headComponents}
11
16
  </head>
12
17
  <body {...props.bodyAttributes}>
13
18
  {props.preBodyComponents}
14
- <div key={"body"} id="___gatsby" dangerouslySetInnerHTML={{ __html: props.body }} />
19
+ <div
20
+ key={"body"}
21
+ id="___gatsby"
22
+ dangerouslySetInnerHTML={{ __html: props.body }}
23
+ />
15
24
  <div id="modal" />
16
25
  {props.postBodyComponents}
17
26
  </body>
package/src/types.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  import type { Core } from "@griddo/core";
2
- import type { HeadProps } from "gatsby";
3
- import type { SocialsResponse } from "../exporter/types/api";
4
2
  import type {
5
3
  AdditionalInfo,
6
4
  Dimensions,
@@ -8,8 +6,10 @@ import type {
8
6
  GriddoMultiPage,
9
7
  GriddoPageObject,
10
8
  GriddoSinglePage,
11
- } from "../exporter/types/pages";
12
- import type { Site } from "../exporter/types/sites";
9
+ Site,
10
+ SocialsResponse,
11
+ } from "@griddo/cx";
12
+ import type { HeadProps } from "gatsby";
13
13
 
14
14
  interface CustomHeadProps extends HeadProps {
15
15
  pageContext: GriddoPageObject["context"] & {
@@ -89,4 +89,4 @@ type GatsbyPageObject = {
89
89
  };
90
90
  };
91
91
 
92
- export type { CustomHeadProps, GatsbyPageObject, HtmlProps, TemplateProps };
92
+ export { CustomHeadProps, GatsbyPageObject, HtmlProps, TemplateProps };
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable node/shebang */
3
+ /* eslint-disable node/no-missing-require */
4
+
5
+ // This is the "bin" for the griddo-cx package used by "infra" to trigger a
6
+ // render running `npm run griddo-cx`.
7
+ require("./build/start-render.js");
package/tsconfig.json CHANGED
@@ -1,17 +1,15 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "es2024",
3
+ "target": "esnext",
4
4
  "lib": ["dom", "esnext"],
5
- "jsx": "react-jsx",
5
+ "jsx": "react",
6
6
  "module": "NodeNext",
7
7
  "moduleResolution": "NodeNext",
8
8
  "esModuleInterop": true,
9
9
  "forceConsistentCasingInFileNames": true,
10
10
  "strict": true,
11
11
  "skipLibCheck": true,
12
- "resolveJsonModule": true,
13
- "typeRoots": [],
14
- "sourceMap": true
12
+ "resolveJsonModule": true
15
13
  },
16
14
  "include": [
17
15
  "./exporter/**/*.ts",
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.closeAction = closeAction;
4
- const folders_1 = require("../../../utils/folders");
5
- const render_1 = require("../../../utils/render");
6
- async function closeAction(context) {
7
- const { cxArtifacts, ssg: { ssgArtifacts }, paths: { __cache }, } = context;
8
- await (0, folders_1.removeDirs)(cxArtifacts.disposables);
9
- await (0, folders_1.removeDirs)(ssgArtifacts.disposables);
10
- await (0, render_1.updateCommitFile)({ basePath: __cache });
11
- }
12
- //# sourceMappingURL=close.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/close.ts"],"names":[],"mappings":";;;AAGA,oDAAoD;AACpD,kDAAyD;AAElD,KAAK,sBAAsB,OAA2B,EAAE;IAC9D,MAAM,EACL,WAAW,EACX,GAAG,EAAE,EAAE,YAAY,EAAE,EACrB,KAAK,EAAE,EAAE,OAAO,EAAE,GAClB,GAAG,OAAO,CAAC;IAEZ,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"}
@@ -1,18 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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)();
8
- await (0, render_1.markRenderAsCompleted)(domain);
9
- }
10
- //# sourceMappingURL=healthCheck.js.map
@@ -1 +0,0 @@
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,GAAE,CAAC;IAC5B,MAAM,IAAA,8BAAqB,EAAC,MAAM,CAAC,CAAC;AAAA,CACpC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initAction = initAction;
4
- const render_1 = require("../../../utils/render");
5
- async function initAction(context) {
6
- const { domain, paths: { __root }, } = context;
7
- await (0, render_1.markRenderAsStarted)({ basePath: __root, domain });
8
- }
9
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../exporter/adapters/gatsby/actions/init.ts"],"names":[],"mappings":";;;AAEA,kDAA4D;AAErD,KAAK,qBAAqB,OAAsB,EAAE;IACxD,MAAM,EACL,MAAM,EACN,KAAK,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAA,4BAAmB,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAAA,CACxD"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.metaAction = metaAction;
4
- const robots_1 = require("../../../services/robots");
5
- const core_utils_1 = require("../../../utils/core-utils");
6
- const sites_1 = require("../../../utils/sites");
7
- async function metaAction(context) {
8
- const { domain, paths: { __root }, } = context;
9
- await (0, sites_1.generateBuildReport)(domain);
10
- await (0, sites_1.generateSitemaps)(domain);
11
- await robots_1.RobotsService.writeFiles(domain);
12
- await (0, core_utils_1.saveBuildEndLogs)({ basePath: __root, domain });
13
- }
14
- //# sourceMappingURL=meta.js.map