@strapi/i18n 0.0.0-next.ce84fada19d58a7dfbdd553035e6558f8befcba4 → 0.0.0-next.ce8ed0c8aa03361c3009f41af96f742be028ffd9

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 (460) hide show
  1. package/dist/admin/components/BulkLocaleActionModal.js +262 -0
  2. package/dist/admin/components/BulkLocaleActionModal.js.map +1 -0
  3. package/dist/admin/components/BulkLocaleActionModal.mjs +260 -0
  4. package/dist/admin/components/BulkLocaleActionModal.mjs.map +1 -0
  5. package/dist/admin/components/CMHeaderActions.js +968 -0
  6. package/dist/admin/components/CMHeaderActions.js.map +1 -0
  7. package/dist/admin/components/CMHeaderActions.mjs +942 -0
  8. package/dist/admin/components/CMHeaderActions.mjs.map +1 -0
  9. package/dist/admin/components/CMListViewModalsAdditionalInformation.js +69 -0
  10. package/dist/admin/components/CMListViewModalsAdditionalInformation.js.map +1 -0
  11. package/dist/admin/components/CMListViewModalsAdditionalInformation.mjs +65 -0
  12. package/dist/admin/components/CMListViewModalsAdditionalInformation.mjs.map +1 -0
  13. package/dist/admin/components/CheckboxConfirmation.js +155 -0
  14. package/dist/admin/components/CheckboxConfirmation.js.map +1 -0
  15. package/dist/admin/components/CheckboxConfirmation.mjs +134 -0
  16. package/dist/admin/components/CheckboxConfirmation.mjs.map +1 -0
  17. package/dist/admin/components/CreateLocale.js +394 -0
  18. package/dist/admin/components/CreateLocale.js.map +1 -0
  19. package/dist/admin/components/CreateLocale.mjs +368 -0
  20. package/dist/admin/components/CreateLocale.mjs.map +1 -0
  21. package/dist/admin/components/DeleteLocale.js +90 -0
  22. package/dist/admin/components/DeleteLocale.js.map +1 -0
  23. package/dist/admin/components/DeleteLocale.mjs +69 -0
  24. package/dist/admin/components/DeleteLocale.mjs.map +1 -0
  25. package/dist/admin/components/EditLocale.js +212 -0
  26. package/dist/admin/components/EditLocale.js.map +1 -0
  27. package/dist/admin/components/EditLocale.mjs +190 -0
  28. package/dist/admin/components/EditLocale.mjs.map +1 -0
  29. package/dist/admin/components/LocaleListCell.js +102 -0
  30. package/dist/admin/components/LocaleListCell.js.map +1 -0
  31. package/dist/admin/components/LocaleListCell.mjs +100 -0
  32. package/dist/admin/components/LocaleListCell.mjs.map +1 -0
  33. package/dist/admin/components/LocalePicker.js +105 -0
  34. package/dist/admin/components/LocalePicker.js.map +1 -0
  35. package/dist/admin/components/LocalePicker.mjs +84 -0
  36. package/dist/admin/components/LocalePicker.mjs.map +1 -0
  37. package/dist/admin/components/LocaleTable.js +143 -0
  38. package/dist/admin/components/LocaleTable.js.map +1 -0
  39. package/dist/admin/components/LocaleTable.mjs +122 -0
  40. package/dist/admin/components/LocaleTable.mjs.map +1 -0
  41. package/dist/admin/constants.js +37 -0
  42. package/dist/admin/constants.js.map +1 -0
  43. package/dist/admin/constants.mjs +35 -0
  44. package/dist/admin/constants.mjs.map +1 -0
  45. package/dist/admin/contentManagerHooks/editView.js +109 -0
  46. package/dist/admin/contentManagerHooks/editView.js.map +1 -0
  47. package/dist/admin/contentManagerHooks/editView.mjs +88 -0
  48. package/dist/admin/contentManagerHooks/editView.mjs.map +1 -0
  49. package/dist/admin/contentManagerHooks/listView.js +44 -0
  50. package/dist/admin/contentManagerHooks/listView.js.map +1 -0
  51. package/dist/admin/contentManagerHooks/listView.mjs +42 -0
  52. package/dist/admin/contentManagerHooks/listView.mjs.map +1 -0
  53. package/dist/admin/contentReleasesHooks/releaseDetailsView.js +20 -0
  54. package/dist/admin/contentReleasesHooks/releaseDetailsView.js.map +1 -0
  55. package/dist/admin/contentReleasesHooks/releaseDetailsView.mjs +18 -0
  56. package/dist/admin/contentReleasesHooks/releaseDetailsView.mjs.map +1 -0
  57. package/dist/admin/hooks/useAILocalizationJobsPolling.js +110 -0
  58. package/dist/admin/hooks/useAILocalizationJobsPolling.js.map +1 -0
  59. package/dist/admin/hooks/useAILocalizationJobsPolling.mjs +89 -0
  60. package/dist/admin/hooks/useAILocalizationJobsPolling.mjs.map +1 -0
  61. package/dist/admin/hooks/useI18n.js +78 -0
  62. package/dist/admin/hooks/useI18n.js.map +1 -0
  63. package/dist/admin/hooks/useI18n.mjs +57 -0
  64. package/dist/admin/hooks/useI18n.mjs.map +1 -0
  65. package/dist/admin/index.js +226 -5
  66. package/dist/admin/index.js.map +1 -1
  67. package/dist/admin/index.mjs +202 -5
  68. package/dist/admin/index.mjs.map +1 -1
  69. package/dist/admin/middlewares/extendCTBAttributeInitialData.js +71 -0
  70. package/dist/admin/middlewares/extendCTBAttributeInitialData.js.map +1 -0
  71. package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs +69 -0
  72. package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs.map +1 -0
  73. package/dist/admin/middlewares/extendCTBInitialData.js +40 -0
  74. package/dist/admin/middlewares/extendCTBInitialData.js.map +1 -0
  75. package/dist/admin/middlewares/extendCTBInitialData.mjs +38 -0
  76. package/dist/admin/middlewares/extendCTBInitialData.mjs.map +1 -0
  77. package/dist/admin/middlewares/rbac-middleware.js +49 -0
  78. package/dist/admin/middlewares/rbac-middleware.js.map +1 -0
  79. package/dist/admin/middlewares/rbac-middleware.mjs +28 -0
  80. package/dist/admin/middlewares/rbac-middleware.mjs.map +1 -0
  81. package/dist/admin/pages/SettingsPage.js +182 -0
  82. package/dist/admin/pages/SettingsPage.js.map +1 -0
  83. package/dist/admin/pages/SettingsPage.mjs +179 -0
  84. package/dist/admin/pages/SettingsPage.mjs.map +1 -0
  85. package/dist/admin/pluginId.js +6 -0
  86. package/dist/admin/pluginId.js.map +1 -0
  87. package/dist/admin/pluginId.mjs +4 -0
  88. package/dist/admin/pluginId.mjs.map +1 -0
  89. package/dist/admin/services/aiLocalizationJobs.js +26 -0
  90. package/dist/admin/services/aiLocalizationJobs.js.map +1 -0
  91. package/dist/admin/services/aiLocalizationJobs.mjs +24 -0
  92. package/dist/admin/services/aiLocalizationJobs.mjs.map +1 -0
  93. package/dist/admin/services/api.js +15 -0
  94. package/dist/admin/services/api.js.map +1 -0
  95. package/dist/admin/services/api.mjs +13 -0
  96. package/dist/admin/services/api.mjs.map +1 -0
  97. package/dist/admin/services/locales.js +72 -0
  98. package/dist/admin/services/locales.js.map +1 -0
  99. package/dist/admin/services/locales.mjs +66 -0
  100. package/dist/admin/services/locales.mjs.map +1 -0
  101. package/dist/admin/services/relations.js +23 -0
  102. package/dist/admin/services/relations.js.map +1 -0
  103. package/dist/admin/services/relations.mjs +21 -0
  104. package/dist/admin/services/relations.mjs.map +1 -0
  105. package/dist/admin/services/settings.js +30 -0
  106. package/dist/admin/services/settings.js.map +1 -0
  107. package/dist/admin/services/settings.mjs +27 -0
  108. package/dist/admin/services/settings.mjs.map +1 -0
  109. package/dist/admin/src/components/CMHeaderActions.d.ts +19 -6
  110. package/dist/admin/src/components/LocaleListCell.d.ts +5 -4
  111. package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
  112. package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
  113. package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
  114. package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
  115. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
  116. package/dist/admin/src/hooks/useAILocalizationJobsPolling.d.ts +9 -0
  117. package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
  118. package/dist/admin/src/services/aiLocalizationJobs.d.ts +6 -0
  119. package/dist/admin/src/services/api.d.ts +1 -1
  120. package/dist/admin/src/services/locales.d.ts +1 -1
  121. package/dist/admin/src/services/relations.d.ts +1 -1
  122. package/dist/admin/src/services/settings.d.ts +5 -0
  123. package/dist/admin/src/utils/schemas.d.ts +642 -16
  124. package/dist/admin/tests/server.d.ts +1 -0
  125. package/dist/admin/tests/utils.d.ts +6 -0
  126. package/dist/admin/translations/de.json.js +66 -0
  127. package/dist/admin/translations/de.json.js.map +1 -0
  128. package/dist/admin/translations/de.json.mjs +64 -0
  129. package/dist/admin/translations/de.json.mjs.map +1 -0
  130. package/dist/admin/translations/dk.json.js +66 -0
  131. package/dist/admin/translations/dk.json.js.map +1 -0
  132. package/dist/admin/translations/dk.json.mjs +64 -0
  133. package/dist/admin/translations/dk.json.mjs.map +1 -0
  134. package/dist/admin/translations/en.json.js +91 -0
  135. package/dist/admin/translations/en.json.js.map +1 -0
  136. package/dist/admin/translations/en.json.mjs +89 -0
  137. package/dist/admin/translations/en.json.mjs.map +1 -0
  138. package/dist/admin/translations/es.json.js +66 -0
  139. package/dist/admin/translations/es.json.js.map +1 -0
  140. package/dist/admin/translations/es.json.mjs +64 -0
  141. package/dist/admin/translations/es.json.mjs.map +1 -0
  142. package/dist/admin/translations/fr.json.js +66 -0
  143. package/dist/admin/translations/fr.json.js.map +1 -0
  144. package/dist/admin/translations/fr.json.mjs +64 -0
  145. package/dist/admin/translations/fr.json.mjs.map +1 -0
  146. package/dist/admin/translations/ko.json.js +65 -0
  147. package/dist/admin/translations/ko.json.js.map +1 -0
  148. package/dist/admin/translations/ko.json.mjs +63 -0
  149. package/dist/admin/translations/ko.json.mjs.map +1 -0
  150. package/dist/admin/translations/pl.json.js +66 -0
  151. package/dist/admin/translations/pl.json.js.map +1 -0
  152. package/dist/admin/translations/pl.json.mjs +64 -0
  153. package/dist/admin/translations/pl.json.mjs.map +1 -0
  154. package/dist/admin/translations/ru.json.js +68 -0
  155. package/dist/admin/translations/ru.json.js.map +1 -0
  156. package/dist/admin/translations/ru.json.mjs +66 -0
  157. package/dist/admin/translations/ru.json.mjs.map +1 -0
  158. package/dist/admin/translations/tr.json.js +66 -0
  159. package/dist/admin/translations/tr.json.js.map +1 -0
  160. package/dist/admin/translations/tr.json.mjs +64 -0
  161. package/dist/admin/translations/tr.json.mjs.map +1 -0
  162. package/dist/admin/translations/uk.json.js +82 -0
  163. package/dist/admin/translations/uk.json.js.map +1 -0
  164. package/dist/admin/translations/uk.json.mjs +80 -0
  165. package/dist/admin/translations/uk.json.mjs.map +1 -0
  166. package/dist/admin/translations/zh-Hans.json.js +57 -0
  167. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  168. package/dist/admin/translations/zh-Hans.json.mjs +55 -0
  169. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  170. package/dist/admin/translations/zh.json.js +66 -0
  171. package/dist/admin/translations/zh.json.js.map +1 -0
  172. package/dist/admin/translations/zh.json.mjs +64 -0
  173. package/dist/admin/translations/zh.json.mjs.map +1 -0
  174. package/dist/admin/utils/baseQuery.js +8 -0
  175. package/dist/admin/utils/baseQuery.js.map +1 -0
  176. package/dist/admin/utils/baseQuery.mjs +6 -0
  177. package/dist/admin/utils/baseQuery.mjs.map +1 -0
  178. package/dist/admin/utils/clean.js +70 -0
  179. package/dist/admin/utils/clean.js.map +1 -0
  180. package/dist/admin/utils/clean.mjs +68 -0
  181. package/dist/admin/utils/clean.mjs.map +1 -0
  182. package/dist/admin/utils/fields.js +34 -0
  183. package/dist/admin/utils/fields.js.map +1 -0
  184. package/dist/admin/utils/fields.mjs +31 -0
  185. package/dist/admin/utils/fields.mjs.map +1 -0
  186. package/dist/admin/utils/getTranslation.js +8 -0
  187. package/dist/admin/utils/getTranslation.js.map +1 -0
  188. package/dist/admin/utils/getTranslation.mjs +6 -0
  189. package/dist/admin/utils/getTranslation.mjs.map +1 -0
  190. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  191. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  192. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  193. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  194. package/dist/admin/utils/schemas.js +74 -0
  195. package/dist/admin/utils/schemas.js.map +1 -0
  196. package/dist/admin/utils/schemas.mjs +72 -0
  197. package/dist/admin/utils/schemas.mjs.map +1 -0
  198. package/dist/admin/utils/strings.js +6 -0
  199. package/dist/admin/utils/strings.js.map +1 -0
  200. package/dist/admin/utils/strings.mjs +4 -0
  201. package/dist/admin/utils/strings.mjs.map +1 -0
  202. package/dist/server/bootstrap.js +81 -0
  203. package/dist/server/bootstrap.js.map +1 -0
  204. package/dist/server/bootstrap.mjs +79 -0
  205. package/dist/server/bootstrap.mjs.map +1 -0
  206. package/dist/server/constants/index.js +29 -0
  207. package/dist/server/constants/index.js.map +1 -0
  208. package/dist/server/constants/index.mjs +25 -0
  209. package/dist/server/constants/index.mjs.map +1 -0
  210. package/dist/server/constants/iso-locales.json.js +2427 -0
  211. package/dist/server/constants/iso-locales.json.js.map +1 -0
  212. package/dist/server/constants/iso-locales.json.mjs +2425 -0
  213. package/dist/server/constants/iso-locales.json.mjs.map +1 -0
  214. package/dist/server/content-types/index.js +10 -0
  215. package/dist/server/content-types/index.js.map +1 -0
  216. package/dist/server/content-types/index.mjs +8 -0
  217. package/dist/server/content-types/index.mjs.map +1 -0
  218. package/dist/server/content-types/locale/index.js +10 -0
  219. package/dist/server/content-types/locale/index.js.map +1 -0
  220. package/dist/server/content-types/locale/index.mjs +8 -0
  221. package/dist/server/content-types/locale/index.mjs.map +1 -0
  222. package/dist/server/content-types/locale/schema.json.js +46 -0
  223. package/dist/server/content-types/locale/schema.json.js.map +1 -0
  224. package/dist/server/content-types/locale/schema.json.mjs +38 -0
  225. package/dist/server/content-types/locale/schema.json.mjs.map +1 -0
  226. package/dist/server/controllers/ai-localization-jobs.js +47 -0
  227. package/dist/server/controllers/ai-localization-jobs.js.map +1 -0
  228. package/dist/server/controllers/ai-localization-jobs.mjs +45 -0
  229. package/dist/server/controllers/ai-localization-jobs.mjs.map +1 -0
  230. package/dist/server/controllers/content-types.js +76 -0
  231. package/dist/server/controllers/content-types.js.map +1 -0
  232. package/dist/server/controllers/content-types.mjs +74 -0
  233. package/dist/server/controllers/content-types.mjs.map +1 -0
  234. package/dist/server/controllers/index.js +18 -0
  235. package/dist/server/controllers/index.js.map +1 -0
  236. package/dist/server/controllers/index.mjs +16 -0
  237. package/dist/server/controllers/index.mjs.map +1 -0
  238. package/dist/server/controllers/iso-locales.js +13 -0
  239. package/dist/server/controllers/iso-locales.js.map +1 -0
  240. package/dist/server/controllers/iso-locales.mjs +11 -0
  241. package/dist/server/controllers/iso-locales.mjs.map +1 -0
  242. package/dist/server/controllers/locales.js +108 -0
  243. package/dist/server/controllers/locales.js.map +1 -0
  244. package/dist/server/controllers/locales.mjs +87 -0
  245. package/dist/server/controllers/locales.mjs.map +1 -0
  246. package/dist/server/controllers/settings.js +24 -0
  247. package/dist/server/controllers/settings.js.map +1 -0
  248. package/dist/server/controllers/settings.mjs +22 -0
  249. package/dist/server/controllers/settings.mjs.map +1 -0
  250. package/dist/server/controllers/validate-locale-creation.js +47 -0
  251. package/dist/server/controllers/validate-locale-creation.js.map +1 -0
  252. package/dist/server/controllers/validate-locale-creation.mjs +45 -0
  253. package/dist/server/controllers/validate-locale-creation.mjs.map +1 -0
  254. package/dist/server/domain/locale.js +11 -0
  255. package/dist/server/domain/locale.js.map +1 -0
  256. package/dist/server/domain/locale.mjs +9 -0
  257. package/dist/server/domain/locale.mjs.map +1 -0
  258. package/dist/server/graphql.js +115 -0
  259. package/dist/server/graphql.js.map +1 -0
  260. package/dist/server/graphql.mjs +113 -0
  261. package/dist/server/graphql.mjs.map +1 -0
  262. package/dist/server/index.js +18 -3430
  263. package/dist/server/index.js.map +1 -1
  264. package/dist/server/index.mjs +17 -3412
  265. package/dist/server/index.mjs.map +1 -1
  266. package/dist/server/models/ai-localization-job.js +60 -0
  267. package/dist/server/models/ai-localization-job.js.map +1 -0
  268. package/dist/server/models/ai-localization-job.mjs +57 -0
  269. package/dist/server/models/ai-localization-job.mjs.map +1 -0
  270. package/dist/server/register.js +81 -0
  271. package/dist/server/register.js.map +1 -0
  272. package/dist/server/register.mjs +79 -0
  273. package/dist/server/register.mjs.map +1 -0
  274. package/dist/server/routes/admin.js +142 -0
  275. package/dist/server/routes/admin.js.map +1 -0
  276. package/dist/server/routes/admin.mjs +140 -0
  277. package/dist/server/routes/admin.mjs.map +1 -0
  278. package/dist/server/routes/content-api.js +19 -0
  279. package/dist/server/routes/content-api.js.map +1 -0
  280. package/dist/server/routes/content-api.mjs +17 -0
  281. package/dist/server/routes/content-api.mjs.map +1 -0
  282. package/dist/server/routes/index.js +12 -0
  283. package/dist/server/routes/index.js.map +1 -0
  284. package/dist/server/routes/index.mjs +10 -0
  285. package/dist/server/routes/index.mjs.map +1 -0
  286. package/dist/server/routes/validation/locale.js +57 -0
  287. package/dist/server/routes/validation/locale.js.map +1 -0
  288. package/dist/server/routes/validation/locale.mjs +36 -0
  289. package/dist/server/routes/validation/locale.mjs.map +1 -0
  290. package/dist/server/services/ai-localization-jobs.js +64 -0
  291. package/dist/server/services/ai-localization-jobs.js.map +1 -0
  292. package/dist/server/services/ai-localization-jobs.mjs +62 -0
  293. package/dist/server/services/ai-localization-jobs.mjs.map +1 -0
  294. package/dist/server/services/ai-localizations.js +268 -0
  295. package/dist/server/services/ai-localizations.js.map +1 -0
  296. package/dist/server/services/ai-localizations.mjs +266 -0
  297. package/dist/server/services/ai-localizations.mjs.map +1 -0
  298. package/dist/server/services/content-types.js +157 -0
  299. package/dist/server/services/content-types.js.map +1 -0
  300. package/dist/server/services/content-types.mjs +155 -0
  301. package/dist/server/services/content-types.mjs.map +1 -0
  302. package/dist/server/services/index.js +28 -0
  303. package/dist/server/services/index.js.map +1 -0
  304. package/dist/server/services/index.mjs +26 -0
  305. package/dist/server/services/index.mjs.map +1 -0
  306. package/dist/server/services/iso-locales.js +12 -0
  307. package/dist/server/services/iso-locales.js.map +1 -0
  308. package/dist/server/services/iso-locales.mjs +10 -0
  309. package/dist/server/services/iso-locales.mjs.map +1 -0
  310. package/dist/server/services/locales.js +114 -0
  311. package/dist/server/services/locales.js.map +1 -0
  312. package/dist/server/services/locales.mjs +112 -0
  313. package/dist/server/services/locales.mjs.map +1 -0
  314. package/dist/server/services/localizations.js +68 -0
  315. package/dist/server/services/localizations.js.map +1 -0
  316. package/dist/server/services/localizations.mjs +66 -0
  317. package/dist/server/services/localizations.mjs.map +1 -0
  318. package/dist/server/services/metrics.js +30 -0
  319. package/dist/server/services/metrics.js.map +1 -0
  320. package/dist/server/services/metrics.mjs +28 -0
  321. package/dist/server/services/metrics.mjs.map +1 -0
  322. package/dist/server/services/permissions/actions.js +136 -0
  323. package/dist/server/services/permissions/actions.js.map +1 -0
  324. package/dist/server/services/permissions/actions.mjs +134 -0
  325. package/dist/server/services/permissions/actions.mjs.map +1 -0
  326. package/dist/server/services/permissions/engine.js +52 -0
  327. package/dist/server/services/permissions/engine.js.map +1 -0
  328. package/dist/server/services/permissions/engine.mjs +50 -0
  329. package/dist/server/services/permissions/engine.mjs.map +1 -0
  330. package/dist/server/services/permissions/sections-builder.js +45 -0
  331. package/dist/server/services/permissions/sections-builder.js.map +1 -0
  332. package/dist/server/services/permissions/sections-builder.mjs +43 -0
  333. package/dist/server/services/permissions/sections-builder.mjs.map +1 -0
  334. package/dist/server/services/permissions.js +14 -0
  335. package/dist/server/services/permissions.js.map +1 -0
  336. package/dist/server/services/permissions.mjs +12 -0
  337. package/dist/server/services/permissions.mjs.map +1 -0
  338. package/dist/server/services/sanitize/index.js +34 -0
  339. package/dist/server/services/sanitize/index.js.map +1 -0
  340. package/dist/server/services/sanitize/index.mjs +32 -0
  341. package/dist/server/services/sanitize/index.mjs.map +1 -0
  342. package/dist/server/services/settings.js +25 -0
  343. package/dist/server/services/settings.js.map +1 -0
  344. package/dist/server/services/settings.mjs +23 -0
  345. package/dist/server/services/settings.mjs.map +1 -0
  346. package/dist/server/src/bootstrap.d.ts.map +1 -1
  347. package/dist/server/src/controllers/ai-localization-jobs.d.ts +17 -0
  348. package/dist/server/src/controllers/ai-localization-jobs.d.ts.map +1 -0
  349. package/dist/server/src/controllers/index.d.ts +10 -0
  350. package/dist/server/src/controllers/index.d.ts.map +1 -1
  351. package/dist/server/src/controllers/settings.d.ts +7 -0
  352. package/dist/server/src/controllers/settings.d.ts.map +1 -0
  353. package/dist/server/src/index.d.ts +53 -8
  354. package/dist/server/src/index.d.ts.map +1 -1
  355. package/dist/server/src/models/ai-localization-job.d.ts +5 -0
  356. package/dist/server/src/models/ai-localization-job.d.ts.map +1 -0
  357. package/dist/server/src/models/index.d.ts +5 -0
  358. package/dist/server/src/models/index.d.ts.map +1 -0
  359. package/dist/server/src/register.d.ts +1 -1
  360. package/dist/server/src/register.d.ts.map +1 -1
  361. package/dist/server/src/routes/admin.d.ts.map +1 -1
  362. package/dist/server/src/routes/content-api.d.ts +5 -8
  363. package/dist/server/src/routes/content-api.d.ts.map +1 -1
  364. package/dist/server/src/routes/index.d.ts +3 -7
  365. package/dist/server/src/routes/index.d.ts.map +1 -1
  366. package/dist/server/src/routes/validation/index.d.ts +2 -0
  367. package/dist/server/src/routes/validation/index.d.ts.map +1 -0
  368. package/dist/server/src/routes/validation/locale.d.ts +41 -0
  369. package/dist/server/src/routes/validation/locale.d.ts.map +1 -0
  370. package/dist/server/src/services/ai-localization-jobs.d.ts +26 -0
  371. package/dist/server/src/services/ai-localization-jobs.d.ts.map +1 -0
  372. package/dist/server/src/services/ai-localizations.d.ts +18 -0
  373. package/dist/server/src/services/ai-localizations.d.ts.map +1 -0
  374. package/dist/server/src/services/index.d.ts +39 -0
  375. package/dist/server/src/services/index.d.ts.map +1 -1
  376. package/dist/server/src/services/localizations.d.ts +1 -1
  377. package/dist/server/src/services/localizations.d.ts.map +1 -1
  378. package/dist/server/src/services/sanitize/index.d.ts +11 -0
  379. package/dist/server/src/services/sanitize/index.d.ts.map +1 -0
  380. package/dist/server/src/services/settings.d.ts +13 -0
  381. package/dist/server/src/services/settings.d.ts.map +1 -0
  382. package/dist/server/src/utils/index.d.ts +9 -1
  383. package/dist/server/src/utils/index.d.ts.map +1 -1
  384. package/dist/server/src/validation/settings.d.ts +12 -0
  385. package/dist/server/src/validation/settings.d.ts.map +1 -0
  386. package/dist/server/utils/index.js +16 -0
  387. package/dist/server/utils/index.js.map +1 -0
  388. package/dist/server/utils/index.mjs +13 -0
  389. package/dist/server/utils/index.mjs.map +1 -0
  390. package/dist/server/validation/content-types.js +18 -0
  391. package/dist/server/validation/content-types.js.map +1 -0
  392. package/dist/server/validation/content-types.mjs +16 -0
  393. package/dist/server/validation/content-types.mjs.map +1 -0
  394. package/dist/server/validation/locales.js +23 -0
  395. package/dist/server/validation/locales.js.map +1 -0
  396. package/dist/server/validation/locales.mjs +20 -0
  397. package/dist/server/validation/locales.mjs.map +1 -0
  398. package/dist/server/validation/settings.js +11 -0
  399. package/dist/server/validation/settings.js.map +1 -0
  400. package/dist/server/validation/settings.mjs +9 -0
  401. package/dist/server/validation/settings.mjs.map +1 -0
  402. package/dist/shared/contracts/ai-localization-jobs.d.ts +27 -0
  403. package/dist/shared/contracts/ai-localization-jobs.d.ts.map +1 -0
  404. package/dist/shared/contracts/content-manager.d.ts +1 -1
  405. package/dist/shared/contracts/settings.d.ts +40 -0
  406. package/dist/shared/contracts/shared.d.ts +1 -1
  407. package/dist/shared/contracts/shared.d.ts.map +1 -0
  408. package/package.json +22 -17
  409. package/dist/_chunks/SettingsPage-DbRFoF_H.mjs +0 -554
  410. package/dist/_chunks/SettingsPage-DbRFoF_H.mjs.map +0 -1
  411. package/dist/_chunks/SettingsPage-uGJv15wR.js +0 -574
  412. package/dist/_chunks/SettingsPage-uGJv15wR.js.map +0 -1
  413. package/dist/_chunks/de-9eCAqqrB.mjs +0 -66
  414. package/dist/_chunks/de-9eCAqqrB.mjs.map +0 -1
  415. package/dist/_chunks/de-DtWiGdHl.js +0 -66
  416. package/dist/_chunks/de-DtWiGdHl.js.map +0 -1
  417. package/dist/_chunks/dk-2qBjxt-P.mjs +0 -66
  418. package/dist/_chunks/dk-2qBjxt-P.mjs.map +0 -1
  419. package/dist/_chunks/dk-D8C-casx.js +0 -66
  420. package/dist/_chunks/dk-D8C-casx.js.map +0 -1
  421. package/dist/_chunks/en-BYRZFDBV.mjs +0 -81
  422. package/dist/_chunks/en-BYRZFDBV.mjs.map +0 -1
  423. package/dist/_chunks/en-Dk9At9_Z.js +0 -81
  424. package/dist/_chunks/en-Dk9At9_Z.js.map +0 -1
  425. package/dist/_chunks/es-DS-XFGSw.js +0 -66
  426. package/dist/_chunks/es-DS-XFGSw.js.map +0 -1
  427. package/dist/_chunks/es-DlmMVaBG.mjs +0 -66
  428. package/dist/_chunks/es-DlmMVaBG.mjs.map +0 -1
  429. package/dist/_chunks/fr-3S6ke71d.mjs +0 -66
  430. package/dist/_chunks/fr-3S6ke71d.mjs.map +0 -1
  431. package/dist/_chunks/fr-BTjekDpq.js +0 -66
  432. package/dist/_chunks/fr-BTjekDpq.js.map +0 -1
  433. package/dist/_chunks/index-7_EUScSl.mjs +0 -1614
  434. package/dist/_chunks/index-7_EUScSl.mjs.map +0 -1
  435. package/dist/_chunks/index-BGtXLYX-.js +0 -1636
  436. package/dist/_chunks/index-BGtXLYX-.js.map +0 -1
  437. package/dist/_chunks/ko-DmcGUBQ3.js +0 -65
  438. package/dist/_chunks/ko-DmcGUBQ3.js.map +0 -1
  439. package/dist/_chunks/ko-qTjQ8IMw.mjs +0 -65
  440. package/dist/_chunks/ko-qTjQ8IMw.mjs.map +0 -1
  441. package/dist/_chunks/pl-B67TSHqT.mjs +0 -66
  442. package/dist/_chunks/pl-B67TSHqT.mjs.map +0 -1
  443. package/dist/_chunks/pl-Cn5RYonZ.js +0 -66
  444. package/dist/_chunks/pl-Cn5RYonZ.js.map +0 -1
  445. package/dist/_chunks/ru-BMBgVL3s.js +0 -68
  446. package/dist/_chunks/ru-BMBgVL3s.js.map +0 -1
  447. package/dist/_chunks/ru-hagMa57T.mjs +0 -68
  448. package/dist/_chunks/ru-hagMa57T.mjs.map +0 -1
  449. package/dist/_chunks/tr-CarUU76c.js +0 -66
  450. package/dist/_chunks/tr-CarUU76c.js.map +0 -1
  451. package/dist/_chunks/tr-Dw_jmkG-.mjs +0 -66
  452. package/dist/_chunks/tr-Dw_jmkG-.mjs.map +0 -1
  453. package/dist/_chunks/zh-57YM4amO.mjs +0 -66
  454. package/dist/_chunks/zh-57YM4amO.mjs.map +0 -1
  455. package/dist/_chunks/zh-CukOviB0.js +0 -66
  456. package/dist/_chunks/zh-CukOviB0.js.map +0 -1
  457. package/dist/_chunks/zh-Hans-DSHIXAa3.js +0 -57
  458. package/dist/_chunks/zh-Hans-DSHIXAa3.js.map +0 -1
  459. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs +0 -57
  460. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs.map +0 -1
