@intlayer/api 9.6.0 → 9.7.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 (206) hide show
  1. package/dist/cjs/cms/createAuthManager.cjs +2 -3
  2. package/dist/cjs/cms/createIntlayerCMS.cjs +2 -3
  3. package/dist/cjs/cms/index.cjs +2 -2
  4. package/dist/cjs/distantDictionary/fetchDistantDictionaries.cjs +3 -4
  5. package/dist/cjs/distantDictionary/fetchDistantDictionaries.cjs.map +1 -1
  6. package/dist/cjs/distantDictionary/fetchDistantDictionary.cjs +3 -4
  7. package/dist/cjs/distantDictionary/fetchDistantDictionary.cjs.map +1 -1
  8. package/dist/cjs/distantDictionary/index.cjs +2 -2
  9. package/dist/cjs/fetcher.cjs +2 -3
  10. package/dist/cjs/fetcher.cjs.map +1 -1
  11. package/dist/cjs/getIntlayerAPI/ai.cjs +79 -26
  12. package/dist/cjs/getIntlayerAPI/ai.cjs.map +1 -1
  13. package/dist/cjs/getIntlayerAPI/analytics.cjs +47 -14
  14. package/dist/cjs/getIntlayerAPI/analytics.cjs.map +1 -1
  15. package/dist/cjs/getIntlayerAPI/asset.cjs +41 -12
  16. package/dist/cjs/getIntlayerAPI/asset.cjs.map +1 -1
  17. package/dist/cjs/getIntlayerAPI/audit.cjs +73 -20
  18. package/dist/cjs/getIntlayerAPI/audit.cjs.map +1 -1
  19. package/dist/cjs/getIntlayerAPI/bitbucket.cjs +42 -13
  20. package/dist/cjs/getIntlayerAPI/bitbucket.cjs.map +1 -1
  21. package/dist/cjs/getIntlayerAPI/codeberg.cjs +20 -0
  22. package/dist/cjs/getIntlayerAPI/codeberg.cjs.map +1 -0
  23. package/dist/cjs/getIntlayerAPI/dictionary.cjs +62 -17
  24. package/dist/cjs/getIntlayerAPI/dictionary.cjs.map +1 -1
  25. package/dist/cjs/getIntlayerAPI/editor.cjs +3 -4
  26. package/dist/cjs/getIntlayerAPI/editor.cjs.map +1 -1
  27. package/dist/cjs/getIntlayerAPI/environment.cjs +47 -14
  28. package/dist/cjs/getIntlayerAPI/environment.cjs.map +1 -1
  29. package/dist/cjs/getIntlayerAPI/forge.cjs +63 -0
  30. package/dist/cjs/getIntlayerAPI/forge.cjs.map +1 -0
  31. package/dist/cjs/getIntlayerAPI/gitee.cjs +20 -0
  32. package/dist/cjs/getIntlayerAPI/gitee.cjs.map +1 -0
  33. package/dist/cjs/getIntlayerAPI/github.cjs +47 -14
  34. package/dist/cjs/getIntlayerAPI/github.cjs.map +1 -1
  35. package/dist/cjs/getIntlayerAPI/gitlab.cjs +42 -13
  36. package/dist/cjs/getIntlayerAPI/gitlab.cjs.map +1 -1
  37. package/dist/cjs/getIntlayerAPI/index.cjs +27 -24
  38. package/dist/cjs/getIntlayerAPI/index.cjs.map +1 -1
  39. package/dist/cjs/getIntlayerAPI/newsletter.cjs +31 -10
  40. package/dist/cjs/getIntlayerAPI/newsletter.cjs.map +1 -1
  41. package/dist/cjs/getIntlayerAPI/oAuth.cjs +33 -8
  42. package/dist/cjs/getIntlayerAPI/oAuth.cjs.map +1 -1
  43. package/dist/cjs/getIntlayerAPI/organization.cjs +75 -24
  44. package/dist/cjs/getIntlayerAPI/organization.cjs.map +1 -1
  45. package/dist/cjs/getIntlayerAPI/project.cjs +115 -33
  46. package/dist/cjs/getIntlayerAPI/project.cjs.map +1 -1
  47. package/dist/cjs/getIntlayerAPI/reviewer.cjs +145 -35
  48. package/dist/cjs/getIntlayerAPI/reviewer.cjs.map +1 -1
  49. package/dist/cjs/getIntlayerAPI/search.cjs +18 -7
  50. package/dist/cjs/getIntlayerAPI/search.cjs.map +1 -1
  51. package/dist/cjs/getIntlayerAPI/showcaseProject.cjs +64 -19
  52. package/dist/cjs/getIntlayerAPI/showcaseProject.cjs.map +1 -1
  53. package/dist/cjs/getIntlayerAPI/status.cjs +19 -7
  54. package/dist/cjs/getIntlayerAPI/status.cjs.map +1 -1
  55. package/dist/cjs/getIntlayerAPI/stripe.cjs +144 -39
  56. package/dist/cjs/getIntlayerAPI/stripe.cjs.map +1 -1
  57. package/dist/cjs/getIntlayerAPI/tag.cjs +36 -11
  58. package/dist/cjs/getIntlayerAPI/tag.cjs.map +1 -1
  59. package/dist/cjs/getIntlayerAPI/translate.cjs +49 -12
  60. package/dist/cjs/getIntlayerAPI/translate.cjs.map +1 -1
  61. package/dist/cjs/getIntlayerAPI/user.cjs +61 -18
  62. package/dist/cjs/getIntlayerAPI/user.cjs.map +1 -1
  63. package/dist/cjs/index.cjs +38 -30
  64. package/dist/cjs/proxy.cjs +28 -25
  65. package/dist/cjs/proxy.cjs.map +1 -1
  66. package/dist/cjs/public/createPublicClient.cjs +26 -7
  67. package/dist/cjs/public/createPublicClient.cjs.map +1 -1
  68. package/dist/cjs/public/index.cjs +1 -1
  69. package/dist/cjs/resolveInternalBackendUrl.cjs +1 -2
  70. package/dist/esm/cms/createAuthManager.mjs +1 -2
  71. package/dist/esm/cms/createIntlayerCMS.mjs +1 -2
  72. package/dist/esm/distantDictionary/fetchDistantDictionaries.mjs +1 -2
  73. package/dist/esm/distantDictionary/fetchDistantDictionaries.mjs.map +1 -1
  74. package/dist/esm/distantDictionary/fetchDistantDictionary.mjs +1 -2
  75. package/dist/esm/distantDictionary/fetchDistantDictionary.mjs.map +1 -1
  76. package/dist/esm/fetcher.mjs +1 -2
  77. package/dist/esm/fetcher.mjs.map +1 -1
  78. package/dist/esm/getIntlayerAPI/ai.mjs +78 -25
  79. package/dist/esm/getIntlayerAPI/ai.mjs.map +1 -1
  80. package/dist/esm/getIntlayerAPI/analytics.mjs +46 -13
  81. package/dist/esm/getIntlayerAPI/analytics.mjs.map +1 -1
  82. package/dist/esm/getIntlayerAPI/asset.mjs +40 -11
  83. package/dist/esm/getIntlayerAPI/asset.mjs.map +1 -1
  84. package/dist/esm/getIntlayerAPI/audit.mjs +72 -19
  85. package/dist/esm/getIntlayerAPI/audit.mjs.map +1 -1
  86. package/dist/esm/getIntlayerAPI/bitbucket.mjs +41 -12
  87. package/dist/esm/getIntlayerAPI/bitbucket.mjs.map +1 -1
  88. package/dist/esm/getIntlayerAPI/codeberg.mjs +18 -0
  89. package/dist/esm/getIntlayerAPI/codeberg.mjs.map +1 -0
  90. package/dist/esm/getIntlayerAPI/dictionary.mjs +61 -16
  91. package/dist/esm/getIntlayerAPI/dictionary.mjs.map +1 -1
  92. package/dist/esm/getIntlayerAPI/editor.mjs +2 -3
  93. package/dist/esm/getIntlayerAPI/editor.mjs.map +1 -1
  94. package/dist/esm/getIntlayerAPI/environment.mjs +46 -13
  95. package/dist/esm/getIntlayerAPI/environment.mjs.map +1 -1
  96. package/dist/esm/getIntlayerAPI/forge.mjs +62 -0
  97. package/dist/esm/getIntlayerAPI/forge.mjs.map +1 -0
  98. package/dist/esm/getIntlayerAPI/gitee.mjs +18 -0
  99. package/dist/esm/getIntlayerAPI/gitee.mjs.map +1 -0
  100. package/dist/esm/getIntlayerAPI/github.mjs +46 -13
  101. package/dist/esm/getIntlayerAPI/github.mjs.map +1 -1
  102. package/dist/esm/getIntlayerAPI/gitlab.mjs +41 -12
  103. package/dist/esm/getIntlayerAPI/gitlab.mjs.map +1 -1
  104. package/dist/esm/getIntlayerAPI/index.mjs +6 -3
  105. package/dist/esm/getIntlayerAPI/index.mjs.map +1 -1
  106. package/dist/esm/getIntlayerAPI/newsletter.mjs +30 -9
  107. package/dist/esm/getIntlayerAPI/newsletter.mjs.map +1 -1
  108. package/dist/esm/getIntlayerAPI/oAuth.mjs +32 -7
  109. package/dist/esm/getIntlayerAPI/oAuth.mjs.map +1 -1
  110. package/dist/esm/getIntlayerAPI/organization.mjs +74 -23
  111. package/dist/esm/getIntlayerAPI/organization.mjs.map +1 -1
  112. package/dist/esm/getIntlayerAPI/project.mjs +114 -32
  113. package/dist/esm/getIntlayerAPI/project.mjs.map +1 -1
  114. package/dist/esm/getIntlayerAPI/reviewer.mjs +144 -34
  115. package/dist/esm/getIntlayerAPI/reviewer.mjs.map +1 -1
  116. package/dist/esm/getIntlayerAPI/search.mjs +17 -6
  117. package/dist/esm/getIntlayerAPI/search.mjs.map +1 -1
  118. package/dist/esm/getIntlayerAPI/showcaseProject.mjs +63 -18
  119. package/dist/esm/getIntlayerAPI/showcaseProject.mjs.map +1 -1
  120. package/dist/esm/getIntlayerAPI/status.mjs +18 -6
  121. package/dist/esm/getIntlayerAPI/status.mjs.map +1 -1
  122. package/dist/esm/getIntlayerAPI/stripe.mjs +143 -38
  123. package/dist/esm/getIntlayerAPI/stripe.mjs.map +1 -1
  124. package/dist/esm/getIntlayerAPI/tag.mjs +35 -10
  125. package/dist/esm/getIntlayerAPI/tag.mjs.map +1 -1
  126. package/dist/esm/getIntlayerAPI/translate.mjs +48 -11
  127. package/dist/esm/getIntlayerAPI/translate.mjs.map +1 -1
  128. package/dist/esm/getIntlayerAPI/user.mjs +60 -17
  129. package/dist/esm/getIntlayerAPI/user.mjs.map +1 -1
  130. package/dist/esm/index.mjs +10 -7
  131. package/dist/esm/proxy.mjs +6 -3
  132. package/dist/esm/proxy.mjs.map +1 -1
  133. package/dist/esm/public/createPublicClient.mjs +26 -7
  134. package/dist/esm/public/createPublicClient.mjs.map +1 -1
  135. package/dist/esm/resolveInternalBackendUrl.mjs +1 -2
  136. package/dist/types/cms/createAuthManager.d.ts +1 -2
  137. package/dist/types/cms/createAuthManager.d.ts.map +1 -1
  138. package/dist/types/cms/createIntlayerCMS.d.ts +0 -2
  139. package/dist/types/cms/createIntlayerCMS.d.ts.map +1 -1
  140. package/dist/types/distantDictionary/fetchDistantDictionaries.d.ts +1 -3
  141. package/dist/types/distantDictionary/fetchDistantDictionaries.d.ts.map +1 -1
  142. package/dist/types/distantDictionary/fetchDistantDictionary.d.ts +1 -3
  143. package/dist/types/distantDictionary/fetchDistantDictionary.d.ts.map +1 -1
  144. package/dist/types/fetcher.d.ts +1 -3
  145. package/dist/types/fetcher.d.ts.map +1 -1
  146. package/dist/types/getIntlayerAPI/ai.d.ts +3 -5
  147. package/dist/types/getIntlayerAPI/ai.d.ts.map +1 -1
  148. package/dist/types/getIntlayerAPI/analytics.d.ts +3 -5
  149. package/dist/types/getIntlayerAPI/analytics.d.ts.map +1 -1
  150. package/dist/types/getIntlayerAPI/asset.d.ts +3 -4
  151. package/dist/types/getIntlayerAPI/asset.d.ts.map +1 -1
  152. package/dist/types/getIntlayerAPI/audit.d.ts +49 -7
  153. package/dist/types/getIntlayerAPI/audit.d.ts.map +1 -1
  154. package/dist/types/getIntlayerAPI/bitbucket.d.ts +2 -4
  155. package/dist/types/getIntlayerAPI/bitbucket.d.ts.map +1 -1
  156. package/dist/types/getIntlayerAPI/codeberg.d.ts +59 -0
  157. package/dist/types/getIntlayerAPI/codeberg.d.ts.map +1 -0
  158. package/dist/types/getIntlayerAPI/dictionary.d.ts +3 -5
  159. package/dist/types/getIntlayerAPI/dictionary.d.ts.map +1 -1
  160. package/dist/types/getIntlayerAPI/editor.d.ts +4 -5
  161. package/dist/types/getIntlayerAPI/editor.d.ts.map +1 -1
  162. package/dist/types/getIntlayerAPI/environment.d.ts +3 -5
  163. package/dist/types/getIntlayerAPI/environment.d.ts.map +1 -1
  164. package/dist/types/getIntlayerAPI/forge.d.ts +34 -0
  165. package/dist/types/getIntlayerAPI/forge.d.ts.map +1 -0
  166. package/dist/types/getIntlayerAPI/gitee.d.ts +59 -0
  167. package/dist/types/getIntlayerAPI/gitee.d.ts.map +1 -0
  168. package/dist/types/getIntlayerAPI/github.d.ts +2 -4
  169. package/dist/types/getIntlayerAPI/github.d.ts.map +1 -1
  170. package/dist/types/getIntlayerAPI/gitlab.d.ts +2 -4
  171. package/dist/types/getIntlayerAPI/gitlab.d.ts.map +1 -1
  172. package/dist/types/getIntlayerAPI/index.d.ts +6 -3
  173. package/dist/types/getIntlayerAPI/index.d.ts.map +1 -1
  174. package/dist/types/getIntlayerAPI/newsletter.d.ts +3 -5
  175. package/dist/types/getIntlayerAPI/newsletter.d.ts.map +1 -1
  176. package/dist/types/getIntlayerAPI/oAuth.d.ts +2 -2
  177. package/dist/types/getIntlayerAPI/oAuth.d.ts.map +1 -1
  178. package/dist/types/getIntlayerAPI/organization.d.ts +3 -7
  179. package/dist/types/getIntlayerAPI/organization.d.ts.map +1 -1
  180. package/dist/types/getIntlayerAPI/project.d.ts +4 -5
  181. package/dist/types/getIntlayerAPI/project.d.ts.map +1 -1
  182. package/dist/types/getIntlayerAPI/reviewer.d.ts +682 -39
  183. package/dist/types/getIntlayerAPI/reviewer.d.ts.map +1 -1
  184. package/dist/types/getIntlayerAPI/search.d.ts +3 -5
  185. package/dist/types/getIntlayerAPI/search.d.ts.map +1 -1
  186. package/dist/types/getIntlayerAPI/showcaseProject.d.ts +3 -5
  187. package/dist/types/getIntlayerAPI/showcaseProject.d.ts.map +1 -1
  188. package/dist/types/getIntlayerAPI/status.d.ts +5 -8
  189. package/dist/types/getIntlayerAPI/status.d.ts.map +1 -1
  190. package/dist/types/getIntlayerAPI/stripe.d.ts +3 -5
  191. package/dist/types/getIntlayerAPI/stripe.d.ts.map +1 -1
  192. package/dist/types/getIntlayerAPI/tag.d.ts +3 -5
  193. package/dist/types/getIntlayerAPI/tag.d.ts.map +1 -1
  194. package/dist/types/getIntlayerAPI/translate.d.ts +3 -5
  195. package/dist/types/getIntlayerAPI/translate.d.ts.map +1 -1
  196. package/dist/types/getIntlayerAPI/user.d.ts +6 -8
  197. package/dist/types/getIntlayerAPI/user.d.ts.map +1 -1
  198. package/dist/types/index.d.ts +12 -9
  199. package/dist/types/proxy.d.ts +0 -2
  200. package/dist/types/proxy.d.ts.map +1 -1
  201. package/dist/types/public/createPublicClient.d.ts +1 -9
  202. package/dist/types/public/createPublicClient.d.ts.map +1 -1
  203. package/dist/types/resolveInternalBackendUrl.d.ts +0 -2
  204. package/dist/types/resolveInternalBackendUrl.d.ts.map +1 -1
  205. package/dist/types/types.d.ts +5 -2
  206. package/package.json +23 -6
