@strapi/i18n 5.42.0 → 5.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/admin/components/CMHeaderActions.js +28 -25
  2. package/dist/admin/components/CMHeaderActions.js.map +1 -1
  3. package/dist/admin/components/CMHeaderActions.mjs +26 -23
  4. package/dist/admin/components/CMHeaderActions.mjs.map +1 -1
  5. package/dist/admin/index.js +1 -0
  6. package/dist/admin/index.js.map +1 -1
  7. package/dist/admin/index.mjs +1 -0
  8. package/dist/admin/index.mjs.map +1 -1
  9. package/dist/admin/services/fillFromLocale.js +21 -0
  10. package/dist/admin/services/fillFromLocale.js.map +1 -0
  11. package/dist/admin/services/fillFromLocale.mjs +18 -0
  12. package/dist/admin/services/fillFromLocale.mjs.map +1 -0
  13. package/dist/admin/services/settings.js +1 -1
  14. package/dist/admin/services/settings.js.map +1 -1
  15. package/dist/admin/services/settings.mjs +1 -1
  16. package/dist/admin/services/settings.mjs.map +1 -1
  17. package/dist/admin/src/services/aiLocalizationJobs.d.ts +1 -1
  18. package/dist/admin/src/services/api.d.ts +1 -1
  19. package/dist/admin/src/services/fillFromLocale.d.ts +2 -0
  20. package/dist/admin/src/services/locales.d.ts +1 -1
  21. package/dist/admin/src/services/relations.d.ts +1 -1
  22. package/dist/admin/src/services/settings.d.ts +2 -2
  23. package/dist/admin/translations/nl.json.js +91 -0
  24. package/dist/admin/translations/nl.json.js.map +1 -0
  25. package/dist/admin/translations/nl.json.mjs +89 -0
  26. package/dist/admin/translations/nl.json.mjs.map +1 -0
  27. package/dist/admin/translations/pl.json.js +48 -23
  28. package/dist/admin/translations/pl.json.js.map +1 -1
  29. package/dist/admin/translations/pl.json.mjs +48 -23
  30. package/dist/admin/translations/pl.json.mjs.map +1 -1
  31. package/dist/server/bootstrap.js +3 -1
  32. package/dist/server/bootstrap.js.map +1 -1
  33. package/dist/server/bootstrap.mjs +3 -1
  34. package/dist/server/bootstrap.mjs.map +1 -1
  35. package/dist/server/controllers/ai-localization-jobs.js +8 -0
  36. package/dist/server/controllers/ai-localization-jobs.js.map +1 -1
  37. package/dist/server/controllers/ai-localization-jobs.mjs +8 -0
  38. package/dist/server/controllers/ai-localization-jobs.mjs.map +1 -1
  39. package/dist/server/controllers/content-types.js +42 -2
  40. package/dist/server/controllers/content-types.js.map +1 -1
  41. package/dist/server/controllers/content-types.mjs +43 -3
  42. package/dist/server/controllers/content-types.mjs.map +1 -1
  43. package/dist/server/routes/admin.js +18 -0
  44. package/dist/server/routes/admin.js.map +1 -1
  45. package/dist/server/routes/admin.mjs +18 -0
  46. package/dist/server/routes/admin.mjs.map +1 -1
  47. package/dist/server/services/ai-localizations.js +3 -13
  48. package/dist/server/services/ai-localizations.js.map +1 -1
  49. package/dist/server/services/ai-localizations.mjs +3 -13
  50. package/dist/server/services/ai-localizations.mjs.map +1 -1
  51. package/dist/server/services/fill-from-locale.js +435 -0
  52. package/dist/server/services/fill-from-locale.js.map +1 -0
  53. package/dist/server/services/fill-from-locale.mjs +433 -0
  54. package/dist/server/services/fill-from-locale.mjs.map +1 -0
  55. package/dist/server/services/index.js +3 -1
  56. package/dist/server/services/index.js.map +1 -1
  57. package/dist/server/services/index.mjs +3 -1
  58. package/dist/server/services/index.mjs.map +1 -1
  59. package/dist/server/src/bootstrap.d.ts.map +1 -1
  60. package/dist/server/src/controllers/ai-localization-jobs.d.ts.map +1 -1
  61. package/dist/server/src/controllers/content-types.d.ts +1 -0
  62. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  63. package/dist/server/src/controllers/index.d.ts +1 -0
  64. package/dist/server/src/controllers/index.d.ts.map +1 -1
  65. package/dist/server/src/index.d.ts +7 -0
  66. package/dist/server/src/index.d.ts.map +1 -1
  67. package/dist/server/src/routes/admin.d.ts.map +1 -1
  68. package/dist/server/src/services/ai-localizations.d.ts.map +1 -1
  69. package/dist/server/src/services/fill-from-locale.d.ts +16 -0
  70. package/dist/server/src/services/fill-from-locale.d.ts.map +1 -0
  71. package/dist/server/src/services/index.d.ts +6 -0
  72. package/dist/server/src/services/index.d.ts.map +1 -1
  73. package/dist/server/src/utils/index.d.ts +2 -0
  74. package/dist/server/src/utils/index.d.ts.map +1 -1
  75. package/dist/server/src/validation/content-types.d.ts +2 -1
  76. package/dist/server/src/validation/content-types.d.ts.map +1 -1
  77. package/dist/server/utils/index.js.map +1 -1
  78. package/dist/server/utils/index.mjs.map +1 -1
  79. package/dist/server/validation/content-types.js +15 -0
  80. package/dist/server/validation/content-types.js.map +1 -1
  81. package/dist/server/validation/content-types.mjs +15 -1
  82. package/dist/server/validation/content-types.mjs.map +1 -1
  83. package/dist/shared/contracts/content-manager.d.ts +27 -0
  84. package/dist/shared/contracts/content-manager.d.ts.map +1 -0
  85. package/package.json +8 -8
  86. package/dist/admin/src/utils/clean.d.ts +0 -4
  87. package/dist/admin/utils/clean.js +0 -70
  88. package/dist/admin/utils/clean.js.map +0 -1
  89. package/dist/admin/utils/clean.mjs +0 -68
  90. package/dist/admin/utils/clean.mjs.map +0 -1
