@strapi/i18n 0.0.0-experimental.c222e1c4de12dd05c26938a605a1128fb3481d1d → 0.0.0-experimental.c23f51fc41b3ef5de081f427d07e87af93cdcb2c

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 (367) 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 +721 -0
  6. package/dist/admin/components/CMHeaderActions.js.map +1 -0
  7. package/dist/admin/components/CMHeaderActions.mjs +696 -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 +395 -0
  18. package/dist/admin/components/CreateLocale.js.map +1 -0
  19. package/dist/admin/components/CreateLocale.mjs +369 -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 +82 -0
  30. package/dist/admin/components/LocaleListCell.js.map +1 -0
  31. package/dist/admin/components/LocaleListCell.mjs +80 -0
  32. package/dist/admin/components/LocaleListCell.mjs.map +1 -0
  33. package/dist/admin/components/LocalePicker.js +98 -0
  34. package/dist/admin/components/LocalePicker.js.map +1 -0
  35. package/dist/admin/components/LocalePicker.mjs +77 -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 +106 -0
  46. package/dist/admin/contentManagerHooks/editView.js.map +1 -0
  47. package/dist/admin/contentManagerHooks/editView.mjs +85 -0
  48. package/dist/admin/contentManagerHooks/editView.mjs.map +1 -0
  49. package/dist/admin/contentManagerHooks/listView.js +43 -0
  50. package/dist/admin/contentManagerHooks/listView.js.map +1 -0
  51. package/dist/admin/contentManagerHooks/listView.mjs +41 -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/useI18n.js +78 -0
  58. package/dist/admin/hooks/useI18n.js.map +1 -0
  59. package/dist/admin/hooks/useI18n.mjs +57 -0
  60. package/dist/admin/hooks/useI18n.mjs.map +1 -0
  61. package/dist/admin/index.js +226 -5
  62. package/dist/admin/index.js.map +1 -1
  63. package/dist/admin/index.mjs +202 -5
  64. package/dist/admin/index.mjs.map +1 -1
  65. package/dist/admin/middlewares/extendCTBAttributeInitialData.js +61 -0
  66. package/dist/admin/middlewares/extendCTBAttributeInitialData.js.map +1 -0
  67. package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs +59 -0
  68. package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs.map +1 -0
  69. package/dist/admin/middlewares/extendCTBInitialData.js +40 -0
  70. package/dist/admin/middlewares/extendCTBInitialData.js.map +1 -0
  71. package/dist/admin/middlewares/extendCTBInitialData.mjs +38 -0
  72. package/dist/admin/middlewares/extendCTBInitialData.mjs.map +1 -0
  73. package/dist/admin/middlewares/rbac-middleware.js +49 -0
  74. package/dist/admin/middlewares/rbac-middleware.js.map +1 -0
  75. package/dist/admin/middlewares/rbac-middleware.mjs +28 -0
  76. package/dist/admin/middlewares/rbac-middleware.mjs.map +1 -0
  77. package/dist/admin/pages/SettingsPage.js +107 -0
  78. package/dist/admin/pages/SettingsPage.js.map +1 -0
  79. package/dist/admin/pages/SettingsPage.mjs +85 -0
  80. package/dist/admin/pages/SettingsPage.mjs.map +1 -0
  81. package/dist/admin/pluginId.js +6 -0
  82. package/dist/admin/pluginId.js.map +1 -0
  83. package/dist/admin/pluginId.mjs +4 -0
  84. package/dist/admin/pluginId.mjs.map +1 -0
  85. package/dist/admin/services/api.js +12 -0
  86. package/dist/admin/services/api.js.map +1 -0
  87. package/dist/admin/services/api.mjs +10 -0
  88. package/dist/admin/services/api.mjs.map +1 -0
  89. package/dist/admin/services/locales.js +70 -0
  90. package/dist/admin/services/locales.js.map +1 -0
  91. package/dist/admin/services/locales.mjs +64 -0
  92. package/dist/admin/services/locales.mjs.map +1 -0
  93. package/dist/admin/services/relations.js +23 -0
  94. package/dist/admin/services/relations.js.map +1 -0
  95. package/dist/admin/services/relations.mjs +21 -0
  96. package/dist/admin/services/relations.mjs.map +1 -0
  97. package/dist/admin/src/components/CMHeaderActions.d.ts +1 -1
  98. package/dist/admin/src/components/LocaleListCell.d.ts +4 -4
  99. package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
  100. package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
  101. package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
  102. package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
  103. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
  104. package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
  105. package/dist/admin/tests/server.d.ts +1 -0
  106. package/dist/admin/tests/utils.d.ts +6 -0
  107. package/dist/admin/translations/de.json.js +66 -0
  108. package/dist/admin/translations/de.json.js.map +1 -0
  109. package/dist/admin/translations/de.json.mjs +64 -0
  110. package/dist/admin/translations/de.json.mjs.map +1 -0
  111. package/dist/admin/translations/dk.json.js +66 -0
  112. package/dist/admin/translations/dk.json.js.map +1 -0
  113. package/dist/admin/translations/dk.json.mjs +64 -0
  114. package/dist/admin/translations/dk.json.mjs.map +1 -0
  115. package/dist/admin/translations/en.json.js +81 -0
  116. package/dist/admin/translations/en.json.js.map +1 -0
  117. package/dist/admin/translations/en.json.mjs +79 -0
  118. package/dist/admin/translations/en.json.mjs.map +1 -0
  119. package/dist/admin/translations/es.json.js +66 -0
  120. package/dist/admin/translations/es.json.js.map +1 -0
  121. package/dist/admin/translations/es.json.mjs +64 -0
  122. package/dist/admin/translations/es.json.mjs.map +1 -0
  123. package/dist/admin/translations/fr.json.js +66 -0
  124. package/dist/admin/translations/fr.json.js.map +1 -0
  125. package/dist/admin/translations/fr.json.mjs +64 -0
  126. package/dist/admin/translations/fr.json.mjs.map +1 -0
  127. package/dist/admin/translations/ko.json.js +65 -0
  128. package/dist/admin/translations/ko.json.js.map +1 -0
  129. package/dist/admin/translations/ko.json.mjs +63 -0
  130. package/dist/admin/translations/ko.json.mjs.map +1 -0
  131. package/dist/admin/translations/pl.json.js +66 -0
  132. package/dist/admin/translations/pl.json.js.map +1 -0
  133. package/dist/admin/translations/pl.json.mjs +64 -0
  134. package/dist/admin/translations/pl.json.mjs.map +1 -0
  135. package/dist/admin/translations/ru.json.js +68 -0
  136. package/dist/admin/translations/ru.json.js.map +1 -0
  137. package/dist/admin/translations/ru.json.mjs +66 -0
  138. package/dist/admin/translations/ru.json.mjs.map +1 -0
  139. package/dist/admin/translations/tr.json.js +66 -0
  140. package/dist/admin/translations/tr.json.js.map +1 -0
  141. package/dist/admin/translations/tr.json.mjs +64 -0
  142. package/dist/admin/translations/tr.json.mjs.map +1 -0
  143. package/dist/admin/translations/uk.json.js +82 -0
  144. package/dist/admin/translations/uk.json.js.map +1 -0
  145. package/dist/admin/translations/uk.json.mjs +80 -0
  146. package/dist/admin/translations/uk.json.mjs.map +1 -0
  147. package/dist/admin/translations/zh-Hans.json.js +57 -0
  148. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  149. package/dist/admin/translations/zh-Hans.json.mjs +55 -0
  150. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  151. package/dist/admin/translations/zh.json.js +66 -0
  152. package/dist/admin/translations/zh.json.js.map +1 -0
  153. package/dist/admin/translations/zh.json.mjs +64 -0
  154. package/dist/admin/translations/zh.json.mjs.map +1 -0
  155. package/dist/admin/utils/baseQuery.js +8 -0
  156. package/dist/admin/utils/baseQuery.js.map +1 -0
  157. package/dist/admin/utils/baseQuery.mjs +6 -0
  158. package/dist/admin/utils/baseQuery.mjs.map +1 -0
  159. package/dist/admin/utils/clean.js +70 -0
  160. package/dist/admin/utils/clean.js.map +1 -0
  161. package/dist/admin/utils/clean.mjs +68 -0
  162. package/dist/admin/utils/clean.mjs.map +1 -0
  163. package/dist/admin/utils/fields.js +29 -0
  164. package/dist/admin/utils/fields.js.map +1 -0
  165. package/dist/admin/utils/fields.mjs +26 -0
  166. package/dist/admin/utils/fields.mjs.map +1 -0
  167. package/dist/admin/utils/getTranslation.js +8 -0
  168. package/dist/admin/utils/getTranslation.js.map +1 -0
  169. package/dist/admin/utils/getTranslation.mjs +6 -0
  170. package/dist/admin/utils/getTranslation.mjs.map +1 -0
  171. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  172. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  173. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  174. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  175. package/dist/admin/utils/schemas.js +68 -0
  176. package/dist/admin/utils/schemas.js.map +1 -0
  177. package/dist/admin/utils/schemas.mjs +66 -0
  178. package/dist/admin/utils/schemas.mjs.map +1 -0
  179. package/dist/admin/utils/strings.js +6 -0
  180. package/dist/admin/utils/strings.js.map +1 -0
  181. package/dist/admin/utils/strings.mjs +4 -0
  182. package/dist/admin/utils/strings.mjs.map +1 -0
  183. package/dist/server/bootstrap.js +79 -0
  184. package/dist/server/bootstrap.js.map +1 -0
  185. package/dist/server/bootstrap.mjs +77 -0
  186. package/dist/server/bootstrap.mjs.map +1 -0
  187. package/dist/server/constants/index.js +29 -0
  188. package/dist/server/constants/index.js.map +1 -0
  189. package/dist/server/constants/index.mjs +25 -0
  190. package/dist/server/constants/index.mjs.map +1 -0
  191. package/dist/server/constants/iso-locales.json.js +2423 -0
  192. package/dist/server/constants/iso-locales.json.js.map +1 -0
  193. package/dist/server/constants/iso-locales.json.mjs +2421 -0
  194. package/dist/server/constants/iso-locales.json.mjs.map +1 -0
  195. package/dist/server/content-types/index.js +10 -0
  196. package/dist/server/content-types/index.js.map +1 -0
  197. package/dist/server/content-types/index.mjs +8 -0
  198. package/dist/server/content-types/index.mjs.map +1 -0
  199. package/dist/server/content-types/locale/index.js +10 -0
  200. package/dist/server/content-types/locale/index.js.map +1 -0
  201. package/dist/server/content-types/locale/index.mjs +8 -0
  202. package/dist/server/content-types/locale/index.mjs.map +1 -0
  203. package/dist/server/content-types/locale/schema.json.js +46 -0
  204. package/dist/server/content-types/locale/schema.json.js.map +1 -0
  205. package/dist/server/content-types/locale/schema.json.mjs +38 -0
  206. package/dist/server/content-types/locale/schema.json.mjs.map +1 -0
  207. package/dist/server/controllers/content-types.js +76 -0
  208. package/dist/server/controllers/content-types.js.map +1 -0
  209. package/dist/server/controllers/content-types.mjs +74 -0
  210. package/dist/server/controllers/content-types.mjs.map +1 -0
  211. package/dist/server/controllers/index.js +14 -0
  212. package/dist/server/controllers/index.js.map +1 -0
  213. package/dist/server/controllers/index.mjs +12 -0
  214. package/dist/server/controllers/index.mjs.map +1 -0
  215. package/dist/server/controllers/iso-locales.js +13 -0
  216. package/dist/server/controllers/iso-locales.js.map +1 -0
  217. package/dist/server/controllers/iso-locales.mjs +11 -0
  218. package/dist/server/controllers/iso-locales.mjs.map +1 -0
  219. package/dist/server/controllers/locales.js +108 -0
  220. package/dist/server/controllers/locales.js.map +1 -0
  221. package/dist/server/controllers/locales.mjs +87 -0
  222. package/dist/server/controllers/locales.mjs.map +1 -0
  223. package/dist/server/controllers/validate-locale-creation.js +47 -0
  224. package/dist/server/controllers/validate-locale-creation.js.map +1 -0
  225. package/dist/server/controllers/validate-locale-creation.mjs +45 -0
  226. package/dist/server/controllers/validate-locale-creation.mjs.map +1 -0
  227. package/dist/server/domain/locale.js +11 -0
  228. package/dist/server/domain/locale.js.map +1 -0
  229. package/dist/server/domain/locale.mjs +9 -0
  230. package/dist/server/domain/locale.mjs.map +1 -0
  231. package/dist/server/graphql.js +115 -0
  232. package/dist/server/graphql.js.map +1 -0
  233. package/dist/server/graphql.mjs +113 -0
  234. package/dist/server/graphql.mjs.map +1 -0
  235. package/dist/server/index.js +18 -3453
  236. package/dist/server/index.js.map +1 -1
  237. package/dist/server/index.mjs +17 -3435
  238. package/dist/server/index.mjs.map +1 -1
  239. package/dist/server/register.js +79 -0
  240. package/dist/server/register.js.map +1 -0
  241. package/dist/server/register.mjs +77 -0
  242. package/dist/server/register.mjs.map +1 -0
  243. package/dist/server/routes/admin.js +102 -0
  244. package/dist/server/routes/admin.js.map +1 -0
  245. package/dist/server/routes/admin.mjs +100 -0
  246. package/dist/server/routes/admin.mjs.map +1 -0
  247. package/dist/server/routes/content-api.js +15 -0
  248. package/dist/server/routes/content-api.js.map +1 -0
  249. package/dist/server/routes/content-api.mjs +13 -0
  250. package/dist/server/routes/content-api.mjs.map +1 -0
  251. package/dist/server/routes/index.js +12 -0
  252. package/dist/server/routes/index.js.map +1 -0
  253. package/dist/server/routes/index.mjs +10 -0
  254. package/dist/server/routes/index.mjs.map +1 -0
  255. package/dist/server/services/content-types.js +157 -0
  256. package/dist/server/services/content-types.js.map +1 -0
  257. package/dist/server/services/content-types.mjs +155 -0
  258. package/dist/server/services/content-types.mjs.map +1 -0
  259. package/dist/server/services/index.js +22 -0
  260. package/dist/server/services/index.js.map +1 -0
  261. package/dist/server/services/index.mjs +20 -0
  262. package/dist/server/services/index.mjs.map +1 -0
  263. package/dist/server/services/iso-locales.js +12 -0
  264. package/dist/server/services/iso-locales.js.map +1 -0
  265. package/dist/server/services/iso-locales.mjs +10 -0
  266. package/dist/server/services/iso-locales.mjs.map +1 -0
  267. package/dist/server/services/locales.js +114 -0
  268. package/dist/server/services/locales.js.map +1 -0
  269. package/dist/server/services/locales.mjs +112 -0
  270. package/dist/server/services/locales.mjs.map +1 -0
  271. package/dist/server/services/localizations.js +68 -0
  272. package/dist/server/services/localizations.js.map +1 -0
  273. package/dist/server/services/localizations.mjs +66 -0
  274. package/dist/server/services/localizations.mjs.map +1 -0
  275. package/dist/server/services/metrics.js +30 -0
  276. package/dist/server/services/metrics.js.map +1 -0
  277. package/dist/server/services/metrics.mjs +28 -0
  278. package/dist/server/services/metrics.mjs.map +1 -0
  279. package/dist/server/services/permissions/actions.js +136 -0
  280. package/dist/server/services/permissions/actions.js.map +1 -0
  281. package/dist/server/services/permissions/actions.mjs +134 -0
  282. package/dist/server/services/permissions/actions.mjs.map +1 -0
  283. package/dist/server/services/permissions/engine.js +52 -0
  284. package/dist/server/services/permissions/engine.js.map +1 -0
  285. package/dist/server/services/permissions/engine.mjs +50 -0
  286. package/dist/server/services/permissions/engine.mjs.map +1 -0
  287. package/dist/server/services/permissions/sections-builder.js +45 -0
  288. package/dist/server/services/permissions/sections-builder.js.map +1 -0
  289. package/dist/server/services/permissions/sections-builder.mjs +43 -0
  290. package/dist/server/services/permissions/sections-builder.mjs.map +1 -0
  291. package/dist/server/services/permissions.js +14 -0
  292. package/dist/server/services/permissions.js.map +1 -0
  293. package/dist/server/services/permissions.mjs +12 -0
  294. package/dist/server/services/permissions.mjs.map +1 -0
  295. package/dist/server/services/sanitize/index.js +34 -0
  296. package/dist/server/services/sanitize/index.js.map +1 -0
  297. package/dist/server/services/sanitize/index.mjs +32 -0
  298. package/dist/server/services/sanitize/index.mjs.map +1 -0
  299. package/dist/server/src/services/localizations.d.ts +1 -1
  300. package/dist/server/src/services/localizations.d.ts.map +1 -1
  301. package/dist/server/utils/index.js +16 -0
  302. package/dist/server/utils/index.js.map +1 -0
  303. package/dist/server/utils/index.mjs +13 -0
  304. package/dist/server/utils/index.mjs.map +1 -0
  305. package/dist/server/validation/content-types.js +18 -0
  306. package/dist/server/validation/content-types.js.map +1 -0
  307. package/dist/server/validation/content-types.mjs +16 -0
  308. package/dist/server/validation/content-types.mjs.map +1 -0
  309. package/dist/server/validation/locales.js +23 -0
  310. package/dist/server/validation/locales.js.map +1 -0
  311. package/dist/server/validation/locales.mjs +20 -0
  312. package/dist/server/validation/locales.mjs.map +1 -0
  313. package/dist/shared/contracts/content-manager.d.ts +1 -1
  314. package/dist/shared/contracts/shared.d.ts +1 -1
  315. package/package.json +17 -15
  316. package/dist/_chunks/SettingsPage-BHvunuIF.mjs +0 -554
  317. package/dist/_chunks/SettingsPage-BHvunuIF.mjs.map +0 -1
  318. package/dist/_chunks/SettingsPage-Bcj7380u.js +0 -574
  319. package/dist/_chunks/SettingsPage-Bcj7380u.js.map +0 -1
  320. package/dist/_chunks/de-9eCAqqrB.mjs +0 -66
  321. package/dist/_chunks/de-9eCAqqrB.mjs.map +0 -1
  322. package/dist/_chunks/de-DtWiGdHl.js +0 -66
  323. package/dist/_chunks/de-DtWiGdHl.js.map +0 -1
  324. package/dist/_chunks/dk-2qBjxt-P.mjs +0 -66
  325. package/dist/_chunks/dk-2qBjxt-P.mjs.map +0 -1
  326. package/dist/_chunks/dk-D8C-casx.js +0 -66
  327. package/dist/_chunks/dk-D8C-casx.js.map +0 -1
  328. package/dist/_chunks/en-BKBz3tro.js +0 -81
  329. package/dist/_chunks/en-BKBz3tro.js.map +0 -1
  330. package/dist/_chunks/en-DlXfy6Gy.mjs +0 -81
  331. package/dist/_chunks/en-DlXfy6Gy.mjs.map +0 -1
  332. package/dist/_chunks/es-DS-XFGSw.js +0 -66
  333. package/dist/_chunks/es-DS-XFGSw.js.map +0 -1
  334. package/dist/_chunks/es-DlmMVaBG.mjs +0 -66
  335. package/dist/_chunks/es-DlmMVaBG.mjs.map +0 -1
  336. package/dist/_chunks/fr-3S6ke71d.mjs +0 -66
  337. package/dist/_chunks/fr-3S6ke71d.mjs.map +0 -1
  338. package/dist/_chunks/fr-BTjekDpq.js +0 -66
  339. package/dist/_chunks/fr-BTjekDpq.js.map +0 -1
  340. package/dist/_chunks/index-BKZbxhpm.js +0 -1637
  341. package/dist/_chunks/index-BKZbxhpm.js.map +0 -1
  342. package/dist/_chunks/index-DUdrr5PR.mjs +0 -1615
  343. package/dist/_chunks/index-DUdrr5PR.mjs.map +0 -1
  344. package/dist/_chunks/ko-DmcGUBQ3.js +0 -65
  345. package/dist/_chunks/ko-DmcGUBQ3.js.map +0 -1
  346. package/dist/_chunks/ko-qTjQ8IMw.mjs +0 -65
  347. package/dist/_chunks/ko-qTjQ8IMw.mjs.map +0 -1
  348. package/dist/_chunks/pl-B67TSHqT.mjs +0 -66
  349. package/dist/_chunks/pl-B67TSHqT.mjs.map +0 -1
  350. package/dist/_chunks/pl-Cn5RYonZ.js +0 -66
  351. package/dist/_chunks/pl-Cn5RYonZ.js.map +0 -1
  352. package/dist/_chunks/ru-BMBgVL3s.js +0 -68
  353. package/dist/_chunks/ru-BMBgVL3s.js.map +0 -1
  354. package/dist/_chunks/ru-hagMa57T.mjs +0 -68
  355. package/dist/_chunks/ru-hagMa57T.mjs.map +0 -1
  356. package/dist/_chunks/tr-CarUU76c.js +0 -66
  357. package/dist/_chunks/tr-CarUU76c.js.map +0 -1
  358. package/dist/_chunks/tr-Dw_jmkG-.mjs +0 -66
  359. package/dist/_chunks/tr-Dw_jmkG-.mjs.map +0 -1
  360. package/dist/_chunks/zh-57YM4amO.mjs +0 -66
  361. package/dist/_chunks/zh-57YM4amO.mjs.map +0 -1
  362. package/dist/_chunks/zh-CukOviB0.js +0 -66
  363. package/dist/_chunks/zh-CukOviB0.js.map +0 -1
  364. package/dist/_chunks/zh-Hans-DSHIXAa3.js +0 -57
  365. package/dist/_chunks/zh-Hans-DSHIXAa3.js.map +0 -1
  366. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs +0 -57
  367. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-locales.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var index = require('./locale/index.js');