@@ -1,20 +1,58 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_fetcher = require('../fetcher.cjs');
3
- const require_cms_createIntlayerCMS = require('../cms/createIntlayerCMS.cjs');
2
+ const require_cms_createIntlayerCMS = require("../cms/createIntlayerCMS.cjs");
3
+ const require_fetcher = require("../fetcher.cjs");
4
4
  let _intlayer_config_built = require("@intlayer/config/built");
5
+ let _intlayer_backend_contract_defineRoute = require("@intlayer/backend-contract/defineRoute");
6
+ let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
5
7
 
6
- //#region src/getIntlayerAPI/translate.ts
7
- const getTranslateAPI = (authAPIOptions = {}, intlayerConfig) => {
8
- const TRANSLATE_API_ROUTE = `${intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL}/api/translate`;
9
- const translateDictionaries = async (body, otherOptions = {}) => require_fetcher.fetcher(`${TRANSLATE_API_ROUTE}/dictionaries`, authAPIOptions, otherOptions, {
8
+ // src/getIntlayerAPI/translate.ts
9
+ /** Prefix of the routes, checked against the backend contract. */
10
+ const translationGroup = { prefix: "/api/translate" };
11
+ /**
12
+ * Method and path of every route, checked against the backend contract at
13
+ * compile time (the contract's zod schemas are never loaded).
14
+ */
15
+ const translationEndpoints = {
16
+ translateDictionaries: {
17
+ method: "POST",
18
+ path: "/dictionaries"
19
+ },
20
+ getTranslationStatus: {
21
+ method: "GET",
22
+ path: "/status"
23
+ },
24
+ pauseTranslationJob: {
25
+ method: "POST",
26
+ path: "/:jobId/pause"
27
+ },
28
+ resumeTranslationJob: {
10
29
  method: "POST",
30
+ path: "/:jobId/resume"
31
+ },
32
+ stopTranslationJob: {
33
+ method: "POST",
34
+ path: "/:jobId/stop"
35
+ },
36
+ retryTranslationJob: {
37
+ method: "POST",
38
+ path: "/:jobId/retry"
39
+ },
40
+ restartTranslationJob: {
41
+ method: "POST",
42
+ path: "/:jobId/restart"
43
+ }
44
+ };
45
+ const getTranslateAPI = (authAPIOptions = {}, intlayerConfig) => {
46
+ const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL ?? _intlayer_config_defaultValues.BACKEND_URL;
47
+ const translateDictionaries = async (body, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, translationGroup, translationEndpoints.translateDictionaries), authAPIOptions, otherOptions, {
48
+ method: translationEndpoints.translateDictionaries.method,
11
49
  body
12
50
  });
13
- const pauseTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher(`${TRANSLATE_API_ROUTE}/${jobId}/pause`, authAPIOptions, otherOptions, { method: "POST" });
14
- const resumeTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher(`${TRANSLATE_API_ROUTE}/${jobId}/resume`, authAPIOptions, otherOptions, { method: "POST" });
15
- const stopTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher(`${TRANSLATE_API_ROUTE}/${jobId}/stop`, authAPIOptions, otherOptions, { method: "POST" });
16
- const retryTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher(`${TRANSLATE_API_ROUTE}/${jobId}/retry`, authAPIOptions, otherOptions, { method: "POST" });
17
- const restartTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher(`${TRANSLATE_API_ROUTE}/${jobId}/restart`, authAPIOptions, otherOptions, { method: "POST" });
51
+ const pauseTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, translationGroup, translationEndpoints.pauseTranslationJob, { jobId }), authAPIOptions, otherOptions, { method: translationEndpoints.pauseTranslationJob.method });
52
+ const resumeTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, translationGroup, translationEndpoints.resumeTranslationJob, { jobId }), authAPIOptions, otherOptions, { method: translationEndpoints.resumeTranslationJob.method });
53
+ const stopTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, translationGroup, translationEndpoints.stopTranslationJob, { jobId }), authAPIOptions, otherOptions, { method: translationEndpoints.stopTranslationJob.method });
54
+ const retryTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, translationGroup, translationEndpoints.retryTranslationJob, { jobId }), authAPIOptions, otherOptions, { method: translationEndpoints.retryTranslationJob.method });
55
+ const restartTranslationJob = async (jobId, otherOptions = {}) => require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, translationGroup, translationEndpoints.restartTranslationJob, { jobId }), authAPIOptions, otherOptions, { method: translationEndpoints.restartTranslationJob.method });
18
56
  return {
19
57
  translateDictionaries,
20
58
  pauseTranslationJob,
@@ -32,7 +70,6 @@ const getTranslateAPI = (authAPIOptions = {}, intlayerConfig) => {
32
70
  */
33
71
  const translateEndpoint = require_cms_createIntlayerCMS.createEndpoint(getTranslateAPI);
34
72
 
35
- //#endregion
36
73
  exports.getTranslateAPI = getTranslateAPI;
37
74
  exports.translateEndpoint = translateEndpoint;
38
75
  //# sourceMappingURL=translate.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"translate.cjs","names":["editor","fetcher","createEndpoint"],"sources":["../../../src/getIntlayerAPI/translate.ts"],"sourcesContent":["import type {\n TranslateDictionariesBody,\n TranslateDictionariesResult,\n} from '@intlayer/backend';\nimport { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\nexport type { TranslateDictionariesBody, TranslateDictionariesResult };\n\nexport const getTranslateAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL = intlayerConfig?.editor?.backendURL ?? editor.backendURL;\n\n const TRANSLATE_API_ROUTE = `${backendURL}/api/translate`;\n\n const translateDictionaries = async (\n body: TranslateDictionariesBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<TranslateDictionariesResult>(\n `${TRANSLATE_API_ROUTE}/dictionaries`,\n authAPIOptions,\n otherOptions,\n { method: 'POST', body }\n );\n\n const pauseTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n `${TRANSLATE_API_ROUTE}/${jobId}/pause`,\n authAPIOptions,\n otherOptions,\n { method: 'POST' }\n );\n\n const resumeTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n `${TRANSLATE_API_ROUTE}/${jobId}/resume`,\n authAPIOptions,\n otherOptions,\n { method: 'POST' }\n );\n\n const stopTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n `${TRANSLATE_API_ROUTE}/${jobId}/stop`,\n authAPIOptions,\n otherOptions,\n { method: 'POST' }\n );\n\n const retryTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n `${TRANSLATE_API_ROUTE}/${jobId}/retry`,\n authAPIOptions,\n otherOptions,\n { method: 'POST' }\n );\n\n const restartTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n `${TRANSLATE_API_ROUTE}/${jobId}/restart`,\n authAPIOptions,\n otherOptions,\n { method: 'POST' }\n );\n\n return {\n translateDictionaries,\n pauseTranslationJob,\n resumeTranslationJob,\n stopTranslationJob,\n retryTranslationJob,\n restartTranslationJob,\n };\n};\n\n/**\n * Authenticated `translate` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const translateEndpoint = createEndpoint(getTranslateAPI);\n"],"mappings":";;;;;;AAWA,MAAa,mBACX,iBAAiC,CAAC,GAClC,mBACG;CAGH,MAAM,sBAAsB,GAFT,gBAAgB,QAAQ,cAAcA,8BAAO,WAEtB;CAE1C,MAAM,wBAAwB,OAC5B,MACA,eAA+B,CAAC,MAEhCC,wBACE,GAAG,oBAAoB,gBACvB,gBACA,cACA;EAAE,QAAQ;EAAQ;CAAK,CACzB;CAEF,MAAM,sBAAsB,OAC1B,OACA,eAA+B,CAAC,MAEhCA,wBACE,GAAG,oBAAoB,GAAG,MAAM,SAChC,gBACA,cACA,EAAE,QAAQ,OAAO,CACnB;CAEF,MAAM,uBAAuB,OAC3B,OACA,eAA+B,CAAC,MAEhCA,wBACE,GAAG,oBAAoB,GAAG,MAAM,UAChC,gBACA,cACA,EAAE,QAAQ,OAAO,CACnB;CAEF,MAAM,qBAAqB,OACzB,OACA,eAA+B,CAAC,MAEhCA,wBACE,GAAG,oBAAoB,GAAG,MAAM,QAChC,gBACA,cACA,EAAE,QAAQ,OAAO,CACnB;CAEF,MAAM,sBAAsB,OAC1B,OACA,eAA+B,CAAC,MAEhCA,wBACE,GAAG,oBAAoB,GAAG,MAAM,SAChC,gBACA,cACA,EAAE,QAAQ,OAAO,CACnB;CAEF,MAAM,wBAAwB,OAC5B,OACA,eAA+B,CAAC,MAEhCA,wBACE,GAAG,oBAAoB,GAAG,MAAM,WAChC,gBACA,cACA,EAAE,QAAQ,OAAO,CACnB;CAEF,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;AAQA,MAAa,oBAAoBC,6CAAe,eAAe"}
1
+ {"version":3,"file":"translate.cjs","names":["editor","BACKEND_URL","fetcher","buildRouteURL","createEndpoint"],"sources":["../../../src/getIntlayerAPI/translate.ts"],"sourcesContent":["import type { RouteEndpoints } from '@intlayer/backend-contract/defineRoute';\nimport { buildRouteURL } from '@intlayer/backend-contract/defineRoute';\nimport type {\n TranslateDictionariesBody,\n TranslateDictionariesResult,\n TranslationRoutes,\n translationContract,\n} from '@intlayer/backend-contract/translation';\nimport { editor } from '@intlayer/config/built';\nimport { BACKEND_URL } from '@intlayer/config/defaultValues';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\nexport type { TranslateDictionariesBody, TranslateDictionariesResult };\n\n/** Prefix of the routes, checked against the backend contract. */\nconst translationGroup = {\n prefix: '/api/translate',\n} as const satisfies Pick<typeof translationContract, 'prefix'>;\n\n/**\n * Method and path of every route, checked against the backend contract at\n * compile time (the contract's zod schemas are never loaded).\n */\nconst translationEndpoints = {\n translateDictionaries: { method: 'POST', path: '/dictionaries' },\n getTranslationStatus: { method: 'GET', path: '/status' },\n pauseTranslationJob: { method: 'POST', path: '/:jobId/pause' },\n resumeTranslationJob: { method: 'POST', path: '/:jobId/resume' },\n stopTranslationJob: { method: 'POST', path: '/:jobId/stop' },\n retryTranslationJob: { method: 'POST', path: '/:jobId/retry' },\n restartTranslationJob: { method: 'POST', path: '/:jobId/restart' },\n} as const satisfies RouteEndpoints<TranslationRoutes>;\n\nexport const getTranslateAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL =\n intlayerConfig?.editor?.backendURL ?? editor.backendURL ?? BACKEND_URL;\n\n const translateDictionaries = async (\n body: TranslateDictionariesBody,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<TranslateDictionariesResult>(\n buildRouteURL(\n backendURL,\n translationGroup,\n translationEndpoints.translateDictionaries\n ),\n authAPIOptions,\n otherOptions,\n { method: translationEndpoints.translateDictionaries.method, body }\n );\n\n const pauseTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n buildRouteURL(\n backendURL,\n translationGroup,\n translationEndpoints.pauseTranslationJob,\n { jobId }\n ),\n authAPIOptions,\n otherOptions,\n { method: translationEndpoints.pauseTranslationJob.method }\n );\n\n const resumeTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n buildRouteURL(\n backendURL,\n translationGroup,\n translationEndpoints.resumeTranslationJob,\n { jobId }\n ),\n authAPIOptions,\n otherOptions,\n { method: translationEndpoints.resumeTranslationJob.method }\n );\n\n const stopTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n buildRouteURL(\n backendURL,\n translationGroup,\n translationEndpoints.stopTranslationJob,\n { jobId }\n ),\n authAPIOptions,\n otherOptions,\n { method: translationEndpoints.stopTranslationJob.method }\n );\n\n const retryTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n buildRouteURL(\n backendURL,\n translationGroup,\n translationEndpoints.retryTranslationJob,\n { jobId }\n ),\n authAPIOptions,\n otherOptions,\n { method: translationEndpoints.retryTranslationJob.method }\n );\n\n const restartTranslationJob = async (\n jobId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n fetcher<{ data: { jobId: string } }>(\n buildRouteURL(\n backendURL,\n translationGroup,\n translationEndpoints.restartTranslationJob,\n { jobId }\n ),\n authAPIOptions,\n otherOptions,\n { method: translationEndpoints.restartTranslationJob.method }\n );\n\n return {\n translateDictionaries,\n pauseTranslationJob,\n resumeTranslationJob,\n stopTranslationJob,\n retryTranslationJob,\n restartTranslationJob,\n };\n};\n\n/**\n * Authenticated `translate` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const translateEndpoint = createEndpoint(getTranslateAPI);\n"],"mappings":";;;;;;;;;AAiBA,MAAM,mBAAmB,EACvB,QAAQ,iBACV;;;;;AAMA,MAAM,uBAAuB;CAC3B,uBAAuB;EAAE,QAAQ;EAAQ,MAAM;CAAgB;CAC/D,sBAAsB;EAAE,QAAQ;EAAO,MAAM;CAAU;CACvD,qBAAqB;EAAE,QAAQ;EAAQ,MAAM;CAAgB;CAC7D,sBAAsB;EAAE,QAAQ;EAAQ,MAAM;CAAiB;CAC/D,oBAAoB;EAAE,QAAQ;EAAQ,MAAM;CAAe;CAC3D,qBAAqB;EAAE,QAAQ;EAAQ,MAAM;CAAgB;CAC7D,uBAAuB;EAAE,QAAQ;EAAQ,MAAM;CAAkB;AACnE;AAEA,MAAa,mBACX,iBAAiC,CAAC,GAClC,mBACG;CACH,MAAM,aACJ,gBAAgB,QAAQ,cAAcA,8BAAO,cAAcC;CAE7D,MAAM,wBAAwB,OAC5B,MACA,eAA+B,CAAC,MAEhCC,4BACEC,sDACE,YACA,kBACA,qBAAqB,qBACvB,GACA,gBACA,cACA;EAAE,QAAQ,qBAAqB,sBAAsB;EAAQ;CAAK,CACpE;CAEF,MAAM,sBAAsB,OAC1B,OACA,eAA+B,CAAC,MAEhCD,4BACEC,sDACE,YACA,kBACA,qBAAqB,qBACrB,EAAE,MAAM,CACV,GACA,gBACA,cACA,EAAE,QAAQ,qBAAqB,oBAAoB,OAAO,CAC5D;CAEF,MAAM,uBAAuB,OAC3B,OACA,eAA+B,CAAC,MAEhCD,4BACEC,sDACE,YACA,kBACA,qBAAqB,sBACrB,EAAE,MAAM,CACV,GACA,gBACA,cACA,EAAE,QAAQ,qBAAqB,qBAAqB,OAAO,CAC7D;CAEF,MAAM,qBAAqB,OACzB,OACA,eAA+B,CAAC,MAEhCD,4BACEC,sDACE,YACA,kBACA,qBAAqB,oBACrB,EAAE,MAAM,CACV,GACA,gBACA,cACA,EAAE,QAAQ,qBAAqB,mBAAmB,OAAO,CAC3D;CAEF,MAAM,sBAAsB,OAC1B,OACA,eAA+B,CAAC,MAEhCD,4BACEC,sDACE,YACA,kBACA,qBAAqB,qBACrB,EAAE,MAAM,CACV,GACA,gBACA,cACA,EAAE,QAAQ,qBAAqB,oBAAoB,OAAO,CAC5D;CAEF,MAAM,wBAAwB,OAC5B,OACA,eAA+B,CAAC,MAEhCD,4BACEC,sDACE,YACA,kBACA,qBAAqB,uBACrB,EAAE,MAAM,CACV,GACA,gBACA,cACA,EAAE,QAAQ,qBAAqB,sBAAsB,OAAO,CAC9D;CAEF,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;AAQA,MAAa,oBAAoBC,6CAAe,eAAe"}
@@ -1,17 +1,63 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_fetcher = require('../fetcher.cjs');
3
- const require_cms_createIntlayerCMS = require('../cms/createIntlayerCMS.cjs');
2
+ const require_cms_createIntlayerCMS = require("../cms/createIntlayerCMS.cjs");
3
+ const require_fetcher = require("../fetcher.cjs");
4
4
  let _intlayer_config_built = require("@intlayer/config/built");
5
+ let _intlayer_backend_contract_defineRoute = require("@intlayer/backend-contract/defineRoute");
6
+ let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
5
7
 
6
- //#region src/getIntlayerAPI/user.ts
8
+ // src/getIntlayerAPI/user.ts
9
+ /** Prefix of the routes, checked against the backend contract. */
10
+ const userGroup = { prefix: "/api/user" };
11
+ /**
12
+ * Method and path of every route, checked against the backend contract at
13
+ * compile time (the contract's zod schemas are never loaded).
14
+ */
15
+ const userEndpoints = {
16
+ getSetupStatus: {
17
+ method: "GET",
18
+ path: "/setup"
19
+ },
20
+ getUsers: {
21
+ method: "GET",
22
+ path: "/"
23
+ },
24
+ updateUser: {
25
+ method: "PUT",
26
+ path: "/"
27
+ },
28
+ createUser: {
29
+ method: "POST",
30
+ path: "/"
31
+ },
32
+ getUserById: {
33
+ method: "GET",
34
+ path: "/:userId"
35
+ },
36
+ getUserByEmail: {
37
+ method: "GET",
38
+ path: "/email/:email"
39
+ },
40
+ deleteUser: {
41
+ method: "DELETE",
42
+ path: "/:userId"
43
+ },
44
+ verifyEmailStatusSSE: {
45
+ method: "GET",
46
+ path: "/verify-email-status/:userId"
47
+ },
48
+ uploadAvatar: {
49
+ method: "POST",
50
+ path: "/avatar"
51
+ }
52
+ };
7
53
  const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
8
- const USER_API_ROUTE = `${intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL}/api/user`;
54
+ const backendURL = intlayerConfig?.editor?.backendURL ?? _intlayer_config_built.editor.backendURL ?? _intlayer_config_defaultValues.BACKEND_URL;
9
55
  /**
10
56
  * Retrieves a list of users based on filters and pagination.
11
57
  * @param filters - Filters and pagination options.
12
58
  * @returns List of users.
13
59
  */
14
- const getUsers = async (filters, otherOptions = {}) => await require_fetcher.fetcher(USER_API_ROUTE, authAPIOptions, otherOptions, {
60
+ const getUsers = async (filters, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.getUsers), authAPIOptions, otherOptions, {
15
61
  cache: "no-store",
16
62
  params: filters
17
63
  });
@@ -20,26 +66,25 @@ const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
20
66
  * @param userId - User ID.
21
67
  * @returns User object.
22
68
  */
23
- const getUserById = async (userId, otherOptions = {}) => await require_fetcher.fetcher(`${USER_API_ROUTE}/${userId}`, authAPIOptions, otherOptions, { cache: "no-store" });
69
+ const getUserById = async (userId, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.getUserById, { userId: String(userId) }), authAPIOptions, otherOptions, { cache: "no-store" });
24
70
  /**
25
71
  * Retrieves a user by email.
26
72
  * @param email - User email.
27
73
  * @returns User object.
28
74
  */
29
- const getUserByEmail = async (email, otherOptions = {}) => await require_fetcher.fetcher(`${USER_API_ROUTE}/email/${email}`, authAPIOptions, otherOptions, { cache: "no-store" });
75
+ const getUserByEmail = async (email, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.getUserByEmail, { email }), authAPIOptions, otherOptions, { cache: "no-store" });
30
76
  /**
31
77
  * Retrieves a user by account.
32
78
  * @param providerAccountId - The provider account ID.
33
79
  * @param provider - The provider of the account.
34
80
  */
35
- const getUserByAccount = async (providerAccountId, provider, otherOptions = {}) => await require_fetcher.fetcher(`${USER_API_ROUTE}/account/${provider}/${providerAccountId}`, authAPIOptions, otherOptions, { cache: "no-store" });
36
81
  /**
37
82
  * Creates a new user.
38
83
  * @param user - User credentials.
39
84
  * @returns User object.
40
85
  */
41
- const createUser = async (user, otherOptions = {}) => await require_fetcher.fetcher(`${USER_API_ROUTE}/`, authAPIOptions, otherOptions, {
42
- method: "POST",
86
+ const createUser = async (user, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.createUser), authAPIOptions, otherOptions, {
87
+ method: userEndpoints.createUser.method,
43
88
  body: user
44
89
  });
45
90
  /**
@@ -47,8 +92,8 @@ const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
47
92
  * @param user - Updated user data.
48
93
  * @returns User object.
49
94
  */
50
- const updateUser = async (user, otherOptions = {}) => await require_fetcher.fetcher(`${USER_API_ROUTE}`, authAPIOptions, otherOptions, {
51
- method: "PUT",
95
+ const updateUser = async (user, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.updateUser), authAPIOptions, otherOptions, {
96
+ method: userEndpoints.updateUser.method,
52
97
  body: user
53
98
  });
54
99
  /**
@@ -56,7 +101,7 @@ const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
56
101
  * @param userId - User ID.
57
102
  * @returns User object.
58
103
  */
59
- const deleteUser = async (userId, otherOptions = {}) => await require_fetcher.fetcher(`${USER_API_ROUTE}/${userId}`, authAPIOptions, otherOptions, { method: "DELETE" });
104
+ const deleteUser = async (userId, otherOptions = {}) => await require_fetcher.fetcher((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.deleteUser, { userId: String(userId) }), authAPIOptions, otherOptions, { method: userEndpoints.deleteUser.method });
60
105
  /**
61
106
  * Uploads a new avatar for the authenticated user.
62
107
  * @param file - The image File object to upload.
@@ -66,8 +111,8 @@ const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
66
111
  const buffer = await file.arrayBuffer();
67
112
  const baseHeaders = { "Content-Type": file.type || "image/jpeg" };
68
113
  const authHeaders = authAPIOptions.headers ?? {};
69
- const response = await fetch(`${USER_API_ROUTE}/avatar`, {
70
- method: "POST",
114
+ const response = await fetch((0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.uploadAvatar), {
115
+ method: userEndpoints.uploadAvatar.method,
71
116
  credentials: "include",
72
117
  headers: {
73
118
  ...authHeaders,
@@ -87,12 +132,11 @@ const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
87
132
  * @param userId - User ID.
88
133
  * @returns The verify email status URL.
89
134
  */
90
- const getVerifyEmailStatusURL = (userId) => `${USER_API_ROUTE}/verify-email-status/${String(userId)}`;
135
+ const getVerifyEmailStatusURL = (userId) => (0, _intlayer_backend_contract_defineRoute.buildRouteURL)(backendURL, userGroup, userEndpoints.verifyEmailStatusSSE, { userId: String(userId) });
91
136
  return {
92
137
  createUser,
93
138
  getUsers,
94
139
  getUserById,
95
- getUserByAccount,
96
140
  getUserByEmail,
97
141
  updateUser,
98
142
  deleteUser,
@@ -108,7 +152,6 @@ const getUserAPI = (authAPIOptions = {}, intlayerConfig) => {
108
152
  */
109
153
  const userEndpoint = require_cms_createIntlayerCMS.createEndpoint(getUserAPI);
110
154
 
111
- //#endregion
112
155
  exports.getUserAPI = getUserAPI;
113
156
  exports.userEndpoint = userEndpoint;
114
157
  //# sourceMappingURL=user.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.cjs","names":["editor","fetcher","createEndpoint"],"sources":["../../../src/getIntlayerAPI/user.ts"],"sourcesContent":["import type {\n CreateUserBody,\n CreateUserResult,\n GetUserByEmailParams,\n GetUserByEmailResult,\n GetUserByIdParams,\n GetUserByIdResult,\n GetUsersParams,\n GetUsersResult,\n ResponseData,\n UpdateUserBody,\n UpdateUserResult,\n UploadUserAvatarResult,\n UserAPI,\n} from '@intlayer/backend';\nimport { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\ntype GetUserByAccountParams = { providerAccountId: string; provider: string };\ntype GetUserByAccountResult = ResponseData<UserAPI>;\n\nexport const getUserAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL = intlayerConfig?.editor?.backendURL ?? editor.backendURL;\n\n const USER_API_ROUTE = `${backendURL}/api/user`;\n\n /**\n * Retrieves a list of users based on filters and pagination.\n * @param filters - Filters and pagination options.\n * @returns List of users.\n */\n const getUsers = async (\n filters?: GetUsersParams,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUsersResult>(\n USER_API_ROUTE,\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n // @ts-ignore Number of parameter will be stringified by the fetcher\n params: filters,\n }\n );\n\n /**\n * Retrieves a user by ID.\n * @param userId - User ID.\n * @returns User object.\n */\n const getUserById = async (\n userId: GetUserByIdParams['userId'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUserByIdResult>(\n `${USER_API_ROUTE}/${userId}`,\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n /**\n * Retrieves a user by email.\n * @param email - User email.\n * @returns User object.\n */\n const getUserByEmail = async (\n email: GetUserByEmailParams['email'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUserByEmailResult>(\n `${USER_API_ROUTE}/email/${email}`,\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n /**\n * Retrieves a user by account.\n * @param providerAccountId - The provider account ID.\n * @param provider - The provider of the account.\n */\n const getUserByAccount = async (\n providerAccountId: GetUserByAccountParams['providerAccountId'],\n provider: GetUserByAccountParams['provider'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUserByAccountResult>(\n `${USER_API_ROUTE}/account/${provider}/${providerAccountId}`,\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n /**\n * Creates a new user.\n * @param user - User credentials.\n * @returns User object.\n */\n const createUser = async (\n user: CreateUserBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<CreateUserResult>(\n `${USER_API_ROUTE}/`,\n authAPIOptions,\n otherOptions,\n {\n method: 'POST',\n body: user,\n }\n );\n\n /**\n * Updates the user with the provided data.\n * @param user - Updated user data.\n * @returns User object.\n */\n const updateUser = async (\n user: UpdateUserBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<UpdateUserResult>(\n `${USER_API_ROUTE}`,\n authAPIOptions,\n otherOptions,\n {\n method: 'PUT',\n body: user,\n }\n );\n\n /**\n * Deletes a user with the provided ID.\n * @param userId - User ID.\n * @returns User object.\n */\n const deleteUser = async (\n userId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<UpdateUserResult>(\n `${USER_API_ROUTE}/${userId}`,\n authAPIOptions,\n otherOptions,\n {\n method: 'DELETE',\n }\n );\n\n /**\n * Uploads a new avatar for the authenticated user.\n * @param file - The image File object to upload.\n * @returns Updated user object.\n */\n const uploadAvatar = async (\n file: File,\n otherOptions: FetcherOptions = {}\n ) => {\n const buffer = await file.arrayBuffer();\n\n const baseHeaders: Record<string, string> = {\n 'Content-Type': file.type || 'image/jpeg',\n };\n\n // Forward auth cookies / credentials from authAPIOptions headers\n const authHeaders =\n (authAPIOptions.headers as Record<string, string> | undefined) ?? {};\n\n const response = await fetch(`${USER_API_ROUTE}/avatar`, {\n method: 'POST',\n credentials: 'include',\n headers: { ...authHeaders, ...baseHeaders },\n body: buffer,\n signal: otherOptions.signal as AbortSignal | undefined,\n });\n\n if (!response.ok) {\n const result = await response.json();\n throw new Error(JSON.stringify(result.error) ?? 'Avatar upload failed');\n }\n\n return (await response.json()) as UploadUserAvatarResult;\n };\n\n /**\n * Gets the verify email status URL to use in the SSE.\n * @param userId - User ID.\n * @returns The verify email status URL.\n */\n const getVerifyEmailStatusURL = (userId: string | UserAPI['id']) =>\n `${USER_API_ROUTE}/verify-email-status/${String(userId)}`;\n\n return {\n createUser,\n getUsers,\n getUserById,\n getUserByAccount,\n getUserByEmail,\n updateUser,\n deleteUser,\n uploadAvatar,\n getVerifyEmailStatusURL,\n };\n};\n\n/**\n * Authenticated `user` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const userEndpoint = createEndpoint(getUserAPI);\n"],"mappings":";;;;;;AAuBA,MAAa,cACX,iBAAiC,CAAC,GAClC,mBACG;CAGH,MAAM,iBAAiB,GAFJ,gBAAgB,QAAQ,cAAcA,8BAAO,WAE3B;;;;;;CAOrC,MAAM,WAAW,OACf,SACA,eAA+B,CAAC,MAEhC,MAAMC,wBACJ,gBACA,gBACA,cACA;EACE,OAAO;EAEP,QAAQ;CACV,CACF;;;;;;CAOF,MAAM,cAAc,OAClB,QACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,eAAe,GAAG,UACrB,gBACA,cACA,EACE,OAAO,WACT,CACF;;;;;;CAOF,MAAM,iBAAiB,OACrB,OACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,eAAe,SAAS,SAC3B,gBACA,cACA,EACE,OAAO,WACT,CACF;;;;;;CAOF,MAAM,mBAAmB,OACvB,mBACA,UACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,eAAe,WAAW,SAAS,GAAG,qBACzC,gBACA,cACA,EACE,OAAO,WACT,CACF;;;;;;CAOF,MAAM,aAAa,OACjB,MACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,eAAe,IAClB,gBACA,cACA;EACE,QAAQ;EACR,MAAM;CACR,CACF;;;;;;CAOF,MAAM,aAAa,OACjB,MACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,kBACH,gBACA,cACA;EACE,QAAQ;EACR,MAAM;CACR,CACF;;;;;;CAOF,MAAM,aAAa,OACjB,QACA,eAA+B,CAAC,MAEhC,MAAMA,wBACJ,GAAG,eAAe,GAAG,UACrB,gBACA,cACA,EACE,QAAQ,SACV,CACF;;;;;;CAOF,MAAM,eAAe,OACnB,MACA,eAA+B,CAAC,MAC7B;EACH,MAAM,SAAS,MAAM,KAAK,YAAY;EAEtC,MAAM,cAAsC,EAC1C,gBAAgB,KAAK,QAAQ,aAC/B;EAGA,MAAM,cACH,eAAe,WAAkD,CAAC;EAErE,MAAM,WAAW,MAAM,MAAM,GAAG,eAAe,UAAU;GACvD,QAAQ;GACR,aAAa;GACb,SAAS;IAAE,GAAG;IAAa,GAAG;GAAY;GAC1C,MAAM;GACN,QAAQ,aAAa;EACvB,CAAC;EAED,IAAI,CAAC,SAAS,IAAI;GAChB,MAAM,SAAS,MAAM,SAAS,KAAK;GACnC,MAAM,IAAI,MAAM,KAAK,UAAU,OAAO,KAAK,KAAK,sBAAsB;EACxE;EAEA,OAAQ,MAAM,SAAS,KAAK;CAC9B;;;;;;CAOA,MAAM,2BAA2B,WAC/B,GAAG,eAAe,uBAAuB,OAAO,MAAM;CAExD,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;AAQA,MAAa,eAAeC,6CAAe,UAAU"}
1
+ {"version":3,"file":"user.cjs","names":["editor","BACKEND_URL","fetcher","buildRouteURL","createEndpoint"],"sources":["../../../src/getIntlayerAPI/user.ts"],"sourcesContent":["import type { RouteEndpoints } from '@intlayer/backend-contract/defineRoute';\nimport { buildRouteURL } from '@intlayer/backend-contract/defineRoute';\nimport type { ResponseData } from '@intlayer/backend-contract/responseData';\nimport type {\n CreateUserBody,\n CreateUserResult,\n GetUserByEmailParams,\n GetUserByEmailResult,\n GetUserByIdParams,\n GetUserByIdResult,\n GetUsersParams,\n GetUsersResult,\n UpdateUserBody,\n UpdateUserResult,\n UploadUserAvatarResult,\n UserAPI,\n UserRoutes,\n userContract,\n} from '@intlayer/backend-contract/user';\nimport { editor } from '@intlayer/config/built';\nimport { BACKEND_URL } from '@intlayer/config/defaultValues';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createEndpoint } from '../cms/createIntlayerCMS';\nimport { type FetcherOptions, fetcher } from '../fetcher';\n\nexport type GetUserByAccountParams = {\n providerAccountId: string;\n provider: string;\n};\nexport type GetUserByAccountResult = ResponseData<UserAPI>;\n\n/** Prefix of the routes, checked against the backend contract. */\nconst userGroup = {\n prefix: '/api/user',\n} as const satisfies Pick<typeof userContract, 'prefix'>;\n\n/**\n * Method and path of every route, checked against the backend contract at\n * compile time (the contract's zod schemas are never loaded).\n */\nconst userEndpoints = {\n getSetupStatus: { method: 'GET', path: '/setup' },\n getUsers: { method: 'GET', path: '/' },\n updateUser: { method: 'PUT', path: '/' },\n createUser: { method: 'POST', path: '/' },\n getUserById: { method: 'GET', path: '/:userId' },\n getUserByEmail: { method: 'GET', path: '/email/:email' },\n deleteUser: { method: 'DELETE', path: '/:userId' },\n verifyEmailStatusSSE: { method: 'GET', path: '/verify-email-status/:userId' },\n uploadAvatar: { method: 'POST', path: '/avatar' },\n} as const satisfies RouteEndpoints<UserRoutes>;\n\nexport const getUserAPI = (\n authAPIOptions: FetcherOptions = {},\n intlayerConfig?: IntlayerConfig\n) => {\n const backendURL =\n intlayerConfig?.editor?.backendURL ?? editor.backendURL ?? BACKEND_URL;\n\n /**\n * Retrieves a list of users based on filters and pagination.\n * @param filters - Filters and pagination options.\n * @returns List of users.\n */\n const getUsers = async (\n filters?: GetUsersParams,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUsersResult>(\n buildRouteURL(backendURL, userGroup, userEndpoints.getUsers),\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n // @ts-ignore Number of parameter will be stringified by the fetcher\n params: filters,\n }\n );\n\n /**\n * Retrieves a user by ID.\n * @param userId - User ID.\n * @returns User object.\n */\n const getUserById = async (\n userId: GetUserByIdParams['userId'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUserByIdResult>(\n buildRouteURL(backendURL, userGroup, userEndpoints.getUserById, {\n userId: String(userId),\n }),\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n /**\n * Retrieves a user by email.\n * @param email - User email.\n * @returns User object.\n */\n const getUserByEmail = async (\n email: GetUserByEmailParams['email'],\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<GetUserByEmailResult>(\n buildRouteURL(backendURL, userGroup, userEndpoints.getUserByEmail, {\n email,\n }),\n authAPIOptions,\n otherOptions,\n {\n cache: 'no-store',\n }\n );\n\n /**\n * Retrieves a user by account.\n * @param providerAccountId - The provider account ID.\n * @param provider - The provider of the account.\n */\n /**\n * Creates a new user.\n * @param user - User credentials.\n * @returns User object.\n */\n const createUser = async (\n user: CreateUserBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<CreateUserResult>(\n buildRouteURL(backendURL, userGroup, userEndpoints.createUser),\n authAPIOptions,\n otherOptions,\n {\n method: userEndpoints.createUser.method,\n body: user,\n }\n );\n\n /**\n * Updates the user with the provided data.\n * @param user - Updated user data.\n * @returns User object.\n */\n const updateUser = async (\n user: UpdateUserBody,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<UpdateUserResult>(\n buildRouteURL(backendURL, userGroup, userEndpoints.updateUser),\n authAPIOptions,\n otherOptions,\n {\n method: userEndpoints.updateUser.method,\n body: user,\n }\n );\n\n /**\n * Deletes a user with the provided ID.\n * @param userId - User ID.\n * @returns User object.\n */\n const deleteUser = async (\n userId: string,\n otherOptions: FetcherOptions = {}\n ) =>\n await fetcher<UpdateUserResult>(\n buildRouteURL(backendURL, userGroup, userEndpoints.deleteUser, {\n userId: String(userId),\n }),\n authAPIOptions,\n otherOptions,\n {\n method: userEndpoints.deleteUser.method,\n }\n );\n\n /**\n * Uploads a new avatar for the authenticated user.\n * @param file - The image File object to upload.\n * @returns Updated user object.\n */\n const uploadAvatar = async (\n file: File,\n otherOptions: FetcherOptions = {}\n ) => {\n const buffer = await file.arrayBuffer();\n\n const baseHeaders: Record<string, string> = {\n 'Content-Type': file.type || 'image/jpeg',\n };\n\n // Forward auth cookies / credentials from authAPIOptions headers\n const authHeaders =\n (authAPIOptions.headers as Record<string, string> | undefined) ?? {};\n\n const response = await fetch(\n buildRouteURL(backendURL, userGroup, userEndpoints.uploadAvatar),\n {\n method: userEndpoints.uploadAvatar.method,\n credentials: 'include',\n headers: { ...authHeaders, ...baseHeaders },\n body: buffer,\n signal: otherOptions.signal as AbortSignal | undefined,\n }\n );\n\n if (!response.ok) {\n const result = await response.json();\n throw new Error(JSON.stringify(result.error) ?? 'Avatar upload failed');\n }\n\n return (await response.json()) as UploadUserAvatarResult;\n };\n\n /**\n * Gets the verify email status URL to use in the SSE.\n * @param userId - User ID.\n * @returns The verify email status URL.\n */\n const getVerifyEmailStatusURL = (userId: string | UserAPI['id']) =>\n buildRouteURL(backendURL, userGroup, userEndpoints.verifyEmailStatusSSE, {\n userId: String(userId),\n });\n\n return {\n createUser,\n getUsers,\n getUserById,\n getUserByEmail,\n updateUser,\n deleteUser,\n uploadAvatar,\n getVerifyEmailStatusURL,\n };\n};\n\n/**\n * Authenticated `user` endpoint bound to an Intlayer CMS authenticator.\n *\n * Pass an authenticator created with `createIntlayerCMS`, or omit it to use\n * the build-time configuration (`@intlayer/config/built`).\n */\nexport const userEndpoint = createEndpoint(getUserAPI);\n"],"mappings":";;;;;;;;;AAgCA,MAAM,YAAY,EAChB,QAAQ,YACV;;;;;AAMA,MAAM,gBAAgB;CACpB,gBAAgB;EAAE,QAAQ;EAAO,MAAM;CAAS;CAChD,UAAU;EAAE,QAAQ;EAAO,MAAM;CAAI;CACrC,YAAY;EAAE,QAAQ;EAAO,MAAM;CAAI;CACvC,YAAY;EAAE,QAAQ;EAAQ,MAAM;CAAI;CACxC,aAAa;EAAE,QAAQ;EAAO,MAAM;CAAW;CAC/C,gBAAgB;EAAE,QAAQ;EAAO,MAAM;CAAgB;CACvD,YAAY;EAAE,QAAQ;EAAU,MAAM;CAAW;CACjD,sBAAsB;EAAE,QAAQ;EAAO,MAAM;CAA+B;CAC5E,cAAc;EAAE,QAAQ;EAAQ,MAAM;CAAU;AAClD;AAEA,MAAa,cACX,iBAAiC,CAAC,GAClC,mBACG;CACH,MAAM,aACJ,gBAAgB,QAAQ,cAAcA,8BAAO,cAAcC;;;;;;CAO7D,MAAM,WAAW,OACf,SACA,eAA+B,CAAC,MAEhC,MAAMC,4BACJC,sDAAc,YAAY,WAAW,cAAc,QAAQ,GAC3D,gBACA,cACA;EACE,OAAO;EAEP,QAAQ;CACV,CACF;;;;;;CAOF,MAAM,cAAc,OAClB,QACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDAAc,YAAY,WAAW,cAAc,aAAa,EAC9D,QAAQ,OAAO,MAAM,EACvB,CAAC,GACD,gBACA,cACA,EACE,OAAO,WACT,CACF;;;;;;CAOF,MAAM,iBAAiB,OACrB,OACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDAAc,YAAY,WAAW,cAAc,gBAAgB,EACjE,MACF,CAAC,GACD,gBACA,cACA,EACE,OAAO,WACT,CACF;;;;;;;;;;;CAYF,MAAM,aAAa,OACjB,MACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDAAc,YAAY,WAAW,cAAc,UAAU,GAC7D,gBACA,cACA;EACE,QAAQ,cAAc,WAAW;EACjC,MAAM;CACR,CACF;;;;;;CAOF,MAAM,aAAa,OACjB,MACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDAAc,YAAY,WAAW,cAAc,UAAU,GAC7D,gBACA,cACA;EACE,QAAQ,cAAc,WAAW;EACjC,MAAM;CACR,CACF;;;;;;CAOF,MAAM,aAAa,OACjB,QACA,eAA+B,CAAC,MAEhC,MAAMD,4BACJC,sDAAc,YAAY,WAAW,cAAc,YAAY,EAC7D,QAAQ,OAAO,MAAM,EACvB,CAAC,GACD,gBACA,cACA,EACE,QAAQ,cAAc,WAAW,OACnC,CACF;;;;;;CAOF,MAAM,eAAe,OACnB,MACA,eAA+B,CAAC,MAC7B;EACH,MAAM,SAAS,MAAM,KAAK,YAAY;EAEtC,MAAM,cAAsC,EAC1C,gBAAgB,KAAK,QAAQ,aAC/B;EAGA,MAAM,cACH,eAAe,WAAkD,CAAC;EAErE,MAAM,WAAW,MAAM,UACrBA,sDAAc,YAAY,WAAW,cAAc,YAAY,GAC/D;GACE,QAAQ,cAAc,aAAa;GACnC,aAAa;GACb,SAAS;IAAE,GAAG;IAAa,GAAG;GAAY;GAC1C,MAAM;GACN,QAAQ,aAAa;EACvB,CACF;EAEA,IAAI,CAAC,SAAS,IAAI;GAChB,MAAM,SAAS,MAAM,SAAS,KAAK;GACnC,MAAM,IAAI,MAAM,KAAK,UAAU,OAAO,KAAK,KAAK,sBAAsB;EACxE;EAEA,OAAQ,MAAM,SAAS,KAAK;CAC9B;;;;;;CAOA,MAAM,2BAA2B,eAC/BA,sDAAc,YAAY,WAAW,cAAc,sBAAsB,EACvE,QAAQ,OAAO,MAAM,EACvB,CAAC;CAEH,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;AAQA,MAAa,eAAeC,6CAAe,UAAU"}
@@ -1,34 +1,37 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_resolveInternalBackendUrl = require('./resolveInternalBackendUrl.cjs');
3
- const require_fetcher = require('./fetcher.cjs');
4
- const require_getIntlayerAPI_oAuth = require('./getIntlayerAPI/oAuth.cjs');
5
- const require_cms_createAuthManager = require('./cms/createAuthManager.cjs');
6
- const require_cms_createIntlayerCMS = require('./cms/createIntlayerCMS.cjs');
7
- const require_getIntlayerAPI_ai = require('./getIntlayerAPI/ai.cjs');
8
- const require_getIntlayerAPI_analytics = require('./getIntlayerAPI/analytics.cjs');
9
- const require_getIntlayerAPI_asset = require('./getIntlayerAPI/asset.cjs');
10
- const require_getIntlayerAPI_audit = require('./getIntlayerAPI/audit.cjs');
11
- const require_getIntlayerAPI_bitbucket = require('./getIntlayerAPI/bitbucket.cjs');
12
- const require_getIntlayerAPI_dictionary = require('./getIntlayerAPI/dictionary.cjs');
13
- const require_getIntlayerAPI_editor = require('./getIntlayerAPI/editor.cjs');
14
- const require_getIntlayerAPI_environment = require('./getIntlayerAPI/environment.cjs');
15
- const require_getIntlayerAPI_github = require('./getIntlayerAPI/github.cjs');
16
- const require_getIntlayerAPI_gitlab = require('./getIntlayerAPI/gitlab.cjs');
17
- const require_getIntlayerAPI_newsletter = require('./getIntlayerAPI/newsletter.cjs');
18
- const require_getIntlayerAPI_organization = require('./getIntlayerAPI/organization.cjs');
19
- const require_getIntlayerAPI_project = require('./getIntlayerAPI/project.cjs');
20
- const require_getIntlayerAPI_reviewer = require('./getIntlayerAPI/reviewer.cjs');
21
- const require_getIntlayerAPI_search = require('./getIntlayerAPI/search.cjs');
22
- const require_getIntlayerAPI_showcaseProject = require('./getIntlayerAPI/showcaseProject.cjs');
23
- const require_getIntlayerAPI_status = require('./getIntlayerAPI/status.cjs');
24
- const require_getIntlayerAPI_stripe = require('./getIntlayerAPI/stripe.cjs');
25
- const require_getIntlayerAPI_tag = require('./getIntlayerAPI/tag.cjs');
26
- const require_getIntlayerAPI_translate = require('./getIntlayerAPI/translate.cjs');
27
- const require_getIntlayerAPI_user = require('./getIntlayerAPI/user.cjs');
28
- const require_proxy = require('./proxy.cjs');
29
- const require_distantDictionary_fetchDistantDictionaries = require('./distantDictionary/fetchDistantDictionaries.cjs');
30
- const require_distantDictionary_fetchDistantDictionary = require('./distantDictionary/fetchDistantDictionary.cjs');
31
- const require_getIntlayerAPI_index = require('./getIntlayerAPI/index.cjs');
2
+ const require_fetcher = require("./fetcher.cjs");
3
+ const require_getIntlayerAPI_index = require("./getIntlayerAPI/index.cjs");
4
+ const require_getIntlayerAPI_ai = require("./getIntlayerAPI/ai.cjs");
5
+ const require_cms_createAuthManager = require("./cms/createAuthManager.cjs");
6
+ const require_cms_createIntlayerCMS = require("./cms/createIntlayerCMS.cjs");
7
+ const require_getIntlayerAPI_analytics = require("./getIntlayerAPI/analytics.cjs");
8
+ const require_distantDictionary_fetchDistantDictionaries = require("./distantDictionary/fetchDistantDictionaries.cjs");
9
+ const require_distantDictionary_fetchDistantDictionary = require("./distantDictionary/fetchDistantDictionary.cjs");
10
+ const require_getIntlayerAPI_asset = require("./getIntlayerAPI/asset.cjs");
11
+ const require_getIntlayerAPI_audit = require("./getIntlayerAPI/audit.cjs");
12
+ const require_getIntlayerAPI_bitbucket = require("./getIntlayerAPI/bitbucket.cjs");
13
+ const require_getIntlayerAPI_codeberg = require("./getIntlayerAPI/codeberg.cjs");
14
+ const require_getIntlayerAPI_dictionary = require("./getIntlayerAPI/dictionary.cjs");
15
+ const require_getIntlayerAPI_editor = require("./getIntlayerAPI/editor.cjs");
16
+ const require_getIntlayerAPI_environment = require("./getIntlayerAPI/environment.cjs");
17
+ const require_getIntlayerAPI_forge = require("./getIntlayerAPI/forge.cjs");
18
+ const require_getIntlayerAPI_gitee = require("./getIntlayerAPI/gitee.cjs");
19
+ const require_getIntlayerAPI_github = require("./getIntlayerAPI/github.cjs");
20
+ const require_getIntlayerAPI_gitlab = require("./getIntlayerAPI/gitlab.cjs");
21
+ const require_getIntlayerAPI_newsletter = require("./getIntlayerAPI/newsletter.cjs");
22
+ const require_getIntlayerAPI_oAuth = require("./getIntlayerAPI/oAuth.cjs");
23
+ const require_getIntlayerAPI_organization = require("./getIntlayerAPI/organization.cjs");
24
+ const require_getIntlayerAPI_project = require("./getIntlayerAPI/project.cjs");
25
+ const require_getIntlayerAPI_reviewer = require("./getIntlayerAPI/reviewer.cjs");
26
+ const require_getIntlayerAPI_search = require("./getIntlayerAPI/search.cjs");
27
+ const require_getIntlayerAPI_showcaseProject = require("./getIntlayerAPI/showcaseProject.cjs");
28
+ const require_getIntlayerAPI_status = require("./getIntlayerAPI/status.cjs");
29
+ const require_getIntlayerAPI_stripe = require("./getIntlayerAPI/stripe.cjs");
30
+ const require_getIntlayerAPI_tag = require("./getIntlayerAPI/tag.cjs");
31
+ const require_getIntlayerAPI_translate = require("./getIntlayerAPI/translate.cjs");
32
+ const require_getIntlayerAPI_user = require("./getIntlayerAPI/user.cjs");
33
+ const require_proxy = require("./proxy.cjs");
34
+ const require_resolveInternalBackendUrl = require("./resolveInternalBackendUrl.cjs");
32
35
 
33
36
  exports.BACKEND_INTERNAL_URL_ENVIRONMENT_VARIABLE = require_resolveInternalBackendUrl.BACKEND_INTERNAL_URL_ENVIRONMENT_VARIABLE;
34
37
  exports.FetcherError = require_fetcher.FetcherError;
@@ -38,8 +41,10 @@ exports.assetEndpoint = require_getIntlayerAPI_asset.assetEndpoint;
38
41
  exports.auditEndpoint = require_getIntlayerAPI_audit.auditEndpoint;
39
42
  exports.bitbucketEndpoint = require_getIntlayerAPI_bitbucket.bitbucketEndpoint;
40
43
  exports.clearAccessTokenCache = require_cms_createAuthManager.clearAccessTokenCache;
44
+ exports.codebergEndpoint = require_getIntlayerAPI_codeberg.codebergEndpoint;
41
45
  exports.createAuthManager = require_cms_createAuthManager.createAuthManager;
42
46
  exports.createEndpoint = require_cms_createIntlayerCMS.createEndpoint;
47
+ exports.createForgeAPI = require_getIntlayerAPI_forge.createForgeAPI;
43
48
  exports.createIntlayerCMS = require_cms_createIntlayerCMS.createIntlayerCMS;
44
49
  exports.dictionaryEndpoint = require_getIntlayerAPI_dictionary.dictionaryEndpoint;
45
50
  exports.editorEndpoint = require_getIntlayerAPI_editor.editorEndpoint;
@@ -53,9 +58,11 @@ exports.getAnalyticsAPI = require_getIntlayerAPI_analytics.getAnalyticsAPI;
53
58
  exports.getAssetAPI = require_getIntlayerAPI_asset.getAssetAPI;
54
59
  exports.getAuditAPI = require_getIntlayerAPI_audit.getAuditAPI;
55
60
  exports.getBitbucketAPI = require_getIntlayerAPI_bitbucket.getBitbucketAPI;
61
+ exports.getCodebergAPI = require_getIntlayerAPI_codeberg.getCodebergAPI;
56
62
  exports.getDictionaryAPI = require_getIntlayerAPI_dictionary.getDictionaryAPI;
57
63
  exports.getEditorAPI = require_getIntlayerAPI_editor.getEditorAPI;
58
64
  exports.getEnvironmentAPI = require_getIntlayerAPI_environment.getEnvironmentAPI;
65
+ exports.getGiteeAPI = require_getIntlayerAPI_gitee.getGiteeAPI;
59
66
  exports.getGithubAPI = require_getIntlayerAPI_github.getGithubAPI;
60
67
  exports.getGitlabAPI = require_getIntlayerAPI_gitlab.getGitlabAPI;
61
68
  exports.getIntlayerAPI = require_getIntlayerAPI_index.getIntlayerAPI;
@@ -72,6 +79,7 @@ exports.getStripeAPI = require_getIntlayerAPI_stripe.getStripeAPI;
72
79
  exports.getTagAPI = require_getIntlayerAPI_tag.getTagAPI;
73
80
  exports.getTranslateAPI = require_getIntlayerAPI_translate.getTranslateAPI;
74
81
  exports.getUserAPI = require_getIntlayerAPI_user.getUserAPI;
82
+ exports.giteeEndpoint = require_getIntlayerAPI_gitee.giteeEndpoint;
75
83
  exports.githubEndpoint = require_getIntlayerAPI_github.githubEndpoint;
76
84
  exports.gitlabEndpoint = require_getIntlayerAPI_gitlab.gitlabEndpoint;
77
85
  exports.newsletterEndpoint = require_getIntlayerAPI_newsletter.newsletterEndpoint;
@@ -1,30 +1,32 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_getIntlayerAPI_oAuth = require('./getIntlayerAPI/oAuth.cjs');
3
- const require_cms_createIntlayerCMS = require('./cms/createIntlayerCMS.cjs');
4
- const require_getIntlayerAPI_ai = require('./getIntlayerAPI/ai.cjs');
5
- const require_getIntlayerAPI_analytics = require('./getIntlayerAPI/analytics.cjs');
6
- const require_getIntlayerAPI_asset = require('./getIntlayerAPI/asset.cjs');
7
- const require_getIntlayerAPI_audit = require('./getIntlayerAPI/audit.cjs');
8
- const require_getIntlayerAPI_bitbucket = require('./getIntlayerAPI/bitbucket.cjs');
9
- const require_getIntlayerAPI_dictionary = require('./getIntlayerAPI/dictionary.cjs');
10
- const require_getIntlayerAPI_editor = require('./getIntlayerAPI/editor.cjs');
11
- const require_getIntlayerAPI_environment = require('./getIntlayerAPI/environment.cjs');
12
- const require_getIntlayerAPI_github = require('./getIntlayerAPI/github.cjs');
13
- const require_getIntlayerAPI_gitlab = require('./getIntlayerAPI/gitlab.cjs');
14
- const require_getIntlayerAPI_newsletter = require('./getIntlayerAPI/newsletter.cjs');
15
- const require_getIntlayerAPI_organization = require('./getIntlayerAPI/organization.cjs');
16
- const require_getIntlayerAPI_project = require('./getIntlayerAPI/project.cjs');
17
- const require_getIntlayerAPI_reviewer = require('./getIntlayerAPI/reviewer.cjs');
18
- const require_getIntlayerAPI_search = require('./getIntlayerAPI/search.cjs');
19
- const require_getIntlayerAPI_showcaseProject = require('./getIntlayerAPI/showcaseProject.cjs');
20
- const require_getIntlayerAPI_status = require('./getIntlayerAPI/status.cjs');
21
- const require_getIntlayerAPI_stripe = require('./getIntlayerAPI/stripe.cjs');
22
- const require_getIntlayerAPI_tag = require('./getIntlayerAPI/tag.cjs');
23
- const require_getIntlayerAPI_translate = require('./getIntlayerAPI/translate.cjs');
24
- const require_getIntlayerAPI_user = require('./getIntlayerAPI/user.cjs');
2
+ const require_cms_createIntlayerCMS = require("./cms/createIntlayerCMS.cjs");
3
+ const require_getIntlayerAPI_ai = require("./getIntlayerAPI/ai.cjs");
4
+ const require_getIntlayerAPI_analytics = require("./getIntlayerAPI/analytics.cjs");
5
+ const require_getIntlayerAPI_asset = require("./getIntlayerAPI/asset.cjs");
6
+ const require_getIntlayerAPI_audit = require("./getIntlayerAPI/audit.cjs");
7
+ const require_getIntlayerAPI_bitbucket = require("./getIntlayerAPI/bitbucket.cjs");
8
+ const require_getIntlayerAPI_codeberg = require("./getIntlayerAPI/codeberg.cjs");
9
+ const require_getIntlayerAPI_dictionary = require("./getIntlayerAPI/dictionary.cjs");
10
+ const require_getIntlayerAPI_editor = require("./getIntlayerAPI/editor.cjs");
11
+ const require_getIntlayerAPI_environment = require("./getIntlayerAPI/environment.cjs");
12
+ const require_getIntlayerAPI_gitee = require("./getIntlayerAPI/gitee.cjs");
13
+ const require_getIntlayerAPI_github = require("./getIntlayerAPI/github.cjs");
14
+ const require_getIntlayerAPI_gitlab = require("./getIntlayerAPI/gitlab.cjs");
15
+ const require_getIntlayerAPI_newsletter = require("./getIntlayerAPI/newsletter.cjs");
16
+ const require_getIntlayerAPI_oAuth = require("./getIntlayerAPI/oAuth.cjs");
17
+ const require_getIntlayerAPI_organization = require("./getIntlayerAPI/organization.cjs");
18
+ const require_getIntlayerAPI_project = require("./getIntlayerAPI/project.cjs");
19
+ const require_getIntlayerAPI_reviewer = require("./getIntlayerAPI/reviewer.cjs");
20
+ const require_getIntlayerAPI_search = require("./getIntlayerAPI/search.cjs");
21
+ const require_getIntlayerAPI_showcaseProject = require("./getIntlayerAPI/showcaseProject.cjs");
22
+ const require_getIntlayerAPI_status = require("./getIntlayerAPI/status.cjs");
23
+ const require_getIntlayerAPI_stripe = require("./getIntlayerAPI/stripe.cjs");
24
+ const require_getIntlayerAPI_tag = require("./getIntlayerAPI/tag.cjs");
25
+ const require_getIntlayerAPI_translate = require("./getIntlayerAPI/translate.cjs");
26
+ const require_getIntlayerAPI_user = require("./getIntlayerAPI/user.cjs");
25
27
  let _intlayer_config_built = require("@intlayer/config/built");
26
28
 
27
- //#region src/proxy.ts
29
+ // src/proxy.ts
28
30
  const sectionFactories = {
29
31
  asset: require_getIntlayerAPI_asset.getAssetAPI,
30
32
  organization: require_getIntlayerAPI_organization.getOrganizationAPI,
@@ -44,6 +46,8 @@ const sectionFactories = {
44
46
  github: require_getIntlayerAPI_github.getGithubAPI,
45
47
  gitlab: require_getIntlayerAPI_gitlab.getGitlabAPI,
46
48
  bitbucket: require_getIntlayerAPI_bitbucket.getBitbucketAPI,
49
+ codeberg: require_getIntlayerAPI_codeberg.getCodebergAPI,
50
+ gitee: require_getIntlayerAPI_gitee.getGiteeAPI,
47
51
  showcaseProject: require_getIntlayerAPI_showcaseProject.getShowcaseProjectAPI,
48
52
  translate: require_getIntlayerAPI_translate.getTranslateAPI,
49
53
  reviewer: require_getIntlayerAPI_reviewer.getReviewerAPI,
@@ -92,6 +96,5 @@ const getIntlayerAPIProxy = (baseAuthOptions = {}, intlayerConfig = { editor: _i
92
96
  });
93
97
  };
94
98
 
95
- //#endregion
96
99
  exports.getIntlayerAPIProxy = getIntlayerAPIProxy;
97
100
  //# sourceMappingURL=proxy.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.cjs","names":["getAssetAPI","getOrganizationAPI","getProjectAPI","getEnvironmentAPI","getUserAPI","getOAuthAPI","getDictionaryAPI","getStripeAPI","getAiAPI","getAnalyticsAPI","getAuditAPI","getTagAPI","getSearchAPI","getEditorAPI","getNewsletterAPI","getGithubAPI","getGitlabAPI","getBitbucketAPI","getShowcaseProjectAPI","getTranslateAPI","getReviewerAPI","getStatusAPI","createIntlayerCMS"],"sources":["../../src/proxy.ts"],"sourcesContent":["import { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createIntlayerCMS, type IntlayerCMS } from './cms/createIntlayerCMS';\nimport type { FetcherOptions } from './fetcher';\nimport { getAiAPI } from './getIntlayerAPI/ai';\nimport { getAnalyticsAPI } from './getIntlayerAPI/analytics';\nimport { getAssetAPI } from './getIntlayerAPI/asset';\nimport { getAuditAPI } from './getIntlayerAPI/audit';\nimport { getBitbucketAPI } from './getIntlayerAPI/bitbucket';\nimport { getDictionaryAPI } from './getIntlayerAPI/dictionary';\nimport { getEditorAPI } from './getIntlayerAPI/editor';\nimport { getEnvironmentAPI } from './getIntlayerAPI/environment';\nimport { getGithubAPI } from './getIntlayerAPI/github';\nimport { getGitlabAPI } from './getIntlayerAPI/gitlab';\nimport type { IntlayerAPI } from './getIntlayerAPI/index';\nimport { getNewsletterAPI } from './getIntlayerAPI/newsletter';\nimport { getOAuthAPI } from './getIntlayerAPI/oAuth';\nimport { getOrganizationAPI } from './getIntlayerAPI/organization';\nimport { getProjectAPI } from './getIntlayerAPI/project';\nimport { getReviewerAPI } from './getIntlayerAPI/reviewer';\nimport { getSearchAPI } from './getIntlayerAPI/search';\nimport { getShowcaseProjectAPI } from './getIntlayerAPI/showcaseProject';\nimport { getStatusAPI } from './getIntlayerAPI/status';\nimport { getStripeAPI } from './getIntlayerAPI/stripe';\nimport { getTagAPI } from './getIntlayerAPI/tag';\nimport { getTranslateAPI } from './getIntlayerAPI/translate';\nimport { getUserAPI } from './getIntlayerAPI/user';\n\ntype SectionKey = keyof IntlayerAPI;\n\n/**\n * Homogeneous factory map: every domain factory normalized to the same\n * `(fetcherOptions, config) => section` signature, keyed by section name.\n * Declaring it as a single mapped type lets a generic lookup stay callable\n * (a union of factory signatures would not be).\n */\ntype SectionFactories = {\n [Key in SectionKey]: (\n fetcherOptions: FetcherOptions,\n intlayerConfig: IntlayerConfig\n ) => IntlayerAPI[Key];\n};\n\nconst sectionFactories: SectionFactories = {\n asset: getAssetAPI,\n organization: getOrganizationAPI,\n project: getProjectAPI,\n environment: getEnvironmentAPI,\n user: getUserAPI,\n oAuth: getOAuthAPI,\n dictionary: getDictionaryAPI,\n stripe: getStripeAPI,\n ai: getAiAPI,\n analytics: getAnalyticsAPI,\n audit: getAuditAPI,\n tag: getTagAPI,\n search: getSearchAPI,\n editor: getEditorAPI,\n newsletter: getNewsletterAPI,\n github: getGithubAPI,\n gitlab: getGitlabAPI,\n bitbucket: getBitbucketAPI,\n showcaseProject: getShowcaseProjectAPI,\n translate: getTranslateAPI,\n reviewer: getReviewerAPI,\n status: getStatusAPI,\n};\n\n// The OAuth2 token endpoint must never receive an injected Bearer token —\n// it is the call that issues one.\nconst AUTH_FREE_SECTIONS: ReadonlySet<SectionKey> = new Set<SectionKey>([\n 'oAuth',\n]);\n\n/**\n * Builds the **complete** auto-authenticated Intlayer API as a single lazy\n * object. Every domain is reachable through it, so it pulls every domain client\n * into the bundle.\n *\n * Prefer {@link createIntlayerCMS} together with the per-domain endpoint binders\n * (e.g. `dictionaryEndpoint`) in bundle-sensitive code — they include only the\n * domains you use. This helper is a convenience for Node tools (such as the CLI)\n * where bundle size is not a concern.\n */\nexport const getIntlayerAPIProxy = (\n baseAuthOptions: FetcherOptions = {},\n intlayerConfig: Pick<IntlayerConfig, 'editor'> = { editor },\n sessionToken?: string\n): IntlayerAPI => {\n const cms: IntlayerCMS = createIntlayerCMS(intlayerConfig, {\n baseFetcherOptions: baseAuthOptions,\n sessionToken,\n });\n\n const sectionCache = new Map<SectionKey, unknown>();\n\n // Generic over `Key` so `sectionFactories[key]` resolves to a single\n // `(opts, config) => IntlayerAPI[Key]` signature rather than the union of all\n // factory signatures (which would not be callable).\n const buildSection = <Key extends SectionKey>(key: Key): IntlayerAPI[Key] => {\n const factory = sectionFactories[key] as (\n fetcherOptions: FetcherOptions,\n intlayerConfig: IntlayerConfig\n ) => Record<string, unknown>;\n\n return cms.bindSection(factory, {\n skipAuth: AUTH_FREE_SECTIONS.has(key) ? true : undefined,\n }) as IntlayerAPI[Key];\n };\n\n return new Proxy({} as IntlayerAPI, {\n get(_target, property) {\n const key = property as SectionKey;\n if (!(key in sectionFactories)) return undefined;\n\n if (!sectionCache.has(key)) {\n sectionCache.set(key, buildSection(key));\n }\n\n return sectionCache.get(key);\n },\n has(_target, property) {\n return (property as SectionKey) in sectionFactories;\n },\n ownKeys() {\n return Reflect.ownKeys(sectionFactories);\n },\n getOwnPropertyDescriptor() {\n return { enumerable: true, configurable: true };\n },\n });\n};\n\n/**\n * The complete auto-authenticated Intlayer API returned by\n * {@link getIntlayerAPIProxy}. Equivalent in shape to `IntlayerAPI`.\n */\nexport type IntlayerAPIProxy = ReturnType<typeof getIntlayerAPIProxy>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,mBAAqC;CACzC,OAAOA;CACP,cAAcC;CACd,SAASC;CACT,aAAaC;CACb,MAAMC;CACN,OAAOC;CACP,YAAYC;CACZ,QAAQC;CACR,IAAIC;CACJ,WAAWC;CACX,OAAOC;CACP,KAAKC;CACL,QAAQC;CACR,QAAQC;CACR,YAAYC;CACZ,QAAQC;CACR,QAAQC;CACR,WAAWC;CACX,iBAAiBC;CACjB,WAAWC;CACX,UAAUC;CACV,QAAQC;AACV;AAIA,MAAM,qCAA8C,IAAI,IAAgB,CACtE,OACF,CAAC;;;;;;;;;;;AAYD,MAAa,uBACX,kBAAkC,CAAC,GACnC,iBAAiD,EAAE,sCAAO,GAC1D,iBACgB;CAChB,MAAM,MAAmBC,gDAAkB,gBAAgB;EACzD,oBAAoB;EACpB;CACF,CAAC;CAED,MAAM,+BAAe,IAAI,IAAyB;CAKlD,MAAM,gBAAwC,QAA+B;EAC3E,MAAM,UAAU,iBAAiB;EAKjC,OAAO,IAAI,YAAY,SAAS,EAC9B,UAAU,mBAAmB,IAAI,GAAG,IAAI,OAAO,OACjD,CAAC;CACH;CAEA,OAAO,IAAI,MAAM,CAAC,GAAkB;EAClC,IAAI,SAAS,UAAU;GACrB,MAAM,MAAM;GACZ,IAAI,EAAE,OAAO,mBAAmB,OAAO;GAEvC,IAAI,CAAC,aAAa,IAAI,GAAG,GACvB,aAAa,IAAI,KAAK,aAAa,GAAG,CAAC;GAGzC,OAAO,aAAa,IAAI,GAAG;EAC7B;EACA,IAAI,SAAS,UAAU;GACrB,OAAQ,YAA2B;EACrC;EACA,UAAU;GACR,OAAO,QAAQ,QAAQ,gBAAgB;EACzC;EACA,2BAA2B;GACzB,OAAO;IAAE,YAAY;IAAM,cAAc;GAAK;EAChD;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"proxy.cjs","names":["getAssetAPI","getOrganizationAPI","getProjectAPI","getEnvironmentAPI","getUserAPI","getOAuthAPI","getDictionaryAPI","getStripeAPI","getAiAPI","getAnalyticsAPI","getAuditAPI","getTagAPI","getSearchAPI","getEditorAPI","getNewsletterAPI","getGithubAPI","getGitlabAPI","getBitbucketAPI","getCodebergAPI","getGiteeAPI","getShowcaseProjectAPI","getTranslateAPI","getReviewerAPI","getStatusAPI","createIntlayerCMS"],"sources":["../../src/proxy.ts"],"sourcesContent":["import { editor } from '@intlayer/config/built';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { createIntlayerCMS, type IntlayerCMS } from './cms/createIntlayerCMS';\nimport type { FetcherOptions } from './fetcher';\nimport { getAiAPI } from './getIntlayerAPI/ai';\nimport { getAnalyticsAPI } from './getIntlayerAPI/analytics';\nimport { getAssetAPI } from './getIntlayerAPI/asset';\nimport { getAuditAPI } from './getIntlayerAPI/audit';\nimport { getBitbucketAPI } from './getIntlayerAPI/bitbucket';\nimport { getCodebergAPI } from './getIntlayerAPI/codeberg';\nimport { getDictionaryAPI } from './getIntlayerAPI/dictionary';\nimport { getEditorAPI } from './getIntlayerAPI/editor';\nimport { getEnvironmentAPI } from './getIntlayerAPI/environment';\nimport { getGiteeAPI } from './getIntlayerAPI/gitee';\nimport { getGithubAPI } from './getIntlayerAPI/github';\nimport { getGitlabAPI } from './getIntlayerAPI/gitlab';\nimport type { IntlayerAPI } from './getIntlayerAPI/index';\nimport { getNewsletterAPI } from './getIntlayerAPI/newsletter';\nimport { getOAuthAPI } from './getIntlayerAPI/oAuth';\nimport { getOrganizationAPI } from './getIntlayerAPI/organization';\nimport { getProjectAPI } from './getIntlayerAPI/project';\nimport { getReviewerAPI } from './getIntlayerAPI/reviewer';\nimport { getSearchAPI } from './getIntlayerAPI/search';\nimport { getShowcaseProjectAPI } from './getIntlayerAPI/showcaseProject';\nimport { getStatusAPI } from './getIntlayerAPI/status';\nimport { getStripeAPI } from './getIntlayerAPI/stripe';\nimport { getTagAPI } from './getIntlayerAPI/tag';\nimport { getTranslateAPI } from './getIntlayerAPI/translate';\nimport { getUserAPI } from './getIntlayerAPI/user';\n\ntype SectionKey = keyof IntlayerAPI;\n\n/**\n * Homogeneous factory map: every domain factory normalized to the same\n * `(fetcherOptions, config) => section` signature, keyed by section name.\n * Declaring it as a single mapped type lets a generic lookup stay callable\n * (a union of factory signatures would not be).\n */\ntype SectionFactories = {\n [Key in SectionKey]: (\n fetcherOptions: FetcherOptions,\n intlayerConfig: IntlayerConfig\n ) => IntlayerAPI[Key];\n};\n\nconst sectionFactories: SectionFactories = {\n asset: getAssetAPI,\n organization: getOrganizationAPI,\n project: getProjectAPI,\n environment: getEnvironmentAPI,\n user: getUserAPI,\n oAuth: getOAuthAPI,\n dictionary: getDictionaryAPI,\n stripe: getStripeAPI,\n ai: getAiAPI,\n analytics: getAnalyticsAPI,\n audit: getAuditAPI,\n tag: getTagAPI,\n search: getSearchAPI,\n editor: getEditorAPI,\n newsletter: getNewsletterAPI,\n github: getGithubAPI,\n gitlab: getGitlabAPI,\n bitbucket: getBitbucketAPI,\n codeberg: getCodebergAPI,\n gitee: getGiteeAPI,\n showcaseProject: getShowcaseProjectAPI,\n translate: getTranslateAPI,\n reviewer: getReviewerAPI,\n status: getStatusAPI,\n};\n\n// The OAuth2 token endpoint must never receive an injected Bearer token —\n// it is the call that issues one.\nconst AUTH_FREE_SECTIONS: ReadonlySet<SectionKey> = new Set<SectionKey>([\n 'oAuth',\n]);\n\n/**\n * Builds the **complete** auto-authenticated Intlayer API as a single lazy\n * object. Every domain is reachable through it, so it pulls every domain client\n * into the bundle.\n *\n * Prefer {@link createIntlayerCMS} together with the per-domain endpoint binders\n * (e.g. `dictionaryEndpoint`) in bundle-sensitive code — they include only the\n * domains you use. This helper is a convenience for Node tools (such as the CLI)\n * where bundle size is not a concern.\n */\nexport const getIntlayerAPIProxy = (\n baseAuthOptions: FetcherOptions = {},\n intlayerConfig: Pick<IntlayerConfig, 'editor'> = { editor },\n sessionToken?: string\n): IntlayerAPI => {\n const cms: IntlayerCMS = createIntlayerCMS(intlayerConfig, {\n baseFetcherOptions: baseAuthOptions,\n sessionToken,\n });\n\n const sectionCache = new Map<SectionKey, unknown>();\n\n // Generic over `Key` so `sectionFactories[key]` resolves to a single\n // `(opts, config) => IntlayerAPI[Key]` signature rather than the union of all\n // factory signatures (which would not be callable).\n const buildSection = <Key extends SectionKey>(key: Key): IntlayerAPI[Key] => {\n const factory = sectionFactories[key] as (\n fetcherOptions: FetcherOptions,\n intlayerConfig: IntlayerConfig\n ) => Record<string, unknown>;\n\n return cms.bindSection(factory, {\n skipAuth: AUTH_FREE_SECTIONS.has(key) ? true : undefined,\n }) as IntlayerAPI[Key];\n };\n\n return new Proxy({} as IntlayerAPI, {\n get(_target, property) {\n const key = property as SectionKey;\n if (!(key in sectionFactories)) return undefined;\n\n if (!sectionCache.has(key)) {\n sectionCache.set(key, buildSection(key));\n }\n\n return sectionCache.get(key);\n },\n has(_target, property) {\n return (property as SectionKey) in sectionFactories;\n },\n ownKeys() {\n return Reflect.ownKeys(sectionFactories);\n },\n getOwnPropertyDescriptor() {\n return { enumerable: true, configurable: true };\n },\n });\n};\n\n/**\n * The complete auto-authenticated Intlayer API returned by\n * {@link getIntlayerAPIProxy}. Equivalent in shape to `IntlayerAPI`.\n */\nexport type IntlayerAPIProxy = ReturnType<typeof getIntlayerAPIProxy>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAM,mBAAqC;CACzC,OAAOA;CACP,cAAcC;CACd,SAASC;CACT,aAAaC;CACb,MAAMC;CACN,OAAOC;CACP,YAAYC;CACZ,QAAQC;CACR,IAAIC;CACJ,WAAWC;CACX,OAAOC;CACP,KAAKC;CACL,QAAQC;CACR,QAAQC;CACR,YAAYC;CACZ,QAAQC;CACR,QAAQC;CACR,WAAWC;CACX,UAAUC;CACV,OAAOC;CACP,iBAAiBC;CACjB,WAAWC;CACX,UAAUC;CACV,QAAQC;AACV;AAIA,MAAM,qCAA8C,IAAI,IAAgB,CACtE,OACF,CAAC;;;;;;;;;;;AAYD,MAAa,uBACX,kBAAkC,CAAC,GACnC,iBAAiD,EAAE,sCAAO,GAC1D,iBACgB;CAChB,MAAM,MAAmBC,gDAAkB,gBAAgB;EACzD,oBAAoB;EACpB;CACF,CAAC;CAED,MAAM,+BAAe,IAAI,IAAyB;CAKlD,MAAM,gBAAwC,QAA+B;EAC3E,MAAM,UAAU,iBAAiB;EAKjC,OAAO,IAAI,YAAY,SAAS,EAC9B,UAAU,mBAAmB,IAAI,GAAG,IAAI,OAAO,OACjD,CAAC;CACH;CAEA,OAAO,IAAI,MAAM,CAAC,GAAkB;EAClC,IAAI,SAAS,UAAU;GACrB,MAAM,MAAM;GACZ,IAAI,EAAE,OAAO,mBAAmB,OAAO;GAEvC,IAAI,CAAC,aAAa,IAAI,GAAG,GACvB,aAAa,IAAI,KAAK,aAAa,GAAG,CAAC;GAGzC,OAAO,aAAa,IAAI,GAAG;EAC7B;EACA,IAAI,SAAS,UAAU;GACrB,OAAQ,YAA2B;EACrC;EACA,UAAU;GACR,OAAO,QAAQ,QAAQ,gBAAgB;EACzC;EACA,2BAA2B;GACzB,OAAO;IAAE,YAAY;IAAM,cAAc;GAAK;EAChD;CACF,CAAC;AACH"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  let _intlayer_config_built = require("@intlayer/config/built");
3
3
 
4
- //#region src/public/createPublicClient.ts
4
+ // src/public/createPublicClient.ts
5
5
  /**
6
6
  * Browser-safe Intlayer client, authenticated without any confidential
7
7
  * credential.
@@ -59,6 +59,25 @@ const writeStoredToken = (cached) => {
59
59
  * @param options - Optional configuration override.
60
60
  * @returns A client that authenticates itself with the public project key.
61
61
  */
62
+ /**
63
+ * Public routes, checked against the backend contract at compile time. Kept
64
+ * as plain strings: this client ships in end-user browser bundles.
65
+ */
66
+ const publicPrefix = "/api/public";
67
+ const publicEndpoints = {
68
+ createPublicBrowserToken: {
69
+ method: "POST",
70
+ path: "/token"
71
+ },
72
+ getPublicDictionaryKeys: {
73
+ method: "GET",
74
+ path: "/dictionaries/keys"
75
+ },
76
+ getPublicDictionaries: {
77
+ method: "GET",
78
+ path: "/dictionaries"
79
+ }
80
+ };
62
81
  const createPublicClient = ({ intlayerConfig } = {}) => {
63
82
  const resolvedEditor = intlayerConfig?.editor ?? _intlayer_config_built.editor;
64
83
  const backendURL = (resolvedEditor?.backendURL ?? "").replace(/\/$/, "");
@@ -67,8 +86,9 @@ const createPublicClient = ({ intlayerConfig } = {}) => {
67
86
  let pendingExchange = null;
68
87
  const isUsable = (candidate) => candidate !== null && candidate.expiresAt - EXPIRY_MARGIN_MS > Date.now();
69
88
  const exchange = async () => {
70
- const response = await fetch(`${backendURL}/api/public/token`, {
71
- method: "POST",
89
+ const { method, path } = publicEndpoints.createPublicBrowserToken;
90
+ const response = await fetch(`${backendURL}${publicPrefix}${path}`, {
91
+ method,
72
92
  headers: { "Content-Type": "application/json" },
73
93
  body: JSON.stringify({ clientId }),
74
94
  credentials: "omit",
@@ -103,7 +123,7 @@ const createPublicClient = ({ intlayerConfig } = {}) => {
103
123
  const request = async (path, fallback) => {
104
124
  const token = await getToken();
105
125
  if (!token) return fallback;
106
- const response = await fetch(`${backendURL}/api/public${path}`, {
126
+ const response = await fetch(`${backendURL}${publicPrefix}${path}`, {
107
127
  headers: { Authorization: `Bearer ${token}` },
108
128
  credentials: "omit",
109
129
  mode: "cors"
@@ -113,11 +133,10 @@ const createPublicClient = ({ intlayerConfig } = {}) => {
113
133
  };
114
134
  return {
115
135
  getToken,
116
- getDictionaryKeys: () => request("/dictionaries/keys", []),
117
- getDictionaries: (keys) => request(`/dictionaries?keys=${encodeURIComponent(keys.join(","))}`, [])
136
+ getDictionaryKeys: () => request(publicEndpoints.getPublicDictionaryKeys.path, []),
137
+ getDictionaries: (keys) => request(`${publicEndpoints.getPublicDictionaries.path}?keys=${encodeURIComponent(keys.join(","))}`, [])
118
138
  };
119
139
  };
120
140
 
121
- //#endregion
122
141
  exports.createPublicClient = createPublicClient;
123
142
  //# sourceMappingURL=createPublicClient.cjs.map