@@ -0,0 +1,16 @@
1
+ import type { UID, Core } from '@strapi/types';
2
+ export declare const createFillFromLocaleService: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => {
5
+ /**
6
+ * Fetch the raw populated document for the given locale without any transformation.
7
+ * The caller is responsible for sanitizing the output before passing it to transformDocument.
8
+ */
9
+ fetchRawDocument(model: UID.ContentType, sourceLocale: string, documentId?: string): Promise<import("@strapi/types/dist/modules/documents").AnyDocument | null>;
10
+ /**
11
+ * Transform a (sanitized) document: strip internal fields, resolve relations to the target
12
+ * locale, and skip relations to content types the user cannot read.
13
+ */
14
+ transformDocument(document: Record<string, unknown>, model: UID.ContentType, targetLocale: string, userAbility: any): Promise<Record<string, unknown>>;
15
+ };
16
+ //# sourceMappingURL=fill-from-locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill-from-locale.d.ts","sourceRoot":"","sources":["../../../../server/src/services/fill-from-locale.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAU,IAAI,EAAE,MAAM,eAAe,CAAC;AA4cvD,eAAO,MAAM,2BAA2B,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;IAE3E;;;OAGG;4BAC2B,IAAI,WAAW,gBAAgB,MAAM,eAAe,MAAM;IA0BxF;;;OAGG;gCAES,OAAO,MAAM,EAAE,OAAO,CAAC,SAC1B,IAAI,WAAW,gBACR,MAAM,eACP,GAAG;CAgBrB,CAAC"}
@@ -109,6 +109,12 @@ declare const _default: {
109
109
  aiLocalizations: import("yup").BooleanSchema<boolean, Record<string, any>, boolean>;
110
110
  }>) => Promise<void>;
111
111
  };
112
+ 'fill-from-locale': ({ strapi }: {
113
+ strapi: import("@strapi/types/dist/core").Strapi;
114
+ }) => {
115
+ fetchRawDocument(model: import("@strapi/types/dist/uid").ContentType, sourceLocale: string, documentId?: string | undefined): Promise<import("@strapi/types/dist/modules/documents").AnyDocument | null>;
116
+ transformDocument(document: Record<string, unknown>, model: import("@strapi/types/dist/uid").ContentType, targetLocale: string, userAbility: any): Promise<Record<string, unknown>>;
117
+ };
112
118
  };
113
119
  export default _default;
114
120
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,wBAWE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,wBAYE"}
@@ -8,6 +8,7 @@ import type { SanitizeService } from '../services/sanitize';
8
8
  import type { SettingsService } from '../services/settings';
9
9
  import type { createAILocalizationsService } from '../services/ai-localizations';
10
10
  import type { createAILocalizationJobsService } from '../services/ai-localization-jobs';
