nextjs-cms 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/api/lib/serverActions.js +8 -8
  2. package/dist/api/routers/accountSettings.js +4 -4
  3. package/dist/api/trpc.js +1 -1
  4. package/dist/auth/lib/actions.d.ts.map +1 -1
  5. package/dist/auth/lib/actions.js +6 -5
  6. package/dist/core/factories/FieldFactory.d.ts.map +1 -1
  7. package/dist/core/factories/FieldFactory.js +2 -1
  8. package/dist/core/fields/color.d.ts.map +1 -1
  9. package/dist/core/fields/color.js +3 -2
  10. package/dist/core/fields/date.d.ts.map +1 -1
  11. package/dist/core/fields/date.js +3 -2
  12. package/dist/core/fields/document.d.ts.map +1 -1
  13. package/dist/core/fields/document.js +14 -13
  14. package/dist/core/fields/field-group.d.ts +3 -2
  15. package/dist/core/fields/field-group.d.ts.map +1 -1
  16. package/dist/core/fields/field.d.ts +1 -1
  17. package/dist/core/fields/field.d.ts.map +1 -1
  18. package/dist/core/fields/index.d.ts +1 -1
  19. package/dist/core/fields/index.d.ts.map +1 -1
  20. package/dist/core/fields/map.d.ts.map +1 -1
  21. package/dist/core/fields/map.js +3 -2
  22. package/dist/core/fields/number.d.ts.map +1 -1
  23. package/dist/core/fields/number.js +8 -7
  24. package/dist/core/fields/password.d.ts.map +1 -1
  25. package/dist/core/fields/password.js +5 -4
  26. package/dist/core/fields/photo.d.ts +6 -6
  27. package/dist/core/fields/photo.d.ts.map +1 -1
  28. package/dist/core/fields/photo.js +18 -17
  29. package/dist/core/fields/richText.d.ts +9 -9
  30. package/dist/core/fields/select.d.ts +1 -1
  31. package/dist/core/fields/select.js +3 -3
  32. package/dist/core/fields/slug.d.ts +4 -21
  33. package/dist/core/fields/slug.d.ts.map +1 -1
  34. package/dist/core/fields/slug.js +8 -50
  35. package/dist/core/fields/text.d.ts.map +1 -1
  36. package/dist/core/fields/text.js +4 -3
  37. package/dist/core/fields/video.d.ts.map +1 -1
  38. package/dist/core/fields/video.js +13 -12
  39. package/dist/core/sections/category.d.ts +6 -6
  40. package/dist/core/sections/category.js +3 -3
  41. package/dist/core/sections/hasItems.d.ts +12 -12
  42. package/dist/core/sections/section.d.ts +3 -3
  43. package/dist/core/sections/simple.d.ts +4 -4
  44. package/dist/core/submit/ItemEditSubmit.d.ts +6 -0
  45. package/dist/core/submit/ItemEditSubmit.d.ts.map +1 -1
  46. package/dist/core/submit/ItemEditSubmit.js +8 -0
  47. package/dist/core/submit/submit.d.ts +25 -5
  48. package/dist/core/submit/submit.d.ts.map +1 -1
  49. package/dist/core/submit/submit.js +109 -21
  50. package/dist/translations/dictionaries/ar.d.ts +68 -0
  51. package/dist/translations/dictionaries/ar.d.ts.map +1 -1
  52. package/dist/translations/dictionaries/ar.js +81 -0
  53. package/dist/translations/dictionaries/en.d.ts +68 -0
  54. package/dist/translations/dictionaries/en.d.ts.map +1 -1
  55. package/dist/translations/dictionaries/en.js +81 -0
  56. package/dist/translations/index.d.ts +3 -2
  57. package/dist/translations/index.d.ts.map +1 -1
  58. package/dist/translations/index.js +11 -3
  59. package/dist/validators/checkbox.d.ts +1 -1
  60. package/dist/validators/checkbox.d.ts.map +1 -1
  61. package/dist/validators/checkbox.js +7 -3
  62. package/dist/validators/color.d.ts +1 -1
  63. package/dist/validators/color.d.ts.map +1 -1
  64. package/dist/validators/color.js +6 -4
  65. package/dist/validators/date.d.ts +1 -1
  66. package/dist/validators/date.d.ts.map +1 -1
  67. package/dist/validators/date.js +5 -3
  68. package/dist/validators/document.d.ts +1 -1
  69. package/dist/validators/document.d.ts.map +1 -1
  70. package/dist/validators/document.js +10 -8
  71. package/dist/validators/index.d.ts +7 -7
  72. package/dist/validators/index.d.ts.map +1 -1
  73. package/dist/validators/index.js +7 -7
  74. package/dist/validators/map.d.ts +1 -1
  75. package/dist/validators/map.d.ts.map +1 -1
  76. package/dist/validators/map.js +7 -3
  77. package/dist/validators/number.d.ts +1 -1
  78. package/dist/validators/number.d.ts.map +1 -1
  79. package/dist/validators/number.js +19 -10
  80. package/dist/validators/password.d.ts +1 -1
  81. package/dist/validators/password.d.ts.map +1 -1
  82. package/dist/validators/password.js +13 -5
  83. package/dist/validators/photo.d.ts +1 -1
  84. package/dist/validators/photo.d.ts.map +1 -1
  85. package/dist/validators/photo.js +15 -13
  86. package/dist/validators/richText.d.ts +1 -1
  87. package/dist/validators/richText.d.ts.map +1 -1
  88. package/dist/validators/richText.js +14 -6
  89. package/dist/validators/select-multiple.d.ts +1 -1
  90. package/dist/validators/select-multiple.d.ts.map +1 -1
  91. package/dist/validators/select-multiple.js +8 -6
  92. package/dist/validators/select.d.ts +1 -1
  93. package/dist/validators/select.d.ts.map +1 -1
  94. package/dist/validators/select.js +8 -3
  95. package/dist/validators/slug.d.ts +1 -1
  96. package/dist/validators/slug.d.ts.map +1 -1
  97. package/dist/validators/slug.js +14 -8
  98. package/dist/validators/text.d.ts +1 -1
  99. package/dist/validators/text.d.ts.map +1 -1
  100. package/dist/validators/text.js +13 -3
  101. package/dist/validators/textarea.d.ts +1 -1
  102. package/dist/validators/textarea.d.ts.map +1 -1
  103. package/dist/validators/textarea.js +13 -3
  104. package/dist/validators/types.d.ts +7 -0
  105. package/dist/validators/types.d.ts.map +1 -0
  106. package/dist/validators/types.js +0 -0
  107. package/dist/validators/video.d.ts +1 -1
  108. package/dist/validators/video.d.ts.map +1 -1
  109. package/dist/validators/video.js +10 -8
  110. package/package.json +1 -1
