nextjs-cms 0.6.6 → 0.6.8
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/api/lib/serverActions.js +8 -8
- package/dist/api/routers/accountSettings.js +4 -4
- package/dist/api/trpc.js +1 -1
- package/dist/auth/lib/actions.d.ts.map +1 -1
- package/dist/auth/lib/actions.js +6 -5
- package/dist/core/config/config-loader.d.ts +4 -4
- package/dist/core/config/config-loader.d.ts.map +1 -1
- package/dist/core/config/config-loader.js +6 -5
- package/dist/core/factories/FieldFactory.d.ts.map +1 -1
- package/dist/core/factories/FieldFactory.js +10 -1
- package/dist/core/fields/color.d.ts.map +1 -1
- package/dist/core/fields/color.js +3 -2
- package/dist/core/fields/date.d.ts.map +1 -1
- package/dist/core/fields/date.js +3 -2
- package/dist/core/fields/document.d.ts.map +1 -1
- package/dist/core/fields/document.js +14 -13
- package/dist/core/fields/field-group.d.ts +3 -2
- package/dist/core/fields/field-group.d.ts.map +1 -1
- package/dist/core/fields/field.d.ts +6 -2
- package/dist/core/fields/field.d.ts.map +1 -1
- package/dist/core/fields/field.js +12 -0
- package/dist/core/fields/index.d.ts +1 -1
- package/dist/core/fields/index.d.ts.map +1 -1
- package/dist/core/fields/map.d.ts.map +1 -1
- package/dist/core/fields/map.js +3 -2
- package/dist/core/fields/number.d.ts.map +1 -1
- package/dist/core/fields/number.js +8 -7
- package/dist/core/fields/password.d.ts.map +1 -1
- package/dist/core/fields/password.js +5 -4
- package/dist/core/fields/photo.d.ts +6 -6
- package/dist/core/fields/photo.d.ts.map +1 -1
- package/dist/core/fields/photo.js +18 -17
- package/dist/core/fields/richText.d.ts +9 -9
- package/dist/core/fields/select.js +3 -3
- package/dist/core/fields/slug.d.ts +4 -21
- package/dist/core/fields/slug.d.ts.map +1 -1
- package/dist/core/fields/slug.js +8 -50
- package/dist/core/fields/text.d.ts.map +1 -1
- package/dist/core/fields/text.js +4 -3
- package/dist/core/fields/video.d.ts.map +1 -1
- package/dist/core/fields/video.js +13 -12
- package/dist/core/sections/category.d.ts +4 -4
- package/dist/core/sections/category.js +3 -3
- package/dist/core/sections/hasItems.d.ts +10 -10
- package/dist/core/sections/section.d.ts +2 -2
- package/dist/core/sections/simple.d.ts +4 -4
- package/dist/core/submit/ItemEditSubmit.d.ts +6 -0
- package/dist/core/submit/ItemEditSubmit.d.ts.map +1 -1
- package/dist/core/submit/ItemEditSubmit.js +8 -0
- package/dist/core/submit/submit.d.ts +25 -5
- package/dist/core/submit/submit.d.ts.map +1 -1
- package/dist/core/submit/submit.js +119 -21
- package/dist/translations/dictionaries/ar.d.ts +68 -0
- package/dist/translations/dictionaries/ar.d.ts.map +1 -1
- package/dist/translations/dictionaries/ar.js +81 -0
- package/dist/translations/dictionaries/en.d.ts +68 -0
- package/dist/translations/dictionaries/en.d.ts.map +1 -1
- package/dist/translations/dictionaries/en.js +81 -0
- package/dist/translations/index.d.ts +3 -2
- package/dist/translations/index.d.ts.map +1 -1
- package/dist/translations/index.js +11 -3
- package/dist/validators/checkbox.d.ts +1 -1
- package/dist/validators/checkbox.d.ts.map +1 -1
- package/dist/validators/checkbox.js +7 -3
- package/dist/validators/color.d.ts +1 -1
- package/dist/validators/color.d.ts.map +1 -1
- package/dist/validators/color.js +6 -4
- package/dist/validators/date.d.ts +1 -1
- package/dist/validators/date.d.ts.map +1 -1
- package/dist/validators/date.js +5 -3
- package/dist/validators/document.d.ts +1 -1
- package/dist/validators/document.d.ts.map +1 -1
- package/dist/validators/document.js +10 -8
- package/dist/validators/index.d.ts +7 -7
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +7 -7
- package/dist/validators/map.d.ts +1 -1
- package/dist/validators/map.d.ts.map +1 -1
- package/dist/validators/map.js +7 -3
- package/dist/validators/number.d.ts +1 -1
- package/dist/validators/number.d.ts.map +1 -1
- package/dist/validators/number.js +19 -10
- package/dist/validators/password.d.ts +1 -1
- package/dist/validators/password.d.ts.map +1 -1
- package/dist/validators/password.js +13 -5
- package/dist/validators/photo.d.ts +1 -1
- package/dist/validators/photo.d.ts.map +1 -1
- package/dist/validators/photo.js +15 -13
- package/dist/validators/richText.d.ts +1 -1
- package/dist/validators/richText.d.ts.map +1 -1
- package/dist/validators/richText.js +14 -6
- package/dist/validators/select-multiple.d.ts +1 -1
- package/dist/validators/select-multiple.d.ts.map +1 -1
- package/dist/validators/select-multiple.js +8 -6
- package/dist/validators/select.d.ts +1 -1
- package/dist/validators/select.d.ts.map +1 -1
- package/dist/validators/select.js +8 -3
- package/dist/validators/slug.d.ts +1 -1
- package/dist/validators/slug.d.ts.map +1 -1
- package/dist/validators/slug.js +14 -8
- package/dist/validators/text.d.ts +1 -1
- package/dist/validators/text.d.ts.map +1 -1
- package/dist/validators/text.js +13 -3
- package/dist/validators/textarea.d.ts +1 -1
- package/dist/validators/textarea.d.ts.map +1 -1
- package/dist/validators/textarea.js +13 -3
- package/dist/validators/types.d.ts +7 -0
- package/dist/validators/types.d.ts.map +1 -0
- package/dist/validators/types.js +0 -0
- package/dist/validators/video.d.ts +1 -1
- package/dist/validators/video.d.ts.map +1 -1
- package/dist/validators/video.js +10 -8
- package/package.json +3 -3
|
@@ -56,14 +56,14 @@ export const getDocument = async (session, input) => {
|
|
|
56
56
|
if (!section?.name) {
|
|
57
57
|
throw new TRPCError({
|
|
58
58
|
code: 'BAD_REQUEST',
|
|
59
|
-
message: '
|
|
59
|
+
message: getString('invalidFilePath', session.user.locale),
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
62
|
const fieldConfig = section.fields.find((field) => field.name === fieldName);
|
|
63
63
|
if (!fieldConfig || typeof fieldConfig.build !== 'function') {
|
|
64
64
|
throw new TRPCError({
|
|
65
65
|
code: 'BAD_REQUEST',
|
|
66
|
-
message: '
|
|
66
|
+
message: getString('invalidRequest', session.user.locale),
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
const field = fieldConfig.build();
|
|
@@ -73,7 +73,7 @@ export const getDocument = async (session, input) => {
|
|
|
73
73
|
if (!field || !field.name || !field.extensions || field.extensions.length === 0) {
|
|
74
74
|
throw new TRPCError({
|
|
75
75
|
code: 'BAD_REQUEST',
|
|
76
|
-
message: '
|
|
76
|
+
message: getString('invalidRequest', session.user.locale),
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
@@ -89,7 +89,7 @@ export const getDocument = async (session, input) => {
|
|
|
89
89
|
if (!fs.existsSync(pathToFile)) {
|
|
90
90
|
throw new TRPCError({
|
|
91
91
|
code: 'BAD_REQUEST',
|
|
92
|
-
message: '
|
|
92
|
+
message: getString('fileNotFound', session.user.locale),
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
@@ -106,7 +106,7 @@ export const getDocument = async (session, input) => {
|
|
|
106
106
|
if (!fileType) {
|
|
107
107
|
throw new TRPCError({
|
|
108
108
|
code: 'BAD_REQUEST',
|
|
109
|
-
message: '
|
|
109
|
+
message: getString('invalidFileType', session.user.locale),
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
@@ -115,7 +115,7 @@ export const getDocument = async (session, input) => {
|
|
|
115
115
|
if (!documentAllowedExtensions.includes(fileType.ext)) {
|
|
116
116
|
throw new TRPCError({
|
|
117
117
|
code: 'BAD_REQUEST',
|
|
118
|
-
message: '
|
|
118
|
+
message: getString('invalidFileType', session.user.locale),
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
@@ -225,7 +225,7 @@ export async function streamPhoto(input) {
|
|
|
225
225
|
return nodeStreamToWebStream(nodeStream, processedImage);
|
|
226
226
|
}
|
|
227
227
|
export const getVideo = async (input) => {
|
|
228
|
-
throw new Error('
|
|
228
|
+
throw new Error(getString('useVideoApiRoute', 'en'));
|
|
229
229
|
};
|
|
230
230
|
export const getAdminPrivileges = async (adminId) => {
|
|
231
231
|
const rows = await db
|
|
@@ -392,7 +392,7 @@ export const deleteSectionItem = async (session, sectionName, sectionItemId, rec
|
|
|
392
392
|
if (!columns.includes(identifierFieldName)) {
|
|
393
393
|
return {
|
|
394
394
|
error: {
|
|
395
|
-
message: '
|
|
395
|
+
message: getString('sectionTableIdentifierNotFound', session.user.locale),
|
|
396
396
|
},
|
|
397
397
|
};
|
|
398
398
|
}
|
|
@@ -50,7 +50,7 @@ export const accountSettings = router({
|
|
|
50
50
|
if (!admin) {
|
|
51
51
|
throw new TRPCError({
|
|
52
52
|
code: 'NOT_FOUND',
|
|
53
|
-
message: '
|
|
53
|
+
message: getString('adminNotFound', ctx.session.user.locale),
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
const updates = {};
|
|
@@ -118,7 +118,7 @@ export const accountSettings = router({
|
|
|
118
118
|
if (!admin) {
|
|
119
119
|
throw new TRPCError({
|
|
120
120
|
code: 'NOT_FOUND',
|
|
121
|
-
message: '
|
|
121
|
+
message: getString('adminNotFound', ctx.session.user.locale),
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
@@ -128,7 +128,7 @@ export const accountSettings = router({
|
|
|
128
128
|
if (!match) {
|
|
129
129
|
throw new TRPCError({
|
|
130
130
|
code: 'UNAUTHORIZED',
|
|
131
|
-
message: '
|
|
131
|
+
message: getString('oldPasswordIncorrect', ctx.session.user.locale),
|
|
132
132
|
});
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
@@ -137,7 +137,7 @@ export const accountSettings = router({
|
|
|
137
137
|
if (input.newPassword !== input.confirmPassword) {
|
|
138
138
|
throw new TRPCError({
|
|
139
139
|
code: 'BAD_REQUEST',
|
|
140
|
-
message: '
|
|
140
|
+
message: getString('passwordsDoNotMatch', ctx.session.user.locale),
|
|
141
141
|
});
|
|
142
142
|
}
|
|
143
143
|
/**
|
package/dist/api/trpc.js
CHANGED
|
@@ -45,7 +45,7 @@ const t = initTRPC.context().create({
|
|
|
45
45
|
export const createCallerFactory = t.createCallerFactory;
|
|
46
46
|
const isAuthedMiddleware = t.middleware(async ({ ctx, next }) => {
|
|
47
47
|
if (!ctx.session || !ctx.session.user)
|
|
48
|
-
throw new TRPCError({ code: 'UNAUTHORIZED', message: '
|
|
48
|
+
throw new TRPCError({ code: 'UNAUTHORIZED', message: getString('noTokenProvided', 'en') });
|
|
49
49
|
return next({
|
|
50
50
|
/*ctx: {
|
|
51
51
|
user: user,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/auth/lib/actions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/auth/lib/actions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,eAAO,MAAM,WAAW,GAAU,eAAe;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;EA4HjE,CAAA;AAED,eAAO,MAAM,KAAK,GAAU,8CAIzB;IACC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;;;;;;;;;;;;;;;;EAwHA,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,UAAU,OAAO,GAAG,IAAI,qBA0B3D,CAAA"}
|
package/dist/auth/lib/actions.js
CHANGED
|
@@ -5,6 +5,7 @@ import bcrypt from 'bcrypt';
|
|
|
5
5
|
import { decodeRefreshToken, encodeJWT, encodeRefreshToken } from '../jwt.js';
|
|
6
6
|
import { cookies } from 'next/headers';
|
|
7
7
|
import { getCMSConfig } from '../../core/config/index.js';
|
|
8
|
+
import getString from '../../translations/index.js';
|
|
8
9
|
export const authRefresh = async (refreshToken) => {
|
|
9
10
|
if (!refreshToken) {
|
|
10
11
|
return {
|
|
@@ -115,7 +116,7 @@ export const authRefresh = async (refreshToken) => {
|
|
|
115
116
|
};
|
|
116
117
|
export const login = async ({ username, password, locale: localeParam, }) => {
|
|
117
118
|
if (!username || !password) {
|
|
118
|
-
throw new Error('
|
|
119
|
+
throw new Error(getString('usernameAndPasswordRequired', 'en'));
|
|
119
120
|
}
|
|
120
121
|
const result = await db
|
|
121
122
|
.select({
|
|
@@ -130,11 +131,11 @@ export const login = async ({ username, password, locale: localeParam, }) => {
|
|
|
130
131
|
.limit(1);
|
|
131
132
|
const admin = result[0];
|
|
132
133
|
if (!admin || !admin.password || !admin.id || !admin.username) {
|
|
133
|
-
throw new Error('
|
|
134
|
+
throw new Error(getString('invalidCredentials', 'en'));
|
|
134
135
|
}
|
|
135
136
|
const valid = await bcrypt.compare(password, admin.password);
|
|
136
137
|
if (!valid) {
|
|
137
|
-
throw new Error('
|
|
138
|
+
throw new Error(getString('invalidCredentials', 'en'));
|
|
138
139
|
}
|
|
139
140
|
let effectiveLocale = admin.locale;
|
|
140
141
|
if (localeParam && localeParam !== admin.locale) {
|
|
@@ -163,7 +164,7 @@ export const login = async ({ username, password, locale: localeParam, }) => {
|
|
|
163
164
|
sub: admin.username,
|
|
164
165
|
});
|
|
165
166
|
if (!accessToken || !refreshToken) {
|
|
166
|
-
throw new Error('
|
|
167
|
+
throw new Error(getString('failedToCreateTokens', 'en'));
|
|
167
168
|
}
|
|
168
169
|
try {
|
|
169
170
|
// Let's save the refresh token in the database
|
|
@@ -184,7 +185,7 @@ export const login = async ({ username, password, locale: localeParam, }) => {
|
|
|
184
185
|
});
|
|
185
186
|
}
|
|
186
187
|
catch (error) {
|
|
187
|
-
throw new Error('
|
|
188
|
+
throw new Error(getString('failedToSaveTokens', 'en'));
|
|
188
189
|
}
|
|
189
190
|
const cookieStore = await cookies();
|
|
190
191
|
// Let's send the refresh token as a cookie
|
|
@@ -66,10 +66,10 @@ declare const cmsConfigSchema: z.ZodObject<{
|
|
|
66
66
|
}, z.core.$strip>>>;
|
|
67
67
|
}, z.core.$strip>>>;
|
|
68
68
|
i18n: z.ZodOptional<z.ZodObject<{
|
|
69
|
-
supportedLanguages: z.ZodOptional<z.
|
|
70
|
-
en:
|
|
71
|
-
ar:
|
|
72
|
-
}
|
|
69
|
+
supportedLanguages: z.ZodOptional<z.ZodObject<{
|
|
70
|
+
en: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
71
|
+
ar: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
72
|
+
}, z.core.$strip>>;
|
|
73
73
|
fallbackLanguage: z.ZodOptional<z.ZodEnum<{
|
|
74
74
|
en: "en";
|
|
75
75
|
ar: "ar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEzE,uGAAuG;AACvG,eAAO,MAAM,sBAAsB,uBAAwB,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAA;AAGrE,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEzE,uGAAuG;AACvG,eAAO,MAAM,sBAAsB,uBAAwB,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAA;AAGrE,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkPnB,CAAA;AAGF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,iEAAiE;IACjE,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAC/C;AAGD,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE;QACA,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,OAAO,CAAA;QACf,QAAQ,EAAE;YACN,oBAAoB,EAAE,OAAO,CAAA;SAChC,CAAA;KACJ,CAAA;IACD,KAAK,EAAE;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM,CAAA;YACZ,iBAAiB,EAAE,OAAO,CAAA;SAC7B,CAAA;QACD,MAAM,EAAE;YACJ,UAAU,EAAE;gBAAE,CAAC,EAAE,MAAM,CAAC;gBAAC,CAAC,EAAE,MAAM,CAAC;gBAAC,CAAC,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE,CAAA;YAC9D,SAAS,EAAE;gBACP,KAAK,EAAE,MAAM,CAAA;gBACb,MAAM,EAAE,MAAM,CAAA;gBACd,IAAI,EAAE,OAAO,CAAA;gBACb,OAAO,EAAE,MAAM,CAAA;aAClB,CAAA;YACD,SAAS,EAAE,OAAO,CAAA;SACrB,CAAA;KACJ,CAAA;IACD,gBAAgB,EAAE;QACd,OAAO,EAAE;YACL,OAAO,EAAE,OAAO,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;YACd,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE;gBACJ,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,CAAA;gBAChD,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,CAAA;aACpD,CAAA;SACJ,CAAA;KACJ,CAAA;IACD,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,IAAI,EAAE;QACF,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;QACrC,gBAAgB,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAC1B,CAAA;CACJ;AA6KD;;;;;;GAMG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAazE"}
|
|
@@ -199,14 +199,15 @@ const cmsConfigSchema = z.object({
|
|
|
199
199
|
/**
|
|
200
200
|
* Supported locales and their translation dictionaries.
|
|
201
201
|
* Import from `nextjs-cms/translations/dictionaries/en` (and /ar) and pass
|
|
202
|
-
* e.g. `{ en, ar }`. Keys = locale codes offered in the dropdown.
|
|
202
|
+
* e.g. `{ en }`, `{ ar }`, or `{ en, ar }`. Keys = locale codes offered in the dropdown.
|
|
203
|
+
* At least one locale is required.
|
|
203
204
|
*/
|
|
204
205
|
supportedLanguages: z
|
|
205
|
-
.
|
|
206
|
-
.
|
|
207
|
-
.refine((v) => v === undefined || Object.keys(v).length >= 1, {
|
|
206
|
+
.object(Object.fromEntries(AVAILABLE_I18N_LOCALES.map((locale) => [locale, z.record(z.string(), z.string()).optional()])))
|
|
207
|
+
.refine((v) => v === undefined || Object.values(v).some((dict) => dict !== undefined), {
|
|
208
208
|
message: 'i18n.supportedLanguages must have at least one locale',
|
|
209
|
-
})
|
|
209
|
+
})
|
|
210
|
+
.optional(),
|
|
210
211
|
/**
|
|
211
212
|
* Fallback locale when the user's stored locale is not in supportedLanguages,
|
|
212
213
|
* or when no session exists (e.g. login page).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldFactory.d.ts","sourceRoot":"","sources":["../../../src/core/factories/FieldFactory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,KAAK,eAAe,GACd;IACI,IAAI,EAAE,KAAK,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,KAAK,CAAA;CACjB,GACD;IACI,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAEP,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAa;IAClC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,YAAY,CAA4B;IAGhD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAY;IAEjD;;OAEG;gBACS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe;IASnE;;OAEG;IACU,UAAU;YAUT,aAAa;YASb,qBAAqB;IAwFnC;;;;OAIG;YACW,qBAAqB;
|
|
1
|
+
{"version":3,"file":"FieldFactory.d.ts","sourceRoot":"","sources":["../../../src/core/factories/FieldFactory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,KAAK,eAAe,GACd;IACI,IAAI,EAAE,KAAK,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,KAAK,CAAA;CACjB,GACD;IACI,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAEP,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAa;IAClC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,YAAY,CAA4B;IAGhD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAY;IAEjD;;OAEG;gBACS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe;IASnE;;OAEG;IACU,UAAU;YAUT,aAAa;YASb,qBAAqB;IAwFnC;;;;OAIG;YACW,qBAAqB;IAoDnC;;;;OAIG;YACW,cAAc;IAuB5B;;;;;OAKG;YACW,YAAY;IAiB1B,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACU,cAAc;IAqB3B;;;OAGG;IACH,OAAO,CAAC,UAAU;IA4ElB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;OAGG;IACU,gBAAgB;;;;;;;;;;;;;;;IAmF7B,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,KAAK,IAAI,OAAO,CAEnB;CACJ"}
|
|
@@ -158,6 +158,14 @@ export class FieldFactory {
|
|
|
158
158
|
* Build the fields from the field configs
|
|
159
159
|
*/
|
|
160
160
|
this._sectionInfo.buildFields();
|
|
161
|
+
/**
|
|
162
|
+
* Set locale for fields so validation/build errors are localized
|
|
163
|
+
*/
|
|
164
|
+
const cmsConfig = await getCMSConfig();
|
|
165
|
+
const locale = resolveLocale(this.session.user.locale, cmsConfig.i18n.supportedLanguages, cmsConfig.i18n.fallbackLanguage);
|
|
166
|
+
for (const field of this._sectionInfo.fields) {
|
|
167
|
+
field.setLocale(locale, cmsConfig.i18n.fallbackLanguage);
|
|
168
|
+
}
|
|
161
169
|
}
|
|
162
170
|
else {
|
|
163
171
|
const errorMessage = 'Section config must have a build() method. Use helper functions like simpleSection(), hasItemsSection(), categorySection() to create section configs.';
|
|
@@ -425,9 +433,10 @@ export class FieldFactory {
|
|
|
425
433
|
* Only return the group if it has valid fields
|
|
426
434
|
*/
|
|
427
435
|
if (validFields.length > 0) {
|
|
436
|
+
const resolvedGroupTitle = resolveLocalizedString(group.title, locale, cmsConfig.i18n.fallbackLanguage);
|
|
428
437
|
processedGroups.push({
|
|
429
438
|
groupId: group.id,
|
|
430
|
-
groupTitle:
|
|
439
|
+
groupTitle: resolvedGroupTitle,
|
|
431
440
|
// Normalize order value here to avoid checking again in sort function
|
|
432
441
|
groupOrder: group.order ?? FieldFactory.DEFAULT_ORDER,
|
|
433
442
|
inputs: this.sortFieldsByOrder(validFields).map((field) => this.resolveFieldLabels(field.exportForClient(), locale, cmsConfig.i18n.fallbackLanguage)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/core/fields/color.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/core/fields/color.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,QAAA,MAAM,YAAY;IACd;;;;OAIG;;kBAEL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,UAAW,SAAQ,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;IAClD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAe;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IACzC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;gBACtB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAO3C;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIrB,eAAe;;;;;;;;;;IAMxB,aAAa;IAWJ,kBAAkB,IAAI,OAAO;IAOtC;;OAEG;IACG,oBAAoB;CAQ7B;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE9E,QAAA,MAAM,aAAa;IAnEf;;;;OAIG;;;;;;;;kBAkEL,CAAA;AAEF,QAAA,MAAM,sBAAsB;;;IAxExB;;;;OAIG;;;;;;;;kBAwEL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,gBAAgB,CAmBjF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Field, baseFieldConfigSchema } from './field.js';
|
|
2
2
|
import { entityKind } from '../helpers/index.js';
|
|
3
3
|
import * as z from 'zod';
|
|
4
|
+
import getString from '../../translations/index.js';
|
|
4
5
|
const configSchema = z.strictObject({
|
|
5
6
|
/**
|
|
6
7
|
* The default value of the field.
|
|
@@ -35,7 +36,7 @@ export class ColorField extends Field {
|
|
|
35
36
|
*/
|
|
36
37
|
if (this.required) {
|
|
37
38
|
if (!this.value || this.value.trim().length === 0) {
|
|
38
|
-
throw new Error(
|
|
39
|
+
throw new Error(getString('fieldIsRequired', this.locale, { field: this.getLocalizedLabel() }));
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -53,7 +54,7 @@ export class ColorField extends Field {
|
|
|
53
54
|
* Check if the value represents a color
|
|
54
55
|
*/
|
|
55
56
|
if (this.value && !/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(this.value)) {
|
|
56
|
-
throw new Error('
|
|
57
|
+
throw new Error(getString('invalidColorPleaseProvideValidHex', this.locale));
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/core/fields/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/core/fields/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,QAAA,MAAM,YAAY;;;;;;IAEd;;;;OAIG;;kBAEL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,SAAU,SAAQ,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;IAChD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAc;IAE3D;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAA;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;gBACpC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAU3C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAQjB;;;OAGG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAsBhB,eAAe;;;;;;;;;;;IAOxB,aAAa;IAYJ,kBAAkB,IAAI,OAAO;IAOtC;;;OAGG;IACG,oBAAoB;CAS7B;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE5E,QAAA,MAAM,aAAa;;;;;;IA/Gf;;;;OAIG;;;;;;;;kBA8GL,CAAA;AAEF,QAAA,MAAM,qBAAqB;;;;;;;;IApHvB;;;;OAIG;;;;;;;;kBAoHL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,eAAe,CAmB/E"}
|
package/dist/core/fields/date.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Field, baseFieldConfigSchema } from './field.js';
|
|
|
2
2
|
import { entityKind } from '../helpers/index.js';
|
|
3
3
|
import * as z from 'zod';
|
|
4
4
|
import dayjs from 'dayjs';
|
|
5
|
+
import getString from '../../translations/index.js';
|
|
5
6
|
const configSchema = z.strictObject({
|
|
6
7
|
format: z.enum(['date', 'datetime', 'timestamp']).optional().describe('The format of the date field'),
|
|
7
8
|
/**
|
|
@@ -77,7 +78,7 @@ export class DateField extends Field {
|
|
|
77
78
|
if (this.required) {
|
|
78
79
|
const date = this.parseDate();
|
|
79
80
|
if (!date) {
|
|
80
|
-
throw new Error(
|
|
81
|
+
throw new Error(getString('fieldIsRequired', this.locale, { field: this.getLocalizedLabel() }));
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
}
|
|
@@ -97,7 +98,7 @@ export class DateField extends Field {
|
|
|
97
98
|
this.value = date.toISOString();
|
|
98
99
|
}
|
|
99
100
|
else if (this.required) {
|
|
100
|
-
throw new Error(
|
|
101
|
+
throw new Error(getString('invalidDatePleaseProvideValid', this.locale, { field: this.getLocalizedLabel() }));
|
|
101
102
|
}
|
|
102
103
|
// If not required and no valid date, keep value as-is (null/undefined)
|
|
103
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/core/fields/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/core/fields/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAS1C,QAAA,MAAM,YAAY;IACd;;;;;;;OAOG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;kBAEL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,aAAc,SAAQ,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5D,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAkB;IAC/D,QAAQ,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAA;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAA;IAE7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAqE;IAE1G;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,kBAAkB,CAAU;gBAExB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI;IAqDxC,eAAe;;kBApED,MAAM;kBAAQ,IAAI,GAAG,IAAI;;;;;;;;;;;;;IA6EjD,iBAAiB,CAAC,EACpB,WAAW,EACX,MAAM,EACN,aAAiB,GACpB,EAAE;QACC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;QACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAClC,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBvB;;OAEG;IACG,WAAW;IA2BK,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpG;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIX,WAAW,CAAC,KAAK,EAAE,MAAM;IAIvB,QAAQ,CAAC,KAAK,EAAE,GAAG;IAQnB,OAAO,CAAC,IAAI,EAAE,IAAI;IAK3B,aAAa;IAab;;OAEG;IACG,oBAAoB;CAoD7B;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEpF,QAAA,MAAM,aAAa;IAnRf;;;;;;;OAOG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;kBAwQL,CAAA;AAEF,QAAA,MAAM,yBAAyB;;;IAxR3B;;;;;;;OAOG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;kBA8QL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,mBAAmB,CAmBvF"}
|
|
@@ -6,6 +6,7 @@ import { customAlphabet } from 'nanoid';
|
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import { FileField } from './fileField.js';
|
|
8
8
|
import { getCMSConfig } from '../config/index.js';
|
|
9
|
+
import getString from '../../translations/index.js';
|
|
9
10
|
const maxFileSizeSchema = z.strictObject({
|
|
10
11
|
size: z.number().describe('Maximum file size'),
|
|
11
12
|
unit: z.enum(['kb', 'mb']).describe('Size unit'),
|
|
@@ -80,7 +81,7 @@ export class DocumentField extends FileField {
|
|
|
80
81
|
case 'csv':
|
|
81
82
|
return 'text/csv';
|
|
82
83
|
default:
|
|
83
|
-
throw new Error(
|
|
84
|
+
throw new Error(getString('invalidFileExtension', this.locale, { extensions: e }));
|
|
84
85
|
}
|
|
85
86
|
});
|
|
86
87
|
/**
|
|
@@ -98,13 +99,13 @@ export class DocumentField extends FileField {
|
|
|
98
99
|
}
|
|
99
100
|
async readChunkFromFile({ arrayBuffer, length, startPosition = 0, }) {
|
|
100
101
|
if (!arrayBuffer) {
|
|
101
|
-
throw new Error('
|
|
102
|
+
throw new Error(getString('errorReadingFile', this.locale));
|
|
102
103
|
}
|
|
103
104
|
const buffer = new Uint8Array(arrayBuffer);
|
|
104
105
|
const start = Math.max(0, startPosition);
|
|
105
106
|
const end = Math.min(start + length, buffer.length);
|
|
106
107
|
if (start >= end) {
|
|
107
|
-
throw new Error('
|
|
108
|
+
throw new Error(getString('errorReadingFile', this.locale));
|
|
108
109
|
}
|
|
109
110
|
return buffer.subarray(start, end);
|
|
110
111
|
}
|
|
@@ -113,10 +114,10 @@ export class DocumentField extends FileField {
|
|
|
113
114
|
*/
|
|
114
115
|
async writeToFile() {
|
|
115
116
|
if (!this._folder) {
|
|
116
|
-
throw new Error(
|
|
117
|
+
throw new Error(getString('folderNotSet', this.locale, { field: this.getLocalizedLabel() }));
|
|
117
118
|
}
|
|
118
119
|
if (!this._buffer) {
|
|
119
|
-
throw new Error(
|
|
120
|
+
throw new Error(getString('bufferNotSet', this.locale, { field: this.getLocalizedLabel() }));
|
|
120
121
|
}
|
|
121
122
|
try {
|
|
122
123
|
/**
|
|
@@ -133,7 +134,7 @@ export class DocumentField extends FileField {
|
|
|
133
134
|
await fs.promises.writeFile(path.join(uploadsFolder, '.documents', this._folder, this.value), this._buffer);
|
|
134
135
|
}
|
|
135
136
|
catch (error) {
|
|
136
|
-
throw new Error(
|
|
137
|
+
throw new Error(getString('documentWriteError', this.locale, { field: this.getLocalizedLabel() }) + ` ${error.message}`);
|
|
137
138
|
}
|
|
138
139
|
}
|
|
139
140
|
async postSubmit(folder) {
|
|
@@ -146,7 +147,7 @@ export class DocumentField extends FileField {
|
|
|
146
147
|
if (!this._file)
|
|
147
148
|
return;
|
|
148
149
|
if (!this._folder) {
|
|
149
|
-
throw new Error(
|
|
150
|
+
throw new Error(getString('folderNotSet', this.locale, { field: this.getLocalizedLabel() }));
|
|
150
151
|
}
|
|
151
152
|
try {
|
|
152
153
|
const uploadsFolder = (await getCMSConfig()).media.upload.path;
|
|
@@ -154,7 +155,7 @@ export class DocumentField extends FileField {
|
|
|
154
155
|
await fs.promises.unlink(pathToFile);
|
|
155
156
|
}
|
|
156
157
|
catch (error) {
|
|
157
|
-
throw new Error(
|
|
158
|
+
throw new Error(getString('documentDeleteError', this.locale, { field: this.getLocalizedLabel() }));
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
161
|
async cleanupReplacedFile(previousValue, sectionName) {
|
|
@@ -194,7 +195,7 @@ export class DocumentField extends FileField {
|
|
|
194
195
|
if (!this.required)
|
|
195
196
|
return;
|
|
196
197
|
if (!this._file || !this._file?.type || !this._file?.name || !this._file?.size) {
|
|
197
|
-
throw new Error(
|
|
198
|
+
throw new Error(getString('fieldIsRequired', this.locale, { field: this.getLocalizedLabel() }));
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
201
|
/**
|
|
@@ -209,14 +210,14 @@ export class DocumentField extends FileField {
|
|
|
209
210
|
const arrayBuffer = await this._file.arrayBuffer();
|
|
210
211
|
this._buffer = Buffer.from(arrayBuffer);
|
|
211
212
|
if (!this._buffer.length) {
|
|
212
|
-
throw new Error(
|
|
213
|
+
throw new Error(getString('fieldIsRequired', this.locale, { field: this.getLocalizedLabel() }));
|
|
213
214
|
}
|
|
214
215
|
/**
|
|
215
216
|
* Check extension
|
|
216
217
|
*/
|
|
217
218
|
const ext = this._file.name.split('.').pop();
|
|
218
219
|
if (!ext || !this.extensions.includes(ext)) {
|
|
219
|
-
throw new Error(
|
|
220
|
+
throw new Error(getString('invalidFileTypeOrExtension', this.locale, { field: this.getLocalizedLabel(), extensions: this.extensions.join(', ') }));
|
|
220
221
|
}
|
|
221
222
|
/**
|
|
222
223
|
* Read the first 4100 bytes of the file
|
|
@@ -231,14 +232,14 @@ export class DocumentField extends FileField {
|
|
|
231
232
|
* If the file type is invalid, return an error
|
|
232
233
|
*/
|
|
233
234
|
if (!fileType) {
|
|
234
|
-
throw new Error(
|
|
235
|
+
throw new Error(getString('invalidDocumentFileType', this.locale, { field: this.getLocalizedLabel() }));
|
|
235
236
|
}
|
|
236
237
|
/**
|
|
237
238
|
* Don't just trust the file extension
|
|
238
239
|
* Check the `fileType.ext` against the allowed extensions
|
|
239
240
|
*/
|
|
240
241
|
if (!fileType.ext || !this.extensions.includes(fileType.ext)) {
|
|
241
|
-
throw new Error(
|
|
242
|
+
throw new Error(getString('invalidFileTypeOrExtension', this.locale, { field: this.getLocalizedLabel(), extensions: this.extensions.join(', ') }));
|
|
242
243
|
}
|
|
243
244
|
/**
|
|
244
245
|
* Generate a random name for the file
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Field, FieldConfig } from './index.js';
|
|
2
2
|
import type { Prettify } from '../types/index.js';
|
|
3
|
+
import type { LocalizedString } from '../../translations/localization.js';
|
|
3
4
|
export type FieldGroupOptions = {
|
|
4
|
-
title?:
|
|
5
|
+
title?: LocalizedString;
|
|
5
6
|
order?: number;
|
|
6
7
|
fields: FieldConfig[];
|
|
7
8
|
};
|
|
@@ -10,7 +11,7 @@ export type FieldGroupConfig = Prettify<FieldGroupOptions> & {
|
|
|
10
11
|
};
|
|
11
12
|
export type FieldGroup = {
|
|
12
13
|
id: number;
|
|
13
|
-
title?:
|
|
14
|
+
title?: LocalizedString;
|
|
14
15
|
order?: number;
|
|
15
16
|
fields: Field[];
|
|
16
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-group.d.ts","sourceRoot":"","sources":["../../../src/core/fields/field-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"field-group.d.ts","sourceRoot":"","sources":["../../../src/core/fields/field-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,WAAW,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG;IACzD,IAAI,EAAE,aAAa,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,KAAK,EAAE,CAAA;CAClB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,GAAG,gBAAgB,CAKrE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { entityKind } from '../helpers/index.js';
|
|
2
2
|
import type { ConditionalField, ConditionalRule, FieldType } from '../types/index.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type LocalizedString } from '../../translations/localization.js';
|
|
4
4
|
import * as z from 'zod';
|
|
5
5
|
/**
|
|
6
6
|
* The Field class is used in the submit class to handle submission of the field
|
|
@@ -19,6 +19,8 @@ export declare abstract class Field<TType extends FieldType = FieldType, TExtraF
|
|
|
19
19
|
readonly order: number | undefined;
|
|
20
20
|
readonly groupId: number | undefined;
|
|
21
21
|
readonly conditionalRules: ConditionalRule[] | undefined;
|
|
22
|
+
protected locale: string;
|
|
23
|
+
protected fallbackLocale: string;
|
|
22
24
|
/**
|
|
23
25
|
* adminGenerated is used to determine if the field is generated by the admin or not.
|
|
24
26
|
* If set to false, the field will not be included in the form.
|
|
@@ -49,6 +51,8 @@ export declare abstract class Field<TType extends FieldType = FieldType, TExtraF
|
|
|
49
51
|
constructor(config: BaseFieldConfig<TExtraFieldConfig>, fieldType: TType);
|
|
50
52
|
abstract checkRequired(): void;
|
|
51
53
|
setValue(value: any): void;
|
|
54
|
+
setLocale(locale: string, fallbackLocale?: string): void;
|
|
55
|
+
protected getLocalizedLabel(): string;
|
|
52
56
|
/**
|
|
53
57
|
* Perform any action after submitting the form
|
|
54
58
|
*/
|
|
@@ -63,7 +67,7 @@ export declare abstract class Field<TType extends FieldType = FieldType, TExtraF
|
|
|
63
67
|
* Build the field to be used in a form
|
|
64
68
|
*/
|
|
65
69
|
build(): Promise<void>;
|
|
66
|
-
abstract prepareForSubmission(
|
|
70
|
+
abstract prepareForSubmission(): Promise<void>;
|
|
67
71
|
/**
|
|
68
72
|
* Generate a human-readable label from a field name.
|
|
69
73
|
* This is a static method to avoid recreation on every call.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/core/fields/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACrF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/core/fields/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { entityKind } from '../helpers/index.js';
|
|
2
|
+
import { resolveLocalizedString } from '../../translations/localization.js';
|
|
2
3
|
import * as z from 'zod';
|
|
3
4
|
/**
|
|
4
5
|
* The Field class is used in the submit class to handle submission of the field
|
|
@@ -17,6 +18,8 @@ export class Field {
|
|
|
17
18
|
order;
|
|
18
19
|
groupId;
|
|
19
20
|
conditionalRules;
|
|
21
|
+
locale;
|
|
22
|
+
fallbackLocale;
|
|
20
23
|
/**
|
|
21
24
|
* adminGenerated is used to determine if the field is generated by the admin or not.
|
|
22
25
|
* If set to false, the field will not be included in the form.
|
|
@@ -53,10 +56,19 @@ export class Field {
|
|
|
53
56
|
this.conditionalRules = config.conditionalRules;
|
|
54
57
|
this.adminGenerated = config.adminGenerated ?? true;
|
|
55
58
|
this.value = undefined;
|
|
59
|
+
this.locale = 'en';
|
|
60
|
+
this.fallbackLocale = 'en';
|
|
56
61
|
}
|
|
57
62
|
setValue(value) {
|
|
58
63
|
this.value = value;
|
|
59
64
|
}
|
|
65
|
+
setLocale(locale, fallbackLocale = 'en') {
|
|
66
|
+
this.locale = locale;
|
|
67
|
+
this.fallbackLocale = fallbackLocale;
|
|
68
|
+
}
|
|
69
|
+
getLocalizedLabel() {
|
|
70
|
+
return resolveLocalizedString(this.label, this.locale, this.fallbackLocale);
|
|
71
|
+
}
|
|
60
72
|
/**
|
|
61
73
|
* Perform any action after submitting the form
|
|
62
74
|
*/
|
|
@@ -29,7 +29,7 @@ export type { DateFieldClientConfig, DateFieldConfig } from './date.js';
|
|
|
29
29
|
export { ColorField, colorField } from './color.js';
|
|
30
30
|
export type { ColorFieldClientConfig, ColorFieldConfig } from './color.js';
|
|
31
31
|
export { SlugField, slugField } from './slug.js';
|
|
32
|
-
export type { SlugFieldClientConfig, SlugFieldConfig
|
|
32
|
+
export type { SlugFieldClientConfig, SlugFieldConfig } from './slug.js';
|
|
33
33
|
export { Field } from './field.js';
|
|
34
34
|
export type { BaseFieldConfig, FieldClientConfig } from './field.js';
|
|
35
35
|
export { FileField } from './fileField.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEvE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACtD,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEtG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAElG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACtD,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/F,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,YAAY,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEzG,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAE9G,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC7C,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAE9G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE1E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/fields/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/core/fields/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/core/fields/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,QAAA,MAAM,YAAY;;;;;IAQd;;;;OAIG;;;;;;;;;;;;;kBAmBL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,QAAS,SAAQ,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;IAC9C,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAa;IAC1D;;OAEG;IACM,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;gBACxB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAoB3C;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIF,eAAe;;;;iBA5BhB,MAAM;iBAAO,MAAM;;;mBADX,MAAM;mBAAS,MAAM;kBAAQ,MAAM;kBAAQ,MAAM;;;iBAJjD,MAAM;iBAAO,MAAM;;;;;;;;;;IA4C1C;;;OAGG;IACM,QAAQ,CAAC,KAAK,EAAE,MAAM;IAS/B,aAAa;IAWJ,kBAAkB,IAAI,OAAO;IAOtC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ9C;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE1E,QAAA,MAAM,aAAa;;;;;IA1Hf;;;;OAIG;;;;;;;;;;;;;;;;;;;kBAyHL,CAAA;AAEF,QAAA,MAAM,oBAAoB;;;;;;;IA/HtB;;;;OAIG;;;;;;;;;;;;;;;;;;;kBA+HL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,cAAc,CAmB7E"}
|