@griddo/cx 11.9.17 → 11.10.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 (254) hide show
  1. package/README.md +13 -240
  2. package/build/commands/end-render.d.ts +0 -1
  3. package/build/commands/end-render.js +31 -0
  4. package/build/commands/end-render.js.map +7 -0
  5. package/build/commands/prepare-assets-directory.js +9 -0
  6. package/build/commands/prepare-assets-directory.js.map +7 -0
  7. package/build/commands/prepare-domains-render.js +40 -0
  8. package/build/commands/prepare-domains-render.js.map +7 -0
  9. package/build/commands/reset-render.d.ts +0 -1
  10. package/build/commands/reset-render.js +31 -0
  11. package/build/commands/reset-render.js.map +7 -0
  12. package/build/commands/single-domain-upload-search-content.d.ts +1 -0
  13. package/build/commands/start-render.d.ts +0 -1
  14. package/build/commands/start-render.js +66 -0
  15. package/build/commands/start-render.js.map +7 -0
  16. package/build/commands/upload-search-content.d.ts +0 -1
  17. package/build/commands/upload-search-content.js +32 -0
  18. package/build/commands/upload-search-content.js.map +7 -0
  19. package/build/core/GriddoLog.d.ts +16 -0
  20. package/build/{utils/health-checks.d.ts → core/check-env-health.d.ts} +4 -2
  21. package/build/core/db-class.d.ts +11 -0
  22. package/build/core/db.d.ts +4 -0
  23. package/build/core/dist-rollback.d.ts +11 -0
  24. package/build/core/errors.d.ts +26 -0
  25. package/build/core/fs.d.ts +69 -0
  26. package/build/core/life-cycle.d.ts +26 -0
  27. package/build/core/logger.d.ts +18 -0
  28. package/build/core/objects.d.ts +11 -0
  29. package/build/core/print-logos.d.ts +5 -0
  30. package/build/index.d.ts +10 -29
  31. package/build/index.js +404 -73
  32. package/build/react/DynamicScript/index.d.ts +4 -0
  33. package/build/react/GriddoFavicon/index.d.ts +4 -0
  34. package/build/react/GriddoIntegrations/index.d.ts +3 -4
  35. package/build/react/GriddoIntegrations/utils.d.ts +7 -6
  36. package/build/react/GriddoOpenGraph/index.d.ts +10 -0
  37. package/build/react/index.d.ts +3 -2
  38. package/build/react/index.js +1 -3
  39. package/build/{utils → services}/api.d.ts +1 -1
  40. package/build/services/auth.d.ts +2 -5
  41. package/build/services/domains.d.ts +3 -4
  42. package/build/services/manage-sites.d.ts +22 -0
  43. package/build/services/manage-store.d.ts +32 -0
  44. package/build/services/navigation.d.ts +16 -16
  45. package/build/{utils → services}/pages.d.ts +3 -3
  46. package/build/services/reference-fields.d.ts +3 -3
  47. package/build/services/render-artifacts.d.ts +6 -0
  48. package/build/services/render.d.ts +70 -0
  49. package/build/services/robots.d.ts +2 -19
  50. package/build/services/sitemaps.d.ts +5 -0
  51. package/build/services/sites.d.ts +8 -5
  52. package/build/services/store.d.ts +10 -1
  53. package/build/shared/context.d.ts +36 -0
  54. package/build/shared/envs.d.ts +17 -0
  55. package/build/{errors/errors-data.d.ts → shared/errors.d.ts} +5 -3
  56. package/build/shared/npm-modules/brush.d.ts +18 -0
  57. package/build/shared/npm-modules/find-up-simple.d.ts +34 -0
  58. package/build/shared/npm-modules/pkg-dir.d.ts +7 -0
  59. package/build/shared/npm-modules/xml-parser.d.ts +4 -0
  60. package/build/{types → shared/types}/api.d.ts +18 -18
  61. package/build/{types → shared/types}/global.d.ts +15 -16
  62. package/build/{types → shared/types}/navigation.d.ts +5 -5
  63. package/build/{types → shared/types}/pages.d.ts +9 -9
  64. package/build/shared/types/render.d.ts +56 -0
  65. package/build/{types → shared/types}/sites.d.ts +18 -19
  66. package/build/shared/types.d.ts +15 -0
  67. package/build/ssg-adapters/gatsby/actions/clean.d.ts +3 -0
  68. package/build/ssg-adapters/gatsby/actions/close.d.ts +3 -0
  69. package/build/ssg-adapters/gatsby/actions/data.d.ts +2 -0
  70. package/build/ssg-adapters/gatsby/actions/healthCheck.d.ts +2 -0
  71. package/build/ssg-adapters/gatsby/actions/init.d.ts +2 -0
  72. package/build/ssg-adapters/gatsby/actions/logs.d.ts +3 -0
  73. package/build/ssg-adapters/gatsby/actions/meta.d.ts +2 -0
  74. package/build/ssg-adapters/gatsby/actions/prepare.d.ts +2 -0
  75. package/build/ssg-adapters/gatsby/actions/relocation.d.ts +2 -0
  76. package/build/ssg-adapters/gatsby/actions/restore.d.ts +3 -0
  77. package/build/ssg-adapters/gatsby/actions/ssg.d.ts +3 -0
  78. package/build/ssg-adapters/gatsby/actions/sync.d.ts +3 -0
  79. package/build/ssg-adapters/gatsby/index.d.ts +9 -0
  80. package/build/ssg-adapters/gatsby/shared/artifacts.d.ts +4 -0
  81. package/build/ssg-adapters/gatsby/shared/diff-assets.d.ts +15 -0
  82. package/build/ssg-adapters/gatsby/shared/extract-assets.d.ts +7 -0
  83. package/build/ssg-adapters/gatsby/shared/gatsby-build.d.ts +7 -0
  84. package/build/ssg-adapters/gatsby/shared/render-rollback.d.ts +18 -0
  85. package/build/ssg-adapters/gatsby/shared/sync-render.d.ts +26 -0
  86. package/build/ssg-adapters/gatsby/shared/types.d.ts +34 -0
  87. package/cli.mjs +231 -0
  88. package/exporter/build-esbuild.noop +42 -0
  89. package/exporter/build.sh +16 -24
  90. package/exporter/commands/README.md +142 -0
  91. package/exporter/commands/end-render.ts +53 -87
  92. package/exporter/commands/prepare-assets-directory.ts +35 -0
  93. package/exporter/commands/prepare-domains-render.ts +150 -33
  94. package/exporter/commands/reset-render.ts +13 -8
  95. package/exporter/commands/single-domain-upload-search-content.ts +206 -0
  96. package/exporter/commands/start-render.ts +14 -65
  97. package/exporter/commands/upload-search-content.ts +204 -26
  98. package/exporter/core/GriddoLog.ts +45 -0
  99. package/exporter/core/check-env-health.ts +203 -0
  100. package/exporter/core/db-class.ts +54 -0
  101. package/exporter/core/db.ts +33 -0
  102. package/exporter/core/dist-rollback.ts +49 -0
  103. package/exporter/core/errors.ts +93 -0
  104. package/exporter/core/fs.ts +385 -0
  105. package/exporter/{utils → core}/images.ts +1 -6
  106. package/exporter/{utils → core}/instance.ts +9 -13
  107. package/exporter/core/life-cycle.ts +73 -0
  108. package/exporter/core/logger.ts +137 -0
  109. package/exporter/core/objects.ts +37 -0
  110. package/exporter/core/print-logos.ts +21 -0
  111. package/exporter/index.ts +14 -56
  112. package/exporter/react/DynamicScript/index.tsx +33 -0
  113. package/exporter/react/{Favicon → GriddoFavicon}/index.tsx +3 -9
  114. package/exporter/react/GriddoIntegrations/index.tsx +17 -23
  115. package/exporter/react/GriddoIntegrations/utils.ts +24 -12
  116. package/exporter/react/GriddoOpenGraph/index.tsx +39 -0
  117. package/exporter/react/index.tsx +3 -9
  118. package/exporter/services/api.ts +306 -0
  119. package/exporter/services/auth.ts +8 -10
  120. package/exporter/services/domains.ts +23 -8
  121. package/exporter/services/manage-sites.ts +116 -0
  122. package/exporter/services/manage-store.ts +173 -0
  123. package/exporter/services/navigation.ts +12 -18
  124. package/exporter/{utils → services}/pages.ts +27 -92
  125. package/exporter/services/reference-fields.ts +14 -32
  126. package/exporter/services/render-artifacts.ts +44 -0
  127. package/exporter/services/render.ts +229 -0
  128. package/exporter/services/robots.ts +33 -61
  129. package/exporter/services/sitemaps.ts +129 -0
  130. package/exporter/services/sites.ts +40 -28
  131. package/exporter/services/store.ts +354 -321
  132. package/exporter/shared/context.ts +49 -0
  133. package/exporter/{constants → shared}/endpoints.ts +12 -11
  134. package/exporter/shared/envs.ts +58 -0
  135. package/exporter/{errors/errors-data.ts → shared/errors.ts} +24 -14
  136. package/exporter/shared/npm-modules/README.md +36 -0
  137. package/exporter/shared/npm-modules/brush.ts +34 -0
  138. package/exporter/shared/npm-modules/find-up-simple.ts +100 -0
  139. package/exporter/shared/npm-modules/pkg-dir.ts +17 -0
  140. package/exporter/shared/npm-modules/xml-parser.ts +57 -0
  141. package/exporter/{types → shared/types}/api.ts +40 -41
  142. package/exporter/{types → shared/types}/global.ts +17 -21
  143. package/exporter/{types → shared/types}/navigation.ts +3 -3
  144. package/exporter/{types → shared/types}/pages.ts +10 -11
  145. package/exporter/shared/types/render.ts +65 -0
  146. package/exporter/{types → shared/types}/sites.ts +18 -19
  147. package/exporter/shared/types.ts +15 -0
  148. package/exporter/ssg-adapters/gatsby/actions/clean.ts +26 -0
  149. package/exporter/ssg-adapters/gatsby/actions/close.ts +17 -0
  150. package/exporter/ssg-adapters/gatsby/actions/data.ts +22 -0
  151. package/exporter/ssg-adapters/gatsby/actions/healthCheck.ts +10 -0
  152. package/exporter/ssg-adapters/gatsby/actions/init.ts +12 -0
  153. package/exporter/ssg-adapters/gatsby/actions/logs.ts +10 -0
  154. package/exporter/ssg-adapters/gatsby/actions/meta.ts +13 -0
  155. package/exporter/ssg-adapters/gatsby/actions/prepare.ts +9 -0
  156. package/exporter/ssg-adapters/gatsby/actions/relocation.ts +15 -0
  157. package/exporter/ssg-adapters/gatsby/actions/restore.ts +21 -0
  158. package/exporter/ssg-adapters/gatsby/actions/ssg.ts +12 -0
  159. package/exporter/ssg-adapters/gatsby/actions/sync.ts +65 -0
  160. package/exporter/ssg-adapters/gatsby/index.ts +117 -0
  161. package/exporter/ssg-adapters/gatsby/shared/artifacts.ts +17 -0
  162. package/exporter/ssg-adapters/gatsby/shared/diff-assets.ts +128 -0
  163. package/exporter/ssg-adapters/gatsby/shared/extract-assets.ts +75 -0
  164. package/exporter/ssg-adapters/gatsby/shared/gatsby-build.ts +58 -0
  165. package/exporter/ssg-adapters/gatsby/shared/render-rollback.ts +33 -0
  166. package/exporter/ssg-adapters/gatsby/shared/sync-render.ts +298 -0
  167. package/exporter/ssg-adapters/gatsby/shared/types.ts +35 -0
  168. package/gatsby-browser.tsx +41 -58
  169. package/gatsby-config.ts +10 -17
  170. package/gatsby-node.ts +20 -79
  171. package/gatsby-ssr.tsx +2 -1
  172. package/package.json +41 -78
  173. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
  174. package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
  175. package/src/components/Head.tsx +28 -73
  176. package/src/components/template.tsx +6 -29
  177. package/src/gatsby-node-utils.ts +81 -2
  178. package/src/html.tsx +2 -11
  179. package/src/types.ts +3 -3
  180. package/tsconfig.commands.json +36 -0
  181. package/tsconfig.exporter.json +21 -0
  182. package/tsconfig.json +5 -3
  183. package/build/adapters/gatsby/index.d.ts +0 -4
  184. package/build/adapters/gatsby/utils.d.ts +0 -26
  185. package/build/artifacts/index.d.ts +0 -6
  186. package/build/constants/envs.d.ts +0 -37
  187. package/build/constants/index.d.ts +0 -57
  188. package/build/end-render.js +0 -74
  189. package/build/end-render.js.map +0 -7
  190. package/build/errors/index.d.ts +0 -15
  191. package/build/index.js.map +0 -7
  192. package/build/prepare-domains-render.js +0 -73
  193. package/build/prepare-domains-render.js.map +0 -7
  194. package/build/react/Favicon/index.d.ts +0 -5
  195. package/build/registers/api.d.ts +0 -9
  196. package/build/registers/gatsby.d.ts +0 -9
  197. package/build/registers/index.d.ts +0 -3
  198. package/build/reset-render.js +0 -74
  199. package/build/reset-render.js.map +0 -7
  200. package/build/services/register.d.ts +0 -36
  201. package/build/services/settings.d.ts +0 -4
  202. package/build/start-render.js +0 -100
  203. package/build/start-render.js.map +0 -7
  204. package/build/upload-search-content.js +0 -74
  205. package/build/upload-search-content.js.map +0 -7
  206. package/build/utils/alerts.d.ts +0 -3
  207. package/build/utils/cache.d.ts +0 -35
  208. package/build/utils/core-utils.d.ts +0 -107
  209. package/build/utils/create-build-data.d.ts +0 -8
  210. package/build/utils/domains.d.ts +0 -13
  211. package/build/utils/folders.d.ts +0 -53
  212. package/build/utils/loggin.d.ts +0 -51
  213. package/build/utils/render.d.ts +0 -13
  214. package/build/utils/searches.d.ts +0 -15
  215. package/build/utils/sites.d.ts +0 -31
  216. package/build/utils/store.d.ts +0 -81
  217. package/cx.config.d.ts +0 -5
  218. package/cx.config.js +0 -36
  219. package/exporter/adapters/gatsby/index.ts +0 -182
  220. package/exporter/adapters/gatsby/utils.ts +0 -186
  221. package/exporter/artifacts/README.md +0 -34
  222. package/exporter/artifacts/index.ts +0 -33
  223. package/exporter/commands/move-assets.ts +0 -11
  224. package/exporter/constants/envs.ts +0 -94
  225. package/exporter/constants/index.ts +0 -129
  226. package/exporter/errors/index.ts +0 -40
  227. package/exporter/registers/api.ts +0 -14
  228. package/exporter/registers/gatsby.ts +0 -14
  229. package/exporter/registers/index.ts +0 -4
  230. package/exporter/services/register.ts +0 -113
  231. package/exporter/services/settings.ts +0 -17
  232. package/exporter/utils/alerts.ts +0 -29
  233. package/exporter/utils/api.ts +0 -243
  234. package/exporter/utils/cache.ts +0 -142
  235. package/exporter/utils/core-utils.ts +0 -458
  236. package/exporter/utils/create-build-data.ts +0 -17
  237. package/exporter/utils/domains.ts +0 -39
  238. package/exporter/utils/folders.ts +0 -320
  239. package/exporter/utils/health-checks.ts +0 -64
  240. package/exporter/utils/loggin.ts +0 -184
  241. package/exporter/utils/render.ts +0 -71
  242. package/exporter/utils/searches.ts +0 -156
  243. package/exporter/utils/sites.ts +0 -312
  244. package/exporter/utils/store.ts +0 -314
  245. package/src/README.md +0 -7
  246. package/start-render.js +0 -7
  247. /package/build/commands/{move-assets.d.ts → prepare-assets-directory.d.ts} +0 -0
  248. /package/build/{utils → core}/images.d.ts +0 -0
  249. /package/build/{utils → core}/instance.d.ts +0 -0
  250. /package/build/react/{Favicon → GriddoFavicon}/utils.d.ts +0 -0
  251. /package/build/{constants → shared}/endpoints.d.ts +0 -0
  252. /package/build/{types → shared/types}/templates.d.ts +0 -0
  253. /package/exporter/react/{Favicon → GriddoFavicon}/utils.ts +0 -0
  254. /package/exporter/{types → shared/types}/templates.ts +0 -0
