@strapi/i18n 5.53.0 → 5.55.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.
- package/dist/admin/components/CMHeaderActions.js +5 -5
- package/dist/admin/components/CMHeaderActions.js.map +1 -1
- package/dist/admin/components/CMHeaderActions.mjs +5 -5
- package/dist/admin/components/CMHeaderActions.mjs.map +1 -1
- package/dist/admin/hooks/useAITranslations.js +11 -0
- package/dist/admin/hooks/useAITranslations.js.map +1 -0
- package/dist/admin/hooks/useAITranslations.mjs +9 -0
- package/dist/admin/hooks/useAITranslations.mjs.map +1 -0
- package/dist/admin/pages/SettingsPage.js +2 -2
- package/dist/admin/pages/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage.mjs +2 -2
- package/dist/admin/pages/SettingsPage.mjs.map +1 -1
- package/dist/admin/src/hooks/useAITranslations.d.ts +1 -0
- package/dist/admin/src/services/settings.d.ts +1 -1
- package/dist/server/audit-logs.js +39 -0
- package/dist/server/audit-logs.js.map +1 -0
- package/dist/server/audit-logs.mjs +37 -0
- package/dist/server/audit-logs.mjs.map +1 -0
- package/dist/server/bootstrap.js +11 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +11 -1
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/constants/index.js +7 -0
- package/dist/server/constants/index.js.map +1 -1
- package/dist/server/constants/index.mjs +7 -1
- package/dist/server/constants/index.mjs.map +1 -1
- package/dist/server/controllers/locales.js +3 -1
- package/dist/server/controllers/locales.js.map +1 -1
- package/dist/server/controllers/locales.mjs +3 -1
- package/dist/server/controllers/locales.mjs.map +1 -1
- package/dist/server/controllers/settings.js +5 -2
- package/dist/server/controllers/settings.js.map +1 -1
- package/dist/server/controllers/settings.mjs +5 -2
- package/dist/server/controllers/settings.mjs.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/services/ai-localizations.js +8 -34
- package/dist/server/services/ai-localizations.js.map +1 -1
- package/dist/server/services/ai-localizations.mjs +8 -34
- package/dist/server/services/ai-localizations.mjs.map +1 -1
- package/dist/server/services/ai-translations-strapi-managed.js +44 -0
- package/dist/server/services/ai-translations-strapi-managed.js.map +1 -0
- package/dist/server/services/ai-translations-strapi-managed.mjs +42 -0
- package/dist/server/services/ai-translations-strapi-managed.mjs.map +1 -0
- package/dist/server/services/ai-translations.js +50 -0
- package/dist/server/services/ai-translations.js.map +1 -0
- package/dist/server/services/ai-translations.mjs +48 -0
- package/dist/server/services/ai-translations.mjs.map +1 -0
- package/dist/server/services/index.js +2 -0
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +2 -0
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/locales.js +76 -2
- package/dist/server/services/locales.js.map +1 -1
- package/dist/server/services/locales.mjs +77 -3
- package/dist/server/services/locales.mjs.map +1 -1
- package/dist/server/src/audit-logs.d.ts +24 -0
- package/dist/server/src/audit-logs.d.ts.map +1 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/constants/index.d.ts +7 -1
- package/dist/server/src/constants/index.d.ts.map +1 -1
- package/dist/server/src/controllers/settings.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +7 -1
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/ai-localizations.d.ts.map +1 -1
- package/dist/server/src/services/ai-translations-strapi-managed.d.ts +7 -0
- package/dist/server/src/services/ai-translations-strapi-managed.d.ts.map +1 -0
- package/dist/server/src/services/ai-translations.d.ts +29 -0
- package/dist/server/src/services/ai-translations.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +6 -1
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/locales.d.ts +3 -1
- package/dist/server/src/services/locales.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/shared/contracts/settings.d.ts +6 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import permissions from './permissions';\nimport metrics from './metrics';\nimport localizations from './localizations';\nimport locales from './locales';\nimport isoLocales from './iso-locales';\nimport contentTypes from './content-types';\nimport sanitize from './sanitize';\nimport { createSettingsService } from './settings';\nimport { createAILocalizationsService } from './ai-localizations';\nimport { createAILocalizationJobsService } from './ai-localization-jobs';\nimport { createFillFromLocaleService } from './fill-from-locale';\n\nexport default {\n permissions,\n metrics,\n localizations,\n locales,\n sanitize,\n 'iso-locales': isoLocales,\n 'content-types': contentTypes,\n 'ai-localizations': createAILocalizationsService,\n 'ai-localization-jobs': createAILocalizationJobsService,\n settings: createSettingsService,\n 'fill-from-locale': createFillFromLocaleService,\n};\n"],"names":["permissions","metrics","localizations","locales","sanitize","isoLocales","contentTypes","createAILocalizationsService","createAILocalizationJobsService","settings","createSettingsService","createFillFromLocaleService"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import permissions from './permissions';\nimport metrics from './metrics';\nimport localizations from './localizations';\nimport locales from './locales';\nimport isoLocales from './iso-locales';\nimport contentTypes from './content-types';\nimport sanitize from './sanitize';\nimport { createSettingsService } from './settings';\nimport { createAILocalizationsService } from './ai-localizations';\nimport { createAITranslationsService } from './ai-translations';\nimport { createAILocalizationJobsService } from './ai-localization-jobs';\nimport { createFillFromLocaleService } from './fill-from-locale';\n\nexport default {\n permissions,\n metrics,\n localizations,\n locales,\n sanitize,\n 'iso-locales': isoLocales,\n 'content-types': contentTypes,\n 'ai-localizations': createAILocalizationsService,\n 'ai-translations': createAITranslationsService,\n 'ai-localization-jobs': createAILocalizationJobsService,\n settings: createSettingsService,\n 'fill-from-locale': createFillFromLocaleService,\n};\n"],"names":["permissions","metrics","localizations","locales","sanitize","isoLocales","contentTypes","createAILocalizationsService","createAITranslationsService","createAILocalizationJobsService","settings","createSettingsService","createFillFromLocaleService"],"mappings":";;;;;;;;;;;;;;;AAaA,eAAe;AACbA,IAAAA,WAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,aAAAA;AACAC,IAAAA,OAAAA;AACAC,cAAAA,KAAAA;IACA,aAAA,EAAeC,UAAAA;IACf,eAAA,EAAiBC,YAAAA;IACjB,kBAAA,EAAoBC,4CAAAA;IACpB,iBAAA,EAAmBC,0CAAAA;IACnB,sBAAA,EAAwBC,kDAAAA;IACxBC,QAAAA,EAAUC,8BAAAA;IACV,kBAAA,EAAoBC;AACtB,CAAA;;;;"}
|
|
@@ -7,6 +7,7 @@ import contentTypes from './content-types.mjs';
|
|
|
7
7
|
import sanitize from './sanitize/index.mjs';
|
|
8
8
|
import { createSettingsService } from './settings.mjs';
|
|
9
9
|
import { createAILocalizationsService } from './ai-localizations.mjs';
|
|
10
|
+
import { createAITranslationsService } from './ai-translations.mjs';
|
|
10
11
|
import { createAILocalizationJobsService } from './ai-localization-jobs.mjs';
|
|
11
12
|
import { createFillFromLocaleService } from './fill-from-locale.mjs';
|
|
12
13
|
|
|
@@ -19,6 +20,7 @@ var services = {
|
|
|
19
20
|
'iso-locales': isoLocalesService,
|
|
20
21
|
'content-types': contentTypes,
|
|
21
22
|
'ai-localizations': createAILocalizationsService,
|
|
23
|
+
'ai-translations': createAITranslationsService,
|
|
22
24
|
'ai-localization-jobs': createAILocalizationJobsService,
|
|
23
25
|
settings: createSettingsService,
|
|
24
26
|
'fill-from-locale': createFillFromLocaleService
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import permissions from './permissions';\nimport metrics from './metrics';\nimport localizations from './localizations';\nimport locales from './locales';\nimport isoLocales from './iso-locales';\nimport contentTypes from './content-types';\nimport sanitize from './sanitize';\nimport { createSettingsService } from './settings';\nimport { createAILocalizationsService } from './ai-localizations';\nimport { createAILocalizationJobsService } from './ai-localization-jobs';\nimport { createFillFromLocaleService } from './fill-from-locale';\n\nexport default {\n permissions,\n metrics,\n localizations,\n locales,\n sanitize,\n 'iso-locales': isoLocales,\n 'content-types': contentTypes,\n 'ai-localizations': createAILocalizationsService,\n 'ai-localization-jobs': createAILocalizationJobsService,\n settings: createSettingsService,\n 'fill-from-locale': createFillFromLocaleService,\n};\n"],"names":["permissions","metrics","localizations","locales","sanitize","isoLocales","contentTypes","createAILocalizationsService","createAILocalizationJobsService","settings","createSettingsService","createFillFromLocaleService"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import permissions from './permissions';\nimport metrics from './metrics';\nimport localizations from './localizations';\nimport locales from './locales';\nimport isoLocales from './iso-locales';\nimport contentTypes from './content-types';\nimport sanitize from './sanitize';\nimport { createSettingsService } from './settings';\nimport { createAILocalizationsService } from './ai-localizations';\nimport { createAITranslationsService } from './ai-translations';\nimport { createAILocalizationJobsService } from './ai-localization-jobs';\nimport { createFillFromLocaleService } from './fill-from-locale';\n\nexport default {\n permissions,\n metrics,\n localizations,\n locales,\n sanitize,\n 'iso-locales': isoLocales,\n 'content-types': contentTypes,\n 'ai-localizations': createAILocalizationsService,\n 'ai-translations': createAITranslationsService,\n 'ai-localization-jobs': createAILocalizationJobsService,\n settings: createSettingsService,\n 'fill-from-locale': createFillFromLocaleService,\n};\n"],"names":["permissions","metrics","localizations","locales","sanitize","isoLocales","contentTypes","createAILocalizationsService","createAITranslationsService","createAILocalizationJobsService","settings","createSettingsService","createFillFromLocaleService"],"mappings":";;;;;;;;;;;;;AAaA,eAAe;AACbA,IAAAA,WAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,aAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,QAAAA;IACA,aAAA,EAAeC,iBAAAA;IACf,eAAA,EAAiBC,YAAAA;IACjB,kBAAA,EAAoBC,4BAAAA;IACpB,iBAAA,EAAmBC,2BAAAA;IACnB,sBAAA,EAAwBC,+BAAAA;IACxBC,QAAAA,EAAUC,qBAAAA;IACV,kBAAA,EAAoBC;AACtB,CAAA;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
4
5
|
var index = require('../constants/index.js');
|
|
5
6
|
var index$1 = require('../utils/index.js');
|
|
6
7
|
|
|
@@ -20,19 +21,47 @@ const findByCode = (code)=>strapi.db.query('plugin::i18n.locale').findOne({
|
|
|
20
21
|
const count = (params = {})=>strapi.db.query('plugin::i18n.locale').count({
|
|
21
22
|
where: params
|
|
22
23
|
});
|
|
23
|
-
const create = async (locale)=>{
|
|
24
|
+
const create = async (locale, { isDefault = false } = {})=>{
|
|
24
25
|
const result = await strapi.db.query('plugin::i18n.locale').create({
|
|
25
26
|
data: locale
|
|
26
27
|
});
|
|
27
28
|
index$1.getService('metrics').sendDidUpdateI18nLocalesEvent();
|
|
29
|
+
if (result?.id) {
|
|
30
|
+
await utils.emitAudit({
|
|
31
|
+
strapi
|
|
32
|
+
}, index.AUDITED_EVENTS.LOCALE_CREATE, {
|
|
33
|
+
localeId: result.id,
|
|
34
|
+
name: result.name,
|
|
35
|
+
code: result.code,
|
|
36
|
+
isDefault
|
|
37
|
+
});
|
|
38
|
+
}
|
|
28
39
|
return result;
|
|
29
40
|
};
|
|
30
41
|
const update = async (params, updates)=>{
|
|
42
|
+
const previous = await strapi.db.query('plugin::i18n.locale').findOne({
|
|
43
|
+
where: params
|
|
44
|
+
});
|
|
31
45
|
const result = await strapi.db.query('plugin::i18n.locale').update({
|
|
32
46
|
where: params,
|
|
33
47
|
data: updates
|
|
34
48
|
});
|
|
35
49
|
index$1.getService('metrics').sendDidUpdateI18nLocalesEvent();
|
|
50
|
+
if (result && previous?.name !== result.name) {
|
|
51
|
+
await utils.emitAudit({
|
|
52
|
+
strapi
|
|
53
|
+
}, index.AUDITED_EVENTS.LOCALE_UPDATE, {
|
|
54
|
+
localeId: result.id,
|
|
55
|
+
name: result.name,
|
|
56
|
+
code: result.code,
|
|
57
|
+
changes: {
|
|
58
|
+
name: {
|
|
59
|
+
before: previous?.name ?? null,
|
|
60
|
+
after: result.name
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
36
65
|
return result;
|
|
37
66
|
};
|
|
38
67
|
const deleteFn = async ({ id })=>{
|
|
@@ -47,14 +76,59 @@ const deleteFn = async ({ id })=>{
|
|
|
47
76
|
}
|
|
48
77
|
});
|
|
49
78
|
index$1.getService('metrics').sendDidUpdateI18nLocalesEvent();
|
|
79
|
+
await utils.emitAudit({
|
|
80
|
+
strapi
|
|
81
|
+
}, index.AUDITED_EVENTS.LOCALE_DELETE, {
|
|
82
|
+
localeId: localeToDelete.id,
|
|
83
|
+
name: localeToDelete.name,
|
|
84
|
+
code: localeToDelete.code
|
|
85
|
+
});
|
|
50
86
|
return result;
|
|
51
87
|
}
|
|
52
88
|
return localeToDelete;
|
|
53
89
|
};
|
|
54
|
-
const setDefaultLocale = ({ code })=>
|
|
90
|
+
const setDefaultLocale = async ({ code })=>{
|
|
91
|
+
const previousCode = await getDefaultLocale();
|
|
92
|
+
const hasChanged = previousCode !== code;
|
|
93
|
+
// Look up the rows before the write: if this fails afterwards, the default is already
|
|
94
|
+
// switched and nothing recorded it.
|
|
95
|
+
const [previous, next] = hasChanged ? await Promise.all([
|
|
96
|
+
previousCode ? findByCode(previousCode) : null,
|
|
97
|
+
findByCode(code)
|
|
98
|
+
]) : [
|
|
99
|
+
null,
|
|
100
|
+
null
|
|
101
|
+
];
|
|
102
|
+
// set() is typed void but resolves to the store row. Returned so callers that used it
|
|
103
|
+
// keep working.
|
|
104
|
+
const result = await index$1.getCoreStore().set({
|
|
55
105
|
key: 'default_locale',
|
|
56
106
|
value: code
|
|
57
107
|
});
|
|
108
|
+
if (hasChanged && next?.id) {
|
|
109
|
+
const before = previousCode ? {
|
|
110
|
+
id: previous?.id ?? null,
|
|
111
|
+
code: previousCode
|
|
112
|
+
} : null;
|
|
113
|
+
await utils.emitAudit({
|
|
114
|
+
strapi
|
|
115
|
+
}, index.AUDITED_EVENTS.LOCALE_DEFAULT_UPDATE, {
|
|
116
|
+
localeId: next.id,
|
|
117
|
+
name: next.name,
|
|
118
|
+
code: next.code,
|
|
119
|
+
changes: {
|
|
120
|
+
defaultLocale: {
|
|
121
|
+
before,
|
|
122
|
+
after: {
|
|
123
|
+
id: next.id,
|
|
124
|
+
code: next.code
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
};
|
|
58
132
|
const getDefaultLocale = ()=>index$1.getCoreStore().get({
|
|
59
133
|
key: 'default_locale'
|
|
60
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.js","sources":["../../../server/src/services/locales.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { DEFAULT_LOCALE } from '../constants';\nimport { getService, getCoreStore } from '../utils';\n\nconst find = (params: any = {}) =>\n strapi.db.query('plugin::i18n.locale').findMany({ where: params });\n\nconst findById = (id: any) => strapi.db.query('plugin::i18n.locale').findOne({ where: { id } });\n\nconst findByCode = (code: any) =>\n strapi.db.query('plugin::i18n.locale').findOne({ where: { code } });\n\nconst count = (params: any = {}) => strapi.db.query('plugin::i18n.locale').count({ where: params });\n\nconst create = async (locale: any) => {\n const result = await strapi.db.query('plugin::i18n.locale').create({ data: locale });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n return result;\n};\n\nconst update = async (params: any, updates: any) => {\n const result = await strapi.db\n .query('plugin::i18n.locale')\n .update({ where: params, data: updates });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n return result;\n};\n\nconst deleteFn = async ({ id }: any) => {\n const localeToDelete = await findById(id);\n\n if (localeToDelete) {\n await deleteAllLocalizedEntriesFor({ locale: localeToDelete.code });\n const result = await strapi.db.query('plugin::i18n.locale').delete({ where: { id } });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n return result;\n }\n\n return localeToDelete;\n};\n\nconst setDefaultLocale = ({ code }: any) =>\n getCoreStore().set({ key: 'default_locale', value: code });\n\nconst getDefaultLocale = () => getCoreStore().get({ key: 'default_locale' });\n\nconst setIsDefault = async (locales: any) => {\n if (isNil(locales)) {\n return locales;\n }\n\n const actualDefault = await getDefaultLocale();\n\n if (Array.isArray(locales)) {\n return locales.map((locale) => ({ ...locale, isDefault: actualDefault === locale.code }));\n }\n // single locale\n return { ...locales, isDefault: actualDefault === locales.code };\n};\n\nconst initDefaultLocale = async () => {\n const existingLocalesNb = await strapi.db.query('plugin::i18n.locale').count();\n if (existingLocalesNb === 0) {\n await create(DEFAULT_LOCALE);\n await setDefaultLocale({ code: DEFAULT_LOCALE.code });\n }\n};\n\nconst deleteAllLocalizedEntriesFor = async ({ locale }: any) => {\n const { isLocalizedContentType } = getService('content-types');\n\n const localizedModels = Object.values(strapi.contentTypes).filter(isLocalizedContentType);\n\n for (const model of localizedModels) {\n // FIXME: delete many content & their associations\n await strapi.db.query(model.uid).deleteMany({ where: { locale } });\n }\n};\n\nconst locales = () => ({\n find,\n findById,\n findByCode,\n create,\n update,\n count,\n setDefaultLocale,\n getDefaultLocale,\n setIsDefault,\n delete: deleteFn,\n initDefaultLocale,\n});\n\ntype LocaleService = typeof locales;\n\nexport default locales;\nexport type { LocaleService };\n"],"names":["find","params","strapi","db","query","findMany","where","findById","id","findOne","findByCode","code","count","create","locale","result","data","getService","sendDidUpdateI18nLocalesEvent","update","updates","deleteFn","localeToDelete","deleteAllLocalizedEntriesFor","delete","setDefaultLocale","getCoreStore","set","key","value","getDefaultLocale","get","setIsDefault","locales","isNil","actualDefault","Array","isArray","map","isDefault","initDefaultLocale","existingLocalesNb","DEFAULT_LOCALE","isLocalizedContentType","localizedModels","Object","values","contentTypes","filter","model","uid","deleteMany"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locales.js","sources":["../../../server/src/services/locales.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { emitAudit } from '@strapi/utils';\nimport { AUDITED_EVENTS, DEFAULT_LOCALE } from '../constants';\nimport { getService, getCoreStore } from '../utils';\n\nconst find = (params: any = {}) =>\n strapi.db.query('plugin::i18n.locale').findMany({ where: params });\n\nconst findById = (id: any) => strapi.db.query('plugin::i18n.locale').findOne({ where: { id } });\n\nconst findByCode = (code: any) =>\n strapi.db.query('plugin::i18n.locale').findOne({ where: { code } });\n\nconst count = (params: any = {}) => strapi.db.query('plugin::i18n.locale').count({ where: params });\n\nconst create = async (locale: any, { isDefault = false }: { isDefault?: boolean } = {}) => {\n const result = await strapi.db.query('plugin::i18n.locale').create({ data: locale });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n if (result?.id) {\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_CREATE, {\n localeId: result.id,\n name: result.name,\n code: result.code,\n isDefault,\n });\n }\n\n return result;\n};\n\nconst update = async (params: any, updates: any) => {\n const previous = await strapi.db.query('plugin::i18n.locale').findOne({ where: params });\n\n const result = await strapi.db\n .query('plugin::i18n.locale')\n .update({ where: params, data: updates });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n if (result && previous?.name !== result.name) {\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_UPDATE, {\n localeId: result.id,\n name: result.name,\n code: result.code,\n changes: { name: { before: previous?.name ?? null, after: result.name } },\n });\n }\n\n return result;\n};\n\nconst deleteFn = async ({ id }: any) => {\n const localeToDelete = await findById(id);\n\n if (localeToDelete) {\n await deleteAllLocalizedEntriesFor({ locale: localeToDelete.code });\n const result = await strapi.db.query('plugin::i18n.locale').delete({ where: { id } });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_DELETE, {\n localeId: localeToDelete.id,\n name: localeToDelete.name,\n code: localeToDelete.code,\n });\n\n return result;\n }\n\n return localeToDelete;\n};\n\nconst setDefaultLocale = async ({ code }: any) => {\n const previousCode = await getDefaultLocale();\n const hasChanged = previousCode !== code;\n\n // Look up the rows before the write: if this fails afterwards, the default is already\n // switched and nothing recorded it.\n const [previous, next] = hasChanged\n ? await Promise.all([previousCode ? findByCode(previousCode) : null, findByCode(code)])\n : [null, null];\n\n // set() is typed void but resolves to the store row. Returned so callers that used it\n // keep working.\n const result = await getCoreStore().set({ key: 'default_locale', value: code });\n\n if (hasChanged && next?.id) {\n const before = previousCode ? { id: previous?.id ?? null, code: previousCode } : null;\n\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_DEFAULT_UPDATE, {\n localeId: next.id,\n name: next.name,\n code: next.code,\n changes: { defaultLocale: { before, after: { id: next.id, code: next.code } } },\n });\n }\n\n return result;\n};\n\nconst getDefaultLocale = () => getCoreStore().get({ key: 'default_locale' });\n\nconst setIsDefault = async (locales: any) => {\n if (isNil(locales)) {\n return locales;\n }\n\n const actualDefault = await getDefaultLocale();\n\n if (Array.isArray(locales)) {\n return locales.map((locale) => ({ ...locale, isDefault: actualDefault === locale.code }));\n }\n // single locale\n return { ...locales, isDefault: actualDefault === locales.code };\n};\n\nconst initDefaultLocale = async () => {\n const existingLocalesNb = await strapi.db.query('plugin::i18n.locale').count();\n if (existingLocalesNb === 0) {\n await create(DEFAULT_LOCALE);\n await setDefaultLocale({ code: DEFAULT_LOCALE.code });\n }\n};\n\nconst deleteAllLocalizedEntriesFor = async ({ locale }: any) => {\n const { isLocalizedContentType } = getService('content-types');\n\n const localizedModels = Object.values(strapi.contentTypes).filter(isLocalizedContentType);\n\n for (const model of localizedModels) {\n // FIXME: delete many content & their associations\n await strapi.db.query(model.uid).deleteMany({ where: { locale } });\n }\n};\n\nconst locales = () => ({\n find,\n findById,\n findByCode,\n create,\n update,\n count,\n setDefaultLocale,\n getDefaultLocale,\n setIsDefault,\n delete: deleteFn,\n initDefaultLocale,\n});\n\ntype LocaleService = typeof locales;\n\nexport default locales;\nexport type { LocaleService };\n"],"names":["find","params","strapi","db","query","findMany","where","findById","id","findOne","findByCode","code","count","create","locale","isDefault","result","data","getService","sendDidUpdateI18nLocalesEvent","emitAudit","AUDITED_EVENTS","LOCALE_CREATE","localeId","name","update","updates","previous","LOCALE_UPDATE","changes","before","after","deleteFn","localeToDelete","deleteAllLocalizedEntriesFor","delete","LOCALE_DELETE","setDefaultLocale","previousCode","getDefaultLocale","hasChanged","next","Promise","all","getCoreStore","set","key","value","LOCALE_DEFAULT_UPDATE","defaultLocale","get","setIsDefault","locales","isNil","actualDefault","Array","isArray","map","initDefaultLocale","existingLocalesNb","DEFAULT_LOCALE","isLocalizedContentType","localizedModels","Object","values","contentTypes","filter","model","uid","deleteMany"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isNil } from 'lodash/fp';
|
|
2
|
-
import {
|
|
2
|
+
import { emitAudit } from '@strapi/utils';
|
|
3
|
+
import { DEFAULT_LOCALE, AUDITED_EVENTS } from '../constants/index.mjs';
|
|
3
4
|
import { getService, getCoreStore } from '../utils/index.mjs';
|
|
4
5
|
|
|
5
6
|
const find = (params = {})=>strapi.db.query('plugin::i18n.locale').findMany({
|
|
@@ -18,19 +19,47 @@ const findByCode = (code)=>strapi.db.query('plugin::i18n.locale').findOne({
|
|
|
18
19
|
const count = (params = {})=>strapi.db.query('plugin::i18n.locale').count({
|
|
19
20
|
where: params
|
|
20
21
|
});
|
|
21
|
-
const create = async (locale)=>{
|
|
22
|
+
const create = async (locale, { isDefault = false } = {})=>{
|
|
22
23
|
const result = await strapi.db.query('plugin::i18n.locale').create({
|
|
23
24
|
data: locale
|
|
24
25
|
});
|
|
25
26
|
getService('metrics').sendDidUpdateI18nLocalesEvent();
|
|
27
|
+
if (result?.id) {
|
|
28
|
+
await emitAudit({
|
|
29
|
+
strapi
|
|
30
|
+
}, AUDITED_EVENTS.LOCALE_CREATE, {
|
|
31
|
+
localeId: result.id,
|
|
32
|
+
name: result.name,
|
|
33
|
+
code: result.code,
|
|
34
|
+
isDefault
|
|
35
|
+
});
|
|
36
|
+
}
|
|
26
37
|
return result;
|
|
27
38
|
};
|
|
28
39
|
const update = async (params, updates)=>{
|
|
40
|
+
const previous = await strapi.db.query('plugin::i18n.locale').findOne({
|
|
41
|
+
where: params
|
|
42
|
+
});
|
|
29
43
|
const result = await strapi.db.query('plugin::i18n.locale').update({
|
|
30
44
|
where: params,
|
|
31
45
|
data: updates
|
|
32
46
|
});
|
|
33
47
|
getService('metrics').sendDidUpdateI18nLocalesEvent();
|
|
48
|
+
if (result && previous?.name !== result.name) {
|
|
49
|
+
await emitAudit({
|
|
50
|
+
strapi
|
|
51
|
+
}, AUDITED_EVENTS.LOCALE_UPDATE, {
|
|
52
|
+
localeId: result.id,
|
|
53
|
+
name: result.name,
|
|
54
|
+
code: result.code,
|
|
55
|
+
changes: {
|
|
56
|
+
name: {
|
|
57
|
+
before: previous?.name ?? null,
|
|
58
|
+
after: result.name
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
34
63
|
return result;
|
|
35
64
|
};
|
|
36
65
|
const deleteFn = async ({ id })=>{
|
|
@@ -45,14 +74,59 @@ const deleteFn = async ({ id })=>{
|
|
|
45
74
|
}
|
|
46
75
|
});
|
|
47
76
|
getService('metrics').sendDidUpdateI18nLocalesEvent();
|
|
77
|
+
await emitAudit({
|
|
78
|
+
strapi
|
|
79
|
+
}, AUDITED_EVENTS.LOCALE_DELETE, {
|
|
80
|
+
localeId: localeToDelete.id,
|
|
81
|
+
name: localeToDelete.name,
|
|
82
|
+
code: localeToDelete.code
|
|
83
|
+
});
|
|
48
84
|
return result;
|
|
49
85
|
}
|
|
50
86
|
return localeToDelete;
|
|
51
87
|
};
|
|
52
|
-
const setDefaultLocale = ({ code })=>
|
|
88
|
+
const setDefaultLocale = async ({ code })=>{
|
|
89
|
+
const previousCode = await getDefaultLocale();
|
|
90
|
+
const hasChanged = previousCode !== code;
|
|
91
|
+
// Look up the rows before the write: if this fails afterwards, the default is already
|
|
92
|
+
// switched and nothing recorded it.
|
|
93
|
+
const [previous, next] = hasChanged ? await Promise.all([
|
|
94
|
+
previousCode ? findByCode(previousCode) : null,
|
|
95
|
+
findByCode(code)
|
|
96
|
+
]) : [
|
|
97
|
+
null,
|
|
98
|
+
null
|
|
99
|
+
];
|
|
100
|
+
// set() is typed void but resolves to the store row. Returned so callers that used it
|
|
101
|
+
// keep working.
|
|
102
|
+
const result = await getCoreStore().set({
|
|
53
103
|
key: 'default_locale',
|
|
54
104
|
value: code
|
|
55
105
|
});
|
|
106
|
+
if (hasChanged && next?.id) {
|
|
107
|
+
const before = previousCode ? {
|
|
108
|
+
id: previous?.id ?? null,
|
|
109
|
+
code: previousCode
|
|
110
|
+
} : null;
|
|
111
|
+
await emitAudit({
|
|
112
|
+
strapi
|
|
113
|
+
}, AUDITED_EVENTS.LOCALE_DEFAULT_UPDATE, {
|
|
114
|
+
localeId: next.id,
|
|
115
|
+
name: next.name,
|
|
116
|
+
code: next.code,
|
|
117
|
+
changes: {
|
|
118
|
+
defaultLocale: {
|
|
119
|
+
before,
|
|
120
|
+
after: {
|
|
121
|
+
id: next.id,
|
|
122
|
+
code: next.code
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
};
|
|
56
130
|
const getDefaultLocale = ()=>getCoreStore().get({
|
|
57
131
|
key: 'default_locale'
|
|
58
132
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.mjs","sources":["../../../server/src/services/locales.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { DEFAULT_LOCALE } from '../constants';\nimport { getService, getCoreStore } from '../utils';\n\nconst find = (params: any = {}) =>\n strapi.db.query('plugin::i18n.locale').findMany({ where: params });\n\nconst findById = (id: any) => strapi.db.query('plugin::i18n.locale').findOne({ where: { id } });\n\nconst findByCode = (code: any) =>\n strapi.db.query('plugin::i18n.locale').findOne({ where: { code } });\n\nconst count = (params: any = {}) => strapi.db.query('plugin::i18n.locale').count({ where: params });\n\nconst create = async (locale: any) => {\n const result = await strapi.db.query('plugin::i18n.locale').create({ data: locale });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n return result;\n};\n\nconst update = async (params: any, updates: any) => {\n const result = await strapi.db\n .query('plugin::i18n.locale')\n .update({ where: params, data: updates });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n return result;\n};\n\nconst deleteFn = async ({ id }: any) => {\n const localeToDelete = await findById(id);\n\n if (localeToDelete) {\n await deleteAllLocalizedEntriesFor({ locale: localeToDelete.code });\n const result = await strapi.db.query('plugin::i18n.locale').delete({ where: { id } });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n return result;\n }\n\n return localeToDelete;\n};\n\nconst setDefaultLocale = ({ code }: any) =>\n getCoreStore().set({ key: 'default_locale', value: code });\n\nconst getDefaultLocale = () => getCoreStore().get({ key: 'default_locale' });\n\nconst setIsDefault = async (locales: any) => {\n if (isNil(locales)) {\n return locales;\n }\n\n const actualDefault = await getDefaultLocale();\n\n if (Array.isArray(locales)) {\n return locales.map((locale) => ({ ...locale, isDefault: actualDefault === locale.code }));\n }\n // single locale\n return { ...locales, isDefault: actualDefault === locales.code };\n};\n\nconst initDefaultLocale = async () => {\n const existingLocalesNb = await strapi.db.query('plugin::i18n.locale').count();\n if (existingLocalesNb === 0) {\n await create(DEFAULT_LOCALE);\n await setDefaultLocale({ code: DEFAULT_LOCALE.code });\n }\n};\n\nconst deleteAllLocalizedEntriesFor = async ({ locale }: any) => {\n const { isLocalizedContentType } = getService('content-types');\n\n const localizedModels = Object.values(strapi.contentTypes).filter(isLocalizedContentType);\n\n for (const model of localizedModels) {\n // FIXME: delete many content & their associations\n await strapi.db.query(model.uid).deleteMany({ where: { locale } });\n }\n};\n\nconst locales = () => ({\n find,\n findById,\n findByCode,\n create,\n update,\n count,\n setDefaultLocale,\n getDefaultLocale,\n setIsDefault,\n delete: deleteFn,\n initDefaultLocale,\n});\n\ntype LocaleService = typeof locales;\n\nexport default locales;\nexport type { LocaleService };\n"],"names":["find","params","strapi","db","query","findMany","where","findById","id","findOne","findByCode","code","count","create","locale","result","data","getService","sendDidUpdateI18nLocalesEvent","update","updates","deleteFn","localeToDelete","deleteAllLocalizedEntriesFor","delete","setDefaultLocale","getCoreStore","set","key","value","getDefaultLocale","get","setIsDefault","locales","isNil","actualDefault","Array","isArray","map","isDefault","initDefaultLocale","existingLocalesNb","DEFAULT_LOCALE","isLocalizedContentType","localizedModels","Object","values","contentTypes","filter","model","uid","deleteMany"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locales.mjs","sources":["../../../server/src/services/locales.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { emitAudit } from '@strapi/utils';\nimport { AUDITED_EVENTS, DEFAULT_LOCALE } from '../constants';\nimport { getService, getCoreStore } from '../utils';\n\nconst find = (params: any = {}) =>\n strapi.db.query('plugin::i18n.locale').findMany({ where: params });\n\nconst findById = (id: any) => strapi.db.query('plugin::i18n.locale').findOne({ where: { id } });\n\nconst findByCode = (code: any) =>\n strapi.db.query('plugin::i18n.locale').findOne({ where: { code } });\n\nconst count = (params: any = {}) => strapi.db.query('plugin::i18n.locale').count({ where: params });\n\nconst create = async (locale: any, { isDefault = false }: { isDefault?: boolean } = {}) => {\n const result = await strapi.db.query('plugin::i18n.locale').create({ data: locale });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n if (result?.id) {\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_CREATE, {\n localeId: result.id,\n name: result.name,\n code: result.code,\n isDefault,\n });\n }\n\n return result;\n};\n\nconst update = async (params: any, updates: any) => {\n const previous = await strapi.db.query('plugin::i18n.locale').findOne({ where: params });\n\n const result = await strapi.db\n .query('plugin::i18n.locale')\n .update({ where: params, data: updates });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n if (result && previous?.name !== result.name) {\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_UPDATE, {\n localeId: result.id,\n name: result.name,\n code: result.code,\n changes: { name: { before: previous?.name ?? null, after: result.name } },\n });\n }\n\n return result;\n};\n\nconst deleteFn = async ({ id }: any) => {\n const localeToDelete = await findById(id);\n\n if (localeToDelete) {\n await deleteAllLocalizedEntriesFor({ locale: localeToDelete.code });\n const result = await strapi.db.query('plugin::i18n.locale').delete({ where: { id } });\n\n getService('metrics').sendDidUpdateI18nLocalesEvent();\n\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_DELETE, {\n localeId: localeToDelete.id,\n name: localeToDelete.name,\n code: localeToDelete.code,\n });\n\n return result;\n }\n\n return localeToDelete;\n};\n\nconst setDefaultLocale = async ({ code }: any) => {\n const previousCode = await getDefaultLocale();\n const hasChanged = previousCode !== code;\n\n // Look up the rows before the write: if this fails afterwards, the default is already\n // switched and nothing recorded it.\n const [previous, next] = hasChanged\n ? await Promise.all([previousCode ? findByCode(previousCode) : null, findByCode(code)])\n : [null, null];\n\n // set() is typed void but resolves to the store row. Returned so callers that used it\n // keep working.\n const result = await getCoreStore().set({ key: 'default_locale', value: code });\n\n if (hasChanged && next?.id) {\n const before = previousCode ? { id: previous?.id ?? null, code: previousCode } : null;\n\n await emitAudit({ strapi }, AUDITED_EVENTS.LOCALE_DEFAULT_UPDATE, {\n localeId: next.id,\n name: next.name,\n code: next.code,\n changes: { defaultLocale: { before, after: { id: next.id, code: next.code } } },\n });\n }\n\n return result;\n};\n\nconst getDefaultLocale = () => getCoreStore().get({ key: 'default_locale' });\n\nconst setIsDefault = async (locales: any) => {\n if (isNil(locales)) {\n return locales;\n }\n\n const actualDefault = await getDefaultLocale();\n\n if (Array.isArray(locales)) {\n return locales.map((locale) => ({ ...locale, isDefault: actualDefault === locale.code }));\n }\n // single locale\n return { ...locales, isDefault: actualDefault === locales.code };\n};\n\nconst initDefaultLocale = async () => {\n const existingLocalesNb = await strapi.db.query('plugin::i18n.locale').count();\n if (existingLocalesNb === 0) {\n await create(DEFAULT_LOCALE);\n await setDefaultLocale({ code: DEFAULT_LOCALE.code });\n }\n};\n\nconst deleteAllLocalizedEntriesFor = async ({ locale }: any) => {\n const { isLocalizedContentType } = getService('content-types');\n\n const localizedModels = Object.values(strapi.contentTypes).filter(isLocalizedContentType);\n\n for (const model of localizedModels) {\n // FIXME: delete many content & their associations\n await strapi.db.query(model.uid).deleteMany({ where: { locale } });\n }\n};\n\nconst locales = () => ({\n find,\n findById,\n findByCode,\n create,\n update,\n count,\n setDefaultLocale,\n getDefaultLocale,\n setIsDefault,\n delete: deleteFn,\n initDefaultLocale,\n});\n\ntype LocaleService = typeof locales;\n\nexport default locales;\nexport type { LocaleService };\n"],"names":["find","params","strapi","db","query","findMany","where","findById","id","findOne","findByCode","code","count","create","locale","isDefault","result","data","getService","sendDidUpdateI18nLocalesEvent","emitAudit","AUDITED_EVENTS","LOCALE_CREATE","localeId","name","update","updates","previous","LOCALE_UPDATE","changes","before","after","deleteFn","localeToDelete","deleteAllLocalizedEntriesFor","delete","LOCALE_DELETE","setDefaultLocale","previousCode","getDefaultLocale","hasChanged","next","Promise","all","getCoreStore","set","key","value","LOCALE_DEFAULT_UPDATE","defaultLocale","get","setIsDefault","locales","isNil","actualDefault","Array","isArray","map","initDefaultLocale","existingLocalesNb","DEFAULT_LOCALE","isLocalizedContentType","localizedModels","Object","values","contentTypes","filter","model","uid","deleteMany"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Modules } from '@strapi/types';
|
|
2
|
+
export interface CreateDetails {
|
|
3
|
+
isDefault: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface UpdateDetails {
|
|
6
|
+
changes: Partial<Record<'name', Modules.AuditLogs.FieldChange>>;
|
|
7
|
+
}
|
|
8
|
+
export interface LocaleRef {
|
|
9
|
+
id: number | null;
|
|
10
|
+
code: string;
|
|
11
|
+
}
|
|
12
|
+
export interface DefaultUpdateDetails {
|
|
13
|
+
changes: Record<'defaultLocale', Modules.AuditLogs.FieldChange<LocaleRef | null>>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The part of the audit-logs lifecycle service used by this plugin.
|
|
17
|
+
* The full service type lives in the Admin EE package and cannot be imported here.
|
|
18
|
+
*/
|
|
19
|
+
interface AuditLogsLifecycle {
|
|
20
|
+
registerEvent<TDetails, TResource extends Modules.AuditLogs.Resource>(name: string, transform: Modules.AuditLogs.EventTransformer<TDetails, TResource>): void;
|
|
21
|
+
}
|
|
22
|
+
export declare const registerAuditEvents: (auditLogsLifecycle: AuditLogsLifecycle) => void;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=audit-logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-logs.d.ts","sourceRoot":"","sources":["../../../server/src/audit-logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAmB7C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;CACnF;AAED;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,aAAa,CAAC,QAAQ,EAAE,SAAS,SAAS,OAAO,CAAC,SAAS,CAAC,QAAQ,EAClE,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,GACjE,IAAI,CAAC;CACT;AAED,eAAO,MAAM,mBAAmB,GAAI,oBAAoB,kBAAkB,SA0CzE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":";AAkFA,wBAwCE"}
|
|
@@ -11,5 +11,11 @@ declare const DEFAULT_LOCALE: {
|
|
|
11
11
|
code: string;
|
|
12
12
|
name: string;
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
declare const AUDITED_EVENTS: {
|
|
15
|
+
readonly LOCALE_CREATE: "locale.create";
|
|
16
|
+
readonly LOCALE_UPDATE: "locale.update";
|
|
17
|
+
readonly LOCALE_DELETE: "locale.delete";
|
|
18
|
+
readonly LOCALE_DEFAULT_UPDATE: "locale.default.update";
|
|
19
|
+
};
|
|
20
|
+
export { isoLocales, DEFAULT_LOCALE, getInitLocale, AUDITED_EVENTS };
|
|
15
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAE5C;;;GAGG;AACH,QAAA,MAAM,aAAa;;;CAmBlB,CAAC;AAEF,QAAA,MAAM,cAAc;;;CAAkB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAE5C;;;GAGG;AACH,QAAA,MAAM,aAAa;;;CAmBlB,CAAC;AAEF,QAAA,MAAM,cAAc;;;CAAkB,CAAC;AAEvC,QAAA,MAAM,cAAc;;;;;CAKV,CAAC;AAEX,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;wBAMP,OAAO;qBAYV,OAAO;;AAbhC,
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;wBAMP,OAAO;qBAYV,OAAO;;AAbhC,wBAuBE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { AiTranslationsProvider, AiTranslationsService, GenerateTranslationsParams, GenerateTranslationsResult, } from './services/ai-translations';
|
|
1
2
|
declare const _default: () => {
|
|
2
3
|
register: ({ strapi }: {
|
|
3
4
|
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
@@ -131,7 +132,9 @@ declare const _default: () => {
|
|
|
131
132
|
find: (params?: any) => Promise<any[]>;
|
|
132
133
|
findById: (id: any) => Promise<any>;
|
|
133
134
|
findByCode: (code: any) => Promise<any>;
|
|
134
|
-
create: (locale: any
|
|
135
|
+
create: (locale: any, { isDefault }?: {
|
|
136
|
+
isDefault?: boolean;
|
|
137
|
+
}) => Promise<any>;
|
|
135
138
|
update: (params: any, updates: any) => Promise<any>;
|
|
136
139
|
count: (params?: any) => Promise<number>;
|
|
137
140
|
setDefaultLocale: ({ code }: any) => Promise<void>;
|
|
@@ -170,6 +173,9 @@ declare const _default: () => {
|
|
|
170
173
|
}): Promise<void>;
|
|
171
174
|
setupMiddleware(): void;
|
|
172
175
|
};
|
|
176
|
+
'ai-translations': ({ strapi, }: {
|
|
177
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
178
|
+
}) => import(".").AiTranslationsService;
|
|
173
179
|
'ai-localization-jobs': ({ strapi }: {
|
|
174
180
|
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
175
181
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"AAOA,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAUmJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;AARjM,wBAOG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-localizations.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-localizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-localizations.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-localizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAkEhE;;;;;;GAMG;AACH,QAAA,MAAM,sBAAsB,GAC1B,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACrC,QAAQ,MAAM,CAAC,MAAM,EACrB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG,SAAS,KACvD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA4D7B,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;;IAcrE;;;;OAIG;wDAIA;QACD,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;KACzC;;CAoPJ,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Core } from '@strapi/types';
|
|
2
|
+
import type { AiTranslationsProvider } from './ai-translations';
|
|
3
|
+
declare const createStrapiManagedAiTranslationsProvider: ({ strapi, }: {
|
|
4
|
+
strapi: Core.Strapi;
|
|
5
|
+
}) => AiTranslationsProvider;
|
|
6
|
+
export { createStrapiManagedAiTranslationsProvider };
|
|
7
|
+
//# sourceMappingURL=ai-translations-strapi-managed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-translations-strapi-managed.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-translations-strapi-managed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,QAAA,MAAM,yCAAyC,GAAI,aAEhD;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB,KAAG,sBAiDH,CAAC;AAEF,OAAO,EAAE,yCAAyC,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Core, Modules } from '@strapi/types';
|
|
2
|
+
export type GenerateTranslationsParams = {
|
|
3
|
+
sourceLocale: string;
|
|
4
|
+
targetLocales: string[];
|
|
5
|
+
content: Record<string, unknown>;
|
|
6
|
+
contentTypeSchema: Record<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
export type GenerateTranslationsResult = {
|
|
9
|
+
localizations: Array<{
|
|
10
|
+
content: Record<string, unknown>;
|
|
11
|
+
locale: string;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
export type AiTranslationsProvider = Modules.AI.AiProvider & {
|
|
15
|
+
generateTranslations: (params: GenerateTranslationsParams) => Promise<GenerateTranslationsResult>;
|
|
16
|
+
};
|
|
17
|
+
export interface AiTranslationsService {
|
|
18
|
+
hasProvider(): boolean;
|
|
19
|
+
registerProvider(params: {
|
|
20
|
+
provider: AiTranslationsProvider;
|
|
21
|
+
}): void;
|
|
22
|
+
registerStrapiManagedProvider(): void;
|
|
23
|
+
generateTranslations(params: GenerateTranslationsParams): Promise<GenerateTranslationsResult>;
|
|
24
|
+
}
|
|
25
|
+
declare const createAITranslationsService: ({ strapi, }: {
|
|
26
|
+
strapi: Core.Strapi;
|
|
27
|
+
}) => AiTranslationsService;
|
|
28
|
+
export { createAITranslationsService };
|
|
29
|
+
//# sourceMappingURL=ai-translations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-translations.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-translations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG;IAC3D,oBAAoB,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACnG,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,WAAW,IAAI,OAAO,CAAC;IACvB,gBAAgB,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,sBAAsB,CAAA;KAAE,GAAG,IAAI,CAAC;IACrE,6BAA6B,IAAI,IAAI,CAAC;IACtC,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC/F;AAED,QAAA,MAAM,2BAA2B,GAAI,aAElC;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB,KAAG,qBA6DH,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -51,7 +51,9 @@ declare const _default: {
|
|
|
51
51
|
find: (params?: any) => Promise<any[]>;
|
|
52
52
|
findById: (id: any) => Promise<any>;
|
|
53
53
|
findByCode: (code: any) => Promise<any>;
|
|
54
|
-
create: (locale: any
|
|
54
|
+
create: (locale: any, { isDefault }?: {
|
|
55
|
+
isDefault?: boolean;
|
|
56
|
+
}) => Promise<any>;
|
|
55
57
|
update: (params: any, updates: any) => Promise<any>;
|
|
56
58
|
count: (params?: any) => Promise<number>;
|
|
57
59
|
setDefaultLocale: ({ code }: any) => Promise<void>;
|
|
@@ -90,6 +92,9 @@ declare const _default: {
|
|
|
90
92
|
}): Promise<void>;
|
|
91
93
|
setupMiddleware(): void;
|
|
92
94
|
};
|
|
95
|
+
'ai-translations': ({ strapi, }: {
|
|
96
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
97
|
+
}) => import("./ai-translations").AiTranslationsService;
|
|
93
98
|
'ai-localization-jobs': ({ strapi }: {
|
|
94
99
|
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
95
100
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkBS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBACJ,CAAC;;;;;;;;;;;;;;;;;;;;AANP,wBAaE"}
|
|
@@ -2,7 +2,9 @@ declare const locales: () => {
|
|
|
2
2
|
find: (params?: any) => Promise<any[]>;
|
|
3
3
|
findById: (id: any) => Promise<any>;
|
|
4
4
|
findByCode: (code: any) => Promise<any>;
|
|
5
|
-
create: (locale: any
|
|
5
|
+
create: (locale: any, { isDefault }?: {
|
|
6
|
+
isDefault?: boolean;
|
|
7
|
+
}) => Promise<any>;
|
|
6
8
|
update: (params: any, updates: any) => Promise<any>;
|
|
7
9
|
count: (params?: any) => Promise<number>;
|
|
8
10
|
setDefaultLocale: ({ code }: any) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../server/src/services/locales.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../server/src/services/locales.ts"],"names":[],"mappings":"AAyIA,QAAA,MAAM,OAAO;oBApIS,GAAG;mBAGH,GAAG;uBAEC,GAAG;qBAKC,GAAG,kBAAyB;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;qBAiBnD,GAAG,WAAW,GAAG;qBAnBxB,GAAG;iCA6DgB,GAAG;;4BA8BR,GAAG;qBAnDR,GAAG;;CAgGjC,CAAC;AAEH,KAAK,aAAa,GAAG,OAAO,OAAO,CAAC;AAEpC,eAAe,OAAO,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -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 { createAITranslationsService } from '../services/ai-translations';
|
|
11
12
|
import type { createFillFromLocaleService } from '../services/fill-from-locale';
|
|
12
13
|
type S = {
|
|
13
14
|
permissions: PermissionsService;
|
|
@@ -20,6 +21,7 @@ type S = {
|
|
|
20
21
|
sanitize: SanitizeService;
|
|
21
22
|
['ai-localizations']: ReturnType<typeof createAILocalizationsService>;
|
|
22
23
|
'ai-localization-jobs': ReturnType<typeof createAILocalizationJobsService>;
|
|
24
|
+
'ai-translations': ReturnType<typeof createAITranslationsService>;
|
|
23
25
|
'fill-from-locale': ReturnType<typeof createFillFromLocaleService>;
|
|
24
26
|
};
|
|
25
27
|
declare const getCoreStore: () => {
|
|
@@ -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;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,GAAI,CAAC,SAAS,MAAM,CAAC,EACnC,MAAM,CAAC,KACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,UAAU,CAAC,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,6BAA6B,CAAC;AAC/E,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,iBAAiB,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;IAClE,kBAAkB,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;CACpE,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAEjB,CAAC;AAGF,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,CAAC,EACnC,MAAM,CAAC,KACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAE7D,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,YAAY,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';\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":";;
|
|
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 { createAITranslationsService } from '../services/ai-translations';\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 'ai-translations': ReturnType<typeof createAITranslationsService>;\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":";;AA4BA,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';\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":"
|
|
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 { createAITranslationsService } from '../services/ai-translations';\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 'ai-translations': ReturnType<typeof createAITranslationsService>;\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":"AA4BA,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;;;;"}
|