@griddo/cx 11.7.11 → 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
@@ -0,0 +1,75 @@
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.findUp = findUp;
7
+ exports.findUpSync = findUpSync;
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const promises_1 = __importDefault(require("node:fs/promises"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const node_process_1 = __importDefault(require("node:process"));
12
+ const node_url_1 = require("node:url");
13
+ // Función auxiliar para convertir una URL en una ruta de archivo de tipo string.
14
+ const toPath = (urlOrPath) => urlOrPath instanceof URL ? (0, node_url_1.fileURLToPath)(urlOrPath) : urlOrPath;
15
+ /**
16
+ * Encuentra un archivo o directorio de forma asíncrona subiendo por los directorios padre.
17
+ * @param name - El nombre del archivo o directorio a buscar.
18
+ * @param options - Opciones de búsqueda.
19
+ * @returns La ruta encontrada o `undefined` si no se pudo encontrar.
20
+ */
21
+ async function findUp(name, options = {}) {
22
+ const { cwd = node_process_1.default.cwd(), type = "file", stopAt: stopAtOption } = options;
23
+ let directory = node_path_1.default.resolve(toPath(cwd) ?? "");
24
+ const { root } = node_path_1.default.parse(directory);
25
+ const stopAt = stopAtOption ? node_path_1.default.resolve(directory, toPath(stopAtOption)) : root;
26
+ const isAbsoluteName = node_path_1.default.isAbsolute(name);
27
+ while (true) {
28
+ const filePath = isAbsoluteName ? name : node_path_1.default.join(directory, name);
29
+ try {
30
+ // eslint-disable-next-line no-await-in-loop
31
+ const stats = await promises_1.default.stat(filePath);
32
+ if ((type === "file" && stats.isFile()) || (type === "directory" && stats.isDirectory())) {
33
+ return filePath;
34
+ }
35
+ }
36
+ catch {
37
+ // Ignora errores (ej. el archivo no existe) y continúa la búsqueda.
38
+ }
39
+ if (directory === stopAt || directory === root) {
40
+ break;
41
+ }
42
+ directory = node_path_1.default.dirname(directory);
43
+ }
44
+ }
45
+ /**
46
+ * Encuentra un archivo o directorio de forma síncrona subiendo por los directorios padre.
47
+ * @param name - El nombre del archivo o directorio a buscar.
48
+ * @param options - Opciones de búsqueda.
49
+ * @returns La ruta encontrada o `undefined` si no se pudo encontrar.
50
+ */
51
+ function findUpSync(name, options = {}) {
52
+ const { cwd = node_process_1.default.cwd(), type = "file", stopAt: stopAtOption } = options;
53
+ let directory = node_path_1.default.resolve(toPath(cwd) ?? "");
54
+ const { root } = node_path_1.default.parse(directory);
55
+ const stopAt = stopAtOption ? node_path_1.default.resolve(directory, toPath(stopAtOption)) : root;
56
+ const isAbsoluteName = node_path_1.default.isAbsolute(name);
57
+ while (true) {
58
+ const filePath = isAbsoluteName ? name : node_path_1.default.join(directory, name);
59
+ try {
60
+ const stats = node_fs_1.default.statSync(filePath, { throwIfNoEntry: false });
61
+ if ((type === "file" && stats?.isFile()) || (type === "directory" && stats?.isDirectory())) {
62
+ return filePath;
63
+ }
64
+ }
65
+ catch {
66
+ // En teoría, statSync con `throwIfNoEntry: false` no debería lanzar un error,
67
+ // pero se mantiene por seguridad.
68
+ }
69
+ if (directory === stopAt || directory === root) {
70
+ break;
71
+ }
72
+ directory = node_path_1.default.dirname(directory);
73
+ }
74
+ }
75
+ //# sourceMappingURL=find-up-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-up-simple.js","sourceRoot":"","sources":["../../../exporter/utils/npm-deps/find-up-simple.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
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.pkgDir = pkgDir;
7
+ exports.pkgDirSync = pkgDirSync;
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const find_up_simple_1 = require("./find-up-simple");
10
+ async function pkgDir(options) {
11
+ const { cwd } = options || {};
12
+ const filePath = await (0, find_up_simple_1.findUp)("package.json", { cwd });
13
+ return filePath && node_path_1.default.dirname(filePath);
14
+ }
15
+ function pkgDirSync(options) {
16
+ const { cwd } = options || {};
17
+ const filePath = (0, find_up_simple_1.findUpSync)("package.json", { cwd });
18
+ return filePath && node_path_1.default.dirname(filePath);
19
+ }
20
+ //# sourceMappingURL=pkg-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkg-dir.js","sourceRoot":"","sources":["../../../exporter/utils/npm-deps/pkg-dir.ts"],"names":[],"mappings":";;;;;QAgBS,MAAM;QAAE,UAAU;AAhB3B,0DAA6B;AAE7B,qDAAsD;AAEtD,KAAK,UAAU,MAAM,CAAC,OAAmC,EAAE;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAM,EAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,OAAO,QAAQ,IAAI,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAAA,CAC1C;AAED,SAAS,UAAU,CAAC,OAAmC,EAAE;IACxD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAA,2BAAU,EAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,OAAO,QAAQ,IAAI,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAAA,CAC1C"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSitemapIndexXml = generateSitemapIndexXml;
4
+ exports.generateUrlsetXml = generateUrlsetXml;
5
+ function escapeXml(unsafe) {
6
+ return unsafe.replace(/[<>&'"”]/g, (c) => {
7
+ switch (c) {
8
+ case "<":
9
+ return "&lt;";
10
+ case ">":
11
+ return "&gt;";
12
+ case "&":
13
+ return "&amp;";
14
+ case "'":
15
+ return "&apos;";
16
+ case '"':
17
+ return "&quot;";
18
+ case "”":
19
+ return "&quot;";
20
+ default:
21
+ return c;
22
+ }
23
+ });
24
+ }
25
+ function generateUrlsetXml(pages) {
26
+ const urls = pages
27
+ .map((page) => ` <url>
28
+ <loc>${escapeXml(page.loc)}</loc>
29
+ <lastmod>${page.lastmod}</lastmod>
30
+ <priority>${page.priority}</priority>
31
+ </url>`)
32
+ .join("\n");
33
+ return `<?xml version="1.0" encoding="UTF-8"?>
34
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
35
+ ${urls}
36
+ </urlset>`;
37
+ }
38
+ function generateSitemapIndexXml(sitemaps) {
39
+ const sitemapEntries = sitemaps
40
+ .map((loc) => ` <sitemap>
41
+ <loc>${escapeXml(loc)}</loc>
42
+ </sitemap>`)
43
+ .join("\n");
44
+ return `<?xml version="1.0" encoding="UTF-8"?>
45
+ <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
46
+ ${sitemapEntries}
47
+ </sitemapindex>`;
48
+ }
49
+ //# sourceMappingURL=xml-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../../exporter/utils/npm-deps/xml-parser.ts"],"names":[],"mappings":";;QAwDS,uBAAuB;QAAE,iBAAiB;AAtDnD,SAAS,SAAS,CAAC,MAAc,EAAE;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,aAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACzC,QAAQ,CAAC,EAAE,CAAC;YACX,KAAK,GAAG;gBACP,OAAO,MAAM,CAAC;YACf,KAAK,GAAG;gBACP,OAAO,MAAM,CAAC;YACf,KAAK,GAAG;gBACP,OAAO,OAAO,CAAC;YAChB,KAAK,GAAG;gBACP,OAAO,QAAQ,CAAC;YACjB,KAAK,GAAG;gBACP,OAAO,QAAQ,CAAC;YACjB,KAAK,KAAG;gBACP,OAAO,QAAQ,CAAC;YACjB;gBACC,OAAO,CAAC,CAAC;QACX,CAAC;IAAA,CACD,CAAC,CAAC;AAAA,CACH;AAED,SAAS,iBAAiB,CAAC,KAAyB,EAAE;IACrD,MAAM,IAAI,GAAG,KAAK;SAChB,GAAG,CACH,CAAC,IAAI,EAAE,EAAE,CACR;WACO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;eACf,IAAI,CAAC,OAAO;gBACX,IAAI,CAAC,QAAQ;SACpB,CACN;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;;EAEN,IAAI;UACI,CAAC;AAAA,CACV;AAED,SAAS,uBAAuB,CAAC,QAAuB,EAAE;IACzD,MAAM,cAAc,GAAG,QAAQ;SAC7B,GAAG,CACH,CAAC,GAAG,EAAE,EAAE,CAAC;WACD,SAAS,CAAC,GAAG,CAAC;aACZ,CACV;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;;EAEN,cAAc;gBACA,CAAC;AAAA,CAChB"}
@@ -0,0 +1,359 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGriddoListPages = createGriddoListPages;
4
+ exports.createGriddoMultiPages = createGriddoMultiPages;
5
+ exports.createGriddoSinglePage = createGriddoSinglePage;
6
+ exports.getMultiPageElements = getMultiPageElements;
7
+ exports.getPaginatedPages = getPaginatedPages;
8
+ const images_1 = require("./images");
9
+ // Consts
10
+ const DEFAULT_ITEMS_PER_PAGE_FOR_LIST_TEMPLATES = 25;
11
+ /**
12
+ * Return an OpenGraph object.
13
+ *
14
+ * @param props.socialTitle The social title.
15
+ * @param props.socialDescription The social description.
16
+ * @param props.socialImage The social image in Cloudinary or DAM url format.
17
+ */
18
+ function getOpenGraph({ socialTitle, socialDescription, socialImage, }) {
19
+ return {
20
+ type: "website",
21
+ title: socialTitle,
22
+ description: socialDescription,
23
+ image: socialImage ? (0, images_1.formatImage)(socialImage, 1280, 768) : "",
24
+ twitterImage: socialImage ? (0, images_1.formatImage)(socialImage, 1280, 768) : "",
25
+ };
26
+ }
27
+ /**
28
+ * Get the Page metadata object from a page Object.
29
+ *
30
+ * @param params A Page object
31
+ */
32
+ function getPageMetadata(params) {
33
+ const { title, metaTitle, metaDescription, canonicalURL, locale, url, isIndexed, follow, metasAdvanced, pageLanguages, fullUrl, metaKeywords, } = params;
34
+ const metasAdvancedList = metasAdvanced
35
+ ?.split(",")
36
+ .filter(Boolean)
37
+ .map((item) => item.trim().toLowerCase()) || [];
38
+ return {
39
+ title: (metaTitle || title || "").trim(),
40
+ description: metaDescription,
41
+ canonical: canonicalURL?.trim() && canonicalURL !== fullUrl
42
+ ? canonicalURL.trim()
43
+ : isIndexed
44
+ ? fullUrl
45
+ : undefined,
46
+ locale,
47
+ url,
48
+ index: isIndexed ? "index" : "noindex",
49
+ follow: follow ? "follow" : "nofollow",
50
+ translate: metasAdvancedList.includes("notranslate") ? "notranslate" : "",
51
+ metasAdvanced: metasAdvancedList.filter((item) => item !== "notranslate").join(),
52
+ pageLanguages,
53
+ metaKeywords: metaKeywords
54
+ ?.filter(Boolean)
55
+ .map((keyword) => keyword.replace(/"/g, "'"))
56
+ .join(", "),
57
+ };
58
+ }
59
+ /**
60
+ * Create a Griddo page object
61
+ *
62
+ * @param page A page object ready to pass as content of the `context` to use in the React template.
63
+ * @param additionalInfo Additional page info to pass as content of `context` to use in the React template.
64
+ * @param excludeFromSearch Boolean to avoid this page to be indexed in internal search tool.
65
+ */
66
+ async function createGriddoPageObject(page, additionalInfo) {
67
+ // Extract some props from page
68
+ const { id, title, fullPath, language: languageId, breadcrumb, socialDescription, socialImage, socialTitle, } = page;
69
+ // Extract some props from additionalInfo
70
+ const { baseUrl, cloudinaryName, griddoVersion, siteLangs, siteMetadata, siteOptions, siteScript, siteSlug, socials, theme, navigations, } = additionalInfo;
71
+ const { header, footer } = navigations;
72
+ // Update page object
73
+ page.breadcrumb = breadcrumb;
74
+ page.siteSlug = siteSlug;
75
+ page.apiUrl = baseUrl;
76
+ page.publicApiUrl = additionalInfo.publicBaseUrl;
77
+ page.instance = additionalInfo.instance;
78
+ const foundLanguage = siteLangs.find(({ id }) => id === page?.language);
79
+ const locale = foundLanguage?.locale.replace(/_/g, "-");
80
+ // Page Metadata
81
+ const pageMetadata = getPageMetadata(page);
82
+ // Opengraph
83
+ const openGraph = getOpenGraph({
84
+ socialDescription,
85
+ socialImage,
86
+ socialTitle,
87
+ });
88
+ const pagePath = fullPath.compose;
89
+ const renderDate = new Date().toString();
90
+ const griddoPageObject = {
91
+ path: pagePath,
92
+ size: undefined,
93
+ context: {
94
+ // Page
95
+ id,
96
+ title,
97
+ fullPath,
98
+ locale,
99
+ languageId,
100
+ theme,
101
+ // PARA <Helmet />
102
+ siteMetadata,
103
+ pageMetadata,
104
+ openGraph,
105
+ socials,
106
+ siteLangs,
107
+ cloudinaryName,
108
+ siteOptions,
109
+ griddoVersion,
110
+ renderDate,
111
+ siteScript,
112
+ // Navigation sections
113
+ header,
114
+ footer,
115
+ // Page template
116
+ // En este objeto se está pasando todos los metadatos que vienen en
117
+ // el primer nivel pero el uso de los mismos en CX se hace con la
118
+ // prop `pageMetadata` creada a partir de getPageMetadata. En
119
+ // resumen, se está pasando por duplicado el contenido.
120
+ // TODO: Eliminar las claves de metadata de este objeto page.
121
+ page,
122
+ },
123
+ };
124
+ return griddoPageObject;
125
+ }
126
+ /**
127
+ * Create a single Griddo page object.
128
+ *
129
+ * @param page A Griddo single page object.
130
+ * @param additionalInfo Additional page info.
131
+ */
132
+ async function createGriddoSinglePage(page, additionalInfo) {
133
+ return createGriddoPageObject(page, additionalInfo);
134
+ }
135
+ /**
136
+ * Create multiples pages from one page as list paginated pages
137
+ */
138
+ async function createGriddoListPages({ page, pages, isRoot = false, defaultLang, template, totalQueriedItems }, additionalInfo) {
139
+ const allPages = pages.map(async (dataInPage, idx) => {
140
+ const isFirstPage = idx === 0;
141
+ const pageNumber = idx + 1;
142
+ const { domainUrl, compose } = page.fullPath;
143
+ const paginatedPage = {
144
+ ...page,
145
+ fullPath: {
146
+ ...page.fullPath,
147
+ // Add a page number (tailPageNumber) from page 2 onwards
148
+ compose: addPageNumberToUrl(compose, pageNumber, {
149
+ addEndingSlash: true,
150
+ }),
151
+ },
152
+ fullUrl: addPageNumberToUrl(page.fullUrl, pageNumber, {
153
+ addEndingSlash: true,
154
+ }),
155
+ slug: addPageNumberToUrl(page.slug, pageNumber),
156
+ title: addPageNumberToTitle(page.title, pageNumber),
157
+ metaTitle: addPageNumberToTitle(page.metaTitle || "", pageNumber),
158
+ disableHrefLangs: pageNumber > 1,
159
+ template: {
160
+ ...template,
161
+ isFirstPage,
162
+ pageNumber,
163
+ totalPages: pages.length,
164
+ // The base link, without page number to use in <Pagination />
165
+ // component.
166
+ baseLink: `${domainUrl}${compose}`,
167
+ queriedItems: dataInPage,
168
+ totalQueriedItems: totalQueriedItems?.length,
169
+ },
170
+ isRoot,
171
+ defaultLang,
172
+ };
173
+ return createGriddoPageObject(paginatedPage, additionalInfo);
174
+ });
175
+ return Promise.all(allPages);
176
+ }
177
+ /**
178
+ * Create multiples pages from a MultiPage module
179
+ *
180
+ * @param page A Griddo Multipage object.
181
+ * @param additionalInfo Additional page info.
182
+ */
183
+ function createGriddoMultiPages(page, additionalInfo) {
184
+ const { multiPageElements: multiPageElementsBulk, ...cleanPage } = page;
185
+ // TODO: Use structuredClone() when node 18 is available.
186
+ // WARN!! Se ha probado que parse(stringify()) está tan optimizado que puede ser más rápido que structuredClone...
187
+ const multiPageElements = JSON.parse(JSON.stringify(multiPageElementsBulk));
188
+ // Si no hay un elemento sin slug, como mínimo hay que dibujar una página
189
+ // principal para el conjunto de páginas.
190
+ if (!multiPageElements.find(({ sectionSlug }) => sectionSlug === "/")) {
191
+ multiPageElements.push({});
192
+ }
193
+ // Creates each page based on `multiPageElements` from the schema.
194
+ const allPages = multiPageElements.map(async (pageElement) => {
195
+ // TODO: Use structuredClone() when node 18 is available.
196
+ // WARN!! Se ha probado que parse(stringify()) está tan optimizado que puede ser más rápido que structuredClone...
197
+ const paginatedPage = JSON.parse(JSON.stringify(cleanPage));
198
+ const { sectionSlug = "/", title: bulkTitle = "", metaTitle = "", metaDescription = "", } = pageElement;
199
+ const title = typeof bulkTitle === "string" ? bulkTitle : bulkTitle.content;
200
+ const compose = paginatedPage.fullPath.compose || "";
201
+ const fullUrl = paginatedPage.fullUrl.endsWith("/")
202
+ ? paginatedPage.fullUrl.slice(0, -1)
203
+ : paginatedPage.fullUrl;
204
+ const cleanSectionSlug = sectionSlug?.replace(/\//g, "");
205
+ const isRootSlug = sectionSlug === "/";
206
+ const rightSectionSlug = isRootSlug ? cleanSectionSlug : `${cleanSectionSlug}/`;
207
+ const slash = compose.endsWith("/") ? "" : "/";
208
+ const newCompose = `${compose}${slash}${rightSectionSlug}`;
209
+ if (title.trim()) {
210
+ paginatedPage.title = title;
211
+ }
212
+ if (metaDescription.trim()) {
213
+ paginatedPage.metaDescription = metaDescription;
214
+ }
215
+ paginatedPage.fullUrl = `${fullUrl}/${rightSectionSlug}`;
216
+ paginatedPage.fullPath.compose = newCompose;
217
+ paginatedPage.slug = newCompose;
218
+ paginatedPage.template.activeSectionSlug = sectionSlug;
219
+ paginatedPage.template.activeSectionBase = fullUrl;
220
+ paginatedPage.metaTitle = metaTitle.trim() || title.trim() || paginatedPage.metaTitle;
221
+ return createGriddoPageObject(paginatedPage, additionalInfo);
222
+ });
223
+ return Promise.all(allPages);
224
+ }
225
+ /**
226
+ * Get the multi pages elements.
227
+ *
228
+ * @param page The page to get the multipage parts.
229
+ */
230
+ function getMultiPageElements(page) {
231
+ const multiPageElements = new Promise((resolve) => {
232
+ // Recursive
233
+ const getMultiPageComponent = (
234
+ // No puede ser Core.Page['template'] porque a medida que va bajando en
235
+ // el árbol ya no es la estructura de un template.
236
+ template, level = 0) => {
237
+ // If it doesn't have a "template strcuture"
238
+ if (!template || typeof template !== "object") {
239
+ return;
240
+ }
241
+ // For each prop in the "template"
242
+ for (const key in template) {
243
+ const currentComponent = template[key];
244
+ const isValidComponent = currentComponent || typeof currentComponent === "object";
245
+ const hasGriddoMultiPageProp = JSON.stringify(currentComponent).includes('"hasGriddoMultiPage":true');
246
+ if (!isValidComponent) {
247
+ continue;
248
+ }
249
+ if (!hasGriddoMultiPageProp) {
250
+ continue;
251
+ }
252
+ const { component, hasGriddoMultiPage, elements } = currentComponent;
253
+ if (component && hasGriddoMultiPage) {
254
+ resolve(elements || []);
255
+ }
256
+ // Recursive call
257
+ getMultiPageComponent(currentComponent, level + 1);
258
+ }
259
+ // resolve promise when...
260
+ if (!level) {
261
+ resolve(null);
262
+ }
263
+ };
264
+ // `page` en un array para que también revise la propia template como objeto.
265
+ // @ts-expect-error remove the array
266
+ getMultiPageComponent([page]);
267
+ });
268
+ return multiPageElements;
269
+ }
270
+ // -----------------------------------------------------------------------------
271
+ // Private functions
272
+ // -----------------------------------------------------------------------------
273
+ /**
274
+ * Get `itemsPerPage` elements from the `items` using as offset `page` number.
275
+ * It's a kind of paginator for an array.
276
+ *
277
+ * @param itemsPerPage The items per page.
278
+ * @param items An array of items, the queriedData.
279
+ * @param page The page to be returned.
280
+ *
281
+ * @example
282
+ * getPage(3, ["a", "b", "c", "d", "e", "f", "g", "h"], 2)
283
+ * // -> ["d", "e", "f"]
284
+ */
285
+ function getPage(itemsPerPage, items, page) {
286
+ return items?.slice(itemsPerPage * (page - 1), itemsPerPage * page);
287
+ }
288
+ /**
289
+ * Takes an array of items and split it grouping in arrays of pages based on `itemsPerPage`.
290
+ *
291
+ * @param itemsPerPage The items per page.
292
+ * @param items An array of items, the queriedData.
293
+ *
294
+ * @example
295
+ * getPageCluster(3, ["a", "b", "c", "d", "e", "f", "g", "h"])
296
+ * // -> [["a", "b", "c"], ["d", "e", "f"], ["g", "h"]]
297
+ */
298
+ function getPageCluster(itemsPerPage, items) {
299
+ const totalPagesCount = Math.ceil(items.length / itemsPerPage) || 1;
300
+ const pageNumbers = Array.from({ length: totalPagesCount }, (_, i) => i + 1);
301
+ return pageNumbers?.map((pageNumber) => getPage(itemsPerPage, items, pageNumber));
302
+ }
303
+ /**
304
+ * Takes a template object and split the whole queriedItems into separated queriedItems to use in Griddo static list templates.
305
+ *
306
+ * @param listTemplate A template schema with the ReferenceField data included.
307
+ */
308
+ function getPaginatedPages(listTemplate) {
309
+ const items = listTemplate.queriedItems || [];
310
+ const itemsPerPage = listTemplate?.itemsPerPage || DEFAULT_ITEMS_PER_PAGE_FOR_LIST_TEMPLATES;
311
+ const pageClusters = getPageCluster(itemsPerPage, items);
312
+ return pageClusters;
313
+ }
314
+ /**
315
+ * Remove duplicate ending trailing character from a string
316
+ *
317
+ * @param url the strin url
318
+ * @example
319
+ * removeDuplicateTrailingSlash('http://griddo.com/foo/bar//')
320
+ * // -> http://griddo.com/foo/bar/
321
+ */
322
+ function removeDuplicateTrailing(url) {
323
+ return url.replace(/\/+$/, "/");
324
+ }
325
+ /**
326
+ * Adds a number to an URL adding optionally an ending slash.
327
+ *
328
+ * @param url The url.
329
+ * @param pageNumber A number to be added to the url.
330
+ * @param options.addEndingSlash Boolean that indicates if return the final url with an end slash or not.
331
+ *
332
+ * @example
333
+ * addPageNumberToUrl("web.com", 3) // "web.com/3"
334
+ * addPageNumberToUrl("web.com", 3, { addEndingSlash: true }) // "web.com/3/"
335
+ */
336
+ function addPageNumberToUrl(url, pageNumber, options) {
337
+ const trailingSlash = url.endsWith("/") ? "" : "/";
338
+ const endingSlash = options?.addEndingSlash ? "/" : "";
339
+ if (pageNumber <= 1) {
340
+ return removeDuplicateTrailing(`${url}${endingSlash}`);
341
+ }
342
+ return removeDuplicateTrailing(`${url}${trailingSlash}${pageNumber}${endingSlash}`);
343
+ }
344
+ /**
345
+ * Adds a number to an string with the format "string - number"
346
+ *
347
+ * @param title The title
348
+ * @param pageNumber A number to be added to the title.
349
+ *
350
+ * @example
351
+ * addPageNumberToTitle("The page", 3) // "The page - 3"
352
+ */
353
+ function addPageNumberToTitle(title, pageNumber) {
354
+ if (!title || pageNumber <= 1) {
355
+ return title;
356
+ }
357
+ return `${title} - ${pageNumber}`;
358
+ }
359
+ //# sourceMappingURL=pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../exporter/utils/pages.ts"],"names":[],"mappings":"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"}