@@ -0,0 +1,113 @@
1
+ import { identity, propEq } from 'lodash/fp';
2
+ import { errors } from '@strapi/utils';
3
+
4
+ const { ValidationError } = errors;
5
+ const LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';
6
+ const LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';
7
+ var graphqlProvider = (({ strapi: strapi1 })=>({
8
+ register () {
9
+ const { service: getGraphQLService } = strapi1.plugin('graphql');
10
+ const { service: getI18NService } = strapi1.plugin('i18n');
11
+ const { isLocalizedContentType } = getI18NService('content-types');
12
+ const extensionService = getGraphQLService('extension');
13
+ extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();
14
+ // Disable unwanted fields for localized content types
15
+ Object.entries(strapi1.contentTypes).forEach(([uid, ct])=>{
16
+ if (isLocalizedContentType(ct)) {
17
+ // Disable locale field in localized inputs
18
+ extensionService.shadowCRUD(uid).field('locale').disableInput();
19
+ // Disable localizations field in localized inputs
20
+ extensionService.shadowCRUD(uid).field('localizations').disableInput();
21
+ }
22
+ });
23
+ extensionService.use(({ nexus, typeRegistry })=>{
24
+ const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({
25
+ nexus,
26
+ typeRegistry
27
+ });
28
+ const i18nLocaleScalar = getLocaleScalar({
29
+ nexus
30
+ });
31
+ return {
32
+ plugins: [
33
+ i18nLocaleArgPlugin
34
+ ],
35
+ types: [
36
+ i18nLocaleScalar
37
+ ],
38
+ resolversConfig: {
39
+ // Modify the default scope associated to find and findOne locale queries to match the actual action name
40
+ 'Query.i18NLocale': {
41
+ auth: {
42
+ scope: 'plugin::i18n.locales.listLocales'
43
+ }
44
+ },
45
+ 'Query.i18NLocales': {
46
+ auth: {
47
+ scope: 'plugin::i18n.locales.listLocales'
48
+ }
49
+ }
50
+ }
51
+ };
52
+ });
53
+ }
54
+ }));
55
+ const getLocaleScalar = ({ nexus })=>{
56
+ const { service: getI18NService } = strapi.plugin('i18n');
57
+ const locales = getI18NService('iso-locales').getIsoLocales();
58
+ return nexus.scalarType({
59
+ name: LOCALE_SCALAR_TYPENAME,
60
+ description: 'A string used to identify an i18n locale',
61
+ serialize: identity,
62
+ parseValue: identity,
63
+ parseLiteral (ast) {
64
+ if (ast.kind !== 'StringValue') {
65
+ throw new ValidationError('Locale cannot represent non string type');
66
+ }
67
+ const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));
68
+ if (!isValidLocale) {
69
+ throw new ValidationError('Unknown locale supplied');
70
+ }
71
+ return ast.value;
72
+ }
73
+ });
74
+ };
75
+ const getI18nLocaleArgPlugin = ({ nexus, typeRegistry })=>{
76
+ const { service: getI18NService } = strapi.plugin('i18n');
77
+ const { isLocalizedContentType } = getI18NService('content-types');
78
+ return nexus.plugin({
79
+ name: LOCALE_ARG_PLUGIN_NAME,
80
+ onAddOutputField (config) {
81
+ // Add the locale arg to the queries on localized CTs
82
+ const { parentType } = config;
83
+ // Only target queries or mutations
84
+ if (parentType !== 'Query' && parentType !== 'Mutation') {
85
+ return;
86
+ }
87
+ let contentType;
88
+ if (config?.extensions?.strapi?.contentType) {
89
+ contentType = config.extensions.strapi.contentType;
90
+ } else {
91
+ const registryType = typeRegistry.get(config.type);
92
+ if (!registryType) {
93
+ return;
94
+ }
95
+ contentType = registryType.config.contentType;
96
+ }
97
+ // Ignore non-localized content types
98
+ if (!isLocalizedContentType(contentType)) {
99
+ return;
100
+ }
101
+ if (!config.args) {
102
+ config.args = {};
103
+ }
104
+ config.args.locale = nexus.arg({
105
+ type: LOCALE_SCALAR_TYPENAME,
106
+ description: 'The locale to use for the query'
107
+ });
108
+ }
109
+ });
110
+ };
111
+
112
+ export { graphqlProvider as default };
113
+ //# sourceMappingURL=graphql.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import { propEq, identity } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst LOCALE_SCALAR_TYPENAME = 'I18NLocaleCode';\nconst LOCALE_ARG_PLUGIN_NAME = 'I18NLocaleArg';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n register() {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n const extensionService = getGraphQLService('extension');\n\n extensionService.shadowCRUD('plugin::i18n.locale').disableMutations();\n\n // Disable unwanted fields for localized content types\n Object.entries(strapi.contentTypes).forEach(([uid, ct]) => {\n if (isLocalizedContentType(ct)) {\n // Disable locale field in localized inputs\n extensionService.shadowCRUD(uid).field('locale').disableInput();\n\n // Disable localizations field in localized inputs\n extensionService.shadowCRUD(uid).field('localizations').disableInput();\n }\n });\n\n extensionService.use(({ nexus, typeRegistry }: any) => {\n const i18nLocaleArgPlugin = getI18nLocaleArgPlugin({ nexus, typeRegistry });\n const i18nLocaleScalar = getLocaleScalar({ nexus });\n return {\n plugins: [i18nLocaleArgPlugin],\n types: [i18nLocaleScalar],\n\n resolversConfig: {\n // Modify the default scope associated to find and findOne locale queries to match the actual action name\n 'Query.i18NLocale': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n 'Query.i18NLocales': { auth: { scope: 'plugin::i18n.locales.listLocales' } },\n },\n };\n });\n },\n});\n\nconst getLocaleScalar = ({ nexus }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const locales = getI18NService('iso-locales').getIsoLocales();\n\n return nexus.scalarType({\n name: LOCALE_SCALAR_TYPENAME,\n\n description: 'A string used to identify an i18n locale',\n\n serialize: identity,\n parseValue: identity,\n\n parseLiteral(ast: any) {\n if (ast.kind !== 'StringValue') {\n throw new ValidationError('Locale cannot represent non string type');\n }\n\n const isValidLocale = ast.value === '*' || locales.find(propEq('code', ast.value));\n\n if (!isValidLocale) {\n throw new ValidationError('Unknown locale supplied');\n }\n\n return ast.value;\n },\n });\n};\n\nconst getI18nLocaleArgPlugin = ({ nexus, typeRegistry }: any) => {\n const { service: getI18NService } = strapi.plugin('i18n');\n\n const { isLocalizedContentType } = getI18NService('content-types');\n\n return nexus.plugin({\n name: LOCALE_ARG_PLUGIN_NAME,\n\n onAddOutputField(config: any) {\n // Add the locale arg to the queries on localized CTs\n\n const { parentType } = config;\n\n // Only target queries or mutations\n if (parentType !== 'Query' && parentType !== 'Mutation') {\n return;\n }\n\n let contentType;\n\n if (config?.extensions?.strapi?.contentType) {\n contentType = config.extensions.strapi.contentType;\n } else {\n const registryType = typeRegistry.get(config.type);\n\n if (!registryType) {\n return;\n }\n\n contentType = registryType.config.contentType;\n }\n\n // Ignore non-localized content types\n if (!isLocalizedContentType(contentType)) {\n return;\n }\n\n if (!config.args) {\n config.args = {};\n }\n\n config.args.locale = nexus.arg({\n type: LOCALE_SCALAR_TYPENAME,\n description: 'The locale to use for the query',\n });\n },\n });\n};\n"],"names":["ValidationError","errors","LOCALE_SCALAR_TYPENAME","LOCALE_ARG_PLUGIN_NAME","strapi","register","service","getGraphQLService","plugin","getI18NService","isLocalizedContentType","extensionService","shadowCRUD","disableMutations","Object","entries","contentTypes","forEach","uid","ct","field","disableInput","use","nexus","typeRegistry","i18nLocaleArgPlugin","getI18nLocaleArgPlugin","i18nLocaleScalar","getLocaleScalar","plugins","types","resolversConfig","auth","scope","locales","getIsoLocales","scalarType","name","description","serialize","identity","parseValue","parseLiteral","ast","kind","isValidLocale","value","find","propEq","onAddOutputField","config","parentType","contentType","extensions","registryType","get","type","args","locale","arg"],"mappings":"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"}