@@ -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: 'Invalid file path',
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: 'Invalid request',
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: 'Invalid request',
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: 'File not found',
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: 'Invalid file type',
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: 'Invalid file type',
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('Please use the /api/video route');
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: 'Section table identifier field not found',
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: 'Admin not found',
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: 'Admin not found',
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: 'Old password is incorrect',
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: 'New password and confirm password do not match',
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: 'No token provided' });
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;AAG1C,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"}
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"}
@@ -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('Please provide username and password');
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('Invalid credentials');
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('Invalid credentials');
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('Failed to create access and refresh tokens');
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('Failed to save access and refresh tokens to database');
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
@@ -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;IAuCnC;;;;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;;;;;;;;;;;;;;;IA6E7B,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,KAAK,IAAI,OAAO,CAEnB;CACJ"}
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;IAuCnC;;;;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"}
@@ -425,9 +425,10 @@ export class FieldFactory {
425
425
  * Only return the group if it has valid fields
426
426
  */
427
427
  if (validFields.length > 0) {
428
+ const resolvedGroupTitle = resolveLocalizedString(group.title, locale, cmsConfig.i18n.fallbackLanguage);
428
429
  processedGroups.push({
429
430
  groupId: group.id,
430
- groupTitle: group.title ?? '',
431
+ groupTitle: resolvedGroupTitle,
431
432
  // Normalize order value here to avoid checking again in sort function
432
433
  groupOrder: group.order ?? FieldFactory.DEFAULT_ORDER,
433
434
  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;AAExB,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
+ {"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(`Field ${this.label} is required`);
39
+ throw new Error(getString('fieldIsRequired', 'en', { field: String(this.label) }));
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('Invalid color, please provide a valid hex color');
57
+ throw new Error(getString('invalidColorPleaseProvideValidHex', 'en'));
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;AAGxB,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"}
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"}
@@ -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(`Field ${this.label} is required`);
81
+ throw new Error(getString('fieldIsRequired', 'en', { field: String(this.label) }));
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(`Field ${this.label}: Invalid date, please provide a valid date`);
101
+ throw new Error(getString('invalidDatePleaseProvideValid', 'en', { field: String(this.label) }));
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;AAQ1C,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;IA+BK,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBnC,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;IAzRf;;;;;;;OAOG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;kBA8QL,CAAA;AAEF,QAAA,MAAM,yBAAyB;;;IA9R3B;;;;;;;OAOG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;kBAoRL,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"}
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(`Invalid image extension provided: ${e}`);
84
+ throw new Error(getString('invalidFileExtension', 'en', { 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('Error reading file');
102
+ throw new Error(getString('errorReadingFile', 'en'));
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('Error reading file');
108
+ throw new Error(getString('errorReadingFile', 'en'));
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(`${this.label}: Folder is not set. Make sure to set the folder by call postSubmit() before writing the file to disk`);
117
+ throw new Error(getString('folderNotSet', 'en', { field: String(this.label) }));
117
118
  }
118
119
  if (!this._buffer) {
119
- throw new Error(`${this.label}: Buffer is not set. Make sure to call prepareForSubmission() before writing the file to disk`);
120
+ throw new Error(getString('bufferNotSet', 'en', { field: String(this.label) }));
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(`${this.label}: Error writing file to disk ${error.message}`);
137
+ throw new Error(getString('documentWriteError', 'en', { field: String(this.label) }) + ` ${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(`${this.label}: Folder is not set. Make sure to set the folder before writing the file to disk`);
150
+ throw new Error(getString('folderNotSet', 'en', { field: String(this.label) }));
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(`${this.label}: Error deleting file from disk`);
158
+ throw new Error(getString('documentDeleteError', 'en', { field: String(this.label) }));
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(`Field ${this.label} is required`);
198
+ throw new Error(getString('fieldIsRequired', 'en', { field: String(this.label) }));
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(`Field ${this.label} is required`);
213
+ throw new Error(getString('fieldIsRequired', 'en', { field: String(this.label) }));
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(`${this.label}: Invalid file type or extension. Allowed extensions: ${this.extensions.join(', ')}`);
220
+ throw new Error(getString('invalidFileTypeOrExtension', 'en', { field: String(this.label), 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(`${this.label}: Invalid file type`);
235
+ throw new Error(getString('invalidDocumentFileType', 'en', { field: String(this.label) }));
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(`${this.label}: Invalid file type or extension. Allowed extensions: ${this.extensions.join(', ')}`);
242
+ throw new Error(getString('invalidFileTypeOrExtension', 'en', { field: String(this.label), 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?: string;
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?: string;
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;AAEjD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,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,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,KAAK,EAAE,CAAA;CAClB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,GAAG,gBAAgB,CAKrE"}
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"}
@@ -63,7 +63,7 @@ export declare abstract class Field<TType extends FieldType = FieldType, TExtraF
63
63
  * Build the field to be used in a form
64
64
  */
65
65
  build(): Promise<void>;
66
- abstract prepareForSubmission(context?: unknown): Promise<void>;
66
+ abstract prepareForSubmission(): Promise<void>;
67
67
  /**
68
68
  * Generate a human-readable label from a field name.
69
69
  * 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,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB;;;GAGG;AACH,8BAAsB,KAAK,CAEvB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,iBAAiB,SAAS,MAAM,GAAG,MAAM,CAC3C,YAAW,QAAQ,CAAC,KAAK,CAAC;IAExB,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAAU;IAC9C,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,SAAS,CAAA;IAExD;;;;OAIG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAA;IAE1C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,cAAc,EAAE,MAAM,CAAA;QACtB,gBAAgB,EAAE,MAAM,CAAA;KAC3B,CAAA;IAED;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE,CAAK;IACnC,KAAK,EAAE,GAAG,CAAA;gBAKZ,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK;IAaxE,QAAQ,CAAC,aAAa,IAAI,IAAI;IAE9B,QAAQ,CAAC,KAAK,EAAE,GAAG;IAInB;;OAEG;IACU,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;IACH,QAAQ,CAAC,QAAQ,IAAI,GAAG;IAExB,cAAc,IAAI,GAAG;IAIrB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY1C,eAAe;;;;;;;;;;IAef,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,aAAa,IAAI,OAAO;CAa3B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAGpE,eAAO,MAAM,qBAAqB,+CAA8B,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;IAW9B;;;;OAIG;;IAEH;;;;OAIG;;kBAEL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,iBAAiB,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC1G,iBAAiB,CAAA;AAErB;;GAEG;AACH,UAAU,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAE,SAAQ,eAAe,CAAC,EAAE,CAAC;IACnE,IAAI,EAAE,KAAK,CAAA;CACd"}
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,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB;;;GAGG;AACH,8BAAsB,KAAK,CAEvB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,iBAAiB,SAAS,MAAM,GAAG,MAAM,CAC3C,YAAW,QAAQ,CAAC,KAAK,CAAC;IAExB,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAAU;IAC9C,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,SAAS,CAAA;IAExD;;;;OAIG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAA;IAE1C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,cAAc,EAAE,MAAM,CAAA;QACtB,gBAAgB,EAAE,MAAM,CAAA;KAC3B,CAAA;IAED;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE,CAAK;IACnC,KAAK,EAAE,GAAG,CAAA;gBAKZ,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK;IAaxE,QAAQ,CAAC,aAAa,IAAI,IAAI;IAE9B,QAAQ,CAAC,KAAK,EAAE,GAAG;IAInB;;OAEG;IACU,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;IACH,QAAQ,CAAC,QAAQ,IAAI,GAAG;IAExB,cAAc,IAAI,GAAG;IAIrB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9C;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAY1C,eAAe;;;;;;;;;;IAef,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,aAAa,IAAI,OAAO;CAa3B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAGpE,eAAO,MAAM,qBAAqB,+CAA8B,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;IAW9B;;;;OAIG;;IAEH;;;;OAIG;;kBAEL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,iBAAiB,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC1G,iBAAiB,CAAA;AAErB;;GAEG;AACH,UAAU,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAE,SAAQ,eAAe,CAAC,EAAE,CAAC;IACnE,IAAI,EAAE,KAAK,CAAA;CACd"}
@@ -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, SlugFieldSubmissionContext } from './slug.js';
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":"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"}
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;AAExB,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"}
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"}
@@ -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
  center: z
6
7
  .strictObject({
@@ -96,7 +97,7 @@ export class MapField extends Field {
96
97
  */
97
98
  if (this.required) {
98
99
  if (!this.value) {
99
- throw new Error(`${this.label}: field is required`);
100
+ throw new Error(getString('fieldIsRequired', 'en', { field: String(this.label) }));
100
101
  }
101
102
  }
102
103
  }
@@ -114,7 +115,7 @@ export class MapField extends Field {
114
115
  * Check if the value if well formatted as `lat,lng` string
115
116
  */
116
117
  if (!/^-?\d+(\.\d+)?,-?\d+(\.\d+)?$/.test(`${this.value?.lat},${this.value?.lng}`)) {
117
- throw new Error(`${this.label}: value is not well formatted, it should be of format: "number,number"`);
118
+ throw new Error(getString('invalidMapFormat', 'en'));
118
119
  }
119
120
  }
120
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/core/fields/number.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;AAgCxB,QAAA,MAAM,YAAY;;IA5Bd,oFAAoF;;;;;;;;;;;;;;;;;;;;;;IAoBpF;;;;OAIG;;wCAOL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,WAAY,SAAQ,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAgB;IAE7D,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IACzC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;gBAEtB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAkD3C;;OAEG;IACH,OAAO,CAAC,WAAW;IAYH,eAAe;;;;;;;;;;;;;;;;IAY/B;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIrB,kBAAkB,IAAI,OAAO;IActC,aAAa;IAkBb;;OAEG;IACG,oBAAoB;CA+C7B;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAYhF,QAAA,MAAM,aAAa;;IApOf,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBpF;;;;OAIG;;;;;;;wCA+ML,CAAA;AAEF,QAAA,MAAM,uBAAuB;;IAzOzB,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBpF;;;;OAIG;;;;;;;;;;mBAuNN,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,iBAAiB,CAmBnF"}
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/core/fields/number.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;AAiCxB,QAAA,MAAM,YAAY;;IA5Bd,oFAAoF;;;;;;;;;;;;;;;;;;;;;;IAoBpF;;;;OAIG;;wCAOL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,WAAY,SAAQ,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAgB;IAE7D,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IACzC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;gBAEtB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAkD3C;;OAEG;IACH,OAAO,CAAC,WAAW;IAYH,eAAe;;;;;;;;;;;;;;;;IAY/B;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIrB,kBAAkB,IAAI,OAAO;IActC,aAAa;IAkBb;;OAEG;IACG,oBAAoB;CA+C7B;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAYhF,QAAA,MAAM,aAAa;;IApOf,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBpF;;;;OAIG;;;;;;;wCA+ML,CAAA;AAEF,QAAA,MAAM,uBAAuB;;IAzOzB,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBpF;;;;OAIG;;;;;;;;;;mBAuNN,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,iBAAiB,CAmBnF"}
@@ -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 numberFieldAutoIncConfigSchema = z.strictObject({
5
6
  hasAutoIncrement: z.literal(true).describe('Enable auto-increment for this field'),
6
7
  /** Auto-increment is always integer. Allowing override to 'int' only (optional). */
@@ -75,10 +76,10 @@ export class NumberField extends Field {
75
76
  * Basic structural logic checks
76
77
  */
77
78
  if (this.minValue !== undefined && this.maxValue !== undefined && this.minValue > this.maxValue) {
78
- throw new Error(`Field ${this.label} has minValue > maxValue`);
79
+ throw new Error(getString('fieldMinMaxMismatch', 'en', { field: String(this.label) }));
79
80
  }
80
81
  if (this.minLength !== undefined && this.maxLength !== undefined && this.minLength > this.maxLength) {
81
- throw new Error(`Field ${this.label} has minLength > maxLength`);
82
+ throw new Error(getString('fieldLengthMismatch', 'en', { field: String(this.label) }));
82
83
  }
83
84
  /**
84
85
  * Attempt to coerce the value
@@ -142,7 +143,7 @@ export class NumberField extends Field {
142
143
  */
143
144
  if (this.required) {
144
145
  if (this.value === undefined || this.value === null || Number.isNaN(this.value)) {
145
- throw new Error(`Field ${this.label} is required`);
146
+ throw new Error(getString('fieldIsRequired', 'en', { field: String(this.label) }));
146
147
  }
147
148
  }
148
149
  }
@@ -163,7 +164,7 @@ export class NumberField extends Field {
163
164
  */
164
165
  if (this.minValue) {
165
166
  if (this.minValue > this.value) {
166
- throw new Error(`Field ${this.label} must be ${this.minValue} and above`);
167
+ throw new Error(getString('fieldMinValueError', 'en', { field: String(this.label), min: this.minValue }));
167
168
  }
168
169
  }
169
170
  /**
@@ -171,7 +172,7 @@ export class NumberField extends Field {
171
172
  */
172
173
  if (this.maxValue) {
173
174
  if (this.maxValue < this.value) {
174
- throw new Error(`Field ${this.label} must be ${this.maxValue} and below`);
175
+ throw new Error(getString('fieldMaxValueError', 'en', { field: String(this.label), max: this.maxValue }));
175
176
  }
176
177
  }
177
178
  /**
@@ -179,7 +180,7 @@ export class NumberField extends Field {
179
180
  */
180
181
  if (this.minLength) {
181
182
  if (this.minLength > this.value.toString().length) {
182
- throw new Error(`Field ${this.label} must be at least ${this.minLength} characters long`);
183
+ throw new Error(getString('numberMinLength', 'en', { min: this.minLength }));
183
184
  }
184
185
  }
185
186
  /**
@@ -187,7 +188,7 @@ export class NumberField extends Field {
187
188
  */
188
189
  if (this.maxLength) {
189
190
  if (this.maxLength < this.value.toString().length) {
190
- throw new Error(`Field ${this.label} must be at most ${this.maxLength} characters long`);
191
+ throw new Error(getString('numberMaxLength', 'en', { max: this.maxLength }));
191
192
  }
192
193
  }
193
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../src/core/fields/password.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;AAEhD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,QAAA,MAAM,4BAA4B;;;kBAGhC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF,QAAA,MAAM,yBAAyB;;;;;;;;;kBAM7B,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEvD,qBAAa,aAAc,SAAQ,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;IACxD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAkB;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,SAAS,CAAA;gBAE3C,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAQ3C;;OAEG;IACG,WAAW;IAMD,eAAe;;;;;;;;;;;;;;;;;IAU/B;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB,aAAa;IAWb;;OAEG;IACG,oBAAoB;CAuC7B;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEpF,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;kBAGjB,CAAA;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;kBAIhB,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE9D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,mBAAmB,CAmBvF"}
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../src/core/fields/password.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;AAEhD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,QAAA,MAAM,4BAA4B;;;kBAGhC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF,QAAA,MAAM,yBAAyB;;;;;;;;;kBAM7B,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEvD,qBAAa,aAAc,SAAQ,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;IACxD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAkB;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,SAAS,CAAA;gBAE3C,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAQ3C;;OAEG;IACG,WAAW;IAMD,eAAe;;;;;;;;;;;;;;;;;IAU/B;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB,aAAa;IAWb;;OAEG;IACG,oBAAoB;CAuC7B;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEpF,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;kBAGjB,CAAA;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;kBAIhB,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE9D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,mBAAmB,CAmBvF"}