11
+ import type { createFillFromLocaleService } from '../services/fill-from-locale';
11
12
  type S = {
12
13
  permissions: PermissionsService;
13
14
  metrics: MetricsService;
@@ -19,6 +20,7 @@ type S = {
19
20
  sanitize: SanitizeService;
20
21
  ['ai-localizations']: ReturnType<typeof createAILocalizationsService>;
21
22
  'ai-localization-jobs': ReturnType<typeof createAILocalizationJobsService>;
23
+ 'fill-from-locale': ReturnType<typeof createFillFromLocaleService>;
22
24
  };
23
25
  declare const getCoreStore: () => {
24
26
  get(params?: Partial<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAExF,KAAK,CAAC,GAAG;IACP,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IACnC,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,EAAE,eAAe,CAAC;IAC1B,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;IACtE,sBAAsB,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;CAC5E,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAEjB,CAAC;AAGF,QAAA,MAAM,UAAU,4BACR,CAAC,KACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAE7D,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEhF,KAAK,CAAC,GAAG;IACP,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IACnC,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,EAAE,eAAe,CAAC;IAC1B,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;IACtE,sBAAsB,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;IAC3E,kBAAkB,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;CACpE,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAEjB,CAAC;AAGF,QAAA,MAAM,UAAU,4BACR,CAAC,KACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAE7D,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  declare const validateGetNonLocalizedAttributesInput: (body: unknown, errorMessage?: string | undefined) => Promise<any>;
2
- export { validateGetNonLocalizedAttributesInput };
2
+ declare const validateFillFromLocaleInput: (body: unknown, errorMessage?: string | undefined) => Promise<any>;
3
+ export { validateGetNonLocalizedAttributesInput, validateFillFromLocaleInput };
3
4
  //# sourceMappingURL=content-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../../../server/src/validation/content-types.ts"],"names":[],"mappings":"AAkBA,QAAA,MAAM,sCAAsC,oEAE3C,CAAC;AAEF,OAAO,EAAE,sCAAsC,EAAE,CAAC"}
1
+ {"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../../../server/src/validation/content-types.ts"],"names":[],"mappings":"AAkBA,QAAA,MAAM,sCAAsC,oEAE3C,CAAC;AAiBF,QAAA,MAAM,2BAA2B,oEAAuD,CAAC;AAEzF,OAAO,EAAE,sCAAsC,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1 +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';\nimport type { SettingsService } from '../services/settings';\nimport type { createAILocalizationsService } from '../services/ai-localizations';\nimport type { createAILocalizationJobsService } from '../services/ai-localization-jobs';\n\ntype S = {\n permissions: PermissionsService;\n metrics: MetricsService;\n locales: LocaleService;\n localizations: LocalizationsService;\n settings: SettingsService;\n ['iso-locales']: ISOLocalesService;\n ['content-types']: ContentTypesService;\n sanitize: SanitizeService;\n ['ai-localizations']: ReturnType<typeof createAILocalizationsService>;\n 'ai-localization-jobs': ReturnType<typeof createAILocalizationJobsService>;\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>(\n name: T\n): S[T] extends (...args: any) => any ? ReturnType<S[T]> : 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":";;AAwBA,MAAMA,YAAAA,GAAe,IAAA;IACnB,OAAOC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,QAAA;QAAUC,IAAAA,EAAM;AAAO,KAAA,CAAA;AACrD;AAEA;AACA,MAAMC,aAAa,CACjBD,IAAAA,GAAAA;AAEA,IAAA,OAAOH,MAAAA,CAAOK,MAAM,CAAC,MAAA,CAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA;AACvC;;;;;"}
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';\nimport type { SettingsService } from '../services/settings';\nimport type { createAILocalizationsService } from '../services/ai-localizations';\nimport type { createAILocalizationJobsService } from '../services/ai-localization-jobs';\nimport type { createFillFromLocaleService } from '../services/fill-from-locale';\n\ntype S = {\n permissions: PermissionsService;\n metrics: MetricsService;\n locales: LocaleService;\n localizations: LocalizationsService;\n settings: SettingsService;\n ['iso-locales']: ISOLocalesService;\n ['content-types']: ContentTypesService;\n sanitize: SanitizeService;\n ['ai-localizations']: ReturnType<typeof createAILocalizationsService>;\n 'ai-localization-jobs': ReturnType<typeof createAILocalizationJobsService>;\n 'fill-from-locale': ReturnType<typeof createFillFromLocaleService>;\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>(\n name: T\n): S[T] extends (...args: any) => any ? ReturnType<S[T]> : 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":";;AA0BA,MAAMA,YAAAA,GAAe,IAAA;IACnB,OAAOC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,QAAA;QAAUC,IAAAA,EAAM;AAAO,KAAA,CAAA;AACrD;AAEA;AACA,MAAMC,aAAa,CACjBD,IAAAA,GAAAA;AAEA,IAAA,OAAOH,MAAAA,CAAOK,MAAM,CAAC,MAAA,CAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA;AACvC;;;;;"}
@@ -1 +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';\nimport type { SettingsService } from '../services/settings';\nimport type { createAILocalizationsService } from '../services/ai-localizations';\nimport type { createAILocalizationJobsService } from '../services/ai-localization-jobs';\n\ntype S = {\n permissions: PermissionsService;\n metrics: MetricsService;\n locales: LocaleService;\n localizations: LocalizationsService;\n settings: SettingsService;\n ['iso-locales']: ISOLocalesService;\n ['content-types']: ContentTypesService;\n sanitize: SanitizeService;\n ['ai-localizations']: ReturnType<typeof createAILocalizationsService>;\n 'ai-localization-jobs': ReturnType<typeof createAILocalizationJobsService>;\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>(\n name: T\n): S[T] extends (...args: any) => any ? ReturnType<S[T]> : 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":"AAwBA,MAAMA,YAAAA,GAAe,IAAA;IACnB,OAAOC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,QAAA;QAAUC,IAAAA,EAAM;AAAO,KAAA,CAAA;AACrD;AAEA;AACA,MAAMC,aAAa,CACjBD,IAAAA,GAAAA;AAEA,IAAA,OAAOH,MAAAA,CAAOK,MAAM,CAAC,MAAA,CAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA;AACvC;;;;"}
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';\nimport type { SettingsService } from '../services/settings';\nimport type { createAILocalizationsService } from '../services/ai-localizations';\nimport type { createAILocalizationJobsService } from '../services/ai-localization-jobs';\nimport type { createFillFromLocaleService } from '../services/fill-from-locale';\n\ntype S = {\n permissions: PermissionsService;\n metrics: MetricsService;\n locales: LocaleService;\n localizations: LocalizationsService;\n settings: SettingsService;\n ['iso-locales']: ISOLocalesService;\n ['content-types']: ContentTypesService;\n sanitize: SanitizeService;\n ['ai-localizations']: ReturnType<typeof createAILocalizationsService>;\n 'ai-localization-jobs': ReturnType<typeof createAILocalizationJobsService>;\n 'fill-from-locale': ReturnType<typeof createFillFromLocaleService>;\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>(\n name: T\n): S[T] extends (...args: any) => any ? ReturnType<S[T]> : 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":"AA0BA,MAAMA,YAAAA,GAAe,IAAA;IACnB,OAAOC,MAAAA,CAAOC,KAAK,CAAC;QAAEC,IAAAA,EAAM,QAAA;QAAUC,IAAAA,EAAM;AAAO,KAAA,CAAA;AACrD;AAEA;AACA,MAAMC,aAAa,CACjBD,IAAAA,GAAAA;AAEA,IAAA,OAAOH,MAAAA,CAAOK,MAAM,CAAC,MAAA,CAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA;AACvC;;;;"}
@@ -13,6 +13,21 @@ const validateGetNonLocalizedAttributesSchema = utils.yup.object().shape({
13
13
  locale: utils.yup.string().required()
14
14
  }).noUnknown().required();
15
15
  const validateGetNonLocalizedAttributesInput = utils.validateYupSchema(validateGetNonLocalizedAttributesSchema);
16
+ const validateFillFromLocaleInputSchema = utils.yup.object().shape({
17
+ documentId: utils.yup.string().when('collectionType', {
18
+ is: 'single-types',
19
+ then: (schema)=>schema.nullable(),
20
+ otherwise: (schema)=>schema.required()
21
+ }),
22
+ sourceLocale: utils.yup.string().required(),
23
+ targetLocale: utils.yup.string().required(),
24
+ collectionType: utils.yup.string().oneOf([
25
+ 'collection-types',
26
+ 'single-types'
27
+ ]).required()
28
+ }).noUnknown().required();
29
+ const validateFillFromLocaleInput = utils.validateYupSchema(validateFillFromLocaleInputSchema);
16
30
 
31
+ exports.validateFillFromLocaleInput = validateFillFromLocaleInput;
17
32
  exports.validateGetNonLocalizedAttributesInput = validateGetNonLocalizedAttributesInput;
18
33
  //# sourceMappingURL=content-types.js.map
@@ -1 +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,uCAAAA,GAA0CC,SAAAA,CAC7CC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,KAAAA,EAAOH,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BC,IAAAA,EAAAA,EAAIN,SAAAA,CAAIO,KAAK,EAAA,CAAGC,IAAI,CAAC,OAAA,EAAS;AAC5BC,QAAAA,EAAAA,EAAI,CAACN,KAAAA,GAAeO,MAAAA,CAAI,QAAQC,MAAAA,CAAOC,WAAW,CAACT,KAAAA,CAAAA,CAAAA,KAAY,YAAA;QAC/DU,IAAAA,EAAMb,SAAAA,CAAIc,QAAQ,EAAA,CAAGC,QAAQ,EAAA;QAC7BC,SAAAA,EAAWhB,SAAAA,CAAIc,QAAQ,EAAA,CAAGT,QAAQ;AACpC,KAAA,CAAA;IACAY,MAAAA,EAAQjB,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ;AAC/B,CAAA,CAAA,CACCa,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMc,yCAAyCC,uBAAAA,CAC7CrB,uCAAAA;;;;"}
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\nconst validateFillFromLocaleInputSchema = yup\n .object()\n .shape({\n documentId: yup.string().when('collectionType', {\n is: 'single-types',\n then: (schema) => schema.nullable(),\n otherwise: (schema) => schema.required(),\n }),\n sourceLocale: yup.string().required(),\n targetLocale: yup.string().required(),\n collectionType: yup.string().oneOf(['collection-types', 'single-types']).required(),\n })\n .noUnknown()\n .required();\n\nconst validateFillFromLocaleInput = validateYupSchema(validateFillFromLocaleInputSchema);\n\nexport { validateGetNonLocalizedAttributesInput, validateFillFromLocaleInput };\n"],"names":["validateGetNonLocalizedAttributesSchema","yup","object","shape","model","string","required","id","mixed","when","is","get","strapi","contentType","then","strapiID","nullable","otherwise","locale","noUnknown","validateGetNonLocalizedAttributesInput","validateYupSchema","validateFillFromLocaleInputSchema","documentId","schema","sourceLocale","targetLocale","collectionType","oneOf","validateFillFromLocaleInput"],"mappings":";;;;;AAIA,MAAMA,uCAAAA,GAA0CC,SAAAA,CAC7CC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,KAAAA,EAAOH,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BC,IAAAA,EAAAA,EAAIN,SAAAA,CAAIO,KAAK,EAAA,CAAGC,IAAI,CAAC,OAAA,EAAS;AAC5BC,QAAAA,EAAAA,EAAI,CAACN,KAAAA,GAAeO,MAAAA,CAAI,QAAQC,MAAAA,CAAOC,WAAW,CAACT,KAAAA,CAAAA,CAAAA,KAAY,YAAA;QAC/DU,IAAAA,EAAMb,SAAAA,CAAIc,QAAQ,EAAA,CAAGC,QAAQ,EAAA;QAC7BC,SAAAA,EAAWhB,SAAAA,CAAIc,QAAQ,EAAA,CAAGT,QAAQ;AACpC,KAAA,CAAA;IACAY,MAAAA,EAAQjB,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ;AAC/B,CAAA,CAAA,CACCa,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMc,yCAAyCC,uBAAAA,CAC7CrB,uCAAAA;AAGF,MAAMsB,iCAAAA,GAAoCrB,SAAAA,CACvCC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLoB,IAAAA,UAAAA,EAAYtB,SAAAA,CAAII,MAAM,EAAA,CAAGI,IAAI,CAAC,gBAAA,EAAkB;QAC9CC,EAAAA,EAAI,cAAA;QACJI,IAAAA,EAAM,CAACU,MAAAA,GAAWA,MAAAA,CAAOR,QAAQ,EAAA;QACjCC,SAAAA,EAAW,CAACO,MAAAA,GAAWA,MAAAA,CAAOlB,QAAQ;AACxC,KAAA,CAAA;IACAmB,YAAAA,EAAcxB,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACnCoB,YAAAA,EAAczB,SAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AACnCqB,IAAAA,cAAAA,EAAgB1B,SAAAA,CAAII,MAAM,EAAA,CAAGuB,KAAK,CAAC;AAAC,QAAA,kBAAA;AAAoB,QAAA;AAAe,KAAA,CAAA,CAAEtB,QAAQ;AACnF,CAAA,CAAA,CACCa,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMuB,8BAA8BR,uBAAAA,CAAkBC,iCAAAA;;;;;"}
@@ -11,6 +11,20 @@ const validateGetNonLocalizedAttributesSchema = yup.object().shape({
11
11
  locale: yup.string().required()
12
12
  }).noUnknown().required();
13
13
  const validateGetNonLocalizedAttributesInput = validateYupSchema(validateGetNonLocalizedAttributesSchema);
14
+ const validateFillFromLocaleInputSchema = yup.object().shape({
15
+ documentId: yup.string().when('collectionType', {
16
+ is: 'single-types',
17
+ then: (schema)=>schema.nullable(),
18
+ otherwise: (schema)=>schema.required()
19
+ }),
20
+ sourceLocale: yup.string().required(),
21
+ targetLocale: yup.string().required(),
22
+ collectionType: yup.string().oneOf([
23
+ 'collection-types',
24
+ 'single-types'
25
+ ]).required()
26
+ }).noUnknown().required();
27
+ const validateFillFromLocaleInput = validateYupSchema(validateFillFromLocaleInputSchema);
14
28
 
15
- export { validateGetNonLocalizedAttributesInput };
29
+ export { validateFillFromLocaleInput, validateGetNonLocalizedAttributesInput };
16
30
  //# sourceMappingURL=content-types.mjs.map
@@ -1 +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,uCAAAA,GAA0CC,GAAAA,CAC7CC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,KAAAA,EAAOH,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BC,IAAAA,EAAAA,EAAIN,GAAAA,CAAIO,KAAK,EAAA,CAAGC,IAAI,CAAC,OAAA,EAAS;AAC5BC,QAAAA,EAAAA,EAAI,CAACN,KAAAA,GAAeO,GAAAA,CAAI,QAAQC,MAAAA,CAAOC,WAAW,CAACT,KAAAA,CAAAA,CAAAA,KAAY,YAAA;QAC/DU,IAAAA,EAAMb,GAAAA,CAAIc,QAAQ,EAAA,CAAGC,QAAQ,EAAA;QAC7BC,SAAAA,EAAWhB,GAAAA,CAAIc,QAAQ,EAAA,CAAGT,QAAQ;AACpC,KAAA,CAAA;IACAY,MAAAA,EAAQjB,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ;AAC/B,CAAA,CAAA,CACCa,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMc,yCAAyCC,iBAAAA,CAC7CrB,uCAAAA;;;;"}
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\nconst validateFillFromLocaleInputSchema = yup\n .object()\n .shape({\n documentId: yup.string().when('collectionType', {\n is: 'single-types',\n then: (schema) => schema.nullable(),\n otherwise: (schema) => schema.required(),\n }),\n sourceLocale: yup.string().required(),\n targetLocale: yup.string().required(),\n collectionType: yup.string().oneOf(['collection-types', 'single-types']).required(),\n })\n .noUnknown()\n .required();\n\nconst validateFillFromLocaleInput = validateYupSchema(validateFillFromLocaleInputSchema);\n\nexport { validateGetNonLocalizedAttributesInput, validateFillFromLocaleInput };\n"],"names":["validateGetNonLocalizedAttributesSchema","yup","object","shape","model","string","required","id","mixed","when","is","get","strapi","contentType","then","strapiID","nullable","otherwise","locale","noUnknown","validateGetNonLocalizedAttributesInput","validateYupSchema","validateFillFromLocaleInputSchema","documentId","schema","sourceLocale","targetLocale","collectionType","oneOf","validateFillFromLocaleInput"],"mappings":";;;AAIA,MAAMA,uCAAAA,GAA0CC,GAAAA,CAC7CC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,KAAAA,EAAOH,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BC,IAAAA,EAAAA,EAAIN,GAAAA,CAAIO,KAAK,EAAA,CAAGC,IAAI,CAAC,OAAA,EAAS;AAC5BC,QAAAA,EAAAA,EAAI,CAACN,KAAAA,GAAeO,GAAAA,CAAI,QAAQC,MAAAA,CAAOC,WAAW,CAACT,KAAAA,CAAAA,CAAAA,KAAY,YAAA;QAC/DU,IAAAA,EAAMb,GAAAA,CAAIc,QAAQ,EAAA,CAAGC,QAAQ,EAAA;QAC7BC,SAAAA,EAAWhB,GAAAA,CAAIc,QAAQ,EAAA,CAAGT,QAAQ;AACpC,KAAA,CAAA;IACAY,MAAAA,EAAQjB,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ;AAC/B,CAAA,CAAA,CACCa,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMc,yCAAyCC,iBAAAA,CAC7CrB,uCAAAA;AAGF,MAAMsB,iCAAAA,GAAoCrB,GAAAA,CACvCC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLoB,IAAAA,UAAAA,EAAYtB,GAAAA,CAAII,MAAM,EAAA,CAAGI,IAAI,CAAC,gBAAA,EAAkB;QAC9CC,EAAAA,EAAI,cAAA;QACJI,IAAAA,EAAM,CAACU,MAAAA,GAAWA,MAAAA,CAAOR,QAAQ,EAAA;QACjCC,SAAAA,EAAW,CAACO,MAAAA,GAAWA,MAAAA,CAAOlB,QAAQ;AACxC,KAAA,CAAA;IACAmB,YAAAA,EAAcxB,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACnCoB,YAAAA,EAAczB,GAAAA,CAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA;AACnCqB,IAAAA,cAAAA,EAAgB1B,GAAAA,CAAII,MAAM,EAAA,CAAGuB,KAAK,CAAC;AAAC,QAAA,kBAAA;AAAoB,QAAA;AAAe,KAAA,CAAA,CAAEtB,QAAQ;AACnF,CAAA,CAAA,CACCa,SAAS,GACTb,QAAQ,EAAA;AAEX,MAAMuB,8BAA8BR,iBAAAA,CAAkBC,iCAAAA;;;;"}
@@ -25,6 +25,33 @@ export declare namespace GetNonLocalizedFields {
25
25
  error?: errors.ApplicationError;
26
26
  }
27
27
  }
28
+ /**
29
+ * GET /i18n/content-manager/get-fill-from-locale - Get data from source locale to fill target locale
30
+ */
31
+ export interface FillFromLocaleParams {
32
+ model: string;
33
+ documentId?: string;
34
+ sourceLocale: string;
35
+ targetLocale: string;
36
+ collectionType: 'collection-types' | 'single-types';
37
+ }
38
+ export declare namespace FillFromLocale {
39
+ interface Request {
40
+ body: {};
41
+ query: Params;
42
+ }
43
+ interface Params {
44
+ model: string;
45
+ documentId?: string;
46
+ sourceLocale: string;
47
+ targetLocale: string;
48
+ collectionType: 'collection-types' | 'single-types';
49
+ }
50
+ interface Response {
51
+ data: Record<string, unknown>;
52
+ error?: errors.ApplicationError;
53
+ }
54
+ }
28
55
  /**
29
56
  * GET content-manager/collection-types/:model/actions/countManyEntriesDraftRelations
30
57
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-manager.d.ts","sourceRoot":"","sources":["../../../shared/contracts/content-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,qBAAqB,CAAC;IAC7C,UAAiB,OAAO;QACtB,KAAK,EAAE,EAAE,CAAC;QACV,IAAI,EAAE;YACJ,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH;IAED;;OAEG;IACH,UAAiB,QAAQ;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;QAClF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,kBAAkB,GAAG,cAAc,CAAC;CACrD;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;KACf;IAED,UAAiB,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,kBAAkB,GAAG,cAAc,CAAC;KACrD;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,8BAA8B,CAAC;IACtD,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE;YAGL,WAAW,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;SACnC,CAAC;KACH;IAED,UAAiB,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC;KACf;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/i18n",
3
- "version": "5.42.0",
3
+ "version": "5.43.0",
4
4
  "description": "Create read and update content in different languages, both from the Admin Panel and from the API",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -63,8 +63,8 @@
63
63
  "@reduxjs/toolkit": "1.9.7",
64
64
  "@strapi/design-system": "2.2.0",
65
65
  "@strapi/icons": "2.2.0",
66
- "@strapi/utils": "5.42.0",
67
- "lodash": "4.17.23",
66
+ "@strapi/utils": "5.43.0",
67
+ "lodash": "4.18.1",
68
68
  "qs": "6.15.0",
69
69
  "react-intl": "6.6.2",
70
70
  "react-redux": "8.1.3",
@@ -72,11 +72,11 @@
72
72
  "zod": "3.25.67"
73
73
  },
74
74
  "devDependencies": {
75
- "@strapi/admin": "5.42.0",
76
- "@strapi/admin-test-utils": "5.42.0",
77
- "@strapi/content-manager": "5.42.0",
78
- "@strapi/database": "5.42.0",
79
- "@strapi/types": "5.42.0",
75
+ "@strapi/admin": "5.43.0",
76
+ "@strapi/admin-test-utils": "5.43.0",
77
+ "@strapi/content-manager": "5.43.0",
78
+ "@strapi/database": "5.43.0",
79
+ "@strapi/types": "5.43.0",
80
80
  "@testing-library/react": "16.3.0",
81
81
  "@testing-library/user-event": "14.6.1",
82
82
  "koa": "2.16.4",
@@ -1,4 +0,0 @@
1
- import type { Schema } from '@strapi/types';
2
- type Data = Record<keyof Schema.ContentType['attributes'], any>;
3
- declare const cleanData: (data: Data, schema: Schema.ContentType, components: Record<string, Schema.Component>) => any;
4
- export { cleanData };
@@ -1,70 +0,0 @@
1
- 'use strict';
2
-
3
- const cleanData = (data, schema, components)=>{
4
- const cleanedData = removeFields(data, [
5
- 'createdAt',
6
- 'createdBy',
7
- 'updatedAt',
8
- 'updatedBy',
9
- 'id',
10
- 'documentId',
11
- 'publishedAt',
12
- 'strapi_stage',
13
- 'strapi_assignee',
14
- 'locale',
15
- 'status'
16
- ]);
17
- const cleanedDataWithoutPasswordAndRelation = recursiveRemoveFieldTypes(cleanedData, schema, components, [
18
- 'relation',
19
- 'password'
20
- ]);
21
- return cleanedDataWithoutPasswordAndRelation;
22
- };
23
- const removeFields = (data, fields)=>{
24
- return Object.keys(data).reduce((acc, current)=>{
25
- if (fields.includes(current)) {
26
- return acc;
27
- }
28
- acc[current] = data[current];
29
- return acc;
30
- }, {});
31
- };
32
- const recursiveRemoveFieldTypes = (data, schema, components, fields)=>{
33
- return Object.keys(data).reduce((acc, current)=>{
34
- const attribute = schema.attributes[current] ?? {
35
- type: undefined
36
- };
37
- if (fields.includes(attribute.type)) {
38
- return acc;
39
- }
40
- if (attribute.type === 'dynamiczone') {
41
- acc[current] = data[current].map((componentValue, index)=>{
42
- const { id: _, ...rest } = recursiveRemoveFieldTypes(componentValue, components[componentValue.__component], components, fields);
43
- return {
44
- ...rest,
45
- __temp_key__: index + 1
46
- };
47
- });
48
- } else if (attribute.type === 'component') {
49
- const { repeatable, component } = attribute;
50
- if (repeatable) {
51
- acc[current] = (data[current] ?? []).map((compoData, index)=>{
52
- const { id: _, ...rest } = recursiveRemoveFieldTypes(compoData, components[component], components, fields);
53
- return {
54
- ...rest,
55
- __temp_key__: index + 1
56
- };
57
- });
58
- } else if (data[current]) {
59
- const { id: _, ...rest } = recursiveRemoveFieldTypes(data[current], components[component], components, fields);
60
- acc[current] = rest;
61
- }
62
- } else {
63
- acc[current] = data[current];
64
- }
65
- return acc;
66
- }, {});
67
- };
68
-
69
- exports.cleanData = cleanData;
70
- //# sourceMappingURL=clean.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clean.js","sources":["../../../admin/src/utils/clean.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\n\ntype Data = Record<keyof Schema.ContentType['attributes'], any>;\n\nconst cleanData = (\n data: Data,\n schema: Schema.ContentType,\n components: Record<string, Schema.Component>\n) => {\n const cleanedData = removeFields(data, [\n 'createdAt',\n 'createdBy',\n 'updatedAt',\n 'updatedBy',\n 'id',\n 'documentId',\n 'publishedAt',\n 'strapi_stage',\n 'strapi_assignee',\n 'locale',\n 'status',\n ]);\n\n const cleanedDataWithoutPasswordAndRelation = recursiveRemoveFieldTypes(\n cleanedData,\n schema,\n components,\n ['relation', 'password']\n );\n\n return cleanedDataWithoutPasswordAndRelation;\n};\n\nconst removeFields = (data: Data, fields: Array<keyof Schema.ContentType['attributes']>) => {\n return Object.keys(data).reduce((acc, current) => {\n if (fields.includes(current)) {\n return acc;\n }\n acc[current] = data[current];\n return acc;\n }, {} as Data);\n};\n\nconst recursiveRemoveFieldTypes = (\n data: Data,\n schema: Schema.Schema,\n components: Record<string, Schema.Component>,\n fields: Array<keyof Schema.ContentType['attributes']>\n) => {\n return Object.keys(data).reduce((acc, current) => {\n const attribute = schema.attributes[current] ?? { type: undefined };\n\n if (fields.includes(attribute.type)) {\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n acc[current] = data[current].map((componentValue: any, index: number) => {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n componentValue,\n components[componentValue.__component],\n components,\n fields\n );\n\n return {\n ...rest,\n __temp_key__: index + 1,\n };\n });\n } else if (attribute.type === 'component') {\n const { repeatable, component } = attribute;\n\n if (repeatable) {\n acc[current] = (data[current] ?? []).map((compoData: any, index: number) => {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n compoData,\n components[component],\n components,\n fields\n );\n\n return {\n ...rest,\n __temp_key__: index + 1,\n };\n });\n } else if (data[current]) {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n data[current],\n components[component],\n components,\n fields\n );\n\n acc[current] = rest;\n }\n } else {\n acc[current] = data[current];\n }\n\n return acc;\n }, {} as any);\n};\n\nexport { cleanData };\n"],"names":["cleanData","data","schema","components","cleanedData","removeFields","cleanedDataWithoutPasswordAndRelation","recursiveRemoveFieldTypes","fields","Object","keys","reduce","acc","current","includes","attribute","attributes","type","undefined","map","componentValue","index","id","_","rest","__component","__temp_key__","repeatable","component","compoData"],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- const cleanData = (data, schema, components)=>{
2
- const cleanedData = removeFields(data, [
3
- 'createdAt',
4
- 'createdBy',
5
- 'updatedAt',
6
- 'updatedBy',
7
- 'id',
8
- 'documentId',
9
- 'publishedAt',
10
- 'strapi_stage',
11
- 'strapi_assignee',
12
- 'locale',
13
- 'status'
14
- ]);
15
- const cleanedDataWithoutPasswordAndRelation = recursiveRemoveFieldTypes(cleanedData, schema, components, [
16
- 'relation',
17
- 'password'
18
- ]);
19
- return cleanedDataWithoutPasswordAndRelation;
20
- };
21
- const removeFields = (data, fields)=>{
22
- return Object.keys(data).reduce((acc, current)=>{
23
- if (fields.includes(current)) {
24
- return acc;
25
- }
26
- acc[current] = data[current];
27
- return acc;
28
- }, {});
29
- };
30
- const recursiveRemoveFieldTypes = (data, schema, components, fields)=>{
31
- return Object.keys(data).reduce((acc, current)=>{
32
- const attribute = schema.attributes[current] ?? {
33
- type: undefined
34
- };
35
- if (fields.includes(attribute.type)) {
36
- return acc;
37
- }
38
- if (attribute.type === 'dynamiczone') {
39
- acc[current] = data[current].map((componentValue, index)=>{
40
- const { id: _, ...rest } = recursiveRemoveFieldTypes(componentValue, components[componentValue.__component], components, fields);
41
- return {
42
- ...rest,
43
- __temp_key__: index + 1
44
- };
45
- });
46
- } else if (attribute.type === 'component') {
47
- const { repeatable, component } = attribute;
48
- if (repeatable) {
49
- acc[current] = (data[current] ?? []).map((compoData, index)=>{
50
- const { id: _, ...rest } = recursiveRemoveFieldTypes(compoData, components[component], components, fields);
51
- return {
52
- ...rest,
53
- __temp_key__: index + 1
54
- };
55
- });
56
- } else if (data[current]) {
57
- const { id: _, ...rest } = recursiveRemoveFieldTypes(data[current], components[component], components, fields);
58
- acc[current] = rest;
59
- }
60
- } else {
61
- acc[current] = data[current];
62
- }
63
- return acc;
64
- }, {});
65
- };
66
-
67
- export { cleanData };
68
- //# sourceMappingURL=clean.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clean.mjs","sources":["../../../admin/src/utils/clean.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\n\ntype Data = Record<keyof Schema.ContentType['attributes'], any>;\n\nconst cleanData = (\n data: Data,\n schema: Schema.ContentType,\n components: Record<string, Schema.Component>\n) => {\n const cleanedData = removeFields(data, [\n 'createdAt',\n 'createdBy',\n 'updatedAt',\n 'updatedBy',\n 'id',\n 'documentId',\n 'publishedAt',\n 'strapi_stage',\n 'strapi_assignee',\n 'locale',\n 'status',\n ]);\n\n const cleanedDataWithoutPasswordAndRelation = recursiveRemoveFieldTypes(\n cleanedData,\n schema,\n components,\n ['relation', 'password']\n );\n\n return cleanedDataWithoutPasswordAndRelation;\n};\n\nconst removeFields = (data: Data, fields: Array<keyof Schema.ContentType['attributes']>) => {\n return Object.keys(data).reduce((acc, current) => {\n if (fields.includes(current)) {\n return acc;\n }\n acc[current] = data[current];\n return acc;\n }, {} as Data);\n};\n\nconst recursiveRemoveFieldTypes = (\n data: Data,\n schema: Schema.Schema,\n components: Record<string, Schema.Component>,\n fields: Array<keyof Schema.ContentType['attributes']>\n) => {\n return Object.keys(data).reduce((acc, current) => {\n const attribute = schema.attributes[current] ?? { type: undefined };\n\n if (fields.includes(attribute.type)) {\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n acc[current] = data[current].map((componentValue: any, index: number) => {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n componentValue,\n components[componentValue.__component],\n components,\n fields\n );\n\n return {\n ...rest,\n __temp_key__: index + 1,\n };\n });\n } else if (attribute.type === 'component') {\n const { repeatable, component } = attribute;\n\n if (repeatable) {\n acc[current] = (data[current] ?? []).map((compoData: any, index: number) => {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n compoData,\n components[component],\n components,\n fields\n );\n\n return {\n ...rest,\n __temp_key__: index + 1,\n };\n });\n } else if (data[current]) {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n data[current],\n components[component],\n components,\n fields\n );\n\n acc[current] = rest;\n }\n } else {\n acc[current] = data[current];\n }\n\n return acc;\n }, {} as any);\n};\n\nexport { cleanData };\n"],"names":["cleanData","data","schema","components","cleanedData","removeFields","cleanedDataWithoutPasswordAndRelation","recursiveRemoveFieldTypes","fields","Object","keys","reduce","acc","current","includes","attribute","attributes","type","undefined","map","componentValue","index","id","_","rest","__component","__temp_key__","repeatable","component","compoData"],"mappings":"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"}