@griddo/cx 11.7.6 → 11.7.7-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 (280) 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 +12 -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 +9 -0
  11. package/build/adapters/gatsby/actions/init.js.map +1 -0
  12. package/build/adapters/gatsby/actions/meta.js +14 -0
  13. package/build/adapters/gatsby/actions/meta.js.map +1 -0
  14. package/build/adapters/gatsby/actions/prepare.js +9 -0
  15. package/build/adapters/gatsby/actions/prepare.js.map +1 -0
  16. package/build/adapters/gatsby/actions/relocation.js +15 -0
  17. package/build/adapters/gatsby/actions/relocation.js.map +1 -0
  18. package/build/adapters/gatsby/actions/restore.js +26 -0
  19. package/build/adapters/gatsby/actions/restore.js.map +1 -0
  20. package/build/adapters/gatsby/actions/ssg.js +9 -0
  21. package/build/adapters/gatsby/actions/ssg.js.map +1 -0
  22. package/build/adapters/gatsby/actions/sync.js +51 -0
  23. package/build/adapters/gatsby/actions/sync.js.map +1 -0
  24. package/build/adapters/gatsby/index.js +79 -0
  25. package/build/adapters/gatsby/index.js.map +1 -0
  26. package/build/adapters/gatsby/shared/context.js +31 -0
  27. package/build/adapters/gatsby/shared/context.js.map +1 -0
  28. package/build/adapters/gatsby/shared/diff-assets.js +101 -0
  29. package/build/adapters/gatsby/shared/diff-assets.js.map +1 -0
  30. package/build/adapters/gatsby/shared/extract-assets.js +58 -0
  31. package/build/adapters/gatsby/shared/extract-assets.js.map +1 -0
  32. package/build/adapters/gatsby/shared/gatsby-build.js +49 -0
  33. package/build/adapters/gatsby/shared/gatsby-build.js.map +1 -0
  34. package/build/adapters/gatsby/shared/sync-render.js +210 -0
  35. package/build/adapters/gatsby/shared/sync-render.js.map +1 -0
  36. package/build/adapters/gatsby/shared/types.js +3 -0
  37. package/build/adapters/gatsby/shared/types.js.map +1 -0
  38. package/build/commands/end-render.js +88 -0
  39. package/build/commands/end-render.js.map +1 -0
  40. package/build/commands/prepare-assets-directory.js +32 -0
  41. package/build/commands/prepare-assets-directory.js.map +1 -0
  42. package/build/commands/prepare-domains-render.js +133 -0
  43. package/build/commands/prepare-domains-render.js.map +1 -0
  44. package/build/commands/reset-render.js +22 -0
  45. package/build/commands/reset-render.js.map +1 -0
  46. package/build/commands/start-render.js +45 -0
  47. package/build/commands/start-render.js.map +1 -0
  48. package/build/commands/upload-search-content.js +180 -0
  49. package/build/commands/upload-search-content.js.map +1 -0
  50. package/build/constants/endpoints.js +42 -0
  51. package/build/constants/endpoints.js.map +1 -0
  52. package/build/constants/envs.js +68 -0
  53. package/build/constants/envs.js.map +1 -0
  54. package/build/constants/errors.js +81 -0
  55. package/build/constants/errors.js.map +1 -0
  56. package/build/services/auth.js +40 -0
  57. package/build/services/auth.js.map +1 -0
  58. package/build/services/db-class.js +49 -0
  59. package/build/services/db-class.js.map +1 -0
  60. package/build/services/db.js +34 -0
  61. package/build/services/db.js.map +1 -0
  62. package/build/services/navigation.js +96 -0
  63. package/build/services/navigation.js.map +1 -0
  64. package/build/services/reference-fields.js +131 -0
  65. package/build/services/reference-fields.js.map +1 -0
  66. package/build/services/robots.js +60 -0
  67. package/build/services/robots.js.map +1 -0
  68. package/build/services/sites.js +109 -0
  69. package/build/services/sites.js.map +1 -0
  70. package/build/services/store.js +282 -0
  71. package/build/services/store.js.map +1 -0
  72. package/build/types/api.js +3 -0
  73. package/build/types/api.js.map +1 -0
  74. package/build/types/global.js +3 -0
  75. package/build/types/global.js.map +1 -0
  76. package/build/types/navigation.js +3 -0
  77. package/build/types/navigation.js.map +1 -0
  78. package/build/types/pages.js +3 -0
  79. package/build/types/pages.js.map +1 -0
  80. package/build/types/render.js +10 -0
  81. package/build/types/render.js.map +1 -0
  82. package/build/types/sites.js +3 -0
  83. package/build/types/sites.js.map +1 -0
  84. package/build/types/templates.js +3 -0
  85. package/build/types/templates.js.map +1 -0
  86. package/build/utils/api.js +161 -0
  87. package/build/utils/api.js.map +1 -0
  88. package/build/utils/artifacts.js +34 -0
  89. package/build/utils/artifacts.js.map +1 -0
  90. package/build/utils/brush.js +30 -0
  91. package/build/utils/brush.js.map +1 -0
  92. package/build/utils/cache.js +106 -0
  93. package/build/utils/cache.js.map +1 -0
  94. package/build/utils/check-health.js +68 -0
  95. package/build/utils/check-health.js.map +1 -0
  96. package/build/utils/core-utils.js +283 -0
  97. package/build/utils/core-utils.js.map +1 -0
  98. package/build/utils/domains.js +37 -0
  99. package/build/utils/domains.js.map +1 -0
  100. package/build/utils/errors.js +30 -0
  101. package/build/utils/errors.js.map +1 -0
  102. package/build/utils/folders.js +362 -0
  103. package/build/utils/folders.js.map +1 -0
  104. package/build/utils/images.js +45 -0
  105. package/build/utils/images.js.map +1 -0
  106. package/build/utils/instance.js +66 -0
  107. package/build/utils/instance.js.map +1 -0
  108. package/build/utils/loggin.js +108 -0
  109. package/build/utils/loggin.js.map +1 -0
  110. package/build/utils/pages.js +359 -0
  111. package/build/utils/pages.js.map +1 -0
  112. package/build/utils/render.js +144 -0
  113. package/build/utils/render.js.map +1 -0
  114. package/build/utils/sites.js +240 -0
  115. package/build/utils/sites.js.map +1 -0
  116. package/build/utils/store.js +193 -0
  117. package/build/utils/store.js.map +1 -0
  118. package/exporter/adapters/gatsby/actions/clean.ts +14 -0
  119. package/exporter/adapters/gatsby/actions/close.ts +17 -0
  120. package/exporter/adapters/gatsby/actions/data.ts +25 -0
  121. package/exporter/adapters/gatsby/actions/healthCheck.ts +10 -0
  122. package/exporter/adapters/gatsby/actions/init.ts +12 -0
  123. package/exporter/adapters/gatsby/actions/meta.ts +18 -0
  124. package/exporter/adapters/gatsby/actions/prepare.ts +9 -0
  125. package/exporter/adapters/gatsby/actions/relocation.ts +15 -0
  126. package/exporter/adapters/gatsby/actions/restore.ts +36 -0
  127. package/exporter/adapters/gatsby/actions/ssg.ts +12 -0
  128. package/exporter/adapters/gatsby/actions/sync.ts +71 -0
  129. package/exporter/adapters/gatsby/index.ts +67 -147
  130. package/exporter/adapters/gatsby/shared/context.ts +50 -0
  131. package/exporter/adapters/gatsby/shared/diff-assets.ts +113 -0
  132. package/exporter/adapters/gatsby/shared/extract-assets.ts +61 -0
  133. package/exporter/adapters/gatsby/shared/gatsby-build.ts +54 -0
  134. package/exporter/adapters/gatsby/shared/sync-render.ts +276 -0
  135. package/exporter/adapters/gatsby/shared/types.ts +35 -0
  136. package/exporter/build-esbuild.noop +42 -0
  137. package/exporter/build.sh +4 -38
  138. package/exporter/commands/end-render.ts +73 -69
  139. package/exporter/commands/prepare-assets-directory.ts +33 -0
  140. package/exporter/commands/prepare-domains-render.ts +144 -31
  141. package/exporter/commands/reset-render.ts +10 -1
  142. package/exporter/commands/start-render.ts +23 -44
  143. package/exporter/commands/upload-search-content.ts +194 -20
  144. package/exporter/constants/envs.ts +57 -55
  145. package/exporter/{errors/errors-data.ts → constants/errors.ts} +24 -14
  146. package/exporter/services/auth.ts +7 -6
  147. package/exporter/services/db-class.ts +54 -0
  148. package/exporter/services/db.ts +32 -0
  149. package/exporter/services/navigation.ts +4 -10
  150. package/exporter/services/reference-fields.ts +8 -23
  151. package/exporter/services/robots.ts +9 -16
  152. package/exporter/services/sites.ts +35 -24
  153. package/exporter/services/store.ts +120 -78
  154. package/exporter/types/api.ts +24 -27
  155. package/exporter/types/global.ts +7 -10
  156. package/exporter/types/navigation.ts +1 -1
  157. package/exporter/types/pages.ts +2 -3
  158. package/exporter/types/render.ts +59 -0
  159. package/exporter/types/sites.ts +1 -2
  160. package/exporter/utils/api.ts +46 -82
  161. package/exporter/utils/artifacts.ts +34 -0
  162. package/exporter/utils/brush.ts +34 -0
  163. package/exporter/utils/cache.ts +37 -62
  164. package/exporter/utils/check-health.ts +79 -0
  165. package/exporter/utils/core-utils.ts +129 -248
  166. package/exporter/utils/domains.ts +10 -7
  167. package/exporter/{errors/index.ts → utils/errors.ts} +10 -9
  168. package/exporter/utils/folders.ts +187 -95
  169. package/exporter/utils/images.ts +1 -6
  170. package/exporter/utils/instance.ts +9 -12
  171. package/exporter/utils/loggin.ts +32 -91
  172. package/exporter/utils/pages.ts +23 -88
  173. package/exporter/utils/render.ts +149 -48
  174. package/exporter/utils/sites.ts +81 -90
  175. package/exporter/utils/store.ts +87 -180
  176. package/gatsby-browser.tsx +41 -58
  177. package/gatsby-config.ts +6 -12
  178. package/gatsby-node.ts +15 -77
  179. package/gatsby-ssr.tsx +2 -1
  180. package/package.json +36 -78
  181. package/plugins/gatsby-plugin-svgr-loader/gatsby-node.js +55 -0
  182. package/plugins/gatsby-plugin-svgr-loader/package.json +8 -0
  183. package/{exporter/react → react}/Favicon/index.tsx +1 -7
  184. package/{exporter/react → react}/GriddoIntegrations/index.tsx +6 -14
  185. package/{exporter/react → react}/GriddoIntegrations/utils.ts +4 -9
  186. package/{build/react/index.d.ts → react/index.tsx} +1 -0
  187. package/src/components/Head.tsx +13 -46
  188. package/src/components/template.tsx +8 -30
  189. package/src/gatsby-node-utils.ts +91 -2
  190. package/src/html.tsx +2 -11
  191. package/src/types.ts +5 -5
  192. package/tsconfig.json +5 -3
  193. package/build/adapters/gatsby/index.d.ts +0 -4
  194. package/build/adapters/gatsby/utils.d.ts +0 -22
  195. package/build/artifacts/index.d.ts +0 -6
  196. package/build/commands/end-render.d.ts +0 -2
  197. package/build/commands/move-assets.d.ts +0 -1
  198. package/build/commands/prepare-domains-render.d.ts +0 -1
  199. package/build/commands/reset-render.d.ts +0 -2
  200. package/build/commands/start-render.d.ts +0 -2
  201. package/build/commands/upload-search-content.d.ts +0 -2
  202. package/build/constants/endpoints.d.ts +0 -19
  203. package/build/constants/envs.d.ts +0 -37
  204. package/build/constants/index.d.ts +0 -57
  205. package/build/end-render.js +0 -74
  206. package/build/end-render.js.map +0 -7
  207. package/build/errors/errors-data.d.ts +0 -22
  208. package/build/errors/index.d.ts +0 -15
  209. package/build/index.d.ts +0 -29
  210. package/build/index.js +0 -73
  211. package/build/index.js.map +0 -7
  212. package/build/prepare-domains-render.js +0 -73
  213. package/build/prepare-domains-render.js.map +0 -7
  214. package/build/react/Favicon/index.d.ts +0 -5
  215. package/build/react/Favicon/utils.d.ts +0 -9
  216. package/build/react/GriddoIntegrations/index.d.ts +0 -20
  217. package/build/react/GriddoIntegrations/utils.d.ts +0 -26
  218. package/build/react/index.js +0 -3
  219. package/build/registers/api.d.ts +0 -9
  220. package/build/registers/gatsby.d.ts +0 -9
  221. package/build/registers/index.d.ts +0 -3
  222. package/build/reset-render.js +0 -74
  223. package/build/reset-render.js.map +0 -7
  224. package/build/services/auth.d.ts +0 -10
  225. package/build/services/domains.d.ts +0 -6
  226. package/build/services/navigation.d.ts +0 -50
  227. package/build/services/reference-fields.d.ts +0 -20
  228. package/build/services/register.d.ts +0 -36
  229. package/build/services/robots.d.ts +0 -19
  230. package/build/services/settings.d.ts +0 -4
  231. package/build/services/sites.d.ts +0 -29
  232. package/build/services/store.d.ts +0 -6
  233. package/build/start-render.js +0 -100
  234. package/build/start-render.js.map +0 -7
  235. package/build/types/api.d.ts +0 -142
  236. package/build/types/global.d.ts +0 -84
  237. package/build/types/navigation.d.ts +0 -28
  238. package/build/types/pages.d.ts +0 -144
  239. package/build/types/sites.d.ts +0 -57
  240. package/build/types/templates.d.ts +0 -8
  241. package/build/upload-search-content.js +0 -74
  242. package/build/upload-search-content.js.map +0 -7
  243. package/build/utils/alerts.d.ts +0 -3
  244. package/build/utils/api.d.ts +0 -23
  245. package/build/utils/cache.d.ts +0 -35
  246. package/build/utils/core-utils.d.ts +0 -107
  247. package/build/utils/create-build-data.d.ts +0 -8
  248. package/build/utils/domains.d.ts +0 -13
  249. package/build/utils/folders.d.ts +0 -53
  250. package/build/utils/health-checks.d.ts +0 -7
  251. package/build/utils/images.d.ts +0 -16
  252. package/build/utils/instance.d.ts +0 -21
  253. package/build/utils/loggin.d.ts +0 -51
  254. package/build/utils/pages.d.ts +0 -34
  255. package/build/utils/render.d.ts +0 -13
  256. package/build/utils/searches.d.ts +0 -15
  257. package/build/utils/sites.d.ts +0 -31
  258. package/build/utils/store.d.ts +0 -81
  259. package/cx.config.d.ts +0 -5
  260. package/cx.config.js +0 -36
  261. package/exporter/adapters/gatsby/utils.ts +0 -161
  262. package/exporter/artifacts/README.md +0 -34
  263. package/exporter/artifacts/index.ts +0 -33
  264. package/exporter/commands/move-assets.ts +0 -11
  265. package/exporter/constants/index.ts +0 -129
  266. package/exporter/index.ts +0 -82
  267. package/exporter/react/index.tsx +0 -11
  268. package/exporter/registers/api.ts +0 -14
  269. package/exporter/registers/gatsby.ts +0 -14
  270. package/exporter/registers/index.ts +0 -4
  271. package/exporter/services/domains.ts +0 -16
  272. package/exporter/services/register.ts +0 -113
  273. package/exporter/services/settings.ts +0 -17
  274. package/exporter/utils/alerts.ts +0 -29
  275. package/exporter/utils/create-build-data.ts +0 -17
  276. package/exporter/utils/health-checks.ts +0 -64
  277. package/exporter/utils/searches.ts +0 -156
  278. package/src/README.md +0 -7
  279. package/start-render.js +0 -7
  280. /package/{exporter/react → react}/Favicon/utils.ts +0 -0
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthService = void 0;
4
+ const endpoints_1 = require("../constants/endpoints");
5
+ const envs_1 = require("../constants/envs");
6
+ const errors_1 = require("../constants/errors");
7
+ const errors_2 = require("../utils/errors");
8
+ /**
9
+ * Service for authentication in the Griddo Private API
10
+ */
11
+ class AuthService {
12
+ headers;
13
+ async login() {
14
+ try {
15
+ const response = await fetch(endpoints_1.LOGIN, {
16
+ method: "POST",
17
+ headers: { "Content-Type": "application/json", Connection: "close" },
18
+ body: JSON.stringify({
19
+ username: envs_1.GRIDDO_BOT_USER,
20
+ password: envs_1.GRIDDO_BOT_PASSWORD,
21
+ }),
22
+ });
23
+ if (!response.ok) {
24
+ throw new Error("Error while login in the API");
25
+ }
26
+ const { token } = await response.json();
27
+ this.headers = {
28
+ Authorization: `bearer ${token}`,
29
+ "Cache-Control": "no-store",
30
+ };
31
+ return this.headers;
32
+ }
33
+ catch (e) {
34
+ (0, errors_2.throwError)(errors_1.LoginError, e);
35
+ }
36
+ }
37
+ }
38
+ const authService = new AuthService();
39
+ exports.AuthService = authService;
40
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../exporter/services/auth.ts"],"names":[],"mappings":";;;AAEA,sDAA+C;AAC/C,4CAAyE;AACzE,gDAAiD;AACjD,4CAA6C;AAE7C;;GAEG;AACH,MAAM,WAAW;IAChB,OAAO,CAA0B;IAEjC,KAAK,CAAC,KAAK,GAAG;QACb,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAK,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE;gBACpE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACpB,QAAQ,EAAE,sBAAe;oBACzB,QAAQ,EAAE,0BAAmB;iBAC7B,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG;gBACd,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,eAAe,EAAE,UAAU;aAC3B,CAAC;YAEF,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAA,mBAAU,EAAC,mBAAU,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;IAAA,CACD;CACD;AAED,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAEd,WAAW"}
@@ -0,0 +1,49 @@
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.JsonDatabase = void 0;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const folders_1 = require("../utils/folders");
10
+ class JsonDatabase {
11
+ dbFilePath;
12
+ constructor(customDBPath) {
13
+ this.dbFilePath =
14
+ customDBPath ??
15
+ node_path_1.default.join((0, folders_1.pkgDirSync)({ cwd: node_path_1.default.resolve(__dirname, "../../..") }) ?? "", ".cx-cache", "db.json");
16
+ }
17
+ async read(customDBFilePath) {
18
+ try {
19
+ const raw = await promises_1.default.readFile(customDBFilePath || this.dbFilePath, "utf-8");
20
+ return JSON.parse(raw);
21
+ }
22
+ catch (error) {
23
+ if (error instanceof Error) {
24
+ console.error(`Error reading DB file at ${this.dbFilePath}:`, error.message);
25
+ }
26
+ else {
27
+ console.error(`Unknown error reading DB file at ${this.dbFilePath}:`, error);
28
+ }
29
+ throw error;
30
+ }
31
+ }
32
+ async write(renderDB) {
33
+ try {
34
+ await promises_1.default.mkdir(node_path_1.default.dirname(this.dbFilePath), { recursive: true });
35
+ await promises_1.default.writeFile(this.dbFilePath, JSON.stringify(renderDB, null, 2));
36
+ }
37
+ catch (error) {
38
+ if (error instanceof Error) {
39
+ console.error(`Error writing to DB file at ${this.dbFilePath}:`, error.message);
40
+ }
41
+ else {
42
+ console.error(`Unknown error writing to DB file at ${this.dbFilePath}:`, error);
43
+ }
44
+ throw error;
45
+ }
46
+ }
47
+ }
48
+ exports.JsonDatabase = JsonDatabase;
49
+ //# sourceMappingURL=db-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-class.js","sourceRoot":"","sources":["../../exporter/services/db-class.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAmC;AACnC,0DAA6B;AAE7B,8CAA8C;AAQ9C;IACkB,UAAU,CAAS;IAEpC,YAAY,YAAqB,EAAE;QAClC,IAAI,CAAC,UAAU;YACd,YAAY;gBACZ,mBAAI,CAAC,IAAI,CACR,IAAA,oBAAU,EAAC,EAAE,GAAG,EAAE,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAC9D,WAAW,EACX,SAAS,CACT,CAAC;IAAA,CACH;IAED,KAAK,CAAC,IAAI,CAAC,gBAAyB,EAAqB;QACxD,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,kBAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IAAA,CACD;IAED,KAAK,CAAC,KAAK,CAAC,QAAkB,EAAiB;QAC9C,IAAI,CAAC;YACJ,MAAM,kBAAG,CAAC,KAAK,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,MAAM,kBAAG,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IAAA,CACD;CACD"}
@@ -0,0 +1,34 @@
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.readDB = readDB;
7
+ exports.writeDB = writeDB;
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const folders_1 = require("../utils/folders");
11
+ const root = (0, folders_1.pkgDirSync)({ cwd: node_path_1.default.resolve(__dirname, "../../..") }) || "";
12
+ const cache = node_path_1.default.join(root, ".cx-cache");
13
+ const dbFilePath = node_path_1.default.join(cache, "db.json");
14
+ async function readDB(customDBPath = "") {
15
+ const file = customDBPath || dbFilePath;
16
+ try {
17
+ return JSON.parse(await promises_1.default.readFile(file, "utf-8"));
18
+ }
19
+ catch (error) {
20
+ console.error(`Failed to read DB file at ${file}:`, error);
21
+ throw error;
22
+ }
23
+ }
24
+ async function writeDB(renderDB, customDBPath = "") {
25
+ const file = customDBPath || dbFilePath;
26
+ try {
27
+ await promises_1.default.writeFile(file, JSON.stringify(renderDB));
28
+ }
29
+ catch (error) {
30
+ console.error(`Failed to write DB file at ${file}:`, error);
31
+ throw error;
32
+ }
33
+ }
34
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../exporter/services/db.ts"],"names":[],"mappings":";;;;;QA+BS,MAAM;QAAE,OAAO;AA7BxB,gEAAmC;AACnC,0DAA6B;AAE7B,8CAA8C;AAE9C,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,EAAE,GAAG,EAAE,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5E,MAAM,KAAK,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAE/C,KAAK,UAAU,MAAM,CAAC,YAAY,GAAG,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC;IACxC,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,kBAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAa,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC;IACb,CAAC;AAAA,CACD;AAED,KAAK,UAAU,OAAO,CAAC,QAAkB,EAAE,YAAY,GAAG,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC;IACxC,IAAI,CAAC;QACJ,MAAM,kBAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACb,CAAC;AAAA,CACD"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NavigationService = void 0;
4
+ class NavigationService {
5
+ _defaultHeaders;
6
+ _defaultFooters;
7
+ _navigations;
8
+ constructor() {
9
+ this._navigations = {
10
+ footers: [],
11
+ headers: [],
12
+ };
13
+ this._defaultHeaders = {};
14
+ this._defaultFooters = {};
15
+ }
16
+ set navigations(navigations) {
17
+ this._navigations = navigations;
18
+ this._defaultFooters = this.getDefaultFooters();
19
+ this._defaultHeaders = this.getDefaultHeaders();
20
+ }
21
+ get navigations() {
22
+ return this._navigations;
23
+ }
24
+ getDefaultFooters() {
25
+ const footers = [...this.navigations.footers];
26
+ const defaultFooters = footers.filter((footer) => footer.setAsDefault);
27
+ const defaultFootersByLang = {};
28
+ for (const item of defaultFooters) {
29
+ defaultFootersByLang[item.language] = item;
30
+ }
31
+ return defaultFootersByLang;
32
+ }
33
+ getDefaultHeaders() {
34
+ const headers = [...this.navigations.headers];
35
+ const defaultHeaders = headers.filter((header) => header.setAsDefault);
36
+ const defaultHeadersByLang = {};
37
+ for (const item of defaultHeaders) {
38
+ defaultHeadersByLang[item.language] = item;
39
+ }
40
+ return defaultHeadersByLang;
41
+ }
42
+ getRightLanguage(list, id, language) {
43
+ if (!list || !id) {
44
+ return null;
45
+ }
46
+ const rightLanguageItem = list.find((item) => item.language === language &&
47
+ item.navigationLanguages?.find((version) => version.navigationId === id));
48
+ const result = rightLanguageItem || list.find((item) => item.id === id);
49
+ return result ? { ...result } : null;
50
+ }
51
+ getPageHeader(id, language) {
52
+ return this.getRightLanguage(this.navigations.headers, id, language);
53
+ }
54
+ getPageFooter(id, language) {
55
+ return this.getRightLanguage(this.navigations.footers, id, language);
56
+ }
57
+ getPageNavigations(page) {
58
+ const { header: pageHeader, footer: pageFooter, language, template, templateConfig } = page;
59
+ const { templateType } = template;
60
+ const { defaultHeader, defaultFooter, templates } = templateConfig;
61
+ // The navigations would be:
62
+ // - The one with the page or ...
63
+ // - The one defined for that template or ...
64
+ // - The one you have defined for that data package
65
+ const getValidNavigation = (values) => {
66
+ const fineNavigation = values.find((item) => typeof item === "number");
67
+ return typeof fineNavigation === "number" ? fineNavigation : null;
68
+ };
69
+ const headerID = getValidNavigation([
70
+ pageHeader,
71
+ templates?.[templateType]?.defaultHeader,
72
+ defaultHeader,
73
+ ]);
74
+ const footerID = getValidNavigation([
75
+ pageFooter,
76
+ templates?.[templateType]?.defaultFooter,
77
+ defaultFooter,
78
+ ]);
79
+ const header = headerID
80
+ ? this.getPageHeader(headerID, language)
81
+ : headerID === 0
82
+ ? null
83
+ : this._defaultHeaders[language];
84
+ const footer = footerID
85
+ ? this.getPageFooter(footerID, language)
86
+ : footerID === 0
87
+ ? null
88
+ : this._defaultFooters[language];
89
+ return {
90
+ header,
91
+ footer,
92
+ };
93
+ }
94
+ }
95
+ exports.NavigationService = NavigationService;
96
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../exporter/services/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getReferenceFieldData = getReferenceFieldData;
4
+ const loggin_1 = require("../utils/loggin");
5
+ const sites_1 = require("./sites");
6
+ /**
7
+ * Get the body data from a ReferenceField.
8
+ * `auto`, `manual` or `navigation` mode.
9
+ *
10
+ * @param data The ReferenceField props.
11
+ * @returns The props for one of the ReferenceField mode.
12
+ */
13
+ function getBody(data, page) {
14
+ const { order, sources, quantity, mode, fixed, fullRelations = false, allLanguages = false, preferenceLanguage = false, referenceId, fields, } = data;
15
+ if (mode === "auto") {
16
+ return {
17
+ mode,
18
+ order,
19
+ sources,
20
+ quantity,
21
+ fullRelations,
22
+ allLanguages,
23
+ preferenceLanguage,
24
+ fields,
25
+ };
26
+ }
27
+ if (mode === "manual") {
28
+ return { mode, fixed, fullRelations, fields };
29
+ }
30
+ if (mode === "navigation") {
31
+ return {
32
+ mode,
33
+ order,
34
+ quantity,
35
+ fullRelations,
36
+ referenceId: referenceId || page?.structuredDataContent?.id,
37
+ fields,
38
+ };
39
+ }
40
+ console.log(`Error: ReferenceField mode: ${mode} is not recognized on page ${page?.id}.`);
41
+ return data;
42
+ }
43
+ /**
44
+ * Gets ContentType data from API
45
+ *
46
+ * @param props
47
+ * @param props.page The Page object
48
+ * @param props.component.data The ReferenceField, always in the data prop.
49
+ * @param props.cacheKey A cache key to manage cached files or using fetch
50
+ * @returns The ContentType data.
51
+ */
52
+ async function fetchContentTypeData(props) {
53
+ const { page, component, cacheKey } = props;
54
+ const { data } = component;
55
+ // Distrubutor with `hasDistributorData: true` / `getStaticData: true` but without `data` prop
56
+ if (!data) {
57
+ (0, loggin_1.boxLog)(`Error: Page ${page.id} has \`hasDistributorData: true\` or \`getStaticData: true\` but it doesn't have a \`data\` property.`, "No `data` in `ReferenceField`");
58
+ return [];
59
+ }
60
+ // Avoid fetch ReferenceField with empty `data.sources`
61
+ if (Array.isArray(data.sources) && data.sources.length < 1) {
62
+ (0, loggin_1.boxLog)(`Warning: Page with id: ${page.id} has a ReferenceField with empty \`data.sources\``, "Empty data.sources in ReferenceField");
63
+ return [];
64
+ }
65
+ const { site, lang } = data;
66
+ // Inform that the ReferenceField has not `data.sources`
67
+ if (!data.sources && data.mode === "auto") {
68
+ (0, loggin_1.boxLog)(`Warning: Page with id: ${page.id} has a ReferenceField with \`undefined\` \`data.sources\``, "undefined data.sources in ReferenceField");
69
+ }
70
+ const body = getBody(data, page);
71
+ const response = await (0, sites_1.getReferenceFieldSiteData)(page, body, cacheKey, site, lang);
72
+ return response;
73
+ }
74
+ /**
75
+ * Compose the queriedItems prop from a ReferenceField data of a page.
76
+ *
77
+ * @param props
78
+ * @param props.page The APIPage object
79
+ * @param props.cacheKey A cache key to manage cached files or using fetch
80
+ */
81
+ async function getReferenceFieldData({ page, cacheKey = "", }) {
82
+ try {
83
+ const { template } = page;
84
+ const checkReferenceFields = async (templateChunk, level = 1) => {
85
+ // If it doesn't a "template strcuture"
86
+ if (!templateChunk || typeof templateChunk !== "object") {
87
+ return;
88
+ }
89
+ const hasRequestForData = JSON.stringify(templateChunk).includes('"hasDistributorData":true') ||
90
+ JSON.stringify(templateChunk).includes('"getStaticData":true');
91
+ if (!hasRequestForData) {
92
+ return;
93
+ }
94
+ // For each prop in the "template"
95
+ for (const key in templateChunk) {
96
+ // Si la key es `queriedItems` saltamos al siguiente `key`
97
+ if (key === "queriedItems") {
98
+ continue;
99
+ }
100
+ const _key = key;
101
+ const component = templateChunk[_key];
102
+ // Si el elemento no existe o no es un objeto saltamos al siguiente `key`
103
+ if (!component || typeof component !== "object") {
104
+ continue;
105
+ }
106
+ const componentHasRequestForData = component.hasDistributorData || component.getStaticData;
107
+ if (componentHasRequestForData) {
108
+ component.queriedItems = await fetchContentTypeData({
109
+ page,
110
+ cacheKey,
111
+ component,
112
+ });
113
+ }
114
+ await checkReferenceFields(component, level + 1);
115
+ }
116
+ };
117
+ const getReferenceFields = async (template) => {
118
+ // `template` es un array para que también revise la propia template como objeto.
119
+ // @ts-expect-error remove the array
120
+ await checkReferenceFields([template]);
121
+ return template;
122
+ };
123
+ const response = await getReferenceFields(template);
124
+ return response;
125
+ }
126
+ catch (err) {
127
+ console.error(`Error in getReferenceFieldData ${err}`);
128
+ process.exit(1);
129
+ }
130
+ }
131
+ //# sourceMappingURL=reference-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-fields.js","sourceRoot":"","sources":["../../exporter/services/reference-fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
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.RobotsService = void 0;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const endpoints_1 = require("../constants/endpoints");
10
+ const api_1 = require("../utils/api");
11
+ const folders_1 = require("../utils/folders");
12
+ const loggin_1 = require("../utils/loggin");
13
+ const render_1 = require("../utils/render");
14
+ class RobotsService {
15
+ robots;
16
+ settings;
17
+ constructor() {
18
+ this.robots = [];
19
+ this.settings = {};
20
+ }
21
+ async getRobots() {
22
+ try {
23
+ const apiRobots = await (0, api_1.get)({ endpoint: endpoints_1.ROBOTS });
24
+ this.robots =
25
+ apiRobots
26
+ ?.filter((r) => !!r.path)
27
+ .map(({ path, content }) => ({
28
+ path,
29
+ content: content || "User-agent: *\n\r\n\rAllow: /",
30
+ })) || [];
31
+ }
32
+ catch (e) {
33
+ console.warn(`${this.constructor.name}: ${e.message}`);
34
+ }
35
+ }
36
+ /**
37
+ * Write robots.txt files for the domain.
38
+ */
39
+ async writeFiles(domain) {
40
+ const { __root } = await (0, render_1.getRenderPathsFromDB)({ domain });
41
+ const distDirectory = node_path_1.default.join(__root, "dist");
42
+ await this.getRobots();
43
+ const robot = this.robots.find(({ path }) => path === `/${domain}`);
44
+ if (!robot) {
45
+ console.log(`Robots not found for ${domain}`);
46
+ return;
47
+ }
48
+ if (await (0, folders_1.pathExists)(distDirectory)) {
49
+ const fileLocation = node_path_1.default.join(distDirectory, "robots.txt");
50
+ await promises_1.default.writeFile(fileLocation, robot?.content);
51
+ (0, loggin_1.verboseLog)(`wrote robots.txt to ${fileLocation}`);
52
+ }
53
+ else {
54
+ console.log(`${distDirectory} not found`);
55
+ }
56
+ }
57
+ }
58
+ const robotsService = new RobotsService();
59
+ exports.RobotsService = robotsService;
60
+ //# sourceMappingURL=robots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robots.js","sourceRoot":"","sources":["../../exporter/services/robots.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAmC;AACnC,0DAA6B;AAE7B,sDAAgD;AAChD,sCAAmC;AACnC,8CAA8C;AAC9C,4CAA6C;AAC7C,4CAAuD;AAEvD,MAAM,aAAa;IAClB,MAAM,CAAS;IACf,QAAQ,CAA0B;IAElC,cAAc;QACb,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IAAA,CACnB;IAEO,KAAK,CAAC,SAAS,GAAG;QACzB,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,IAAA,SAAG,EAAS,EAAE,QAAQ,EAAE,kBAAM,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM;gBACV,SAAS;oBACR,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;qBACxB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC5B,IAAI;oBACJ,OAAO,EAAE,OAAO,IAAI,+BAA+B;iBACnD,CAAC,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IAAA,CACD;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE;QAChC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,6BAAoB,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;YAC9C,OAAO;QACR,CAAC;QAED,IAAI,MAAM,IAAA,oBAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,kBAAG,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAA,mBAAU,EAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,YAAY,CAAC,CAAC;QAC3C,CAAC;IAAA,CACD;CACD;AAED,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAEhB,aAAa"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.endSiteRender = endSiteRender;
4
+ exports.getAllSites = getAllSites;
5
+ exports.getAllSitesFromDomain = getAllSitesFromDomain;
6
+ exports.getPage = getPage;
7
+ exports.getReferenceFieldSiteData = getReferenceFieldSiteData;
8
+ exports.getSiteInfo = getSiteInfo;
9
+ exports.getSiteLanguages = getSiteLanguages;
10
+ exports.getSitemap = getSitemap;
11
+ exports.getSiteSocials = getSiteSocials;
12
+ exports.startSiteRender = startSiteRender;
13
+ const endpoints_1 = require("../constants/endpoints");
14
+ const api_1 = require("../utils/api");
15
+ /**
16
+ * Get a list of site objects.
17
+ */
18
+ async function getAllSites(domain) {
19
+ return (0, api_1.get)({
20
+ endpoint: `${endpoints_1.GET_ALL}?domainSlug=${domain}`,
21
+ });
22
+ }
23
+ /**
24
+ * Get a list of site objects from a domain.
25
+ */
26
+ async function getAllSitesFromDomain(domain) {
27
+ const allSites = await (0, api_1.get)({ endpoint: endpoints_1.GET_ALL });
28
+ if (allSites.length) {
29
+ for (const site of allSites) {
30
+ const { items } = await getSiteLanguages(site.id);
31
+ // Añadimos la prop domains con el dominio "cocinado" con los
32
+ // idiomas y teniendo en cuenta solo el dominio actual.
33
+ site.domains = items
34
+ .filter((item) => item.domain && (item.domain.slug === domain || item.domain.slug === `/${domain}`))
35
+ .map((item) => ({ [item.id]: `${item.domain.slug}${item.path}` }));
36
+ }
37
+ }
38
+ return allSites.filter((site) => site.domains.length > 0);
39
+ }
40
+ /**
41
+ * Fetch a page object from API.
42
+ */
43
+ async function getPage(id, cacheKey) {
44
+ return (0, api_1.get)({
45
+ endpoint: `${endpoints_1.GET_PAGE}/${id}`,
46
+ cacheKey,
47
+ });
48
+ }
49
+ /**
50
+ * Get site info
51
+ */
52
+ async function getSiteInfo(id, cacheKey = "") {
53
+ const [prefix, suffix] = endpoints_1.INFO;
54
+ return (0, api_1.get)({
55
+ endpoint: `${prefix}${id}${suffix}`,
56
+ cacheKey,
57
+ });
58
+ }
59
+ async function getSiteLanguages(id, cacheKey = "") {
60
+ const [prefix, suffix] = endpoints_1.LANGUAGES;
61
+ return (0, api_1.get)({
62
+ endpoint: `${prefix}${id}${suffix}`,
63
+ cacheKey,
64
+ });
65
+ }
66
+ async function startSiteRender(id) {
67
+ const [prefix, suffix] = endpoints_1.BUILD_START;
68
+ return (0, api_1.get)({
69
+ endpoint: `${prefix}${id}${suffix}`,
70
+ });
71
+ }
72
+ /**
73
+ * Send the end signal to API for a render site.
74
+ */
75
+ async function endSiteRender(id, body) {
76
+ const [prefix, suffix] = endpoints_1.BUILD_END;
77
+ return (0, api_1.post)({
78
+ endpoint: `${prefix}${id}${suffix}`,
79
+ body,
80
+ useApiCacheDir: false,
81
+ });
82
+ }
83
+ async function getReferenceFieldSiteData(page, body, cacheKey, dataSiteId, dataLangID) {
84
+ const [prefix, suffix] = endpoints_1.GET_REFERENCE_FIELD_DATA;
85
+ const site = dataSiteId || page.site;
86
+ const lang = dataLangID || page.language;
87
+ return (0, api_1.post)({
88
+ endpoint: `${prefix}${site}${suffix}`,
89
+ body,
90
+ headers: { lang },
91
+ cacheKey,
92
+ });
93
+ }
94
+ async function getSitemap(options) {
95
+ const { siteId, headers } = options;
96
+ const [prefix, suffix] = endpoints_1.GET_SITEMAP;
97
+ return (0, api_1.get)({
98
+ endpoint: `${prefix}${siteId}${suffix}`,
99
+ headers,
100
+ });
101
+ }
102
+ async function getSiteSocials(id, cacheKey = "") {
103
+ const [prefix, suffix] = endpoints_1.SOCIALS;
104
+ return (0, api_1.get)({
105
+ endpoint: `${prefix}${id}${suffix}`,
106
+ cacheKey,
107
+ });
108
+ }
109
+ //# sourceMappingURL=sites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../exporter/services/sites.ts"],"names":[],"mappings":"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"}