@@ -1,4 +1,4 @@
1
- import type { APIResponses, GetAPI, PostAPI, PutAPI } from "../types/api";
1
+ import type { APIResponses, GetAPI, PostAPI, PutAPI } from "../shared/types/api";
2
2
  /**
3
3
  * Make a GET request to the Griddo API.
4
4
  *
@@ -1,10 +1,7 @@
1
- import type { AuthHeaders } from "../types/api";
2
- /**
3
- * Service for authentication in the Griddo Private API
4
- */
1
+ import type { AuthHeaders } from "../shared/types/api";
5
2
  declare class AuthService {
6
3
  headers: AuthHeaders | undefined;
7
- login(): Promise<AuthHeaders | undefined>;
4
+ login(): Promise<AuthHeaders>;
8
5
  }
9
6
  declare const authService: AuthService;
10
7
  export { authService as AuthService };
@@ -1,6 +1,5 @@
1
- import type { Domains } from "../types/global";
2
1
  /**
3
- * Get an array of available domain.
2
+ * Return an array of domains name (string) of the current instance.
4
3
  */
5
- declare function getAllDomains(): Promise<Domains>;
6
- export { getAllDomains };
4
+ declare function getInstanceDomains(): Promise<string[]>;
5
+ export { getInstanceDomains };
@@ -0,0 +1,22 @@
1
+ import type { Site, SiteData } from "../shared/types/sites";
2
+ /**
3
+ * Check the instance sites and returns site prepared to be published and unpublished.
4
+ */
5
+ declare function getSitesToRender(domain: string): Promise<{
6
+ sitesToPublish: Site[];
7
+ sitesToUnpublish: Site[];
8
+ }>;
9
+ /**
10
+ * Unpublish an array of sites sending the information to the API.
11
+ *
12
+ * @param sites An array of sites
13
+ */
14
+ declare function unpublishSites(sites: Site[]): Promise<void>;
15
+ /**
16
+ * Return a single site generic data.
17
+ *
18
+ * @param siteID The site id.
19
+ * @see SiteData
20
+ */
21
+ declare function getSiteData(siteID: number): Promise<SiteData>;
22
+ export { getSiteData, getSitesToRender, unpublishSites };
@@ -0,0 +1,32 @@
1
+ import type { BuildMetaData } from "../shared/types/api";
2
+ import type { RenderInfo } from "../shared/types/global";
3
+ import type { GriddoPageObject } from "../shared/types/pages";
4
+ import type { Site } from "../shared/types/sites";
5
+ /**
6
+ * Get the build metadata from the Store.
7
+ */
8
+ declare function getBuildMetadata(domain: string): Promise<BuildMetaData>;
9
+ /**
10
+ * Write render info into a file.
11
+ * @param renderInfo - Data that will be saved related to the render process.
12
+ */
13
+ declare function saveRenderInfoInStore(renderInfo: RenderInfo, domain: string): Promise<void>;
14
+ /**
15
+ * Return an array of paths only from `.json` files (no dirs) in the `basePath` dir based in the file name.
16
+ * @param basePath - Absolute path of the dir from which files will be read.
17
+ * @returns A number[] of pages ids in `basePath` dir.
18
+ */
19
+ declare function getPageInStoreDir(basePath: string): Promise<string[]>;
20
+ /**
21
+ * Save the pages into the file system.
22
+ * @param pages - An array of Griddo page objects to be saved.
23
+ */
24
+ declare function saveSitePagesInStore(siteDirName: string, pages: GriddoPageObject[]): Promise<void>;
25
+ /**
26
+ * Removes sites that exist in the store that should no longer be there because
27
+ * the domain has been changed. This is necessary because those sites will not
28
+ * be marked as `sitesToUnpublish` so they must be removed manually.
29
+ */
30
+ declare function removeOrphanSites(sitesToPublish: Site[], domain: string): Promise<void>;
31
+ declare function writeUniqueFileSync(filePath: string, content: string): Promise<void>;
32
+ export { getBuildMetadata, getPageInStoreDir, removeOrphanSites, saveRenderInfoInStore, saveSitePagesInStore, writeUniqueFileSync, };
@@ -1,45 +1,45 @@
1
- import type { Footer, Header } from "../types/navigation";
2
- import type { APIPageObject } from "../types/pages";
1
+ import type { Footer, Header } from "../shared/types/navigation";
2
+ import type { APIPageObject } from "../shared/types/pages";
3
3
  declare class NavigationService {
4
4
  private _defaultHeaders;
5
5
  private _defaultFooters;
6
6
  private _navigations;
7
7
  constructor();
8
8
  set navigations(navigations: {
9
- headers: Array<Header>;
10
- footers: Array<Footer>;
9
+ headers: Header[];
10
+ footers: Footer[];
11
11
  });
12
12
  get navigations(): {
13
- headers: Array<Header>;
14
- footers: Array<Footer>;
13
+ headers: Header[];
14
+ footers: Footer[];
15
15
  };
16
16
  getDefaultFooters(): Record<number, Footer>;
17
17
  getDefaultHeaders(): Record<number, Header>;
18
- getRightLanguage(list: Array<{
18
+ getRightLanguage(list: {
19
19
  language: number;
20
- navigationLanguages: Array<{
20
+ navigationLanguages: {
21
21
  navigationId: number;
22
- }>;
22
+ }[];
23
23
  id: number;
24
- }>, id: number, language: number): {
24
+ }[], id: number, language: number): {
25
25
  language: number;
26
- navigationLanguages: Array<{
26
+ navigationLanguages: {
27
27
  navigationId: number;
28
- }>;
28
+ }[];
29
29
  id: number;
30
30
  } | null;
31
31
  getPageHeader(id: number, language: number): {
32
32
  language: number;
33
- navigationLanguages: Array<{
33
+ navigationLanguages: {
34
34
  navigationId: number;
35
- }>;
35
+ }[];
36
36
  id: number;
37
37
  } | null;
38
38
  getPageFooter(id: number, language: number): {
39
39
  language: number;
40
- navigationLanguages: Array<{
40
+ navigationLanguages: {
41
41
  navigationId: number;
42
- }>;
42
+ }[];
43
43
  id: number;
44
44
  } | null;
45
45
  getPageNavigations(page: APIPageObject): {
@@ -1,6 +1,6 @@
1
- import type { GriddoListPage, GriddoMultiPage, GriddoPageObject, GriddoSinglePage, MultiPageElements, PageAdditionalInfo } from "../types/pages";
2
- import type { TemplateWithReferenceField } from "../types/templates";
3
1
  import type { Fields } from "@griddo/core";
2
+ import type { GriddoListPage, GriddoMultiPage, GriddoPageObject, GriddoSinglePage, MultiPageElements, PageAdditionalInfo } from "../shared/types/pages";
3
+ import type { TemplateWithReferenceField } from "../shared/types/templates";
4
4
  /**
5
5
  * Create a single Griddo page object.
6
6
  *
@@ -11,7 +11,7 @@ declare function createGriddoSinglePage(page: GriddoSinglePage, additionalInfo:
11
11
  /**
12
12
  * Create multiples pages from one page as list paginated pages
13
13
  */
14
- declare function createGriddoListPages({ page, pages, isRoot, defaultLang, template, totalQueriedItems, }: GriddoListPage, additionalInfo: PageAdditionalInfo): Promise<GriddoPageObject[]>;
14
+ declare function createGriddoListPages({ page, pages, isRoot, defaultLang, template, totalQueriedItems }: GriddoListPage, additionalInfo: PageAdditionalInfo): Promise<GriddoPageObject[]>;
15
15
  /**
16
16
  * Create multiples pages from a MultiPage module
17
17
  *
@@ -1,4 +1,4 @@
1
- import type { APIPageObject } from "../types/pages";
1
+ import type { APIPageObject } from "../shared/types/pages";
2
2
  /**
3
3
  * Compose the queriedItems prop from a ReferenceField data of a page.
4
4
  *
@@ -6,13 +6,13 @@ import type { APIPageObject } from "../types/pages";
6
6
  * @param props.page The APIPage object
7
7
  * @param props.cacheKey A cache key to manage cached files or using fetch
8
8
  */
9
- declare function getReferenceFieldData({ page, cacheKey, }: {
9
+ declare function getReferenceFieldData({ page, cacheKey }: {
10
10
  page: APIPageObject;
11
11
  /** Reference id to manage cache between renders. */
12
12
  cacheKey: string;
13
13
  }): Promise<{
14
14
  [key: string]: any;
15
- type: "template" | "formTemplate";
15
+ type: "formTemplate" | "template";
16
16
  templateType: string;
17
17
  activeSectionSlug: string;
18
18
  activeSectionBase: string;
@@ -0,0 +1,6 @@
1
+ import type { RenderArtifacts } from "../shared/types/global";
2
+ /**
3
+ * Returns the artifacts of CX.
4
+ */
5
+ declare function getRenderArtifacts(domain: string): Promise<RenderArtifacts>;
6
+ export { getRenderArtifacts };
@@ -0,0 +1,70 @@
1
+ import type { RenderModeTuple } from "../shared/types/render";
2
+ /**
3
+ * Creates a sentinel file with the current date and time.
4
+ * This file is used to track later if node_modules/@griddo/cx was cleaned by a
5
+ * npm install coming from a deploy.
6
+ */
7
+ declare function markRenderAsStarted(options: {
8
+ domain: string;
9
+ basePath: string;
10
+ }): Promise<void>;
11
+ declare function markRenderAsCompleted(domain: string): Promise<void>;
12
+ declare function assertRenderIsValid(domain: string): Promise<void>;
13
+ /**
14
+ * Determines the appropriate render mode for a given domain based on its current state,
15
+ * previous render errors, deployment status, and whether rendering is required.
16
+ *
17
+ * @param options - An object containing:
18
+ * - `domain`: The domain name to resolve the render mode for.
19
+ * - `shouldBeRendered`: A boolean indicating if the domain should be rendered.
20
+ * @returns An object with:
21
+ * - `renderMode`: The resolved render mode (`FROM_SCRATCH`, `INCREMENTAL`, or `IDLE`).
22
+ * - `reason`: A string describing the reason for the chosen render mode.
23
+ *
24
+ * @remarks
25
+ * The function checks for missing exports, previous render errors, new deployments,
26
+ * and whether rendering is necessary to decide the render mode.
27
+ *
28
+ * @todo
29
+ * Improve ifs and reason concatenations...
30
+ */
31
+ declare function resolveDomainRenderMode(options: {
32
+ domain: string;
33
+ shouldBeRendered: boolean;
34
+ }): Promise<{
35
+ renderMode: "FROM_SCRATCH";
36
+ reason: string;
37
+ } | {
38
+ renderMode: "IDLE";
39
+ reason: string;
40
+ } | {
41
+ renderMode: "INCREMENTAL";
42
+ reason: string;
43
+ }>;
44
+ declare function updateCommitFile(options: {
45
+ basePath: string;
46
+ }): Promise<void>;
47
+ declare function getRenderModeFromDB(domain: string): Promise<RenderModeTuple>;
48
+ declare function getRenderPathsHydratedWithDomainFromDB(options?: {
49
+ domain?: string;
50
+ dbFilePath?: string;
51
+ }): Promise<{
52
+ __root: string;
53
+ __cache: string;
54
+ __components: string;
55
+ __cx: string;
56
+ __sites: string;
57
+ __exports: string;
58
+ __exports_backup: string;
59
+ __ssg: string;
60
+ __exports_dist: string;
61
+ }>;
62
+ declare function getRenderMetadataFromDB(): Promise<{
63
+ griddoVersion: string;
64
+ buildReportFileName: string;
65
+ }>;
66
+ /**
67
+ * Save a file with the end of build process to use as `end-render` signal.
68
+ */
69
+ declare function generateBuildReport(domain: string): Promise<void>;
70
+ export { assertRenderIsValid, generateBuildReport, getRenderMetadataFromDB, getRenderModeFromDB, getRenderPathsHydratedWithDomainFromDB, markRenderAsCompleted, markRenderAsStarted, resolveDomainRenderMode, updateCommitFile, };
@@ -1,19 +1,2 @@
1
- import type { Robots } from "../types/global";
2
- /**
3
- * TODO: JSDoc
4
- */
5
- declare class RobotsService {
6
- robots: Robots;
7
- settings: Record<string, unknown>;
8
- constructor();
9
- /**
10
- * TODO: JSDoc
11
- */
12
- private getRobots;
13
- /**
14
- * Write robots.txt files for the domain.
15
- */
16
- writeFiles(domain: string): Promise<void>;
17
- }
18
- declare const robotsService: RobotsService;
19
- export { robotsService as RobotsService };
1
+ declare function generateRobots(domain: string): Promise<void>;
2
+ export { generateRobots };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generate sitemaps and save them into file system.
3
+ */
4
+ declare function generateSitemaps(domain: string): Promise<void>;
5
+ export { generateSitemaps };
@@ -1,6 +1,6 @@
1
- import type { AllSitesReponse, EndPageInfoResponse, EndSiteRenderBody, LanguagesResponse, ReferenceFieldBody, ReferenceFieldResponse, SitemapAPIResponse, SocialsResponse, StartPageRenderResponse } from "../types/api";
2
- import type { Site } from "../types/sites";
3
1
  import type { Core } from "@griddo/core";
2
+ import type { AllSitesReponse, EndSiteRenderBody, LanguagesResponse, ReferenceFieldBody, ReferenceFieldResponse, SitemapAPIResponse, SocialsResponse, StartPageRenderResponse } from "../shared/types/api";
3
+ import type { Site } from "../shared/types/sites";
4
4
  /**
5
5
  * Get a list of site objects.
6
6
  */
@@ -12,7 +12,7 @@ declare function getAllSitesFromDomain(domain: string): Promise<Site[]>;
12
12
  /**
13
13
  * Fetch a page object from API.
14
14
  */
15
- declare function getPage(id: number, cacheKey: string): Promise<import("../types/pages").APIPageObject>;
15
+ declare function getPage(id: number, cacheKey: string): Promise<import("../shared/types/pages").APIPageObject>;
16
16
  /**
17
17
  * Get site info
18
18
  */
@@ -22,8 +22,11 @@ declare function startSiteRender(id: number): Promise<StartPageRenderResponse>;
22
22
  /**
23
23
  * Send the end signal to API for a render site.
24
24
  */
25
- declare function endSiteRender(id: number, body: EndSiteRenderBody): Promise<EndPageInfoResponse>;
25
+ declare function endSiteRender(id: number, body: EndSiteRenderBody): Promise<void>;
26
26
  declare function getReferenceFieldSiteData(page: Core.Page, body: ReferenceFieldBody, cacheKey: string, dataSiteId?: number, dataLangID?: number): Promise<ReferenceFieldResponse>;
27
- declare function getSitemap(id: number): Promise<SitemapAPIResponse>;
27
+ declare function getSitemap(options: {
28
+ siteId: number;
29
+ headers?: Record<string, string>;
30
+ }): Promise<SitemapAPIResponse>;
28
31
  declare function getSiteSocials(id: number, cacheKey?: string): Promise<SocialsResponse>;
29
32
  export { endSiteRender, getAllSites, getAllSitesFromDomain, getPage, getReferenceFieldSiteData, getSiteInfo, getSiteLanguages, getSitemap, getSiteSocials, startSiteRender, };
@@ -1,6 +1,15 @@
1
+ import { type RenderMode } from "../shared/types/render";
1
2
  /**
2
3
  * Fetch, process and save object pages and sites data into the file system to
3
4
  * be consumed by other services (Griddo itself, Adapters, etc.)
4
5
  */
5
- declare function createStore(domain: string): Promise<void>;
6
+ declare function createStore(options: {
7
+ domain: string;
8
+ renderMode: RenderMode;
9
+ griddoVersion: string;
10
+ basePath: string;
11
+ }): Promise<{
12
+ pagesToCreate: number[];
13
+ pagesToDelete: number[];
14
+ }>;
6
15
  export { createStore };
@@ -0,0 +1,36 @@
1
+ import type { PlaceholderPath, RenderArtifacts } from "./types/global";
2
+ import type { RenderMode } from "./types/render";
3
+ interface RenderContextProps<T> {
4
+ domain: string;
5
+ renderMode: RenderMode;
6
+ pathsHydratedWithDomain: Record<PlaceholderPath, string>;
7
+ ssg: T;
8
+ renderMetadata: {
9
+ griddoVersion: string;
10
+ buildReportFileName: string;
11
+ };
12
+ renderArtifacts: RenderArtifacts;
13
+ }
14
+ /**
15
+ * Encapsulates the state, configuration, and artifacts for a single SSG
16
+ * render process.
17
+ *
18
+ * This class is instantiated at the beginning of a render and passed through
19
+ * each lifecycle step, providing a centralized and consistent context for all
20
+ * operations. It is agnostic to the specific SSG being used.
21
+ */
22
+ export declare class RenderContext<T = unknown> {
23
+ readonly domain: string;
24
+ readonly renderMode: RenderMode;
25
+ readonly pathsHydratedWithDomain: Record<PlaceholderPath, string>;
26
+ pagesToCreate: number[];
27
+ pagesToDelete: number[];
28
+ ssg: T;
29
+ renderMetadata: {
30
+ griddoVersion: string;
31
+ buildReportFileName: string;
32
+ };
33
+ renderArtifacts: RenderArtifacts;
34
+ constructor({ domain, renderMode, ssg, pathsHydratedWithDomain, renderMetadata, renderArtifacts }: RenderContextProps<T>);
35
+ }
36
+ export {};
@@ -0,0 +1,17 @@
1
+ declare const GRIDDO_API_URL: string | undefined;
2
+ declare const GRIDDO_PUBLIC_API_URL: string | undefined;
3
+ declare const GRIDDO_BOT_USER: string | undefined;
4
+ declare const GRIDDO_BOT_PASSWORD: string | undefined;
5
+ declare const GRIDDO_API_CONCURRENCY_COUNT: number;
6
+ declare const GRIDDO_SKIP_BUILD_CHECKS: boolean;
7
+ declare const GRIDDO_BUILD_LOGS: boolean;
8
+ declare const GRIDDO_BUILD_LOGS_BUFFER_SIZE: number;
9
+ declare const GRIDDO_SSG_VERBOSE_LOGS: boolean;
10
+ declare const GRIDDO_SEARCH_FEATURE: boolean;
11
+ declare const GRIDDO_ASSET_PREFIX: string | undefined;
12
+ declare const GRIDDO_REACT_APP_INSTANCE: string | undefined;
13
+ declare const GRIDDO_AI_EMBEDDINGS: boolean;
14
+ declare const GRIDDO_VERBOSE_LOGS: boolean;
15
+ declare const GRIDDO_USE_DIST_BACKUP: boolean;
16
+ declare const GRIDDO_SSG_BUNDLE_ANALYZER: boolean;
17
+ export { GRIDDO_AI_EMBEDDINGS, GRIDDO_API_CONCURRENCY_COUNT, GRIDDO_API_URL, GRIDDO_ASSET_PREFIX, GRIDDO_BOT_PASSWORD, GRIDDO_BOT_USER, GRIDDO_BUILD_LOGS, GRIDDO_BUILD_LOGS_BUFFER_SIZE, GRIDDO_PUBLIC_API_URL, GRIDDO_REACT_APP_INSTANCE, GRIDDO_SEARCH_FEATURE, GRIDDO_SKIP_BUILD_CHECKS, GRIDDO_SSG_BUNDLE_ANALYZER, GRIDDO_SSG_VERBOSE_LOGS, GRIDDO_USE_DIST_BACKUP, GRIDDO_VERBOSE_LOGS, };
@@ -6,9 +6,9 @@
6
6
  * file by completing the `error` (ErrosType) and `message` (string) properties
7
7
  * obligatorily.
8
8
  */
9
- import type { ErrorData } from ".";
10
9
  import type { SpawnSyncReturns } from "node:child_process";
11
- type ErrorsType = "ArtifactError" | "ErrorInSSGBuildProcess" | "LifecycleExecutionError" | "LoginError" | "NoDomainsFoundError" | "NoJSConfigFileFound" | "ReadFromStoreError" | "ReferenceFieldSourcesNotFoundError" | "RenderUUIDError" | "WriteToStoreError";
10
+ import type { ErrorData } from "../core/errors";
11
+ type ErrorsType = "ArtifactError" | "BundlesInconsistencyError" | "CheckHealthError" | "ErrorInSSGBuildProcess" | "LifecycleExecutionError" | "LoginError" | "NoDomainsFoundError" | "NoJSConfigFileFound" | "ReadFromStoreError" | "ReferenceFieldSourcesNotFoundError" | "RenderUUIDError" | "UploadSearchError" | "WriteToStoreError";
12
12
  declare const ArtifactError: ErrorData;
13
13
  declare const ErrorInSSGBuildProcess: (command: SpawnSyncReturns<string>) => ErrorData;
14
14
  declare const LifecycleExecutionError: (attempts: number, name: string) => ErrorData;
@@ -19,4 +19,6 @@ declare const ReadFromStoreError: ErrorData;
19
19
  declare const ReferenceFieldSourcesNotFoundError: ErrorData;
20
20
  declare const RenderUUIDError: ErrorData;
21
21
  declare const WriteToStoreError: ErrorData;
22
- export { ArtifactError, ErrorInSSGBuildProcess, LifecycleExecutionError, LoginError, NoDomainsFoundError, NoJSConfigFileFound, ReadFromStoreError, ReferenceFieldSourcesNotFoundError, RenderUUIDError, WriteToStoreError, type ErrorsType, };
22
+ declare const UploadSearchError: ErrorData;
23
+ declare const CheckHealthError: ErrorData;
24
+ export { ArtifactError, CheckHealthError, ErrorInSSGBuildProcess, LifecycleExecutionError, LoginError, NoDomainsFoundError, NoJSConfigFileFound, ReadFromStoreError, ReferenceFieldSourcesNotFoundError, RenderUUIDError, UploadSearchError, WriteToStoreError, type ErrorsType, };
@@ -0,0 +1,18 @@
1
+ declare const CODES: {
2
+ readonly black: "\u001B[30m";
3
+ readonly red: "\u001B[31m";
4
+ readonly green: "\u001B[32m";
5
+ readonly yellow: "\u001B[33m";
6
+ readonly blue: "\u001B[34m";
7
+ readonly magenta: "\u001B[35m";
8
+ readonly cyan: "\u001B[36m";
9
+ readonly white: "\u001B[37m";
10
+ readonly gray: "\u001B[90m";
11
+ readonly bold: "\u001B[1m";
12
+ readonly dim: "\u001B[2m";
13
+ };
14
+ type ColorFunction = (text: string | number) => string;
15
+ type ColorName = keyof typeof CODES;
16
+ type Brush = Record<ColorName, ColorFunction>;
17
+ declare const brush: Brush;
18
+ export { brush };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Opciones para controlar el comportamiento de la búsqueda.
3
+ */
4
+ export type Options = {
5
+ /**
6
+ El directorio desde donde empezar a buscar.
7
+ @default process.cwd()
8
+ */
9
+ readonly cwd?: URL | string;
10
+ /**
11
+ El tipo de ruta a buscar.
12
+ @default 'file'
13
+ */
14
+ readonly type?: "file" | "directory";
15
+ /**
16
+ Un directorio en el que la búsqueda se detiene si no se encuentran coincidencias.
17
+ @default El directorio raíz del sistema
18
+ */
19
+ readonly stopAt?: URL | string;
20
+ };
21
+ /**
22
+ * Encuentra un archivo o directorio de forma asíncrona subiendo por los directorios padre.
23
+ * @param name - El nombre del archivo o directorio a buscar.
24
+ * @param options - Opciones de búsqueda.
25
+ * @returns La ruta encontrada o `undefined` si no se pudo encontrar.
26
+ */
27
+ export declare function findUp(name: string, options?: Options): Promise<string | undefined>;
28
+ /**
29
+ * Encuentra un archivo o directorio de forma síncrona subiendo por los directorios padre.
30
+ * @param name - El nombre del archivo o directorio a buscar.
31
+ * @param options - Opciones de búsqueda.
32
+ * @returns La ruta encontrada o `undefined` si no se pudo encontrar.
33
+ */
34
+ export declare function findUpSync(name: string, options?: Options): string | undefined;
@@ -0,0 +1,7 @@
1
+ declare function pkgDir(options?: {
2
+ readonly cwd?: string;
3
+ }): Promise<string | undefined>;
4
+ declare function pkgDirSync(options?: {
5
+ readonly cwd?: string;
6
+ }): string | undefined;
7
+ export { pkgDir, pkgDirSync };
@@ -0,0 +1,4 @@
1
+ import type { SitemapItem } from "../types/api";
2
+ declare function generateUrlsetXml(pages: SitemapItem[]): string;
3
+ declare function generateSitemapIndexXml(sitemaps: string[]): string;
4
+ export { generateSitemapIndexXml, generateUrlsetXml };
@@ -1,32 +1,33 @@
1
+ import type { Core, Fields } from "@griddo/core";
1
2
  import type { Domains, Robots, Settings } from "./global";
2
3
  import type { APIPageObject } from "./pages";
3
4
  import type { Site } from "./sites";
4
- import type { Core, Fields } from "@griddo/core";
5
5
  /** EndSiteRender Body */
6
6
  export type EndSiteRenderBody = {
7
7
  /** Site hashes to publish. */
8
- publishHashes: Array<string>;
8
+ publishHashes: string[];
9
9
  /** Current site hash. */
10
10
  siteHash: string | null;
11
11
  /** Site hashes to unpublish. */
12
- unpublishHashes: Array<string>;
12
+ unpublishHashes: string[];
13
13
  /** Page ids that publish */
14
- publishPagesIds: Array<number>;
14
+ publishPagesIds: number[];
15
15
  };
16
16
  /** ReferenceField Body */
17
17
  export interface ReferenceFieldBody {
18
18
  mode?: "auto" | "manual" | "navigation";
19
19
  order?: string;
20
- sources?: Array<Fields.Source<unknown>>;
20
+ sources?: Fields.Source<unknown>[];
21
21
  quantity?: number;
22
- filter?: Array<unknown>;
22
+ filter?: unknown[];
23
23
  fullRelations?: boolean;
24
24
  allLanguages?: boolean;
25
- fixed?: Array<number>;
25
+ fixed?: number[];
26
26
  referenceId?: number;
27
27
  }
28
+ /** Describes the props of the body object for the get page */
28
29
  /** Describes an item in a sitemap. */
29
- interface SitemapItem {
30
+ export interface SitemapItem {
30
31
  /** The URL of the page. */
31
32
  loc: string;
32
33
  /** The date the page was last modified. */
@@ -44,7 +45,7 @@ interface URL {
44
45
  home: string;
45
46
  }
46
47
  /** Describes the items returned by a sitemap response. */
47
- export type SitemapItems = Record<string, Array<SitemapItem>>;
48
+ export type SitemapItems = Record<string, SitemapItem[]>;
48
49
  /** Describes the response object returned by a Griddo ReferenceField. */
49
50
  export type ReferenceFieldResponse = Fields.QueriedData<unknown>;
50
51
  /** Describes the response object returned by socials from Griddo. */
@@ -70,7 +71,7 @@ export interface LanguagesResponse {
70
71
  /** Total of languages */
71
72
  totalItems: number;
72
73
  /** Array of languages objects */
73
- items: Array<Core.SiteLanguage>;
74
+ items: Core.SiteLanguage[];
74
75
  }
75
76
  /** Describes common props for api responses. */
76
77
  export interface APIRequest {
@@ -84,11 +85,10 @@ export interface APIRequest {
84
85
  attempt?: number;
85
86
  /**
86
87
  * Headers for the post api fetch
87
- * @shame any
88
- * @todo type this correctly from axios types
89
88
  */
90
- headers?: any;
89
+ headers?: Record<string, unknown>;
91
90
  useApiCacheDir?: boolean;
91
+ logToFile?: boolean;
92
92
  }
93
93
  /** Type with the POST request properties. */
94
94
  export interface PostAPI extends Omit<APIRequest, "headers"> {
@@ -103,11 +103,11 @@ export type PutAPI = APIRequest;
103
103
  /** Response type for the start render API call */
104
104
  export interface StartPageRenderResponse {
105
105
  /** Site hashes to publish */
106
- publishIds: Array<number>;
106
+ publishIds: number[];
107
107
  /** Current site hash */
108
108
  siteHash: string | null;
109
109
  /** Site hashes to unpublish */
110
- unpublishHashes: Array<string>;
110
+ unpublishHashes: string[];
111
111
  }
112
112
  /** Response type for the end render API call */
113
113
  export interface EndPageInfoResponse {
@@ -119,7 +119,7 @@ export interface EndPageInfoResponse {
119
119
  /** Response type for the embedding answer in the ai search feature */
120
120
  export type PostEmbeddingsResponse = string;
121
121
  /** Describes a response type for GET all sites */
122
- export type AllSitesReponse = Array<Site>;
122
+ export type AllSitesReponse = Site[];
123
123
  /** Describes a response type for GET one page */
124
124
  export type PageResponse = APIPageObject;
125
125
  /** All types for the API response used in the api functions get, put, post */
@@ -129,8 +129,8 @@ export interface ShowApiErrorOptions {
129
129
  }
130
130
  export interface BuildMetaData {
131
131
  buildProcessData: Record<string, EndSiteRenderBody>;
132
- createdPages: Array<number>;
133
- sitesToPublish: Array<Site>;
132
+ createdPages: number[];
133
+ sitesToPublish: Site[];
134
134
  }
135
135
  export interface Auth {
136
136
  Authorization: string;