@payloadcms/translations 4.0.0-internal.293e026 → 4.0.0-internal.2a3c3bc
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/LICENSE.md +1 -1
- package/dist/clientKeys.d.ts +1 -1
- package/dist/clientKeys.d.ts.map +1 -1
- package/dist/clientKeys.js +95 -1
- package/dist/clientKeys.js.map +1 -1
- package/dist/dateFNS/ar.js +1 -0
- package/dist/dateFNS/az.js +1 -0
- package/dist/dateFNS/bg.js +1 -0
- package/dist/dateFNS/bn.js +1 -0
- package/dist/dateFNS/ca.js +1 -0
- package/dist/dateFNS/chunk-YT6ULX4E.js +1 -0
- package/dist/dateFNS/cs.js +1 -0
- package/dist/dateFNS/da.js +1 -0
- package/dist/dateFNS/de.js +1 -0
- package/dist/dateFNS/es.js +1 -0
- package/dist/dateFNS/et.js +1 -0
- package/dist/dateFNS/fa-IR.js +1 -0
- package/dist/dateFNS/fr.js +1 -0
- package/dist/dateFNS/he.js +1 -0
- package/dist/dateFNS/hr.js +1 -0
- package/dist/dateFNS/hu.js +1 -0
- package/dist/dateFNS/id.js +1 -0
- package/dist/dateFNS/is.js +1 -0
- package/dist/dateFNS/it.js +1 -0
- package/dist/dateFNS/ja.js +1 -0
- package/dist/dateFNS/ko.js +1 -0
- package/dist/dateFNS/lt.js +1 -0
- package/dist/dateFNS/lv.js +1 -0
- package/dist/dateFNS/nb.js +1 -0
- package/dist/dateFNS/nl.js +1 -0
- package/dist/dateFNS/pl.js +1 -0
- package/dist/dateFNS/pt.js +1 -0
- package/dist/dateFNS/ro.js +1 -0
- package/dist/dateFNS/ru.js +1 -0
- package/dist/dateFNS/sk.js +1 -0
- package/dist/dateFNS/sl.js +1 -0
- package/dist/dateFNS/sr-Latn.js +1 -0
- package/dist/dateFNS/sr.js +1 -0
- package/dist/dateFNS/sv.js +1 -0
- package/dist/dateFNS/ta.js +1 -0
- package/dist/dateFNS/th.js +1 -0
- package/dist/dateFNS/tr.js +1 -0
- package/dist/dateFNS/uk.js +1 -0
- package/dist/dateFNS/vi.js +1 -0
- package/dist/dateFNS/zh-CN.js +1 -0
- package/dist/dateFNS/zh-TW.js +1 -0
- package/dist/importDateFNSLocale.d.ts.map +1 -1
- package/dist/importDateFNSLocale.js +41 -41
- package/dist/languages/ar.d.ts.map +1 -1
- package/dist/languages/ar.js +99 -3
- package/dist/languages/ar.js.map +1 -1
- package/dist/languages/az.d.ts.map +1 -1
- package/dist/languages/az.js +99 -3
- package/dist/languages/az.js.map +1 -1
- package/dist/languages/bg.d.ts.map +1 -1
- package/dist/languages/bg.js +99 -3
- package/dist/languages/bg.js.map +1 -1
- package/dist/languages/bnBd.d.ts.map +1 -1
- package/dist/languages/bnBd.js +99 -3
- package/dist/languages/bnBd.js.map +1 -1
- package/dist/languages/bnIn.d.ts.map +1 -1
- package/dist/languages/bnIn.js +99 -3
- package/dist/languages/bnIn.js.map +1 -1
- package/dist/languages/ca.d.ts.map +1 -1
- package/dist/languages/ca.js +99 -3
- package/dist/languages/ca.js.map +1 -1
- package/dist/languages/cs.d.ts.map +1 -1
- package/dist/languages/cs.js +99 -3
- package/dist/languages/cs.js.map +1 -1
- package/dist/languages/da.d.ts.map +1 -1
- package/dist/languages/da.js +99 -3
- package/dist/languages/da.js.map +1 -1
- package/dist/languages/de.d.ts.map +1 -1
- package/dist/languages/de.js +99 -3
- package/dist/languages/de.js.map +1 -1
- package/dist/languages/en.d.ts +97 -1
- package/dist/languages/en.d.ts.map +1 -1
- package/dist/languages/en.js +99 -3
- package/dist/languages/en.js.map +1 -1
- package/dist/languages/es.d.ts.map +1 -1
- package/dist/languages/es.js +99 -3
- package/dist/languages/es.js.map +1 -1
- package/dist/languages/et.d.ts.map +1 -1
- package/dist/languages/et.js +99 -3
- package/dist/languages/et.js.map +1 -1
- package/dist/languages/fa.d.ts.map +1 -1
- package/dist/languages/fa.js +99 -3
- package/dist/languages/fa.js.map +1 -1
- package/dist/languages/fr.d.ts.map +1 -1
- package/dist/languages/fr.js +99 -3
- package/dist/languages/fr.js.map +1 -1
- package/dist/languages/he.d.ts.map +1 -1
- package/dist/languages/he.js +99 -3
- package/dist/languages/he.js.map +1 -1
- package/dist/languages/hr.d.ts.map +1 -1
- package/dist/languages/hr.js +99 -3
- package/dist/languages/hr.js.map +1 -1
- package/dist/languages/hu.d.ts.map +1 -1
- package/dist/languages/hu.js +99 -3
- package/dist/languages/hu.js.map +1 -1
- package/dist/languages/hy.d.ts.map +1 -1
- package/dist/languages/hy.js +99 -3
- package/dist/languages/hy.js.map +1 -1
- package/dist/languages/id.d.ts.map +1 -1
- package/dist/languages/id.js +99 -3
- package/dist/languages/id.js.map +1 -1
- package/dist/languages/is.d.ts.map +1 -1
- package/dist/languages/is.js +99 -3
- package/dist/languages/is.js.map +1 -1
- package/dist/languages/it.d.ts.map +1 -1
- package/dist/languages/it.js +99 -3
- package/dist/languages/it.js.map +1 -1
- package/dist/languages/ja.d.ts.map +1 -1
- package/dist/languages/ja.js +116 -20
- package/dist/languages/ja.js.map +1 -1
- package/dist/languages/ko.d.ts.map +1 -1
- package/dist/languages/ko.js +99 -3
- package/dist/languages/ko.js.map +1 -1
- package/dist/languages/lt.d.ts.map +1 -1
- package/dist/languages/lt.js +99 -3
- package/dist/languages/lt.js.map +1 -1
- package/dist/languages/lv.d.ts.map +1 -1
- package/dist/languages/lv.js +99 -3
- package/dist/languages/lv.js.map +1 -1
- package/dist/languages/my.d.ts.map +1 -1
- package/dist/languages/my.js +229 -133
- package/dist/languages/my.js.map +1 -1
- package/dist/languages/nb.d.ts.map +1 -1
- package/dist/languages/nb.js +99 -3
- package/dist/languages/nb.js.map +1 -1
- package/dist/languages/nl.d.ts.map +1 -1
- package/dist/languages/nl.js +99 -3
- package/dist/languages/nl.js.map +1 -1
- package/dist/languages/pl.d.ts.map +1 -1
- package/dist/languages/pl.js +99 -3
- package/dist/languages/pl.js.map +1 -1
- package/dist/languages/pt.d.ts.map +1 -1
- package/dist/languages/pt.js +99 -3
- package/dist/languages/pt.js.map +1 -1
- package/dist/languages/ro.d.ts.map +1 -1
- package/dist/languages/ro.js +99 -3
- package/dist/languages/ro.js.map +1 -1
- package/dist/languages/rs.d.ts.map +1 -1
- package/dist/languages/rs.js +99 -3
- package/dist/languages/rs.js.map +1 -1
- package/dist/languages/rsLatin.d.ts.map +1 -1
- package/dist/languages/rsLatin.js +99 -3
- package/dist/languages/rsLatin.js.map +1 -1
- package/dist/languages/ru.d.ts.map +1 -1
- package/dist/languages/ru.js +99 -3
- package/dist/languages/ru.js.map +1 -1
- package/dist/languages/sk.d.ts.map +1 -1
- package/dist/languages/sk.js +99 -3
- package/dist/languages/sk.js.map +1 -1
- package/dist/languages/sl.d.ts.map +1 -1
- package/dist/languages/sl.js +99 -3
- package/dist/languages/sl.js.map +1 -1
- package/dist/languages/sv.d.ts.map +1 -1
- package/dist/languages/sv.js +99 -3
- package/dist/languages/sv.js.map +1 -1
- package/dist/languages/ta.d.ts.map +1 -1
- package/dist/languages/ta.js +99 -3
- package/dist/languages/ta.js.map +1 -1
- package/dist/languages/th.d.ts.map +1 -1
- package/dist/languages/th.js +99 -3
- package/dist/languages/th.js.map +1 -1
- package/dist/languages/tr.d.ts.map +1 -1
- package/dist/languages/tr.js +99 -3
- package/dist/languages/tr.js.map +1 -1
- package/dist/languages/uk.d.ts.map +1 -1
- package/dist/languages/uk.js +99 -3
- package/dist/languages/uk.js.map +1 -1
- package/dist/languages/vi.d.ts.map +1 -1
- package/dist/languages/vi.js +99 -3
- package/dist/languages/vi.js.map +1 -1
- package/dist/languages/zh.d.ts.map +1 -1
- package/dist/languages/zh.js +99 -3
- package/dist/languages/zh.js.map +1 -1
- package/dist/languages/zhTw.d.ts.map +1 -1
- package/dist/languages/zhTw.js +117 -21
- package/dist/languages/zhTw.js.map +1 -1
- package/dist/types.d.ts +5 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/getTranslation.d.ts.map +1 -1
- package/dist/utilities/getTranslationsByContext.d.ts +99 -3
- package/dist/utilities/getTranslationsByContext.d.ts.map +1 -1
- package/dist/utilities/getTranslationsByContext.js +41 -33
- package/dist/utilities/getTranslationsByContext.js.map +1 -1
- package/dist/utilities/init.d.ts +3 -3
- package/dist/utilities/init.d.ts.map +1 -1
- package/dist/utilities/languages.d.ts +2 -2
- package/dist/utilities/languages.d.ts.map +1 -1
- package/package.json +8 -6
- package/dist/utilities/deepMergeSimple.spec.js +0 -81
- package/dist/utilities/deepMergeSimple.spec.js.map +0 -1
- package/dist/utilities/languages.spec.js +0 -42
- package/dist/utilities/languages.spec.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Language } from '../types.js';
|
|
2
|
-
export declare const getTranslationsByContext: (selectedLanguage: Language, context:
|
|
2
|
+
export declare const getTranslationsByContext: (selectedLanguage: Language, context: 'api' | 'client') => Record<string, unknown> | {
|
|
3
3
|
authentication: {
|
|
4
4
|
account: string;
|
|
5
5
|
accountOfCurrentUser: string;
|
|
@@ -53,6 +53,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
53
53
|
notRedirected: string;
|
|
54
54
|
passed: string;
|
|
55
55
|
passwordResetSuccessfully: string;
|
|
56
|
+
resend: string;
|
|
56
57
|
resetPassword: string;
|
|
57
58
|
resetPasswordExpiration: string;
|
|
58
59
|
resetPasswordToken: string;
|
|
@@ -100,7 +101,38 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
100
101
|
editingDashboard: string;
|
|
101
102
|
noItems: string;
|
|
102
103
|
resetLayout: string;
|
|
104
|
+
resizeWidget: string;
|
|
103
105
|
searchWidgets: string;
|
|
106
|
+
widgetAddPin: string;
|
|
107
|
+
widgetCollectionRequired: string;
|
|
108
|
+
widgetConfigurationError: string;
|
|
109
|
+
widgetDropFilesToUpload: string;
|
|
110
|
+
widgetInvalidCollection: string;
|
|
111
|
+
widgetInvalidFilterField: string;
|
|
112
|
+
widgetInvalidSortField: string;
|
|
113
|
+
widgetLimitLabel: string;
|
|
114
|
+
widgetNonSortableSortField: string;
|
|
115
|
+
widgetPageCount: string;
|
|
116
|
+
widgetPagination: string;
|
|
117
|
+
widgetPinned: string;
|
|
118
|
+
widgetPinnedEmpty: string;
|
|
119
|
+
widgetPinnedEmptyDescription: string;
|
|
120
|
+
widgetPinnedSaveError: string;
|
|
121
|
+
widgetQueryError: string;
|
|
122
|
+
widgetRecentlyViewedEmpty: string;
|
|
123
|
+
widgetRecentlyViewedEmptyDescription: string;
|
|
124
|
+
widgetRecentlyViewedFilterDescription: string;
|
|
125
|
+
widgetRecentlyViewedTitle: string;
|
|
126
|
+
widgetRecentsAndPinned: string;
|
|
127
|
+
widgetRemovePin: string;
|
|
128
|
+
widgetSelectCollectionFirst: string;
|
|
129
|
+
widgetSelectSortField: string;
|
|
130
|
+
widgetSortDirectionLabel: string;
|
|
131
|
+
widgetSortFieldLabel: string;
|
|
132
|
+
widgetTitleFallback: string;
|
|
133
|
+
widgetTitleLabel: string;
|
|
134
|
+
widgetUploadDropzoneDescription: string;
|
|
135
|
+
widgetUploadFiles: string;
|
|
104
136
|
};
|
|
105
137
|
error: {
|
|
106
138
|
accountAlreadyActivated: string;
|
|
@@ -112,6 +144,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
112
144
|
emailOrPasswordIncorrect: string;
|
|
113
145
|
failedToResetLayout: string;
|
|
114
146
|
failedToSaveLayout: string;
|
|
147
|
+
fileFetchFailed: string;
|
|
115
148
|
followingFieldsInvalid_one: string;
|
|
116
149
|
followingFieldsInvalid_other: string;
|
|
117
150
|
incorrectCollection: string;
|
|
@@ -128,6 +161,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
128
161
|
missingIDOfDocument: string;
|
|
129
162
|
missingIDOfVersion: string;
|
|
130
163
|
missingRequiredData: string;
|
|
164
|
+
noFileFoundInClipboard: string;
|
|
131
165
|
noFilesUploaded: string;
|
|
132
166
|
noMatchedField: string;
|
|
133
167
|
notAllowedToAccessPage: string;
|
|
@@ -142,6 +176,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
142
176
|
tokenNotProvided: string;
|
|
143
177
|
unableToCopy: string;
|
|
144
178
|
unableToDeleteCount: string;
|
|
179
|
+
unableToReadClipboard: string;
|
|
145
180
|
unableToReindexCollection: string;
|
|
146
181
|
unableToUpdateCount: string;
|
|
147
182
|
unauthorized: string;
|
|
@@ -150,6 +185,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
150
185
|
unPublishingDocument: string;
|
|
151
186
|
unspecific: string;
|
|
152
187
|
unverifiedEmail: string;
|
|
188
|
+
urlNotAllowed: string;
|
|
153
189
|
userEmailAlreadyRegistered: string;
|
|
154
190
|
userLocked: string;
|
|
155
191
|
usernameAlreadyRegistered: string;
|
|
@@ -165,6 +201,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
165
201
|
addRelationship: string;
|
|
166
202
|
addUpload: string;
|
|
167
203
|
block: string;
|
|
204
|
+
blockName: string;
|
|
168
205
|
blocks: string;
|
|
169
206
|
blockType: string;
|
|
170
207
|
chooseBetweenCustomTextOrDocument: string;
|
|
@@ -220,25 +257,30 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
220
257
|
aboutToTrash: string;
|
|
221
258
|
aboutToTrashCount: string;
|
|
222
259
|
accepts: string;
|
|
260
|
+
access: string;
|
|
223
261
|
addBelow: string;
|
|
224
262
|
addFilter: string;
|
|
225
263
|
adminTheme: string;
|
|
226
264
|
all: string;
|
|
227
265
|
allCollections: string;
|
|
228
266
|
allLocales: string;
|
|
267
|
+
allowedTypes: string;
|
|
229
268
|
and: string;
|
|
230
269
|
anotherUser: string;
|
|
231
270
|
anotherUserTakenOver: string;
|
|
232
271
|
applyChanges: string;
|
|
233
272
|
ascending: string;
|
|
273
|
+
auto: string;
|
|
234
274
|
automatic: string;
|
|
235
275
|
backToDashboard: string;
|
|
276
|
+
breadcrumb: string;
|
|
236
277
|
by: string;
|
|
237
278
|
cancel: string;
|
|
238
279
|
changesNotSaved: string;
|
|
239
280
|
checked: string;
|
|
240
281
|
clear: string;
|
|
241
282
|
clearAll: string;
|
|
283
|
+
clearSearch: string;
|
|
242
284
|
close: string;
|
|
243
285
|
collapse: string;
|
|
244
286
|
collection: string;
|
|
@@ -264,6 +306,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
264
306
|
create: string;
|
|
265
307
|
created: string;
|
|
266
308
|
createdAt: string;
|
|
309
|
+
createdBy: string;
|
|
267
310
|
createNew: string;
|
|
268
311
|
createNewLabel: string;
|
|
269
312
|
creating: string;
|
|
@@ -324,6 +367,8 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
324
367
|
filterWhere: string;
|
|
325
368
|
globals: string;
|
|
326
369
|
goBack: string;
|
|
370
|
+
goToPage: string;
|
|
371
|
+
gridLayout: string;
|
|
327
372
|
groupByLabel: string;
|
|
328
373
|
hideSidebar: string;
|
|
329
374
|
import: string;
|
|
@@ -356,6 +401,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
356
401
|
newLabel: string;
|
|
357
402
|
newPassword: string;
|
|
358
403
|
next: string;
|
|
404
|
+
nextPage: string;
|
|
359
405
|
no: string;
|
|
360
406
|
noDateSelected: string;
|
|
361
407
|
noFiltersSet: string;
|
|
@@ -369,6 +415,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
369
415
|
notFound: string;
|
|
370
416
|
nothingFound: string;
|
|
371
417
|
noTrashResults: string;
|
|
418
|
+
notSelectedDocument: string;
|
|
372
419
|
notShownInTable: string;
|
|
373
420
|
noUpcomingEventsScheduled: string;
|
|
374
421
|
noValue: string;
|
|
@@ -378,9 +425,12 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
378
425
|
openInNewWindow: string;
|
|
379
426
|
or: string;
|
|
380
427
|
order: string;
|
|
428
|
+
original: string;
|
|
381
429
|
overwriteExistingData: string;
|
|
382
430
|
pageNotFound: string;
|
|
431
|
+
pageNumberRange: string;
|
|
383
432
|
password: string;
|
|
433
|
+
pasteBelow: string;
|
|
384
434
|
pasteField: string;
|
|
385
435
|
pasteRow: string;
|
|
386
436
|
payloadSettings: string;
|
|
@@ -388,12 +438,16 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
388
438
|
permanentlyDeletedCountSuccessfully: string;
|
|
389
439
|
perPage: string;
|
|
390
440
|
perPageLabel: string;
|
|
441
|
+
presets: string;
|
|
391
442
|
previous: string;
|
|
443
|
+
previousPage: string;
|
|
392
444
|
reindex: string;
|
|
393
445
|
reindexingAll: string;
|
|
394
446
|
reloadDocument: string;
|
|
395
447
|
remove: string;
|
|
396
448
|
rename: string;
|
|
449
|
+
replaceRow: string;
|
|
450
|
+
requiredFields: string;
|
|
397
451
|
reset: string;
|
|
398
452
|
resetPreferences: string;
|
|
399
453
|
resetPreferencesDescription: string;
|
|
@@ -409,20 +463,28 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
409
463
|
saveChanges: string;
|
|
410
464
|
saving: string;
|
|
411
465
|
schedulePublishFor: string;
|
|
466
|
+
searchAutomatically: string;
|
|
412
467
|
searchBy: string;
|
|
468
|
+
searchCleared: string;
|
|
413
469
|
searchColumns: string;
|
|
470
|
+
searchGroups: string;
|
|
471
|
+
searchResults: string;
|
|
414
472
|
select: string;
|
|
415
473
|
selectAll: string;
|
|
416
474
|
selectAllRows: string;
|
|
417
475
|
selectedCount: string;
|
|
476
|
+
selectedDocument: string;
|
|
418
477
|
selectLabel: string;
|
|
419
478
|
selectValue: string;
|
|
479
|
+
settings: string;
|
|
420
480
|
showAllLabel: string;
|
|
421
481
|
shownInTable: string;
|
|
422
482
|
showSidebar: string;
|
|
483
|
+
skipToContent: string;
|
|
423
484
|
sorryNotFound: string;
|
|
424
485
|
sort: string;
|
|
425
486
|
sortByLabelDirection: string;
|
|
487
|
+
sortByOrderToReorder: string;
|
|
426
488
|
stayOnThisPage: string;
|
|
427
489
|
submissionSuccessful: string;
|
|
428
490
|
submit: string;
|
|
@@ -431,7 +493,9 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
431
493
|
successfullyCreated: string;
|
|
432
494
|
successfullyDuplicated: string;
|
|
433
495
|
successfullyReindexed: string;
|
|
496
|
+
tableLayout: string;
|
|
434
497
|
takeOver: string;
|
|
498
|
+
theme: string;
|
|
435
499
|
thisLanguage: string;
|
|
436
500
|
time: string;
|
|
437
501
|
timezone: string;
|
|
@@ -451,6 +515,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
451
515
|
upcomingEvents: string;
|
|
452
516
|
updatedAgo: string;
|
|
453
517
|
updatedAt: string;
|
|
518
|
+
updatedBy: string;
|
|
454
519
|
updatedCountSuccessfully: string;
|
|
455
520
|
updatedLabelSuccessfully: string;
|
|
456
521
|
updatedSuccessfully: string;
|
|
@@ -469,13 +534,29 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
469
534
|
yes: string;
|
|
470
535
|
};
|
|
471
536
|
hierarchy: {
|
|
537
|
+
goTo: string;
|
|
472
538
|
itemsMovedTo: string;
|
|
473
539
|
itemsMovedToRoot: string;
|
|
474
|
-
|
|
540
|
+
moveTo: string;
|
|
475
541
|
moveToRoot: string;
|
|
476
542
|
noParent: string;
|
|
477
543
|
noResults: string;
|
|
544
|
+
removeFrom: string;
|
|
478
545
|
searchLabel: string;
|
|
546
|
+
searchResults: string;
|
|
547
|
+
};
|
|
548
|
+
llmInstructions: {
|
|
549
|
+
additionalInstructions: string;
|
|
550
|
+
collectionDescription: string;
|
|
551
|
+
collectionSystemDescription: string;
|
|
552
|
+
editInstructions: string;
|
|
553
|
+
global: string;
|
|
554
|
+
globalDescription: string;
|
|
555
|
+
globalSystemDescription: string;
|
|
556
|
+
instructions: string;
|
|
557
|
+
systemInstructions: string;
|
|
558
|
+
targetCannotBeChanged: string;
|
|
559
|
+
title: string;
|
|
479
560
|
};
|
|
480
561
|
localization: {
|
|
481
562
|
cannotCopySameLocale: string;
|
|
@@ -509,8 +590,18 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
509
590
|
addFile: string;
|
|
510
591
|
addFiles: string;
|
|
511
592
|
bulkUpload: string;
|
|
593
|
+
copyLinkToFile: string;
|
|
594
|
+
copyURL: string;
|
|
512
595
|
crop: string;
|
|
596
|
+
cropBottom: string;
|
|
597
|
+
cropBottomLeft: string;
|
|
598
|
+
cropBottomRight: string;
|
|
599
|
+
cropLeft: string;
|
|
600
|
+
cropRight: string;
|
|
513
601
|
cropToolDescription: string;
|
|
602
|
+
cropTop: string;
|
|
603
|
+
cropTopLeft: string;
|
|
604
|
+
cropTopRight: string;
|
|
514
605
|
download: string;
|
|
515
606
|
dragAndDrop: string;
|
|
516
607
|
dragAndDropHere: string;
|
|
@@ -521,12 +612,17 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
521
612
|
fileToUpload: string;
|
|
522
613
|
focalPoint: string;
|
|
523
614
|
focalPointDescription: string;
|
|
615
|
+
fromURL: string;
|
|
524
616
|
height: string;
|
|
525
617
|
lessInfo: string;
|
|
618
|
+
linkToFile: string;
|
|
526
619
|
moreInfo: string;
|
|
527
620
|
noFile: string;
|
|
621
|
+
pasteFromClipboard: string;
|
|
528
622
|
pasteURL: string;
|
|
529
623
|
previewSizes: string;
|
|
624
|
+
renameFile: string;
|
|
625
|
+
replaceFile: string;
|
|
530
626
|
selectCollectionToBrowse: string;
|
|
531
627
|
selectFile: string;
|
|
532
628
|
setCropArea: string;
|
|
@@ -643,5 +739,5 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
|
|
|
643
739
|
viewingVersions: string;
|
|
644
740
|
viewingVersionsGlobal: string;
|
|
645
741
|
};
|
|
646
|
-
}
|
|
742
|
+
};
|
|
647
743
|
//# sourceMappingURL=getTranslationsByContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslationsByContext.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslationsByContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"getTranslationsByContext.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslationsByContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AA6E3C,eAAO,MAAM,wBAAwB,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM7F,CAAA"}
|
|
@@ -1,41 +1,49 @@
|
|
|
1
1
|
import { clientTranslationKeys } from '../clientKeys.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The client translation keys, grouped by namespace. For example, the keys `general:cancel`,
|
|
4
|
+
* `general:item` and `authentication:account` are stored as:
|
|
5
|
+
*
|
|
6
|
+
* `Map { 'general' => Set { 'cancel', 'item' }, 'authentication' => Set { 'account' } }`
|
|
7
|
+
*/ const clientKeysByNamespace = new Map();
|
|
8
|
+
for (const clientKey of clientTranslationKeys){
|
|
9
|
+
const separatorIndex = clientKey.indexOf(':');
|
|
10
|
+
const namespace = clientKey.slice(0, separatorIndex);
|
|
11
|
+
const key = clientKey.slice(separatorIndex + 1);
|
|
12
|
+
const keys = clientKeysByNamespace.get(namespace) ?? new Set();
|
|
13
|
+
clientKeysByNamespace.set(namespace, keys.add(key));
|
|
14
|
+
}
|
|
15
|
+
/** Plural forms of a key, for example `item_one` and `item_other` for `item` */ const pluralSuffix = /_(?:zero|one|two|few|many|other)$/;
|
|
16
|
+
/**
|
|
17
|
+
* Keeps only the translations the admin needs in the browser: the keys listed in
|
|
18
|
+
* `clientTranslationKeys`, plus their plural forms. Namespaces that end up empty are left out.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // With the client keys `general:cancel` and `general:item`:
|
|
22
|
+
* filterClientKeys({
|
|
23
|
+
* general: { cancel: 'Cancel', item: 'Item', item_other: 'Items', save: 'Save' },
|
|
24
|
+
* error: { notFound: 'Not found' },
|
|
25
|
+
* })
|
|
26
|
+
* // => { general: { cancel: 'Cancel', item: 'Item', item_other: 'Items' } }
|
|
27
|
+
*/ function filterClientKeys(translations) {
|
|
3
28
|
const result = {};
|
|
4
|
-
for (const [
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
result[namespaceKey] = value;
|
|
29
|
+
for (const [namespace, value] of Object.entries(translations)){
|
|
30
|
+
if (namespace === '$schema') {
|
|
31
|
+
result[namespace] = value;
|
|
8
32
|
continue;
|
|
9
33
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (parentGroupKey === groupKey) {
|
|
19
|
-
if (namespaceKey === selector) {
|
|
20
|
-
result[selector] = value;
|
|
21
|
-
} else {
|
|
22
|
-
const pluralKeys = [
|
|
23
|
-
'zero',
|
|
24
|
-
'one',
|
|
25
|
-
'two',
|
|
26
|
-
'few',
|
|
27
|
-
'many',
|
|
28
|
-
'other'
|
|
29
|
-
];
|
|
30
|
-
pluralKeys.forEach((pluralKey)=>{
|
|
31
|
-
if (namespaceKey === `${selector}_${pluralKey}`) {
|
|
32
|
-
result[`${selector}_${pluralKey}`] = value;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
34
|
+
const clientKeys = clientKeysByNamespace.get(namespace);
|
|
35
|
+
if (!clientKeys || typeof value !== 'object' || value === null) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const clientTranslations = {};
|
|
39
|
+
for (const [key, translation] of Object.entries(value)){
|
|
40
|
+
if (clientKeys.has(key) || clientKeys.has(key.replace(pluralSuffix, ''))) {
|
|
41
|
+
clientTranslations[key] = translation;
|
|
37
42
|
}
|
|
38
43
|
}
|
|
44
|
+
if (Object.keys(clientTranslations).length > 0) {
|
|
45
|
+
result[namespace] = clientTranslations;
|
|
46
|
+
}
|
|
39
47
|
}
|
|
40
48
|
return result;
|
|
41
49
|
}
|
|
@@ -52,7 +60,7 @@ function sortObject(obj) {
|
|
|
52
60
|
}
|
|
53
61
|
export const getTranslationsByContext = (selectedLanguage, context)=>{
|
|
54
62
|
if (context === 'client') {
|
|
55
|
-
return sortObject(
|
|
63
|
+
return sortObject(filterClientKeys(selectedLanguage.translations));
|
|
56
64
|
} else {
|
|
57
65
|
return selectedLanguage.translations;
|
|
58
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getTranslationsByContext.ts"],"sourcesContent":["import type { Language } from '../types.js'\n\nimport { clientTranslationKeys } from '../clientKeys.js'\n\
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getTranslationsByContext.ts"],"sourcesContent":["import type { Language } from '../types.js'\n\nimport { clientTranslationKeys } from '../clientKeys.js'\n\n/**\n * The client translation keys, grouped by namespace. For example, the keys `general:cancel`,\n * `general:item` and `authentication:account` are stored as:\n *\n * `Map { 'general' => Set { 'cancel', 'item' }, 'authentication' => Set { 'account' } }`\n */\nconst clientKeysByNamespace = new Map<string, Set<string>>()\nfor (const clientKey of clientTranslationKeys) {\n const separatorIndex = clientKey.indexOf(':')\n const namespace = clientKey.slice(0, separatorIndex)\n const key = clientKey.slice(separatorIndex + 1)\n const keys = clientKeysByNamespace.get(namespace) ?? new Set<string>()\n clientKeysByNamespace.set(namespace, keys.add(key))\n}\n\n/** Plural forms of a key, for example `item_one` and `item_other` for `item` */\nconst pluralSuffix = /_(?:zero|one|two|few|many|other)$/\n\n/**\n * Keeps only the translations the admin needs in the browser: the keys listed in\n * `clientTranslationKeys`, plus their plural forms. Namespaces that end up empty are left out.\n *\n * @example\n * // With the client keys `general:cancel` and `general:item`:\n * filterClientKeys({\n * general: { cancel: 'Cancel', item: 'Item', item_other: 'Items', save: 'Save' },\n * error: { notFound: 'Not found' },\n * })\n * // => { general: { cancel: 'Cancel', item: 'Item', item_other: 'Items' } }\n */\nfunction filterClientKeys(translations: Record<string, unknown>) {\n const result: Record<string, unknown> = {}\n\n for (const [namespace, value] of Object.entries(translations)) {\n if (namespace === '$schema') {\n result[namespace] = value\n continue\n }\n\n const clientKeys = clientKeysByNamespace.get(namespace)\n if (!clientKeys || typeof value !== 'object' || value === null) {\n continue\n }\n\n const clientTranslations: Record<string, unknown> = {}\n for (const [key, translation] of Object.entries(value)) {\n if (clientKeys.has(key) || clientKeys.has(key.replace(pluralSuffix, ''))) {\n clientTranslations[key] = translation\n }\n }\n\n if (Object.keys(clientTranslations).length > 0) {\n result[namespace] = clientTranslations\n }\n }\n\n return result\n}\n\nfunction sortObject(obj: Record<string, unknown>) {\n const sortedObject: Record<string, unknown> = {}\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n if (typeof obj[key] === 'object') {\n sortedObject[key] = sortObject(obj[key] as Record<string, unknown>)\n } else {\n sortedObject[key] = obj[key]\n }\n })\n return sortedObject\n}\n\nexport const getTranslationsByContext = (selectedLanguage: Language, context: 'api' | 'client') => {\n if (context === 'client') {\n return sortObject(filterClientKeys(selectedLanguage.translations))\n } else {\n return selectedLanguage.translations\n }\n}\n"],"names":["clientTranslationKeys","clientKeysByNamespace","Map","clientKey","separatorIndex","indexOf","namespace","slice","key","keys","get","Set","set","add","pluralSuffix","filterClientKeys","translations","result","value","Object","entries","clientKeys","clientTranslations","translation","has","replace","length","sortObject","obj","sortedObject","sort","forEach","getTranslationsByContext","selectedLanguage","context"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,mBAAkB;AAExD;;;;;CAKC,GACD,MAAMC,wBAAwB,IAAIC;AAClC,KAAK,MAAMC,aAAaH,sBAAuB;IAC7C,MAAMI,iBAAiBD,UAAUE,OAAO,CAAC;IACzC,MAAMC,YAAYH,UAAUI,KAAK,CAAC,GAAGH;IACrC,MAAMI,MAAML,UAAUI,KAAK,CAACH,iBAAiB;IAC7C,MAAMK,OAAOR,sBAAsBS,GAAG,CAACJ,cAAc,IAAIK;IACzDV,sBAAsBW,GAAG,CAACN,WAAWG,KAAKI,GAAG,CAACL;AAChD;AAEA,8EAA8E,GAC9E,MAAMM,eAAe;AAErB;;;;;;;;;;;CAWC,GACD,SAASC,iBAAiBC,YAAqC;IAC7D,MAAMC,SAAkC,CAAC;IAEzC,KAAK,MAAM,CAACX,WAAWY,MAAM,IAAIC,OAAOC,OAAO,CAACJ,cAAe;QAC7D,IAAIV,cAAc,WAAW;YAC3BW,MAAM,CAACX,UAAU,GAAGY;YACpB;QACF;QAEA,MAAMG,aAAapB,sBAAsBS,GAAG,CAACJ;QAC7C,IAAI,CAACe,cAAc,OAAOH,UAAU,YAAYA,UAAU,MAAM;YAC9D;QACF;QAEA,MAAMI,qBAA8C,CAAC;QACrD,KAAK,MAAM,CAACd,KAAKe,YAAY,IAAIJ,OAAOC,OAAO,CAACF,OAAQ;YACtD,IAAIG,WAAWG,GAAG,CAAChB,QAAQa,WAAWG,GAAG,CAAChB,IAAIiB,OAAO,CAACX,cAAc,MAAM;gBACxEQ,kBAAkB,CAACd,IAAI,GAAGe;YAC5B;QACF;QAEA,IAAIJ,OAAOV,IAAI,CAACa,oBAAoBI,MAAM,GAAG,GAAG;YAC9CT,MAAM,CAACX,UAAU,GAAGgB;QACtB;IACF;IAEA,OAAOL;AACT;AAEA,SAASU,WAAWC,GAA4B;IAC9C,MAAMC,eAAwC,CAAC;IAC/CV,OAAOV,IAAI,CAACmB,KACTE,IAAI,GACJC,OAAO,CAAC,CAACvB;QACR,IAAI,OAAOoB,GAAG,CAACpB,IAAI,KAAK,UAAU;YAChCqB,YAAY,CAACrB,IAAI,GAAGmB,WAAWC,GAAG,CAACpB,IAAI;QACzC,OAAO;YACLqB,YAAY,CAACrB,IAAI,GAAGoB,GAAG,CAACpB,IAAI;QAC9B;IACF;IACF,OAAOqB;AACT;AAEA,OAAO,MAAMG,2BAA2B,CAACC,kBAA4BC;IACnE,IAAIA,YAAY,UAAU;QACxB,OAAOP,WAAWZ,iBAAiBkB,iBAAiBjB,YAAY;IAClE,OAAO;QACL,OAAOiB,iBAAiBjB,YAAY;IACtC;AACF,EAAC"}
|
package/dist/utilities/init.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { DefaultTranslationKeys, DefaultTranslationsObject, I18n, Language
|
|
|
9
9
|
export declare const getTranslationString: <TTranslations = DefaultTranslationsObject, TTranslationKeys = DefaultTranslationKeys>({ count, key, translations, }: {
|
|
10
10
|
count?: number;
|
|
11
11
|
key: TTranslationKeys;
|
|
12
|
-
translations: Language<TTranslations>[
|
|
12
|
+
translations: Language<TTranslations>['translations'];
|
|
13
13
|
}) => string;
|
|
14
14
|
/**
|
|
15
15
|
* @function t
|
|
@@ -26,11 +26,11 @@ export declare function t<TTranslations = DefaultTranslationsObject, TTranslatio
|
|
|
26
26
|
}): string;
|
|
27
27
|
export declare const initI18n: (args: {
|
|
28
28
|
config: import("../types.js").I18nOptions;
|
|
29
|
-
context:
|
|
29
|
+
context: 'api';
|
|
30
30
|
language: import("../types.js").AcceptedLanguages;
|
|
31
31
|
} | {
|
|
32
32
|
config: import("../types.js").I18nOptions<import("../types.js").ClientTranslationsObject>;
|
|
33
|
-
context:
|
|
33
|
+
context: 'client';
|
|
34
34
|
language: import("../types.js").AcceptedLanguages;
|
|
35
35
|
}) => Promise<I18n>;
|
|
36
36
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/utilities/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,IAAI,EAGJ,QAAQ,EACT,MAAM,aAAa,CAAA;AAMpB;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,GAAG,yBAAyB,EACzC,gBAAgB,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/utilities/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,IAAI,EAGJ,QAAQ,EACT,MAAM,aAAa,CAAA;AAMpB;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,GAAG,yBAAyB,EACzC,gBAAgB,GAAG,sBAAsB,iCAKxC;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,gBAAgB,CAAA;IACrB,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAA;CACtD,KAAG,MAyCH,CAAA;AAiCD;;;;;;;GAOG;AACH,wBAAgB,CAAC,CACf,aAAa,GAAG,yBAAyB,EACzC,gBAAgB,GAAG,sBAAsB,EACzC,EACA,GAAG,EACH,YAAY,EACZ,IAAI,GACL,EAAE;IACD,GAAG,EAAE,gBAAgB,CAAA;IACrB,YAAY,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAA;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B,GAAG,MAAM,CAmBT;AA4CD,eAAO,MAAM,QAAQ;;;;;;;;MAjBL,OAAO,CAAC,IAAI,CA+C3B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AcceptedLanguages } from '../types.js';
|
|
2
|
-
export declare const rtlLanguages: readonly [
|
|
3
|
-
export declare const acceptedLanguages: readonly [
|
|
2
|
+
export declare const rtlLanguages: readonly ['ar', 'fa', 'he'];
|
|
3
|
+
export declare const acceptedLanguages: readonly ['ar', 'az', 'bg', 'bn-BD', 'bn-IN', 'ca', 'cs', 'bn-BD', 'bn-IN', 'da', 'de', 'en', 'es', 'et', 'fa', 'fr', 'he', 'hr', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ko', 'lt', 'lv', 'my', 'nb', 'nl', 'pl', 'pt', 'ro', 'rs', 'rs-latin', 'ru', 'sk', 'sl', 'sv', 'ta', 'th', 'tr', 'uk', 'vi', 'zh', 'zh-TW'];
|
|
4
4
|
export declare function extractHeaderLanguage(acceptLanguageHeader: string): AcceptedLanguages | undefined;
|
|
5
5
|
//# sourceMappingURL=languages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../src/utilities/languages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,aAAa,CAAA;AAExE,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../src/utilities/languages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,aAAa,CAAA;AAExE,eAAO,MAAM,YAAY,YAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAEvD,eAAO,MAAM,iBAAiB,YAC5B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,OAAO,CAqFC,CAAA;AAkBV,wBAAgB,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAuBjG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/translations",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.2a3c3bc",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,18 +46,20 @@
|
|
|
46
46
|
"dist"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"date-fns": "4.
|
|
49
|
+
"date-fns": "4.4.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/react": "19.
|
|
53
|
-
"@types/react-dom": "19.
|
|
52
|
+
"@types/react": "19.3.0",
|
|
53
|
+
"@types/react-dom": "19.3.0",
|
|
54
54
|
"dotenv": "16.4.7",
|
|
55
|
+
"esbuild": "0.27.1",
|
|
55
56
|
"prettier": "3.5.3",
|
|
56
|
-
"typescript": "6.0.
|
|
57
|
+
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
57
58
|
"@payloadcms/eslint-config": "3.28.0"
|
|
58
59
|
},
|
|
59
60
|
"scripts": {
|
|
60
|
-
"build": "pnpm build:types && pnpm build:swc",
|
|
61
|
+
"build": "pnpm build:types && pnpm build:swc && pnpm build:dateFNS",
|
|
62
|
+
"build:dateFNS": "node bundleDateFNSLocales.js",
|
|
61
63
|
"build:debug": "pnpm build",
|
|
62
64
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
63
65
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { deepMergeSimple } from './deepMergeSimple.js';
|
|
3
|
-
describe('deepMergeSimple', ()=>{
|
|
4
|
-
it('should merge two flat objects', ()=>{
|
|
5
|
-
const result = deepMergeSimple({
|
|
6
|
-
a: 1
|
|
7
|
-
}, {
|
|
8
|
-
b: 2
|
|
9
|
-
});
|
|
10
|
-
expect(result).toEqual({
|
|
11
|
-
a: 1,
|
|
12
|
-
b: 2
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
it('should let obj2 override obj1 keys', ()=>{
|
|
16
|
-
const result = deepMergeSimple({
|
|
17
|
-
a: 1
|
|
18
|
-
}, {
|
|
19
|
-
a: 2
|
|
20
|
-
});
|
|
21
|
-
expect(result).toEqual({
|
|
22
|
-
a: 2
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
it('should recursively merge nested objects', ()=>{
|
|
26
|
-
const result = deepMergeSimple({
|
|
27
|
-
a: {
|
|
28
|
-
b: 1,
|
|
29
|
-
c: 2
|
|
30
|
-
}
|
|
31
|
-
}, {
|
|
32
|
-
a: {
|
|
33
|
-
c: 3,
|
|
34
|
-
d: 4
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
expect(result).toEqual({
|
|
38
|
-
a: {
|
|
39
|
-
b: 1,
|
|
40
|
-
c: 3,
|
|
41
|
-
d: 4
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
it('should not mutate the input objects', ()=>{
|
|
46
|
-
const obj1 = {
|
|
47
|
-
a: 1
|
|
48
|
-
};
|
|
49
|
-
const obj2 = {
|
|
50
|
-
b: 2
|
|
51
|
-
};
|
|
52
|
-
deepMergeSimple(obj1, obj2);
|
|
53
|
-
expect(obj1).toEqual({
|
|
54
|
-
a: 1
|
|
55
|
-
});
|
|
56
|
-
expect(obj2).toEqual({
|
|
57
|
-
b: 2
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
it('should not pollute global Object.prototype via __proto__', ()=>{
|
|
61
|
-
const malicious = JSON.parse('{"__proto__": {"isAdmin": true}}');
|
|
62
|
-
deepMergeSimple({}, malicious);
|
|
63
|
-
expect({}.isAdmin).toBeUndefined();
|
|
64
|
-
});
|
|
65
|
-
it('should not hijack the returned object prototype via __proto__', ()=>{
|
|
66
|
-
const malicious = JSON.parse('{"__proto__": {"isAdmin": true}}');
|
|
67
|
-
const result = deepMergeSimple({}, malicious);
|
|
68
|
-
expect(result.isAdmin).toBeUndefined();
|
|
69
|
-
});
|
|
70
|
-
it('should not hijack prototype via nested __proto__ key', ()=>{
|
|
71
|
-
const malicious = JSON.parse('{"a": {"__proto__": {"isAdmin": true}}}');
|
|
72
|
-
const base = {
|
|
73
|
-
a: {}
|
|
74
|
-
};
|
|
75
|
-
const result = deepMergeSimple(base, malicious);
|
|
76
|
-
expect(result.a.isAdmin).toBeUndefined();
|
|
77
|
-
expect({}.isAdmin).toBeUndefined();
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
//# sourceMappingURL=deepMergeSimple.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/deepMergeSimple.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { deepMergeSimple } from './deepMergeSimple.js'\n\ndescribe('deepMergeSimple', () => {\n it('should merge two flat objects', () => {\n const result = deepMergeSimple({ a: 1 }, { b: 2 })\n expect(result).toEqual({ a: 1, b: 2 })\n })\n\n it('should let obj2 override obj1 keys', () => {\n const result = deepMergeSimple({ a: 1 }, { a: 2 })\n expect(result).toEqual({ a: 2 })\n })\n\n it('should recursively merge nested objects', () => {\n const result = deepMergeSimple({ a: { b: 1, c: 2 } }, { a: { c: 3, d: 4 } })\n expect(result).toEqual({ a: { b: 1, c: 3, d: 4 } })\n })\n\n it('should not mutate the input objects', () => {\n const obj1 = { a: 1 }\n const obj2 = { b: 2 }\n deepMergeSimple(obj1, obj2)\n expect(obj1).toEqual({ a: 1 })\n expect(obj2).toEqual({ b: 2 })\n })\n\n it('should not pollute global Object.prototype via __proto__', () => {\n const malicious = JSON.parse('{\"__proto__\": {\"isAdmin\": true}}')\n deepMergeSimple({}, malicious)\n expect(({} as any).isAdmin).toBeUndefined()\n })\n\n it('should not hijack the returned object prototype via __proto__', () => {\n const malicious = JSON.parse('{\"__proto__\": {\"isAdmin\": true}}')\n const result = deepMergeSimple({}, malicious) as any\n expect(result.isAdmin).toBeUndefined()\n })\n\n it('should not hijack prototype via nested __proto__ key', () => {\n const malicious = JSON.parse('{\"a\": {\"__proto__\": {\"isAdmin\": true}}}')\n const base = { a: {} }\n const result = deepMergeSimple(base, malicious) as any\n expect(result.a.isAdmin).toBeUndefined()\n expect(({} as any).isAdmin).toBeUndefined()\n })\n})\n"],"names":["describe","expect","it","deepMergeSimple","result","a","b","toEqual","c","d","obj1","obj2","malicious","JSON","parse","isAdmin","toBeUndefined","base"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,eAAe,QAAQ,uBAAsB;AAEtDH,SAAS,mBAAmB;IAC1BE,GAAG,iCAAiC;QAClC,MAAME,SAASD,gBAAgB;YAAEE,GAAG;QAAE,GAAG;YAAEC,GAAG;QAAE;QAChDL,OAAOG,QAAQG,OAAO,CAAC;YAAEF,GAAG;YAAGC,GAAG;QAAE;IACtC;IAEAJ,GAAG,sCAAsC;QACvC,MAAME,SAASD,gBAAgB;YAAEE,GAAG;QAAE,GAAG;YAAEA,GAAG;QAAE;QAChDJ,OAAOG,QAAQG,OAAO,CAAC;YAAEF,GAAG;QAAE;IAChC;IAEAH,GAAG,2CAA2C;QAC5C,MAAME,SAASD,gBAAgB;YAAEE,GAAG;gBAAEC,GAAG;gBAAGE,GAAG;YAAE;QAAE,GAAG;YAAEH,GAAG;gBAAEG,GAAG;gBAAGC,GAAG;YAAE;QAAE;QAC1ER,OAAOG,QAAQG,OAAO,CAAC;YAAEF,GAAG;gBAAEC,GAAG;gBAAGE,GAAG;gBAAGC,GAAG;YAAE;QAAE;IACnD;IAEAP,GAAG,uCAAuC;QACxC,MAAMQ,OAAO;YAAEL,GAAG;QAAE;QACpB,MAAMM,OAAO;YAAEL,GAAG;QAAE;QACpBH,gBAAgBO,MAAMC;QACtBV,OAAOS,MAAMH,OAAO,CAAC;YAAEF,GAAG;QAAE;QAC5BJ,OAAOU,MAAMJ,OAAO,CAAC;YAAED,GAAG;QAAE;IAC9B;IAEAJ,GAAG,4DAA4D;QAC7D,MAAMU,YAAYC,KAAKC,KAAK,CAAC;QAC7BX,gBAAgB,CAAC,GAAGS;QACpBX,OAAO,AAAC,CAAC,EAAUc,OAAO,EAAEC,aAAa;IAC3C;IAEAd,GAAG,iEAAiE;QAClE,MAAMU,YAAYC,KAAKC,KAAK,CAAC;QAC7B,MAAMV,SAASD,gBAAgB,CAAC,GAAGS;QACnCX,OAAOG,OAAOW,OAAO,EAAEC,aAAa;IACtC;IAEAd,GAAG,wDAAwD;QACzD,MAAMU,YAAYC,KAAKC,KAAK,CAAC;QAC7B,MAAMG,OAAO;YAAEZ,GAAG,CAAC;QAAE;QACrB,MAAMD,SAASD,gBAAgBc,MAAML;QACrCX,OAAOG,OAAOC,CAAC,CAACU,OAAO,EAAEC,aAAa;QACtCf,OAAO,AAAC,CAAC,EAAUc,OAAO,EAAEC,aAAa;IAC3C;AACF"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { extractHeaderLanguage } from './languages.js';
|
|
3
|
-
describe('extractHeaderLanguage', ()=>{
|
|
4
|
-
it('should return exact match when base language tag is supported', ()=>{
|
|
5
|
-
expect(extractHeaderLanguage('ja')).toBe('ja');
|
|
6
|
-
expect(extractHeaderLanguage('en')).toBe('en');
|
|
7
|
-
expect(extractHeaderLanguage('de')).toBe('de');
|
|
8
|
-
});
|
|
9
|
-
it('should fall back to base tag when regional tag has no exact match', ()=>{
|
|
10
|
-
expect(extractHeaderLanguage('ja-JP')).toBe('ja');
|
|
11
|
-
expect(extractHeaderLanguage('de-AT')).toBe('de');
|
|
12
|
-
expect(extractHeaderLanguage('fr-BE')).toBe('fr');
|
|
13
|
-
});
|
|
14
|
-
it('should match exact regional tag when it is supported', ()=>{
|
|
15
|
-
// zh-TW is in acceptedLanguages, so it should match directly
|
|
16
|
-
expect(extractHeaderLanguage('zh-TW')).toBe('zh-TW');
|
|
17
|
-
// bn-BD is in acceptedLanguages
|
|
18
|
-
expect(extractHeaderLanguage('bn-BD')).toBe('bn-BD');
|
|
19
|
-
});
|
|
20
|
-
it('should fall back to base tag for unsupported regional variant of a supported regional language', ()=>{
|
|
21
|
-
// zh-CN is not in acceptedLanguages, but zh is
|
|
22
|
-
expect(extractHeaderLanguage('zh-CN')).toBe('zh');
|
|
23
|
-
});
|
|
24
|
-
it('should return undefined for unsupported languages', ()=>{
|
|
25
|
-
expect(extractHeaderLanguage('xx')).toBeUndefined();
|
|
26
|
-
expect(extractHeaderLanguage('xx-XX')).toBeUndefined();
|
|
27
|
-
});
|
|
28
|
-
it('should respect quality ordering and return highest quality supported language', ()=>{
|
|
29
|
-
expect(extractHeaderLanguage('ja-JP;q=0.9, en;q=1.0')).toBe('en');
|
|
30
|
-
expect(extractHeaderLanguage('ja-JP, en;q=0.9')).toBe('ja');
|
|
31
|
-
});
|
|
32
|
-
it('should skip unsupported languages and find the next supported one', ()=>{
|
|
33
|
-
expect(extractHeaderLanguage('xx-XX, ja-JP')).toBe('ja');
|
|
34
|
-
expect(extractHeaderLanguage('xx, yy, de-DE')).toBe('de');
|
|
35
|
-
});
|
|
36
|
-
it('should handle empty string', ()=>{
|
|
37
|
-
// empty string produces one entry with empty language, which won't match
|
|
38
|
-
expect(extractHeaderLanguage('')).toBeUndefined();
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=languages.spec.js.map
|