@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":"actions.mjs","sources":["../../../../server/src/services/permissions/actions.ts"],"sourcesContent":["import { isArray, getOr, prop } from 'lodash/fp';\nimport { getService } from '../../utils';\n\nconst actions = [\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Create',\n uid: 'locale.create',\n },\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Read',\n uid: 'locale.read',\n aliases: [\n { actionId: 'plugin::content-manager.explorer.read', subjects: ['plugin::i18n.locale'] },\n ],\n },\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Update',\n uid: 'locale.update',\n },\n {\n section: 'settings',\n category: 'Internationalization',\n subCategory: 'Locales',\n pluginName: 'i18n',\n displayName: 'Delete',\n uid: 'locale.delete',\n },\n];\n\nconst addLocalesPropertyIfNeeded = ({ value: action }: any) => {\n const {\n section,\n options: { applyToProperties },\n } = action;\n\n // Only add the locales property to contentTypes' actions\n if (section !== 'contentTypes') {\n return;\n }\n\n // If the 'locales' property is already declared within the applyToProperties array, then ignore the next steps\n if (isArray(applyToProperties) && applyToProperties.includes('locales')) {\n return;\n }\n\n // Add the 'locales' property to the applyToProperties array (create it if necessary)\n action.options.applyToProperties = isArray(applyToProperties)\n ? applyToProperties.concat('locales')\n : ['locales'];\n};\n\nconst shouldApplyLocalesPropertyToSubject = ({ property, subject }: any) => {\n if (property === 'locales') {\n const model = strapi.getModel(subject);\n\n return getService('content-types').isLocalizedContentType(model);\n }\n\n return true;\n};\n\nconst addAllLocalesToPermissions = async (permissions: any) => {\n const { actionProvider } = strapi.service('admin::permission');\n const { find: findAllLocales } = getService('locales');\n\n const allLocales = await findAllLocales();\n const allLocalesCode = allLocales.map(prop('code'));\n\n return Promise.all(\n permissions.map(async (permission: any) => {\n const { action, subject } = permission;\n\n const appliesToLocalesProperty = await actionProvider.appliesToProperty(\n 'locales',\n action,\n subject\n );\n\n if (!appliesToLocalesProperty) {\n return permission;\n }\n\n const oldPermissionProperties = getOr({}, 'properties', permission);\n\n return { ...permission, properties: { ...oldPermissionProperties, locales: allLocalesCode } };\n })\n );\n};\n\nconst syncSuperAdminPermissionsWithLocales = async () => {\n const roleService = strapi.service('admin::role');\n const permissionService = strapi.service('admin::permission');\n\n const superAdminRole = await roleService.getSuperAdmin();\n\n if (!superAdminRole) {\n return;\n }\n\n const superAdminPermissions = await permissionService.findMany({\n where: {\n role: {\n id: superAdminRole.id,\n },\n },\n });\n\n const newSuperAdminPermissions = await addAllLocalesToPermissions(superAdminPermissions);\n\n await roleService.assignPermissions(superAdminRole.id, newSuperAdminPermissions);\n};\n\nconst registerI18nActions = async () => {\n const { actionProvider } = strapi.service('admin::permission');\n\n await actionProvider.registerMany(actions);\n};\n\nconst registerI18nActionsHooks = () => {\n const { actionProvider } = strapi.service('admin::permission');\n const { hooks } = strapi.service('admin::role');\n\n actionProvider.hooks.appliesPropertyToSubject.register(shouldApplyLocalesPropertyToSubject);\n hooks.willResetSuperAdminPermissions.register(addAllLocalesToPermissions);\n};\n\nconst updateActionsProperties = () => {\n const { actionProvider } = strapi.service('admin::permission');\n\n // Register the transformation for every new action\n actionProvider.hooks.willRegister.register(addLocalesPropertyIfNeeded);\n\n // Handle already registered actions\n actionProvider.values().forEach((action: any) => addLocalesPropertyIfNeeded({ value: action }));\n};\n\nexport default {\n actions,\n registerI18nActions,\n registerI18nActionsHooks,\n updateActionsProperties,\n syncSuperAdminPermissionsWithLocales,\n};\n"],"names":["actions","section","category","subCategory","pluginName","displayName","uid","aliases","actionId","subjects","addLocalesPropertyIfNeeded","value","action","options","applyToProperties","isArray","includes","concat","shouldApplyLocalesPropertyToSubject","property","subject","model","strapi","getModel","getService","isLocalizedContentType","addAllLocalesToPermissions","permissions","actionProvider","service","find","findAllLocales","allLocales","allLocalesCode","map","prop","Promise","all","permission","appliesToLocalesProperty","appliesToProperty","oldPermissionProperties","getOr","properties","locales","syncSuperAdminPermissionsWithLocales","roleService","permissionService","superAdminRole","getSuperAdmin","superAdminPermissions","findMany","where","role","id","newSuperAdminPermissions","assignPermissions","registerI18nActions","registerMany","registerI18nActionsHooks","hooks","appliesPropertyToSubject","register","willResetSuperAdminPermissions","updateActionsProperties","willRegister","values","forEach"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var index = require('../../utils/index.js');
4
+
5
+ /**
6
+ * @typedef {object} WillRegisterPermissionContext
7
+ * @property {Permission} permission
8
+ * @property {object} user
9
+ * @property {object} condition
10
+ */ /**
11
+ * Locales property handler for the permission engine
12
+ * Add the has-locale-access condition if the locales property is defined
13
+ * @param {WillRegisterPermissionContext} context
14
+ */ const willRegisterPermission = (context)=>{
15
+ const { permission, condition, user } = context;
16
+ const { subject, properties } = permission;
17
+ const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);
18
+ if (isSuperAdmin) {
19
+ return;
20
+ }
21
+ const { locales } = properties || {};
22
+ const { isLocalizedContentType } = index.getService('content-types');
23
+ // If there is no subject defined, ignore the permission
24
+ if (!subject) {
25
+ return;
26
+ }
27
+ const ct = strapi.contentTypes[subject];
28
+ // If the subject exists but isn't localized, ignore the permission
29
+ if (!isLocalizedContentType(ct)) {
30
+ return;
31
+ }
32
+ // If the subject is localized but the locales property is null (access to all locales), ignore the permission
33
+ if (locales === null) {
34
+ return;
35
+ }
36
+ condition.and({
37
+ locale: {
38
+ $in: locales || []
39
+ }
40
+ });
41
+ };
42
+ const registerI18nPermissionsHandlers = ()=>{
43
+ const { engine } = strapi.service('admin::permission');
44
+ engine.hooks['before-register.permission'].register(willRegisterPermission);
45
+ };
46
+ var engineService = {
47
+ willRegisterPermission,
48
+ registerI18nPermissionsHandlers
49
+ };
50
+
51
+ module.exports = engineService;
52
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sources":["../../../../server/src/services/permissions/engine.ts"],"sourcesContent":["import { getService } from '../../utils';\n\n/**\n * @typedef {object} WillRegisterPermissionContext\n * @property {Permission} permission\n * @property {object} user\n * @property {object} condition\n */\n\n/**\n * Locales property handler for the permission engine\n * Add the has-locale-access condition if the locales property is defined\n * @param {WillRegisterPermissionContext} context\n */\nconst willRegisterPermission = (context: any) => {\n const { permission, condition, user } = context;\n const { subject, properties } = permission;\n\n const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);\n\n if (isSuperAdmin) {\n return;\n }\n\n const { locales } = properties || {};\n const { isLocalizedContentType } = getService('content-types');\n\n // If there is no subject defined, ignore the permission\n if (!subject) {\n return;\n }\n\n const ct = strapi.contentTypes[subject];\n\n // If the subject exists but isn't localized, ignore the permission\n if (!isLocalizedContentType(ct)) {\n return;\n }\n\n // If the subject is localized but the locales property is null (access to all locales), ignore the permission\n if (locales === null) {\n return;\n }\n\n condition.and({\n locale: {\n $in: locales || [],\n },\n });\n};\n\nconst registerI18nPermissionsHandlers = () => {\n const { engine } = strapi.service('admin::permission');\n\n engine.hooks['before-register.permission'].register(willRegisterPermission);\n};\n\nexport default {\n willRegisterPermission,\n registerI18nPermissionsHandlers,\n};\n"],"names":["willRegisterPermission","context","permission","condition","user","subject","properties","isSuperAdmin","strapi","service","hasSuperAdminRole","locales","isLocalizedContentType","getService","ct","contentTypes","and","locale","$in","registerI18nPermissionsHandlers","engine","hooks","register"],"mappings":";;;;AAEA;;;;;;;;;IAYA,MAAMA,yBAAyB,CAACC,OAAAA,GAAAA;AAC9B,IAAA,MAAM,EAAEC,UAAU,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGH,OAAAA;AACxC,IAAA,MAAM,EAAEI,OAAO,EAAEC,UAAU,EAAE,GAAGJ,UAAAA;AAEhC,IAAA,MAAMK,eAAeC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,iBAAiB,CAACN,IAAAA,CAAAA;AAErE,IAAA,IAAIG,YAAc,EAAA;AAChB,QAAA;AACF;AAEA,IAAA,MAAM,EAAEI,OAAO,EAAE,GAAGL,cAAc,EAAC;AACnC,IAAA,MAAM,EAAEM,sBAAsB,EAAE,GAAGC,gBAAW,CAAA,eAAA,CAAA;;AAG9C,IAAA,IAAI,CAACR,OAAS,EAAA;AACZ,QAAA;AACF;AAEA,IAAA,MAAMS,EAAKN,GAAAA,MAAAA,CAAOO,YAAY,CAACV,OAAQ,CAAA;;IAGvC,IAAI,CAACO,uBAAuBE,EAAK,CAAA,EAAA;AAC/B,QAAA;AACF;;AAGA,IAAA,IAAIH,YAAY,IAAM,EAAA;AACpB,QAAA;AACF;AAEAR,IAAAA,SAAAA,CAAUa,GAAG,CAAC;QACZC,MAAQ,EAAA;AACNC,YAAAA,GAAAA,EAAKP,WAAW;AAClB;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMQ,+BAAkC,GAAA,IAAA;AACtC,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGZ,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAElCW,IAAAA,MAAAA,CAAOC,KAAK,CAAC,4BAA6B,CAAA,CAACC,QAAQ,CAACtB,sBAAAA,CAAAA;AACtD,CAAA;AAEA,oBAAe;AACbA,IAAAA,sBAAAA;AACAmB,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,50 @@
1
+ import { getService } from '../../utils/index.mjs';
2
+
3
+ /**
4
+ * @typedef {object} WillRegisterPermissionContext
5
+ * @property {Permission} permission
6
+ * @property {object} user
7
+ * @property {object} condition
8
+ */ /**
9
+ * Locales property handler for the permission engine
10
+ * Add the has-locale-access condition if the locales property is defined
11
+ * @param {WillRegisterPermissionContext} context
12
+ */ const willRegisterPermission = (context)=>{
13
+ const { permission, condition, user } = context;
14
+ const { subject, properties } = permission;
15
+ const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);
16
+ if (isSuperAdmin) {
17
+ return;
18
+ }
19
+ const { locales } = properties || {};
20
+ const { isLocalizedContentType } = getService('content-types');
21
+ // If there is no subject defined, ignore the permission
22
+ if (!subject) {
23
+ return;
24
+ }
25
+ const ct = strapi.contentTypes[subject];
26
+ // If the subject exists but isn't localized, ignore the permission
27
+ if (!isLocalizedContentType(ct)) {
28
+ return;
29
+ }
30
+ // If the subject is localized but the locales property is null (access to all locales), ignore the permission
31
+ if (locales === null) {
32
+ return;
33
+ }
34
+ condition.and({
35
+ locale: {
36
+ $in: locales || []
37
+ }
38
+ });
39
+ };
40
+ const registerI18nPermissionsHandlers = ()=>{
41
+ const { engine } = strapi.service('admin::permission');
42
+ engine.hooks['before-register.permission'].register(willRegisterPermission);
43
+ };
44
+ var engineService = {
45
+ willRegisterPermission,
46
+ registerI18nPermissionsHandlers
47
+ };
48
+
49
+ export { engineService as default };
50
+ //# sourceMappingURL=engine.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.mjs","sources":["../../../../server/src/services/permissions/engine.ts"],"sourcesContent":["import { getService } from '../../utils';\n\n/**\n * @typedef {object} WillRegisterPermissionContext\n * @property {Permission} permission\n * @property {object} user\n * @property {object} condition\n */\n\n/**\n * Locales property handler for the permission engine\n * Add the has-locale-access condition if the locales property is defined\n * @param {WillRegisterPermissionContext} context\n */\nconst willRegisterPermission = (context: any) => {\n const { permission, condition, user } = context;\n const { subject, properties } = permission;\n\n const isSuperAdmin = strapi.service('admin::role').hasSuperAdminRole(user);\n\n if (isSuperAdmin) {\n return;\n }\n\n const { locales } = properties || {};\n const { isLocalizedContentType } = getService('content-types');\n\n // If there is no subject defined, ignore the permission\n if (!subject) {\n return;\n }\n\n const ct = strapi.contentTypes[subject];\n\n // If the subject exists but isn't localized, ignore the permission\n if (!isLocalizedContentType(ct)) {\n return;\n }\n\n // If the subject is localized but the locales property is null (access to all locales), ignore the permission\n if (locales === null) {\n return;\n }\n\n condition.and({\n locale: {\n $in: locales || [],\n },\n });\n};\n\nconst registerI18nPermissionsHandlers = () => {\n const { engine } = strapi.service('admin::permission');\n\n engine.hooks['before-register.permission'].register(willRegisterPermission);\n};\n\nexport default {\n willRegisterPermission,\n registerI18nPermissionsHandlers,\n};\n"],"names":["willRegisterPermission","context","permission","condition","user","subject","properties","isSuperAdmin","strapi","service","hasSuperAdminRole","locales","isLocalizedContentType","getService","ct","contentTypes","and","locale","$in","registerI18nPermissionsHandlers","engine","hooks","register"],"mappings":";;AAEA;;;;;;;;;IAYA,MAAMA,yBAAyB,CAACC,OAAAA,GAAAA;AAC9B,IAAA,MAAM,EAAEC,UAAU,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGH,OAAAA;AACxC,IAAA,MAAM,EAAEI,OAAO,EAAEC,UAAU,EAAE,GAAGJ,UAAAA;AAEhC,IAAA,MAAMK,eAAeC,MAAOC,CAAAA,OAAO,CAAC,aAAA,CAAA,CAAeC,iBAAiB,CAACN,IAAAA,CAAAA;AAErE,IAAA,IAAIG,YAAc,EAAA;AAChB,QAAA;AACF;AAEA,IAAA,MAAM,EAAEI,OAAO,EAAE,GAAGL,cAAc,EAAC;AACnC,IAAA,MAAM,EAAEM,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;;AAG9C,IAAA,IAAI,CAACR,OAAS,EAAA;AACZ,QAAA;AACF;AAEA,IAAA,MAAMS,EAAKN,GAAAA,MAAAA,CAAOO,YAAY,CAACV,OAAQ,CAAA;;IAGvC,IAAI,CAACO,uBAAuBE,EAAK,CAAA,EAAA;AAC/B,QAAA;AACF;;AAGA,IAAA,IAAIH,YAAY,IAAM,EAAA;AACpB,QAAA;AACF;AAEAR,IAAAA,SAAAA,CAAUa,GAAG,CAAC;QACZC,MAAQ,EAAA;AACNC,YAAAA,GAAAA,EAAKP,WAAW;AAClB;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMQ,+BAAkC,GAAA,IAAA;AACtC,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGZ,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAElCW,IAAAA,MAAAA,CAAOC,KAAK,CAAC,4BAA6B,CAAA,CAACC,QAAQ,CAACtB,sBAAAA,CAAAA;AACtD,CAAA;AAEA,oBAAe;AACbA,IAAAA,sBAAAA;AACAmB,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var index = require('../../utils/index.js');
5
+
6
+ /**
7
+ * Handler for the permissions layout (sections builder)
8
+ * Adds the locales property to the subjects
9
+ * @param {Action} action
10
+ * @param {ContentTypesSection} section
11
+ * @return {Promise<void>}
12
+ */ const localesPropertyHandler = async ({ action, section })=>{
13
+ const { actionProvider } = strapi.service('admin::permission');
14
+ const locales = await index.getService('locales').find();
15
+ // Do not add the locales property if there is none registered
16
+ if (fp.isEmpty(locales)) {
17
+ return;
18
+ }
19
+ for (const subject of section.subjects){
20
+ const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);
21
+ const hasLocalesProperty = subject.properties.find((property)=>property.value === 'locales');
22
+ if (applies && !hasLocalesProperty) {
23
+ subject.properties.push({
24
+ label: 'Locales',
25
+ value: 'locales',
26
+ children: locales.map(({ name, code })=>({
27
+ label: name || code,
28
+ value: code
29
+ }))
30
+ });
31
+ }
32
+ }
33
+ };
34
+ const registerLocalesPropertyHandler = ()=>{
35
+ const { sectionsBuilder } = strapi.service('admin::permission');
36
+ sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);
37
+ sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);
38
+ };
39
+ var sectionsBuilderService = {
40
+ localesPropertyHandler,
41
+ registerLocalesPropertyHandler
42
+ };
43
+
44
+ module.exports = sectionsBuilderService;
45
+ //# sourceMappingURL=sections-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections-builder.js","sources":["../../../../server/src/services/permissions/sections-builder.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\n/**\n * Handler for the permissions layout (sections builder)\n * Adds the locales property to the subjects\n * @param {Action} action\n * @param {ContentTypesSection} section\n * @return {Promise<void>}\n */\nconst localesPropertyHandler = async ({ action, section }: any) => {\n const { actionProvider } = strapi.service('admin::permission');\n\n const locales = await getService('locales').find();\n\n // Do not add the locales property if there is none registered\n if (isEmpty(locales)) {\n return;\n }\n\n for (const subject of section.subjects) {\n const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);\n const hasLocalesProperty = subject.properties.find(\n (property: any) => property.value === 'locales'\n );\n\n if (applies && !hasLocalesProperty) {\n subject.properties.push({\n label: 'Locales',\n value: 'locales',\n children: locales.map(({ name, code }: any) => ({ label: name || code, value: code })),\n });\n }\n }\n};\n\nconst registerLocalesPropertyHandler = () => {\n const { sectionsBuilder } = strapi.service('admin::permission');\n\n sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);\n sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);\n};\n\nexport default {\n localesPropertyHandler,\n registerLocalesPropertyHandler,\n};\n"],"names":["localesPropertyHandler","action","section","actionProvider","strapi","service","locales","getService","find","isEmpty","subject","subjects","applies","appliesToProperty","actionId","uid","hasLocalesProperty","properties","property","value","push","label","children","map","name","code","registerLocalesPropertyHandler","sectionsBuilder","addHandler"],"mappings":";;;;;AAIA;;;;;;AAMC,IACD,MAAMA,sBAAyB,GAAA,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAO,GAAA;AAC5D,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAE1C,IAAA,MAAMC,OAAU,GAAA,MAAMC,gBAAW,CAAA,SAAA,CAAA,CAAWC,IAAI,EAAA;;AAGhD,IAAA,IAAIC,WAAQH,OAAU,CAAA,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,KAAK,MAAMI,OAAAA,IAAWR,OAAQS,CAAAA,QAAQ,CAAE;QACtC,MAAMC,OAAAA,GAAU,MAAMT,cAAAA,CAAeU,iBAAiB,CAAC,WAAWZ,MAAOa,CAAAA,QAAQ,EAAEJ,OAAAA,CAAQK,GAAG,CAAA;QAC9F,MAAMC,kBAAAA,GAAqBN,OAAQO,CAAAA,UAAU,CAACT,IAAI,CAChD,CAACU,QAAAA,GAAkBA,QAASC,CAAAA,KAAK,KAAK,SAAA,CAAA;QAGxC,IAAIP,OAAAA,IAAW,CAACI,kBAAoB,EAAA;YAClCN,OAAQO,CAAAA,UAAU,CAACG,IAAI,CAAC;gBACtBC,KAAO,EAAA,SAAA;gBACPF,KAAO,EAAA,SAAA;gBACPG,QAAUhB,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAO,IAAM;AAAEJ,wBAAAA,KAAAA,EAAOG,IAAQC,IAAAA,IAAAA;wBAAMN,KAAOM,EAAAA;qBAAK,CAAA;AACrF,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMC,8BAAiC,GAAA,IAAA;AACrC,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAGvB,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;IAE3CsB,eAAgBC,CAAAA,UAAU,CAAC,aAAe5B,EAAAA,sBAAAA,CAAAA;IAC1C2B,eAAgBC,CAAAA,UAAU,CAAC,iBAAmB5B,EAAAA,sBAAAA,CAAAA;AAChD,CAAA;AAEA,6BAAe;AACbA,IAAAA,sBAAAA;AACA0B,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,43 @@
1
+ import { isEmpty } from 'lodash/fp';
2
+ import { getService } from '../../utils/index.mjs';
3
+
4
+ /**
5
+ * Handler for the permissions layout (sections builder)
6
+ * Adds the locales property to the subjects
7
+ * @param {Action} action
8
+ * @param {ContentTypesSection} section
9
+ * @return {Promise<void>}
10
+ */ const localesPropertyHandler = async ({ action, section })=>{
11
+ const { actionProvider } = strapi.service('admin::permission');
12
+ const locales = await getService('locales').find();
13
+ // Do not add the locales property if there is none registered
14
+ if (isEmpty(locales)) {
15
+ return;
16
+ }
17
+ for (const subject of section.subjects){
18
+ const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);
19
+ const hasLocalesProperty = subject.properties.find((property)=>property.value === 'locales');
20
+ if (applies && !hasLocalesProperty) {
21
+ subject.properties.push({
22
+ label: 'Locales',
23
+ value: 'locales',
24
+ children: locales.map(({ name, code })=>({
25
+ label: name || code,
26
+ value: code
27
+ }))
28
+ });
29
+ }
30
+ }
31
+ };
32
+ const registerLocalesPropertyHandler = ()=>{
33
+ const { sectionsBuilder } = strapi.service('admin::permission');
34
+ sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);
35
+ sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);
36
+ };
37
+ var sectionsBuilderService = {
38
+ localesPropertyHandler,
39
+ registerLocalesPropertyHandler
40
+ };
41
+
42
+ export { sectionsBuilderService as default };
43
+ //# sourceMappingURL=sections-builder.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections-builder.mjs","sources":["../../../../server/src/services/permissions/sections-builder.ts"],"sourcesContent":["import { isEmpty } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\n/**\n * Handler for the permissions layout (sections builder)\n * Adds the locales property to the subjects\n * @param {Action} action\n * @param {ContentTypesSection} section\n * @return {Promise<void>}\n */\nconst localesPropertyHandler = async ({ action, section }: any) => {\n const { actionProvider } = strapi.service('admin::permission');\n\n const locales = await getService('locales').find();\n\n // Do not add the locales property if there is none registered\n if (isEmpty(locales)) {\n return;\n }\n\n for (const subject of section.subjects) {\n const applies = await actionProvider.appliesToProperty('locales', action.actionId, subject.uid);\n const hasLocalesProperty = subject.properties.find(\n (property: any) => property.value === 'locales'\n );\n\n if (applies && !hasLocalesProperty) {\n subject.properties.push({\n label: 'Locales',\n value: 'locales',\n children: locales.map(({ name, code }: any) => ({ label: name || code, value: code })),\n });\n }\n }\n};\n\nconst registerLocalesPropertyHandler = () => {\n const { sectionsBuilder } = strapi.service('admin::permission');\n\n sectionsBuilder.addHandler('singleTypes', localesPropertyHandler);\n sectionsBuilder.addHandler('collectionTypes', localesPropertyHandler);\n};\n\nexport default {\n localesPropertyHandler,\n registerLocalesPropertyHandler,\n};\n"],"names":["localesPropertyHandler","action","section","actionProvider","strapi","service","locales","getService","find","isEmpty","subject","subjects","applies","appliesToProperty","actionId","uid","hasLocalesProperty","properties","property","value","push","label","children","map","name","code","registerLocalesPropertyHandler","sectionsBuilder","addHandler"],"mappings":";;;AAIA;;;;;;AAMC,IACD,MAAMA,sBAAyB,GAAA,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAO,GAAA;AAC5D,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;AAE1C,IAAA,MAAMC,OAAU,GAAA,MAAMC,UAAW,CAAA,SAAA,CAAA,CAAWC,IAAI,EAAA;;AAGhD,IAAA,IAAIC,QAAQH,OAAU,CAAA,EAAA;AACpB,QAAA;AACF;AAEA,IAAA,KAAK,MAAMI,OAAAA,IAAWR,OAAQS,CAAAA,QAAQ,CAAE;QACtC,MAAMC,OAAAA,GAAU,MAAMT,cAAAA,CAAeU,iBAAiB,CAAC,WAAWZ,MAAOa,CAAAA,QAAQ,EAAEJ,OAAAA,CAAQK,GAAG,CAAA;QAC9F,MAAMC,kBAAAA,GAAqBN,OAAQO,CAAAA,UAAU,CAACT,IAAI,CAChD,CAACU,QAAAA,GAAkBA,QAASC,CAAAA,KAAK,KAAK,SAAA,CAAA;QAGxC,IAAIP,OAAAA,IAAW,CAACI,kBAAoB,EAAA;YAClCN,OAAQO,CAAAA,UAAU,CAACG,IAAI,CAAC;gBACtBC,KAAO,EAAA,SAAA;gBACPF,KAAO,EAAA,SAAA;gBACPG,QAAUhB,EAAAA,OAAAA,CAAQiB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAO,IAAM;AAAEJ,wBAAAA,KAAAA,EAAOG,IAAQC,IAAAA,IAAAA;wBAAMN,KAAOM,EAAAA;qBAAK,CAAA;AACrF,aAAA,CAAA;AACF;AACF;AACF,CAAA;AAEA,MAAMC,8BAAiC,GAAA,IAAA;AACrC,IAAA,MAAM,EAAEC,eAAe,EAAE,GAAGvB,MAAAA,CAAOC,OAAO,CAAC,mBAAA,CAAA;IAE3CsB,eAAgBC,CAAAA,UAAU,CAAC,aAAe5B,EAAAA,sBAAAA,CAAAA;IAC1C2B,eAAgBC,CAAAA,UAAU,CAAC,iBAAmB5B,EAAAA,sBAAAA,CAAAA;AAChD,CAAA;AAEA,6BAAe;AACbA,IAAAA,sBAAAA;AACA0B,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var actions = require('./permissions/actions.js');
4
+ var sectionsBuilder = require('./permissions/sections-builder.js');
5
+ var engine = require('./permissions/engine.js');
6
+
7
+ const permissions = ()=>({
8
+ actions: actions,
9
+ sectionsBuilder: sectionsBuilder,
10
+ engine: engine
11
+ });
12
+
13
+ module.exports = permissions;
14
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sources":["../../../server/src/services/permissions.ts"],"sourcesContent":["import i18nActionsService from './permissions/actions';\nimport sectionsBuilderService from './permissions/sections-builder';\nimport engineService from './permissions/engine';\n\nconst permissions = () => ({\n actions: i18nActionsService,\n sectionsBuilder: sectionsBuilderService,\n engine: engineService,\n});\n\ntype PermissionsService = typeof permissions;\n\nexport default permissions;\nexport type { PermissionsService };\n"],"names":["permissions","actions","i18nActionsService","sectionsBuilder","sectionsBuilderService","engine","engineService"],"mappings":";;;;;;AAIMA,MAAAA,WAAAA,GAAc,KAAO;QACzBC,OAASC,EAAAA,OAAAA;QACTC,eAAiBC,EAAAA,eAAAA;QACjBC,MAAQC,EAAAA;KACV;;;;"}
@@ -0,0 +1,12 @@
1
+ import i18nActionsService from './permissions/actions.mjs';
2
+ import sectionsBuilderService from './permissions/sections-builder.mjs';
3
+ import engineService from './permissions/engine.mjs';
4
+
5
+ const permissions = ()=>({
6
+ actions: i18nActionsService,
7
+ sectionsBuilder: sectionsBuilderService,
8
+ engine: engineService
9
+ });
10
+
11
+ export { permissions as default };
12
+ //# sourceMappingURL=permissions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.mjs","sources":["../../../server/src/services/permissions.ts"],"sourcesContent":["import i18nActionsService from './permissions/actions';\nimport sectionsBuilderService from './permissions/sections-builder';\nimport engineService from './permissions/engine';\n\nconst permissions = () => ({\n actions: i18nActionsService,\n sectionsBuilder: sectionsBuilderService,\n engine: engineService,\n});\n\ntype PermissionsService = typeof permissions;\n\nexport default permissions;\nexport type { PermissionsService };\n"],"names":["permissions","actions","i18nActionsService","sectionsBuilder","sectionsBuilderService","engine","engineService"],"mappings":";;;;AAIMA,MAAAA,WAAAA,GAAc,KAAO;QACzBC,OAASC,EAAAA,kBAAAA;QACTC,eAAiBC,EAAAA,sBAAAA;QACjBC,MAAQC,EAAAA;KACV;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var fp = require('lodash/fp');
5
+ var index = require('../../utils/index.js');
6
+
7
+ const LOCALIZATION_FIELDS = [
8
+ 'locale',
9
+ 'localizations'
10
+ ];
11
+ const sanitize = ({ strapi })=>{
12
+ const { isLocalizedContentType } = index.getService('content-types');
13
+ /**
14
+ * Sanitizes localization fields of a given entity based on its schema.
15
+ *
16
+ * Remove localization-related fields that are unnecessary, that is
17
+ * for schemas that aren't localized.
18
+ */ const sanitizeLocalizationFields = fp.curry((schema, entity)=>utils.traverseEntity(({ key, schema }, { remove })=>{
19
+ const isLocalized = isLocalizedContentType(schema);
20
+ const isLocalizationField = LOCALIZATION_FIELDS.includes(key);
21
+ if (!isLocalized && isLocalizationField) {
22
+ remove(key);
23
+ }
24
+ }, {
25
+ schema,
26
+ getModel: strapi.getModel.bind(strapi)
27
+ }, entity));
28
+ return {
29
+ sanitizeLocalizationFields
30
+ };
31
+ };
32
+
33
+ module.exports = sanitize;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/services/sanitize/index.ts"],"sourcesContent":["import type { Core, Schema, Data } from '@strapi/types';\n\nimport { traverseEntity } from '@strapi/utils';\nimport { curry } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\nconst LOCALIZATION_FIELDS = ['locale', 'localizations'];\n\nconst sanitize = ({ strapi }: { strapi: Core.Strapi }) => {\n const { isLocalizedContentType } = getService('content-types');\n\n /**\n * Sanitizes localization fields of a given entity based on its schema.\n *\n * Remove localization-related fields that are unnecessary, that is\n * for schemas that aren't localized.\n */\n const sanitizeLocalizationFields = curry((schema: Schema.Schema, entity: Data.Entity) =>\n traverseEntity(\n ({ key, schema }, { remove }) => {\n const isLocalized = isLocalizedContentType(schema);\n const isLocalizationField = LOCALIZATION_FIELDS.includes(key);\n\n if (!isLocalized && isLocalizationField) {\n remove(key);\n }\n },\n { schema, getModel: strapi.getModel.bind(strapi) },\n entity\n )\n );\n\n return {\n sanitizeLocalizationFields,\n };\n};\n\ntype SanitizeService = typeof sanitize;\n\nexport default sanitize;\nexport type { SanitizeService };\n"],"names":["LOCALIZATION_FIELDS","sanitize","strapi","isLocalizedContentType","getService","sanitizeLocalizationFields","curry","schema","entity","traverseEntity","key","remove","isLocalized","isLocalizationField","includes","getModel","bind"],"mappings":";;;;;;AAOA,MAAMA,mBAAsB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;AAAgB,CAAA;AAEvD,MAAMC,QAAW,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACnD,IAAA,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,gBAAW,CAAA,eAAA,CAAA;AAE9C;;;;;AAKC,MACD,MAAMC,0BAA6BC,GAAAA,QAAAA,CAAM,CAACC,MAAAA,EAAuBC,SAC/DC,oBACE,CAAA,CAAC,EAAEC,GAAG,EAAEH,MAAM,EAAE,EAAE,EAAEI,MAAM,EAAE,GAAA;AAC1B,YAAA,MAAMC,cAAcT,sBAAuBI,CAAAA,MAAAA,CAAAA;YAC3C,MAAMM,mBAAAA,GAAsBb,mBAAoBc,CAAAA,QAAQ,CAACJ,GAAAA,CAAAA;YAEzD,IAAI,CAACE,eAAeC,mBAAqB,EAAA;gBACvCF,MAAOD,CAAAA,GAAAA,CAAAA;AACT;SAEF,EAAA;AAAEH,YAAAA,MAAAA;AAAQQ,YAAAA,QAAAA,EAAUb,MAAOa,CAAAA,QAAQ,CAACC,IAAI,CAACd,MAAAA;SACzCM,EAAAA,MAAAA,CAAAA,CAAAA;IAIJ,OAAO;AACLH,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,32 @@
1
+ import { traverseEntity } from '@strapi/utils';
2
+ import { curry } from 'lodash/fp';
3
+ import { getService } from '../../utils/index.mjs';
4
+
5
+ const LOCALIZATION_FIELDS = [
6
+ 'locale',
7
+ 'localizations'
8
+ ];
9
+ const sanitize = ({ strapi })=>{
10
+ const { isLocalizedContentType } = getService('content-types');
11
+ /**
12
+ * Sanitizes localization fields of a given entity based on its schema.
13
+ *
14
+ * Remove localization-related fields that are unnecessary, that is
15
+ * for schemas that aren't localized.
16
+ */ const sanitizeLocalizationFields = curry((schema, entity)=>traverseEntity(({ key, schema }, { remove })=>{
17
+ const isLocalized = isLocalizedContentType(schema);
18
+ const isLocalizationField = LOCALIZATION_FIELDS.includes(key);
19
+ if (!isLocalized && isLocalizationField) {
20
+ remove(key);
21
+ }
22
+ }, {
23
+ schema,
24
+ getModel: strapi.getModel.bind(strapi)
25
+ }, entity));
26
+ return {
27
+ sanitizeLocalizationFields
28
+ };
29
+ };
30
+
31
+ export { sanitize as default };
32
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/sanitize/index.ts"],"sourcesContent":["import type { Core, Schema, Data } from '@strapi/types';\n\nimport { traverseEntity } from '@strapi/utils';\nimport { curry } from 'lodash/fp';\n\nimport { getService } from '../../utils';\n\nconst LOCALIZATION_FIELDS = ['locale', 'localizations'];\n\nconst sanitize = ({ strapi }: { strapi: Core.Strapi }) => {\n const { isLocalizedContentType } = getService('content-types');\n\n /**\n * Sanitizes localization fields of a given entity based on its schema.\n *\n * Remove localization-related fields that are unnecessary, that is\n * for schemas that aren't localized.\n */\n const sanitizeLocalizationFields = curry((schema: Schema.Schema, entity: Data.Entity) =>\n traverseEntity(\n ({ key, schema }, { remove }) => {\n const isLocalized = isLocalizedContentType(schema);\n const isLocalizationField = LOCALIZATION_FIELDS.includes(key);\n\n if (!isLocalized && isLocalizationField) {\n remove(key);\n }\n },\n { schema, getModel: strapi.getModel.bind(strapi) },\n entity\n )\n );\n\n return {\n sanitizeLocalizationFields,\n };\n};\n\ntype SanitizeService = typeof sanitize;\n\nexport default sanitize;\nexport type { SanitizeService };\n"],"names":["LOCALIZATION_FIELDS","sanitize","strapi","isLocalizedContentType","getService","sanitizeLocalizationFields","curry","schema","entity","traverseEntity","key","remove","isLocalized","isLocalizationField","includes","getModel","bind"],"mappings":";;;;AAOA,MAAMA,mBAAsB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;AAAgB,CAAA;AAEvD,MAAMC,QAAW,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACnD,IAAA,MAAM,EAAEC,sBAAsB,EAAE,GAAGC,UAAW,CAAA,eAAA,CAAA;AAE9C;;;;;AAKC,MACD,MAAMC,0BAA6BC,GAAAA,KAAAA,CAAM,CAACC,MAAAA,EAAuBC,SAC/DC,cACE,CAAA,CAAC,EAAEC,GAAG,EAAEH,MAAM,EAAE,EAAE,EAAEI,MAAM,EAAE,GAAA;AAC1B,YAAA,MAAMC,cAAcT,sBAAuBI,CAAAA,MAAAA,CAAAA;YAC3C,MAAMM,mBAAAA,GAAsBb,mBAAoBc,CAAAA,QAAQ,CAACJ,GAAAA,CAAAA;YAEzD,IAAI,CAACE,eAAeC,mBAAqB,EAAA;gBACvCF,MAAOD,CAAAA,GAAAA,CAAAA;AACT;SAEF,EAAA;AAAEH,YAAAA,MAAAA;AAAQQ,YAAAA,QAAAA,EAAUb,MAAOa,CAAAA,QAAQ,CAACC,IAAI,CAACd,MAAAA;SACzCM,EAAAA,MAAAA,CAAAA,CAAAA;IAIJ,OAAO;AACLH,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- import { type Schema } from '@strapi/types';
1
+ import type { Schema } from '@strapi/types';
2
2
  declare const localizations: () => {
3
3
  syncNonLocalizedAttributes: (sourceEntry: any, model: Schema.ContentType) => Promise<void>;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"localizations.d.ts","sourceRoot":"","sources":["../../../../server/src/services/localizations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AA+D5C,QAAA,MAAM,aAAa;8CAxDoC,GAAG,SAAS,OAAO,WAAW;CA0DnF,CAAC;AAEH,KAAK,oBAAoB,GAAG,OAAO,aAAa,CAAC;AAEjD,eAAe,aAAa,CAAC;AAC7B,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"localizations.d.ts","sourceRoot":"","sources":["../../../../server/src/services/localizations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA+D5C,QAAA,MAAM,aAAa;8CAxDoC,GAAG,SAAS,OAAO,WAAW;CA0DnF,CAAC;AAEH,KAAK,oBAAoB,GAAG,OAAO,aAAa,CAAC;AAEjD,eAAe,aAAa,CAAC;AAC7B,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ const getCoreStore = ()=>{
4
+ return strapi.store({
5
+ type: 'plugin',
6
+ name: 'i18n'
7
+ });
8
+ };
9
+ // retrieve a local service
10
+ const getService = (name)=>{
11
+ return strapi.plugin('i18n').service(name);
12
+ };
13
+
14
+ exports.getCoreStore = getCoreStore;
15
+ exports.getService = getService;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type { LocaleService } from '../services/locales';\nimport type { PermissionsService } from '../services/permissions';\nimport type { ContentTypesService } from '../services/content-types';\nimport type { MetricsService } from '../services/metrics';\nimport type { ISOLocalesService } from '../services/iso-locales';\nimport type { LocalizationsService } from '../services/localizations';\nimport type { SanitizeService } from '../services/sanitize';\n\ntype S = {\n permissions: PermissionsService;\n metrics: MetricsService;\n locales: LocaleService;\n localizations: LocalizationsService;\n ['iso-locales']: ISOLocalesService;\n ['content-types']: ContentTypesService;\n sanitize: SanitizeService;\n};\n\nconst getCoreStore = () => {\n return strapi.store({ type: 'plugin', name: 'i18n' });\n};\n\n// retrieve a local service\nconst getService = <T extends keyof S>(name: T): ReturnType<S[T]> => {\n return strapi.plugin('i18n').service(name);\n};\n\nexport { getService, getCoreStore };\n"],"names":["getCoreStore","strapi","store","type","name","getService","plugin","service"],"mappings":";;AAkBA,MAAMA,YAAe,GAAA,IAAA;IACnB,OAAOC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAM,EAAA,QAAA;QAAUC,IAAM,EAAA;AAAO,KAAA,CAAA;AACrD;AAEA;AACA,MAAMC,aAAa,CAAoBD,IAAAA,GAAAA;AACrC,IAAA,OAAOH,MAAOK,CAAAA,MAAM,CAAC,MAAA,CAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA;AACvC;;;;;"}
@@ -0,0 +1,13 @@
1
+ const getCoreStore = ()=>{
2
+ return strapi.store({
3
+ type: 'plugin',
4
+ name: 'i18n'
5
+ });
6
+ };
7
+ // retrieve a local service
8
+ const getService = (name)=>{
9
+ return strapi.plugin('i18n').service(name);
10
+ };
11
+
12
+ export { getCoreStore, getService };
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type { LocaleService } from '../services/locales';\nimport type { PermissionsService } from '../services/permissions';\nimport type { ContentTypesService } from '../services/content-types';\nimport type { MetricsService } from '../services/metrics';\nimport type { ISOLocalesService } from '../services/iso-locales';\nimport type { LocalizationsService } from '../services/localizations';\nimport type { SanitizeService } from '../services/sanitize';\n\ntype S = {\n permissions: PermissionsService;\n metrics: MetricsService;\n locales: LocaleService;\n localizations: LocalizationsService;\n ['iso-locales']: ISOLocalesService;\n ['content-types']: ContentTypesService;\n sanitize: SanitizeService;\n};\n\nconst getCoreStore = () => {\n return strapi.store({ type: 'plugin', name: 'i18n' });\n};\n\n// retrieve a local service\nconst getService = <T extends keyof S>(name: T): ReturnType<S[T]> => {\n return strapi.plugin('i18n').service(name);\n};\n\nexport { getService, getCoreStore };\n"],"names":["getCoreStore","strapi","store","type","name","getService","plugin","service"],"mappings":"AAkBA,MAAMA,YAAe,GAAA,IAAA;IACnB,OAAOC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAM,EAAA,QAAA;QAAUC,IAAM,EAAA;AAAO,KAAA,CAAA;AACrD;AAEA;AACA,MAAMC,aAAa,CAAoBD,IAAAA,GAAAA;AACrC,IAAA,OAAOH,MAAOK,CAAAA,MAAM,CAAC,MAAA,CAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA;AACvC;;;;"}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var fp = require('lodash/fp');
5
+
6
+ const validateGetNonLocalizedAttributesSchema = utils.yup.object().shape({
7
+ model: utils.yup.string().required(),
8
+ id: utils.yup.mixed().when('model', {
9
+ is: (model)=>fp.get('kind', strapi.contentType(model)) === 'singleType',
10
+ then: utils.yup.strapiID().nullable(),
11
+ otherwise: utils.yup.strapiID().required()
12
+ }),
13
+ locale: utils.yup.string().required()
14
+ }).noUnknown().required();
15
+ const validateGetNonLocalizedAttributesInput = utils.validateYupSchema(validateGetNonLocalizedAttributesSchema);
16
+
17
+ exports.validateGetNonLocalizedAttributesInput = validateGetNonLocalizedAttributesInput;
18
+ //# sourceMappingURL=content-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.js","sources":["../../../server/src/validation/content-types.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nimport { get } from 'lodash/fp';\n\nconst validateGetNonLocalizedAttributesSchema = yup\n .object()\n .shape({\n model: yup.string().required(),\n id: yup.mixed().when('model', {\n is: (model: any) => get('kind', strapi.contentType(model)) === 'singleType',\n then: yup.strapiID().nullable(),\n otherwise: yup.strapiID().required(),\n }),\n locale: yup.string().required(),\n })\n .noUnknown()\n .required();\n\nconst validateGetNonLocalizedAttributesInput = validateYupSchema(\n validateGetNonLocalizedAttributesSchema\n);\n\nexport { validateGetNonLocalizedAttributesInput };\n"],"names":["validateGetNonLocalizedAttributesSchema","yup","object","shape","model","string","required","id","mixed","when","is","get","strapi","contentType","then","strapiID","nullable","otherwise","locale","noUnknown","validateGetNonLocalizedAttributesInput","validateYupSchema"],"mappings":";;;;;AAIA,MAAMA,uCAA0CC,GAAAA,SAAAA,CAC7CC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,KAAOH,EAAAA,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BC,IAAAA,EAAAA,EAAIN,SAAIO,CAAAA,KAAK,EAAGC,CAAAA,IAAI,CAAC,OAAS,EAAA;AAC5BC,QAAAA,EAAAA,EAAI,CAACN,KAAeO,GAAAA,MAAAA,CAAI,QAAQC,MAAOC,CAAAA,WAAW,CAACT,KAAY,CAAA,CAAA,KAAA,YAAA;QAC/DU,IAAMb,EAAAA,SAAAA,CAAIc,QAAQ,EAAA,CAAGC,QAAQ,EAAA;QAC7BC,SAAWhB,EAAAA,SAAAA,CAAIc,QAAQ,EAAA,CAAGT,QAAQ;AACpC,KAAA,CAAA;IACAY,MAAQjB,EAAAA,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ;AAC/B,CACCa,CAAAA,CAAAA,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMc,yCAAyCC,uBAC7CrB,CAAAA,uCAAAA;;;;"}
@@ -0,0 +1,16 @@
1
+ import { yup, validateYupSchema } from '@strapi/utils';
2
+ import { get } from 'lodash/fp';
3
+
4
+ const validateGetNonLocalizedAttributesSchema = yup.object().shape({
5
+ model: yup.string().required(),
6
+ id: yup.mixed().when('model', {
7
+ is: (model)=>get('kind', strapi.contentType(model)) === 'singleType',
8
+ then: yup.strapiID().nullable(),
9
+ otherwise: yup.strapiID().required()
10
+ }),
11
+ locale: yup.string().required()
12
+ }).noUnknown().required();
13
+ const validateGetNonLocalizedAttributesInput = validateYupSchema(validateGetNonLocalizedAttributesSchema);
14
+
15
+ export { validateGetNonLocalizedAttributesInput };
16
+ //# sourceMappingURL=content-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.mjs","sources":["../../../server/src/validation/content-types.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nimport { get } from 'lodash/fp';\n\nconst validateGetNonLocalizedAttributesSchema = yup\n .object()\n .shape({\n model: yup.string().required(),\n id: yup.mixed().when('model', {\n is: (model: any) => get('kind', strapi.contentType(model)) === 'singleType',\n then: yup.strapiID().nullable(),\n otherwise: yup.strapiID().required(),\n }),\n locale: yup.string().required(),\n })\n .noUnknown()\n .required();\n\nconst validateGetNonLocalizedAttributesInput = validateYupSchema(\n validateGetNonLocalizedAttributesSchema\n);\n\nexport { validateGetNonLocalizedAttributesInput };\n"],"names":["validateGetNonLocalizedAttributesSchema","yup","object","shape","model","string","required","id","mixed","when","is","get","strapi","contentType","then","strapiID","nullable","otherwise","locale","noUnknown","validateGetNonLocalizedAttributesInput","validateYupSchema"],"mappings":";;;AAIA,MAAMA,uCAA0CC,GAAAA,GAAAA,CAC7CC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,KAAOH,EAAAA,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BC,IAAAA,EAAAA,EAAIN,GAAIO,CAAAA,KAAK,EAAGC,CAAAA,IAAI,CAAC,OAAS,EAAA;AAC5BC,QAAAA,EAAAA,EAAI,CAACN,KAAeO,GAAAA,GAAAA,CAAI,QAAQC,MAAOC,CAAAA,WAAW,CAACT,KAAY,CAAA,CAAA,KAAA,YAAA;QAC/DU,IAAMb,EAAAA,GAAAA,CAAIc,QAAQ,EAAA,CAAGC,QAAQ,EAAA;QAC7BC,SAAWhB,EAAAA,GAAAA,CAAIc,QAAQ,EAAA,CAAGT,QAAQ;AACpC,KAAA,CAAA;IACAY,MAAQjB,EAAAA,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ;AAC/B,CACCa,CAAAA,CAAAA,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMc,yCAAyCC,iBAC7CrB,CAAAA,uCAAAA;;;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+ require('../constants/index.js');
6
+ var isoLocales = require('../constants/iso-locales.json.js');
7
+
8
+ const allowedLocaleCodes = isoLocales.map(fp.prop('code'));
9
+ const createLocaleSchema = utils.yup.object().shape({
10
+ name: utils.yup.string().max(50).nullable(),
11
+ code: utils.yup.string().oneOf(allowedLocaleCodes).required(),
12
+ isDefault: utils.yup.boolean().required()
13
+ }).noUnknown();
14
+ const updateLocaleSchema = utils.yup.object().shape({
15
+ name: utils.yup.string().min(1).max(50).nullable(),
16
+ isDefault: utils.yup.boolean()
17
+ }).noUnknown();
18
+ const validateCreateLocaleInput = utils.validateYupSchema(createLocaleSchema);
19
+ const validateUpdateLocaleInput = utils.validateYupSchema(updateLocaleSchema);
20
+
21
+ exports.validateCreateLocaleInput = validateCreateLocaleInput;
22
+ exports.validateUpdateLocaleInput = validateUpdateLocaleInput;
23
+ //# sourceMappingURL=locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locales.js","sources":["../../../server/src/validation/locales.ts"],"sourcesContent":["import { prop } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport { isoLocales } from '../constants';\n\nconst allowedLocaleCodes = isoLocales.map(prop('code'));\n\nconst createLocaleSchema = yup\n .object()\n .shape({\n name: yup.string().max(50).nullable(),\n code: yup.string().oneOf(allowedLocaleCodes).required(),\n isDefault: yup.boolean().required(),\n })\n .noUnknown();\n\nconst updateLocaleSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(50).nullable(),\n isDefault: yup.boolean(),\n })\n .noUnknown();\n\nconst validateCreateLocaleInput = validateYupSchema(createLocaleSchema);\nconst validateUpdateLocaleInput = validateYupSchema(updateLocaleSchema);\n\nexport { validateCreateLocaleInput, validateUpdateLocaleInput };\n"],"names":["allowedLocaleCodes","isoLocales","map","prop","createLocaleSchema","yup","object","shape","name","string","max","nullable","code","oneOf","required","isDefault","boolean","noUnknown","updateLocaleSchema","min","validateCreateLocaleInput","validateYupSchema","validateUpdateLocaleInput"],"mappings":";;;;;;;AAKA,MAAMA,kBAAqBC,GAAAA,UAAAA,CAAWC,GAAG,CAACC,OAAK,CAAA,MAAA,CAAA,CAAA;AAE/C,MAAMC,kBAAqBC,GAAAA,SAAAA,CACxBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,IAAIC,QAAQ,EAAA;AACnCC,IAAAA,IAAAA,EAAMP,UAAII,MAAM,EAAA,CAAGI,KAAK,CAACb,oBAAoBc,QAAQ,EAAA;IACrDC,SAAWV,EAAAA,SAAAA,CAAIW,OAAO,EAAA,CAAGF,QAAQ;AACnC,CAAA,CAAA,CACCG,SAAS,EAAA;AAEZ,MAAMC,kBAAqBb,GAAAA,SAAAA,CACxBC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAMH,EAAAA,SAAAA,CAAII,MAAM,EAAGU,CAAAA,GAAG,CAAC,CAAGT,CAAAA,CAAAA,GAAG,CAAC,EAAA,CAAA,CAAIC,QAAQ,EAAA;AAC1CI,IAAAA,SAAAA,EAAWV,UAAIW,OAAO;AACxB,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMG,4BAA4BC,uBAAkBjB,CAAAA,kBAAAA;AACpD,MAAMkB,4BAA4BD,uBAAkBH,CAAAA,kBAAAA;;;;;"}
@@ -0,0 +1,20 @@
1
+ import { prop } from 'lodash/fp';
2
+ import { yup, validateYupSchema } from '@strapi/utils';
3
+ import '../constants/index.mjs';
4
+ import isoLocales from '../constants/iso-locales.json.mjs';
5
+
6
+ const allowedLocaleCodes = isoLocales.map(prop('code'));
7
+ const createLocaleSchema = yup.object().shape({
8
+ name: yup.string().max(50).nullable(),
9
+ code: yup.string().oneOf(allowedLocaleCodes).required(),
10
+ isDefault: yup.boolean().required()
11
+ }).noUnknown();
12
+ const updateLocaleSchema = yup.object().shape({
13
+ name: yup.string().min(1).max(50).nullable(),
14
+ isDefault: yup.boolean()
15
+ }).noUnknown();
16
+ const validateCreateLocaleInput = validateYupSchema(createLocaleSchema);
17
+ const validateUpdateLocaleInput = validateYupSchema(updateLocaleSchema);
18
+
19
+ export { validateCreateLocaleInput, validateUpdateLocaleInput };
20
+ //# sourceMappingURL=locales.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locales.mjs","sources":["../../../server/src/validation/locales.ts"],"sourcesContent":["import { prop } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\n\nimport { isoLocales } from '../constants';\n\nconst allowedLocaleCodes = isoLocales.map(prop('code'));\n\nconst createLocaleSchema = yup\n .object()\n .shape({\n name: yup.string().max(50).nullable(),\n code: yup.string().oneOf(allowedLocaleCodes).required(),\n isDefault: yup.boolean().required(),\n })\n .noUnknown();\n\nconst updateLocaleSchema = yup\n .object()\n .shape({\n name: yup.string().min(1).max(50).nullable(),\n isDefault: yup.boolean(),\n })\n .noUnknown();\n\nconst validateCreateLocaleInput = validateYupSchema(createLocaleSchema);\nconst validateUpdateLocaleInput = validateYupSchema(updateLocaleSchema);\n\nexport { validateCreateLocaleInput, validateUpdateLocaleInput };\n"],"names":["allowedLocaleCodes","isoLocales","map","prop","createLocaleSchema","yup","object","shape","name","string","max","nullable","code","oneOf","required","isDefault","boolean","noUnknown","updateLocaleSchema","min","validateCreateLocaleInput","validateYupSchema","validateUpdateLocaleInput"],"mappings":";;;;;AAKA,MAAMA,kBAAqBC,GAAAA,UAAAA,CAAWC,GAAG,CAACC,IAAK,CAAA,MAAA,CAAA,CAAA;AAE/C,MAAMC,kBAAqBC,GAAAA,GAAAA,CACxBC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,GAAG,CAAC,IAAIC,QAAQ,EAAA;AACnCC,IAAAA,IAAAA,EAAMP,IAAII,MAAM,EAAA,CAAGI,KAAK,CAACb,oBAAoBc,QAAQ,EAAA;IACrDC,SAAWV,EAAAA,GAAAA,CAAIW,OAAO,EAAA,CAAGF,QAAQ;AACnC,CAAA,CAAA,CACCG,SAAS,EAAA;AAEZ,MAAMC,kBAAqBb,GAAAA,GAAAA,CACxBC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,IAAMH,EAAAA,GAAAA,CAAII,MAAM,EAAGU,CAAAA,GAAG,CAAC,CAAGT,CAAAA,CAAAA,GAAG,CAAC,EAAA,CAAA,CAAIC,QAAQ,EAAA;AAC1CI,IAAAA,SAAAA,EAAWV,IAAIW,OAAO;AACxB,CAAA,CAAA,CACCC,SAAS,EAAA;AAEZ,MAAMG,4BAA4BC,iBAAkBjB,CAAAA,kBAAAA;AACpD,MAAMkB,4BAA4BD,iBAAkBH,CAAAA,kBAAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { Data, Modules } from '@strapi/types';
1
+ import type { Data, Modules } from '@strapi/types';
2
2
  import { errors } from '@strapi/utils';
3
3
  /**
4
4
  * POST /i18n/content-manager/actions/get-non-localized-fields - Get the localized fields
@@ -1,4 +1,4 @@
1
- import { Data } from '@strapi/types';
1
+ import type { Data } from '@strapi/types';
2
2
  export interface Entity {
3
3
  id: Data.ID;
4
4
  createdAt: string;