4
+
5
+ var contentTypes = {
6
+ locale: index
7
+ };
8
+
9
+ module.exports = contentTypes;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/content-types/index.ts"],"sourcesContent":["import locale from './locale';\n\nexport default {\n locale,\n};\n"],"names":["locale"],"mappings":";;;;AAEA,mBAAe;AACbA,YAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,8 @@
1
+ import locale from './locale/index.mjs';
2
+
3
+ var contentTypes = {
4
+ locale
5
+ };
6
+
7
+ export { contentTypes as default };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/content-types/index.ts"],"sourcesContent":["import locale from './locale';\n\nexport default {\n locale,\n};\n"],"names":["locale"],"mappings":";;AAEA,mBAAe;AACbA,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var schema = require('./schema.json.js');
4
+
5
+ var locale = {
6
+ schema: schema.default
7
+ };
8
+
9
+ module.exports = locale;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/content-types/locale/index.ts"],"sourcesContent":["import schema from './schema.json';\n\nexport default {\n schema,\n};\n"],"names":["schema"],"mappings":";;;;AAEA,aAAe;AACbA,YAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,8 @@
1
+ import schema from './schema.json.mjs';
2
+
3
+ var locale = {
4
+ schema
5
+ };
6
+
7
+ export { locale as default };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/content-types/locale/index.ts"],"sourcesContent":["import schema from './schema.json';\n\nexport default {\n schema,\n};\n"],"names":["schema"],"mappings":";;AAEA,aAAe;AACbA,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var info = {
6
+ singularName: "locale",
7
+ pluralName: "locales",
8
+ collectionName: "locales",
9
+ displayName: "Locale",
10
+ description: ""
11
+ };
12
+ var options = {};
13
+ var pluginOptions = {
14
+ "content-manager": {
15
+ visible: false
16
+ },
17
+ "content-type-builder": {
18
+ visible: false
19
+ }
20
+ };
21
+ var attributes = {
22
+ name: {
23
+ type: "string",
24
+ min: 1,
25
+ max: 50,
26
+ configurable: false
27
+ },
28
+ code: {
29
+ type: "string",
30
+ unique: true,
31
+ configurable: false
32
+ }
33
+ };
34
+ var schema = {
35
+ info: info,
36
+ options: options,
37
+ pluginOptions: pluginOptions,
38
+ attributes: attributes
39
+ };
40
+
41
+ exports.attributes = attributes;
42
+ exports.default = schema;
43
+ exports.info = info;
44
+ exports.options = options;
45
+ exports.pluginOptions = pluginOptions;
46
+ //# sourceMappingURL=schema.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,38 @@
1
+ var info = {
2
+ singularName: "locale",
3
+ pluralName: "locales",
4
+ collectionName: "locales",
5
+ displayName: "Locale",
6
+ description: ""
7
+ };
8
+ var options = {};
9
+ var pluginOptions = {
10
+ "content-manager": {
11
+ visible: false
12
+ },
13
+ "content-type-builder": {
14
+ visible: false
15
+ }
16
+ };
17
+ var attributes = {
18
+ name: {
19
+ type: "string",
20
+ min: 1,
21
+ max: 50,
22
+ configurable: false
23
+ },
24
+ code: {
25
+ type: "string",
26
+ unique: true,
27
+ configurable: false
28
+ }
29
+ };
30
+ var schema = {
31
+ info: info,
32
+ options: options,
33
+ pluginOptions: pluginOptions,
34
+ attributes: attributes
35
+ };
36
+
37
+ export { attributes, schema as default, info, options, pluginOptions };
38
+ //# sourceMappingURL=schema.json.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+ var index = require('../utils/index.js');
6
+ var contentTypes = require('../validation/content-types.js');
7
+
8
+ const { ApplicationError } = utils.errors;
9
+ const { PUBLISHED_AT_ATTRIBUTE } = utils.contentTypes.constants;
10
+ const getLocalesProperty = fp.getOr([], 'properties.locales');
11
+ const getFieldsProperty = fp.prop('properties.fields');
12
+ const getFirstLevelPath = fp.map((path)=>path.split('.')[0]);
13
+ const controller = {
14
+ async getNonLocalizedAttributes (ctx) {
15
+ const { user } = ctx.state;
16
+ const body = ctx.request.body;
17
+ const { model, id, locale } = body;
18
+ await contentTypes.validateGetNonLocalizedAttributesInput({
19
+ model,
20
+ id,
21
+ locale
22
+ });
23
+ const { copyNonLocalizedAttributes, isLocalizedContentType, getNestedPopulateOfNonLocalizedAttributes } = index.getService('content-types');
24
+ const { default: { READ_ACTION, CREATE_ACTION } } = strapi.service('admin::constants');
25
+ const modelDef = strapi.contentType(model);
26
+ const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(model);
27
+ if (!isLocalizedContentType(modelDef)) {
28
+ throw new ApplicationError(`Model ${model} is not localized`);
29
+ }
30
+ const params = modelDef.kind === 'singleType' ? {} : {
31
+ id
32
+ };
33
+ const entity = await strapi.db.query(model).findOne({
34
+ where: params,
35
+ populate: attributesToPopulate
36
+ });
37
+ if (!entity) {
38
+ return ctx.notFound();
39
+ }
40
+ const permissions = await strapi.admin.services.permission.findMany({
41
+ where: {
42
+ action: [
43
+ READ_ACTION,
44
+ CREATE_ACTION
45
+ ],
46
+ subject: model,
47
+ role: {
48
+ id: user.roles.map(fp.prop('id'))
49
+ }
50
+ }
51
+ });
52
+ const localePermissions = permissions.filter((perm)=>getLocalesProperty(perm).includes(locale)).map(getFieldsProperty);
53
+ const permittedFields = fp.pipe(fp.flatten, getFirstLevelPath, fp.uniq)(localePermissions);
54
+ const nonLocalizedFields = copyNonLocalizedAttributes(modelDef, entity);
55
+ const sanitizedNonLocalizedFields = fp.pick(permittedFields, nonLocalizedFields);
56
+ const availableLocalesResult = await strapi.plugins['content-manager'].service('document-metadata').getMetadata(model, entity, {
57
+ availableLocales: true
58
+ });
59
+ const availableLocales = availableLocalesResult.availableLocales.map((localeResult)=>fp.pick([
60
+ 'id',
61
+ 'locale',
62
+ PUBLISHED_AT_ATTRIBUTE
63
+ ], localeResult));
64
+ ctx.body = {
65
+ nonLocalizedFields: sanitizedNonLocalizedFields,
66
+ localizations: availableLocales.concat(fp.pick([
67
+ 'id',
68
+ 'locale',
69
+ PUBLISHED_AT_ATTRIBUTE
70
+ ], entity))
71
+ };
72
+ }
73
+ };
74
+
75
+ module.exports = controller;
76
+ //# sourceMappingURL=content-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.js","sources":["../../../server/src/controllers/content-types.ts"],"sourcesContent":["import { pick, uniq, prop, getOr, flatten, pipe, map } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils, errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getService } from '../utils';\nimport { validateGetNonLocalizedAttributesInput } from '../validation/content-types';\n\nconst { ApplicationError } = errors;\n\nconst { PUBLISHED_AT_ATTRIBUTE } = contentTypesUtils.constants;\n\nconst getLocalesProperty = getOr<string[]>([], 'properties.locales');\nconst getFieldsProperty = prop('properties.fields');\n\nconst getFirstLevelPath = map((path: string) => path.split('.')[0]);\n\nconst controller = {\n async getNonLocalizedAttributes(ctx) {\n const { user } = ctx.state;\n const body = ctx.request.body as any;\n const { model, id, locale } = body;\n\n await validateGetNonLocalizedAttributesInput({ model, id, locale });\n\n const {\n copyNonLocalizedAttributes,\n isLocalizedContentType,\n getNestedPopulateOfNonLocalizedAttributes,\n } = getService('content-types');\n\n const {\n default: { READ_ACTION, CREATE_ACTION },\n } = strapi.service('admin::constants');\n\n const modelDef = strapi.contentType(model);\n const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(model);\n\n if (!isLocalizedContentType(modelDef)) {\n throw new ApplicationError(`Model ${model} is not localized`);\n }\n\n const params = modelDef.kind === 'singleType' ? {} : { id };\n\n const entity = await strapi.db\n .query(model)\n .findOne({ where: params, populate: attributesToPopulate });\n\n if (!entity) {\n return ctx.notFound();\n }\n\n const permissions = await strapi.admin.services.permission.findMany({\n where: {\n action: [READ_ACTION, CREATE_ACTION],\n subject: model,\n role: {\n id: user.roles.map(prop('id')),\n },\n },\n });\n\n const localePermissions = permissions\n .filter((perm: any) => getLocalesProperty(perm).includes(locale))\n .map(getFieldsProperty);\n\n const permittedFields = pipe(flatten, getFirstLevelPath, uniq)(localePermissions);\n\n const nonLocalizedFields = copyNonLocalizedAttributes(modelDef, entity);\n const sanitizedNonLocalizedFields = pick(permittedFields, nonLocalizedFields);\n\n const availableLocalesResult = await strapi.plugins['content-manager']\n .service('document-metadata')\n .getMetadata(model, entity, {\n availableLocales: true,\n });\n\n const availableLocales = availableLocalesResult.availableLocales.map((localeResult: any) =>\n pick(['id', 'locale', PUBLISHED_AT_ATTRIBUTE], localeResult)\n );\n\n ctx.body = {\n nonLocalizedFields: sanitizedNonLocalizedFields,\n localizations: availableLocales.concat(\n pick(['id', 'locale', PUBLISHED_AT_ATTRIBUTE], entity)\n ),\n };\n },\n} satisfies Core.Controller;\n\nexport default controller;\n"],"names":["ApplicationError","errors","PUBLISHED_AT_ATTRIBUTE","contentTypesUtils","constants","getLocalesProperty","getOr","getFieldsProperty","prop","getFirstLevelPath","map","path","split","controller","getNonLocalizedAttributes","ctx","user","state","body","request","model","id","locale","validateGetNonLocalizedAttributesInput","copyNonLocalizedAttributes","isLocalizedContentType","getNestedPopulateOfNonLocalizedAttributes","getService","default","READ_ACTION","CREATE_ACTION","strapi","service","modelDef","contentType","attributesToPopulate","params","kind","entity","db","query","findOne","where","populate","notFound","permissions","admin","services","permission","findMany","action","subject","role","roles","localePermissions","filter","perm","includes","permittedFields","pipe","flatten","uniq","nonLocalizedFields","sanitizedNonLocalizedFields","pick","availableLocalesResult","plugins","getMetadata","availableLocales","localeResult","localizations","concat"],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { getOr, prop, map, pipe, flatten, uniq, pick } from 'lodash/fp';
2
+ import { contentTypes, errors } from '@strapi/utils';
3
+ import { getService } from '../utils/index.mjs';
4
+ import { validateGetNonLocalizedAttributesInput } from '../validation/content-types.mjs';
5
+
6
+ const { ApplicationError } = errors;
7
+ const { PUBLISHED_AT_ATTRIBUTE } = contentTypes.constants;
8
+ const getLocalesProperty = getOr([], 'properties.locales');
9
+ const getFieldsProperty = prop('properties.fields');
10
+ const getFirstLevelPath = map((path)=>path.split('.')[0]);
11
+ const controller = {
12
+ async getNonLocalizedAttributes (ctx) {
13
+ const { user } = ctx.state;
14
+ const body = ctx.request.body;
15
+ const { model, id, locale } = body;
16
+ await validateGetNonLocalizedAttributesInput({
17
+ model,
18
+ id,
19
+ locale
20
+ });
21
+ const { copyNonLocalizedAttributes, isLocalizedContentType, getNestedPopulateOfNonLocalizedAttributes } = getService('content-types');
22
+ const { default: { READ_ACTION, CREATE_ACTION } } = strapi.service('admin::constants');
23
+ const modelDef = strapi.contentType(model);
24
+ const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(model);
25
+ if (!isLocalizedContentType(modelDef)) {
26
+ throw new ApplicationError(`Model ${model} is not localized`);
27
+ }
28
+ const params = modelDef.kind === 'singleType' ? {} : {
29
+ id
30
+ };
31
+ const entity = await strapi.db.query(model).findOne({
32
+ where: params,
33
+ populate: attributesToPopulate
34
+ });
35
+ if (!entity) {
36
+ return ctx.notFound();
37
+ }
38
+ const permissions = await strapi.admin.services.permission.findMany({
39
+ where: {
40
+ action: [
41
+ READ_ACTION,
42
+ CREATE_ACTION
43
+ ],
44
+ subject: model,
45
+ role: {
46
+ id: user.roles.map(prop('id'))
47
+ }
48
+ }
49
+ });
50
+ const localePermissions = permissions.filter((perm)=>getLocalesProperty(perm).includes(locale)).map(getFieldsProperty);
51
+ const permittedFields = pipe(flatten, getFirstLevelPath, uniq)(localePermissions);
52
+ const nonLocalizedFields = copyNonLocalizedAttributes(modelDef, entity);
53
+ const sanitizedNonLocalizedFields = pick(permittedFields, nonLocalizedFields);
54
+ const availableLocalesResult = await strapi.plugins['content-manager'].service('document-metadata').getMetadata(model, entity, {
55
+ availableLocales: true
56
+ });
57
+ const availableLocales = availableLocalesResult.availableLocales.map((localeResult)=>pick([
58
+ 'id',
59
+ 'locale',
60
+ PUBLISHED_AT_ATTRIBUTE
61
+ ], localeResult));
62
+ ctx.body = {
63
+ nonLocalizedFields: sanitizedNonLocalizedFields,
64
+ localizations: availableLocales.concat(pick([
65
+ 'id',
66
+ 'locale',
67
+ PUBLISHED_AT_ATTRIBUTE
68
+ ], entity))
69
+ };
70
+ }
71
+ };
72
+
73
+ export { controller as default };
74
+ //# sourceMappingURL=content-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.mjs","sources":["../../../server/src/controllers/content-types.ts"],"sourcesContent":["import { pick, uniq, prop, getOr, flatten, pipe, map } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils, errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getService } from '../utils';\nimport { validateGetNonLocalizedAttributesInput } from '../validation/content-types';\n\nconst { ApplicationError } = errors;\n\nconst { PUBLISHED_AT_ATTRIBUTE } = contentTypesUtils.constants;\n\nconst getLocalesProperty = getOr<string[]>([], 'properties.locales');\nconst getFieldsProperty = prop('properties.fields');\n\nconst getFirstLevelPath = map((path: string) => path.split('.')[0]);\n\nconst controller = {\n async getNonLocalizedAttributes(ctx) {\n const { user } = ctx.state;\n const body = ctx.request.body as any;\n const { model, id, locale } = body;\n\n await validateGetNonLocalizedAttributesInput({ model, id, locale });\n\n const {\n copyNonLocalizedAttributes,\n isLocalizedContentType,\n getNestedPopulateOfNonLocalizedAttributes,\n } = getService('content-types');\n\n const {\n default: { READ_ACTION, CREATE_ACTION },\n } = strapi.service('admin::constants');\n\n const modelDef = strapi.contentType(model);\n const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(model);\n\n if (!isLocalizedContentType(modelDef)) {\n throw new ApplicationError(`Model ${model} is not localized`);\n }\n\n const params = modelDef.kind === 'singleType' ? {} : { id };\n\n const entity = await strapi.db\n .query(model)\n .findOne({ where: params, populate: attributesToPopulate });\n\n if (!entity) {\n return ctx.notFound();\n }\n\n const permissions = await strapi.admin.services.permission.findMany({\n where: {\n action: [READ_ACTION, CREATE_ACTION],\n subject: model,\n role: {\n id: user.roles.map(prop('id')),\n },\n },\n });\n\n const localePermissions = permissions\n .filter((perm: any) => getLocalesProperty(perm).includes(locale))\n .map(getFieldsProperty);\n\n const permittedFields = pipe(flatten, getFirstLevelPath, uniq)(localePermissions);\n\n const nonLocalizedFields = copyNonLocalizedAttributes(modelDef, entity);\n const sanitizedNonLocalizedFields = pick(permittedFields, nonLocalizedFields);\n\n const availableLocalesResult = await strapi.plugins['content-manager']\n .service('document-metadata')\n .getMetadata(model, entity, {\n availableLocales: true,\n });\n\n const availableLocales = availableLocalesResult.availableLocales.map((localeResult: any) =>\n pick(['id', 'locale', PUBLISHED_AT_ATTRIBUTE], localeResult)\n );\n\n ctx.body = {\n nonLocalizedFields: sanitizedNonLocalizedFields,\n localizations: availableLocales.concat(\n pick(['id', 'locale', PUBLISHED_AT_ATTRIBUTE], entity)\n ),\n };\n },\n} satisfies Core.Controller;\n\nexport default controller;\n"],"names":["ApplicationError","errors","PUBLISHED_AT_ATTRIBUTE","contentTypesUtils","constants","getLocalesProperty","getOr","getFieldsProperty","prop","getFirstLevelPath","map","path","split","controller","getNonLocalizedAttributes","ctx","user","state","body","request","model","id","locale","validateGetNonLocalizedAttributesInput","copyNonLocalizedAttributes","isLocalizedContentType","getNestedPopulateOfNonLocalizedAttributes","getService","default","READ_ACTION","CREATE_ACTION","strapi","service","modelDef","contentType","attributesToPopulate","params","kind","entity","db","query","findOne","where","populate","notFound","permissions","admin","services","permission","findMany","action","subject","role","roles","localePermissions","filter","perm","includes","permittedFields","pipe","flatten","uniq","nonLocalizedFields","sanitizedNonLocalizedFields","pick","availableLocalesResult","plugins","getMetadata","availableLocales","localeResult","localizations","concat"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var locales = require('./locales.js');
4
+ var contentTypes = require('./content-types.js');
5
+ var isoLocales = require('./iso-locales.js');
6
+
7
+ var controllers = {
8
+ locales,
9
+ 'iso-locales': isoLocales,
10
+ 'content-types': contentTypes
11
+ };
12
+
13
+ module.exports = controllers;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import locales from './locales';\nimport contentTypes from './content-types';\nimport isoLocales from './iso-locales';\n\nexport default {\n locales,\n 'iso-locales': isoLocales,\n 'content-types': contentTypes,\n};\n"],"names":["locales","isoLocales","contentTypes"],"mappings":";;;;;;AAIA,kBAAe;AACbA,IAAAA,OAAAA;IACA,aAAeC,EAAAA,UAAAA;IACf,eAAiBC,EAAAA;AACnB,CAAE;;;;"}
@@ -0,0 +1,12 @@
1
+ import controller from './locales.mjs';
2
+ import controller$2 from './content-types.mjs';
3
+ import controller$1 from './iso-locales.mjs';
4
+
5
+ var controllers = {
6
+ locales: controller,
7
+ 'iso-locales': controller$1,
8
+ 'content-types': controller$2
9
+ };
10
+
11
+ export { controllers as default };
12
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import locales from './locales';\nimport contentTypes from './content-types';\nimport isoLocales from './iso-locales';\n\nexport default {\n locales,\n 'iso-locales': isoLocales,\n 'content-types': contentTypes,\n};\n"],"names":["locales","isoLocales","contentTypes"],"mappings":";;;;AAIA,kBAAe;AACbA,aAAAA,UAAAA;IACA,aAAeC,EAAAA,YAAAA;IACf,eAAiBC,EAAAA;AACnB,CAAE;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var index = require('../utils/index.js');
4
+
5
+ const controller = {
6
+ listIsoLocales (ctx) {
7
+ const isoLocalesService = index.getService('iso-locales');
8
+ ctx.body = isoLocalesService.getIsoLocales();
9
+ }
10
+ };
11
+
12
+ module.exports = controller;
13
+ //# sourceMappingURL=iso-locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-locales.js","sources":["../../../server/src/controllers/iso-locales.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst controller: Core.Controller = {\n listIsoLocales(ctx) {\n const isoLocalesService = getService('iso-locales');\n\n ctx.body = isoLocalesService.getIsoLocales();\n },\n};\n\nexport default controller;\n"],"names":["controller","listIsoLocales","ctx","isoLocalesService","getService","body","getIsoLocales"],"mappings":";;;;AAGA,MAAMA,UAA8B,GAAA;AAClCC,IAAAA,cAAAA,CAAAA,CAAeC,GAAG,EAAA;AAChB,QAAA,MAAMC,oBAAoBC,gBAAW,CAAA,aAAA,CAAA;QAErCF,GAAIG,CAAAA,IAAI,GAAGF,iBAAAA,CAAkBG,aAAa,EAAA;AAC5C;AACF;;;;"}
@@ -0,0 +1,11 @@
1
+ import { getService } from '../utils/index.mjs';
2
+
3
+ const controller = {
4
+ listIsoLocales (ctx) {
5
+ const isoLocalesService = getService('iso-locales');
6
+ ctx.body = isoLocalesService.getIsoLocales();
7
+ }
8
+ };
9
+
10
+ export { controller as default };
11
+ //# sourceMappingURL=iso-locales.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-locales.mjs","sources":["../../../server/src/controllers/iso-locales.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst controller: Core.Controller = {\n listIsoLocales(ctx) {\n const isoLocalesService = getService('iso-locales');\n\n ctx.body = isoLocalesService.getIsoLocales();\n },\n};\n\nexport default controller;\n"],"names":["controller","listIsoLocales","ctx","isoLocalesService","getService","body","getIsoLocales"],"mappings":";;AAGA,MAAMA,UAA8B,GAAA;AAClCC,IAAAA,cAAAA,CAAAA,CAAeC,GAAG,EAAA;AAChB,QAAA,MAAMC,oBAAoBC,UAAW,CAAA,aAAA,CAAA;QAErCF,GAAIG,CAAAA,IAAI,GAAGF,iBAAAA,CAAkBG,aAAa,EAAA;AAC5C;AACF;;;;"}
@@ -0,0 +1,108 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var fp = require('lodash/fp');
5
+ var index = require('../utils/index.js');
6
+ var locales = require('../validation/locales.js');
7
+ var locale = require('../domain/locale.js');
8
+
9
+ function _interopNamespaceDefault(e) {
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var utils__namespace = /*#__PURE__*/_interopNamespaceDefault(utils);
27
+
28
+ const { setCreatorFields } = utils__namespace;
29
+ const { ApplicationError } = utils__namespace.errors;
30
+ const sanitizeLocale = (locale)=>{
31
+ const model = strapi.getModel('plugin::i18n.locale');
32
+ return strapi.contentAPI.sanitize.output(locale, model);
33
+ };
34
+ const controller = {
35
+ async listLocales (ctx) {
36
+ const localesService = index.getService('locales');
37
+ const locales = await localesService.find();
38
+ const sanitizedLocales = await sanitizeLocale(locales);
39
+ ctx.body = await localesService.setIsDefault(sanitizedLocales);
40
+ },
41
+ async createLocale (ctx) {
42
+ const { user } = ctx.state;
43
+ const body = ctx.request.body;
44
+ const { isDefault, ...localeToCreate } = body;
45
+ await locales.validateCreateLocaleInput(body);
46
+ const localesService = index.getService('locales');
47
+ const existingLocale = await localesService.findByCode(body.code);
48
+ if (existingLocale) {
49
+ throw new ApplicationError('This locale already exists');
50
+ }
51
+ const localeToPersist = setCreatorFields({
52
+ user
53
+ })(locale.formatLocale(localeToCreate));
54
+ const locale$1 = await localesService.create(localeToPersist);
55
+ if (isDefault) {
56
+ await localesService.setDefaultLocale(locale$1);
57
+ }
58
+ const sanitizedLocale = await sanitizeLocale(locale$1);
59
+ ctx.body = await localesService.setIsDefault(sanitizedLocale);
60
+ },
61
+ async updateLocale (ctx) {
62
+ const { user } = ctx.state;
63
+ const { id } = ctx.params;
64
+ const body = ctx.request.body;
65
+ const { isDefault, ...updates } = body;
66
+ await locales.validateUpdateLocaleInput(body);
67
+ const localesService = index.getService('locales');
68
+ const existingLocale = await localesService.findById(id);
69
+ if (!existingLocale) {
70
+ return ctx.notFound('locale.notFound');
71
+ }
72
+ const allowedParams = [
73
+ 'name'
74
+ ];
75
+ const cleanUpdates = setCreatorFields({
76
+ user,
77
+ isEdition: true
78
+ })(fp.pick(allowedParams, updates));
79
+ const updatedLocale = await localesService.update({
80
+ id
81
+ }, cleanUpdates);
82
+ if (isDefault) {
83
+ await localesService.setDefaultLocale(updatedLocale);
84
+ }
85
+ const sanitizedLocale = await sanitizeLocale(updatedLocale);
86
+ ctx.body = await localesService.setIsDefault(sanitizedLocale);
87
+ },
88
+ async deleteLocale (ctx) {
89
+ const { id } = ctx.params;
90
+ const localesService = index.getService('locales');
91
+ const existingLocale = await localesService.findById(id);
92
+ if (!existingLocale) {
93
+ return ctx.notFound('locale.notFound');
94
+ }
95
+ const defaultLocaleCode = await localesService.getDefaultLocale();
96
+ if (existingLocale.code === defaultLocaleCode) {
97
+ throw new ApplicationError('Cannot delete the default locale');
98
+ }
99
+ await localesService.delete({
100
+ id
101
+ });
102
+ const sanitizedLocale = await sanitizeLocale(existingLocale);
103
+ ctx.body = await localesService.setIsDefault(sanitizedLocale);
104
+ }
105
+ };
106
+
107
+ module.exports = controller;
108
+ //# sourceMappingURL=locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locales.js","sources":["../../../server/src/controllers/locales.ts"],"sourcesContent":["import * as utils from '@strapi/utils';\nimport { pick } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { getService } from '../utils';\nimport { validateCreateLocaleInput, validateUpdateLocaleInput } from '../validation/locales';\nimport { formatLocale } from '../domain/locale';\n\nconst { setCreatorFields } = utils;\nconst { ApplicationError } = utils.errors;\n\nconst sanitizeLocale = (locale: any) => {\n const model = strapi.getModel('plugin::i18n.locale');\n\n return strapi.contentAPI.sanitize.output(locale, model);\n};\n\nconst controller: Core.Controller = {\n async listLocales(ctx) {\n const localesService = getService('locales');\n\n const locales = await localesService.find();\n const sanitizedLocales = await sanitizeLocale(locales);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocales);\n },\n\n async createLocale(ctx) {\n const { user } = ctx.state;\n const body = ctx.request.body as any;\n const { isDefault, ...localeToCreate } = body;\n\n await validateCreateLocaleInput(body);\n\n const localesService = getService('locales');\n\n const existingLocale = await localesService.findByCode(body.code);\n if (existingLocale) {\n throw new ApplicationError('This locale already exists');\n }\n\n const localeToPersist = setCreatorFields({ user })(formatLocale(localeToCreate));\n\n const locale = await localesService.create(localeToPersist);\n\n if (isDefault) {\n await localesService.setDefaultLocale(locale);\n }\n\n const sanitizedLocale = await sanitizeLocale(locale);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocale);\n },\n\n async updateLocale(ctx) {\n const { user } = ctx.state;\n const { id } = ctx.params;\n const body = ctx.request.body as any;\n const { isDefault, ...updates } = body;\n\n await validateUpdateLocaleInput(body);\n\n const localesService = getService('locales');\n\n const existingLocale = await localesService.findById(id);\n if (!existingLocale) {\n return ctx.notFound('locale.notFound');\n }\n\n const allowedParams = ['name'];\n const cleanUpdates = setCreatorFields({ user, isEdition: true })(pick(allowedParams, updates));\n\n const updatedLocale = await localesService.update({ id }, cleanUpdates);\n\n if (isDefault) {\n await localesService.setDefaultLocale(updatedLocale);\n }\n\n const sanitizedLocale = await sanitizeLocale(updatedLocale);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocale);\n },\n\n async deleteLocale(ctx) {\n const { id } = ctx.params;\n\n const localesService = getService('locales');\n\n const existingLocale = await localesService.findById(id);\n if (!existingLocale) {\n return ctx.notFound('locale.notFound');\n }\n\n const defaultLocaleCode = await localesService.getDefaultLocale();\n if (existingLocale.code === defaultLocaleCode) {\n throw new ApplicationError('Cannot delete the default locale');\n }\n\n await localesService.delete({ id });\n\n const sanitizedLocale = await sanitizeLocale(existingLocale);\n\n ctx.body = await localesService.setIsDefault(sanitizedLocale);\n },\n};\n\nexport default controller;\n"],"names":["setCreatorFields","utils","ApplicationError","errors","sanitizeLocale","locale","model","strapi","getModel","contentAPI","sanitize","output","controller","listLocales","ctx","localesService","getService","locales","find","sanitizedLocales","body","setIsDefault","createLocale","user","state","request","isDefault","localeToCreate","validateCreateLocaleInput","existingLocale","findByCode","code","localeToPersist","formatLocale","create","setDefaultLocale","sanitizedLocale","updateLocale","id","params","updates","validateUpdateLocaleInput","findById","notFound","allowedParams","cleanUpdates","isEdition","pick","updatedLocale","update","deleteLocale","defaultLocaleCode","getDefaultLocale","delete"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import * as utils from '@strapi/utils';
2
+ import { pick } from 'lodash/fp';
3
+ import { getService } from '../utils/index.mjs';
4
+ import { validateCreateLocaleInput, validateUpdateLocaleInput } from '../validation/locales.mjs';
5
+ import { formatLocale } from '../domain/locale.mjs';
6
+
7
+ const { setCreatorFields } = utils;
8
+ const { ApplicationError } = utils.errors;
9
+ const sanitizeLocale = (locale)=>{
10
+ const model = strapi.getModel('plugin::i18n.locale');
11
+ return strapi.contentAPI.sanitize.output(locale, model);
12
+ };
13
+ const controller = {
14
+ async listLocales (ctx) {
15
+ const localesService = getService('locales');
16
+ const locales = await localesService.find();
17
+ const sanitizedLocales = await sanitizeLocale(locales);
18
+ ctx.body = await localesService.setIsDefault(sanitizedLocales);
19
+ },
20
+ async createLocale (ctx) {
21
+ const { user } = ctx.state;
22
+ const body = ctx.request.body;
23
+ const { isDefault, ...localeToCreate } = body;
24
+ await validateCreateLocaleInput(body);
25
+ const localesService = getService('locales');
26
+ const existingLocale = await localesService.findByCode(body.code);
27
+ if (existingLocale) {
28
+ throw new ApplicationError('This locale already exists');
29
+ }
30
+ const localeToPersist = setCreatorFields({
31
+ user
32
+ })(formatLocale(localeToCreate));
33
+ const locale = await localesService.create(localeToPersist);
34
+ if (isDefault) {
35
+ await localesService.setDefaultLocale(locale);
36
+ }
37
+ const sanitizedLocale = await sanitizeLocale(locale);
38
+ ctx.body = await localesService.setIsDefault(sanitizedLocale);
39
+ },
40
+ async updateLocale (ctx) {
41
+ const { user } = ctx.state;
42
+ const { id } = ctx.params;
43
+ const body = ctx.request.body;
44
+ const { isDefault, ...updates } = body;
45
+ await validateUpdateLocaleInput(body);
46
+ const localesService = getService('locales');
47
+ const existingLocale = await localesService.findById(id);
48
+ if (!existingLocale) {
49
+ return ctx.notFound('locale.notFound');
50
+ }
51
+ const allowedParams = [
52
+ 'name'
53
+ ];
54
+ const cleanUpdates = setCreatorFields({
55
+ user,
56
+ isEdition: true
57
+ })(pick(allowedParams, updates));
58
+ const updatedLocale = await localesService.update({
59
+ id
60
+ }, cleanUpdates);
61
+ if (isDefault) {
62
+ await localesService.setDefaultLocale(updatedLocale);
63
+ }
64
+ const sanitizedLocale = await sanitizeLocale(updatedLocale);
65
+ ctx.body = await localesService.setIsDefault(sanitizedLocale);
66
+ },
67
+ async deleteLocale (ctx) {
68
+ const { id } = ctx.params;
69
+ const localesService = getService('locales');
70
+ const existingLocale = await localesService.findById(id);
71
+ if (!existingLocale) {
72
+ return ctx.notFound('locale.notFound');
73
+ }
74
+ const defaultLocaleCode = await localesService.getDefaultLocale();
75
+ if (existingLocale.code === defaultLocaleCode) {
76
+ throw new ApplicationError('Cannot delete the default locale');
77
+ }
78
+ await localesService.delete({
79
+ id
80
+ });
81
+ const sanitizedLocale = await sanitizeLocale(existingLocale);
82
+ ctx.body = await localesService.setIsDefault(sanitizedLocale);
83
+ }
84
+ };
85
+
86
+ export { controller as default };
87
+ //# sourceMappingURL=locales.mjs.map