@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.
Files changed (198) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/clientKeys.d.ts +1 -1
  3. package/dist/clientKeys.d.ts.map +1 -1
  4. package/dist/clientKeys.js +95 -1
  5. package/dist/clientKeys.js.map +1 -1
  6. package/dist/dateFNS/ar.js +1 -0
  7. package/dist/dateFNS/az.js +1 -0
  8. package/dist/dateFNS/bg.js +1 -0
  9. package/dist/dateFNS/bn.js +1 -0
  10. package/dist/dateFNS/ca.js +1 -0
  11. package/dist/dateFNS/chunk-YT6ULX4E.js +1 -0
  12. package/dist/dateFNS/cs.js +1 -0
  13. package/dist/dateFNS/da.js +1 -0
  14. package/dist/dateFNS/de.js +1 -0
  15. package/dist/dateFNS/es.js +1 -0
  16. package/dist/dateFNS/et.js +1 -0
  17. package/dist/dateFNS/fa-IR.js +1 -0
  18. package/dist/dateFNS/fr.js +1 -0
  19. package/dist/dateFNS/he.js +1 -0
  20. package/dist/dateFNS/hr.js +1 -0
  21. package/dist/dateFNS/hu.js +1 -0
  22. package/dist/dateFNS/id.js +1 -0
  23. package/dist/dateFNS/is.js +1 -0
  24. package/dist/dateFNS/it.js +1 -0
  25. package/dist/dateFNS/ja.js +1 -0
  26. package/dist/dateFNS/ko.js +1 -0
  27. package/dist/dateFNS/lt.js +1 -0
  28. package/dist/dateFNS/lv.js +1 -0
  29. package/dist/dateFNS/nb.js +1 -0
  30. package/dist/dateFNS/nl.js +1 -0
  31. package/dist/dateFNS/pl.js +1 -0
  32. package/dist/dateFNS/pt.js +1 -0
  33. package/dist/dateFNS/ro.js +1 -0
  34. package/dist/dateFNS/ru.js +1 -0
  35. package/dist/dateFNS/sk.js +1 -0
  36. package/dist/dateFNS/sl.js +1 -0
  37. package/dist/dateFNS/sr-Latn.js +1 -0
  38. package/dist/dateFNS/sr.js +1 -0
  39. package/dist/dateFNS/sv.js +1 -0
  40. package/dist/dateFNS/ta.js +1 -0
  41. package/dist/dateFNS/th.js +1 -0
  42. package/dist/dateFNS/tr.js +1 -0
  43. package/dist/dateFNS/uk.js +1 -0
  44. package/dist/dateFNS/vi.js +1 -0
  45. package/dist/dateFNS/zh-CN.js +1 -0
  46. package/dist/dateFNS/zh-TW.js +1 -0
  47. package/dist/importDateFNSLocale.d.ts.map +1 -1
  48. package/dist/importDateFNSLocale.js +41 -41
  49. package/dist/languages/ar.d.ts.map +1 -1
  50. package/dist/languages/ar.js +99 -3
  51. package/dist/languages/ar.js.map +1 -1
  52. package/dist/languages/az.d.ts.map +1 -1
  53. package/dist/languages/az.js +99 -3
  54. package/dist/languages/az.js.map +1 -1
  55. package/dist/languages/bg.d.ts.map +1 -1
  56. package/dist/languages/bg.js +99 -3
  57. package/dist/languages/bg.js.map +1 -1
  58. package/dist/languages/bnBd.d.ts.map +1 -1
  59. package/dist/languages/bnBd.js +99 -3
  60. package/dist/languages/bnBd.js.map +1 -1
  61. package/dist/languages/bnIn.d.ts.map +1 -1
  62. package/dist/languages/bnIn.js +99 -3
  63. package/dist/languages/bnIn.js.map +1 -1
  64. package/dist/languages/ca.d.ts.map +1 -1
  65. package/dist/languages/ca.js +99 -3
  66. package/dist/languages/ca.js.map +1 -1
  67. package/dist/languages/cs.d.ts.map +1 -1
  68. package/dist/languages/cs.js +99 -3
  69. package/dist/languages/cs.js.map +1 -1
  70. package/dist/languages/da.d.ts.map +1 -1
  71. package/dist/languages/da.js +99 -3
  72. package/dist/languages/da.js.map +1 -1
  73. package/dist/languages/de.d.ts.map +1 -1
  74. package/dist/languages/de.js +99 -3
  75. package/dist/languages/de.js.map +1 -1
  76. package/dist/languages/en.d.ts +97 -1
  77. package/dist/languages/en.d.ts.map +1 -1
  78. package/dist/languages/en.js +99 -3
  79. package/dist/languages/en.js.map +1 -1
  80. package/dist/languages/es.d.ts.map +1 -1
  81. package/dist/languages/es.js +99 -3
  82. package/dist/languages/es.js.map +1 -1
  83. package/dist/languages/et.d.ts.map +1 -1
  84. package/dist/languages/et.js +99 -3
  85. package/dist/languages/et.js.map +1 -1
  86. package/dist/languages/fa.d.ts.map +1 -1
  87. package/dist/languages/fa.js +99 -3
  88. package/dist/languages/fa.js.map +1 -1
  89. package/dist/languages/fr.d.ts.map +1 -1
  90. package/dist/languages/fr.js +99 -3
  91. package/dist/languages/fr.js.map +1 -1
  92. package/dist/languages/he.d.ts.map +1 -1
  93. package/dist/languages/he.js +99 -3
  94. package/dist/languages/he.js.map +1 -1
  95. package/dist/languages/hr.d.ts.map +1 -1
  96. package/dist/languages/hr.js +99 -3
  97. package/dist/languages/hr.js.map +1 -1
  98. package/dist/languages/hu.d.ts.map +1 -1
  99. package/dist/languages/hu.js +99 -3
  100. package/dist/languages/hu.js.map +1 -1
  101. package/dist/languages/hy.d.ts.map +1 -1
  102. package/dist/languages/hy.js +99 -3
  103. package/dist/languages/hy.js.map +1 -1
  104. package/dist/languages/id.d.ts.map +1 -1
  105. package/dist/languages/id.js +99 -3
  106. package/dist/languages/id.js.map +1 -1
  107. package/dist/languages/is.d.ts.map +1 -1
  108. package/dist/languages/is.js +99 -3
  109. package/dist/languages/is.js.map +1 -1
  110. package/dist/languages/it.d.ts.map +1 -1
  111. package/dist/languages/it.js +99 -3
  112. package/dist/languages/it.js.map +1 -1
  113. package/dist/languages/ja.d.ts.map +1 -1
  114. package/dist/languages/ja.js +116 -20
  115. package/dist/languages/ja.js.map +1 -1
  116. package/dist/languages/ko.d.ts.map +1 -1
  117. package/dist/languages/ko.js +99 -3
  118. package/dist/languages/ko.js.map +1 -1
  119. package/dist/languages/lt.d.ts.map +1 -1
  120. package/dist/languages/lt.js +99 -3
  121. package/dist/languages/lt.js.map +1 -1
  122. package/dist/languages/lv.d.ts.map +1 -1
  123. package/dist/languages/lv.js +99 -3
  124. package/dist/languages/lv.js.map +1 -1
  125. package/dist/languages/my.d.ts.map +1 -1
  126. package/dist/languages/my.js +229 -133
  127. package/dist/languages/my.js.map +1 -1
  128. package/dist/languages/nb.d.ts.map +1 -1
  129. package/dist/languages/nb.js +99 -3
  130. package/dist/languages/nb.js.map +1 -1
  131. package/dist/languages/nl.d.ts.map +1 -1
  132. package/dist/languages/nl.js +99 -3
  133. package/dist/languages/nl.js.map +1 -1
  134. package/dist/languages/pl.d.ts.map +1 -1
  135. package/dist/languages/pl.js +99 -3
  136. package/dist/languages/pl.js.map +1 -1
  137. package/dist/languages/pt.d.ts.map +1 -1
  138. package/dist/languages/pt.js +99 -3
  139. package/dist/languages/pt.js.map +1 -1
  140. package/dist/languages/ro.d.ts.map +1 -1
  141. package/dist/languages/ro.js +99 -3
  142. package/dist/languages/ro.js.map +1 -1
  143. package/dist/languages/rs.d.ts.map +1 -1
  144. package/dist/languages/rs.js +99 -3
  145. package/dist/languages/rs.js.map +1 -1
  146. package/dist/languages/rsLatin.d.ts.map +1 -1
  147. package/dist/languages/rsLatin.js +99 -3
  148. package/dist/languages/rsLatin.js.map +1 -1
  149. package/dist/languages/ru.d.ts.map +1 -1
  150. package/dist/languages/ru.js +99 -3
  151. package/dist/languages/ru.js.map +1 -1
  152. package/dist/languages/sk.d.ts.map +1 -1
  153. package/dist/languages/sk.js +99 -3
  154. package/dist/languages/sk.js.map +1 -1
  155. package/dist/languages/sl.d.ts.map +1 -1
  156. package/dist/languages/sl.js +99 -3
  157. package/dist/languages/sl.js.map +1 -1
  158. package/dist/languages/sv.d.ts.map +1 -1
  159. package/dist/languages/sv.js +99 -3
  160. package/dist/languages/sv.js.map +1 -1
  161. package/dist/languages/ta.d.ts.map +1 -1
  162. package/dist/languages/ta.js +99 -3
  163. package/dist/languages/ta.js.map +1 -1
  164. package/dist/languages/th.d.ts.map +1 -1
  165. package/dist/languages/th.js +99 -3
  166. package/dist/languages/th.js.map +1 -1
  167. package/dist/languages/tr.d.ts.map +1 -1
  168. package/dist/languages/tr.js +99 -3
  169. package/dist/languages/tr.js.map +1 -1
  170. package/dist/languages/uk.d.ts.map +1 -1
  171. package/dist/languages/uk.js +99 -3
  172. package/dist/languages/uk.js.map +1 -1
  173. package/dist/languages/vi.d.ts.map +1 -1
  174. package/dist/languages/vi.js +99 -3
  175. package/dist/languages/vi.js.map +1 -1
  176. package/dist/languages/zh.d.ts.map +1 -1
  177. package/dist/languages/zh.js +99 -3
  178. package/dist/languages/zh.js.map +1 -1
  179. package/dist/languages/zhTw.d.ts.map +1 -1
  180. package/dist/languages/zhTw.js +117 -21
  181. package/dist/languages/zhTw.js.map +1 -1
  182. package/dist/types.d.ts +5 -2
  183. package/dist/types.d.ts.map +1 -1
  184. package/dist/types.js.map +1 -1
  185. package/dist/utilities/getTranslation.d.ts.map +1 -1
  186. package/dist/utilities/getTranslationsByContext.d.ts +99 -3
  187. package/dist/utilities/getTranslationsByContext.d.ts.map +1 -1
  188. package/dist/utilities/getTranslationsByContext.js +41 -33
  189. package/dist/utilities/getTranslationsByContext.js.map +1 -1
  190. package/dist/utilities/init.d.ts +3 -3
  191. package/dist/utilities/init.d.ts.map +1 -1
  192. package/dist/utilities/languages.d.ts +2 -2
  193. package/dist/utilities/languages.d.ts.map +1 -1
  194. package/package.json +8 -6
  195. package/dist/utilities/deepMergeSimple.spec.js +0 -81
  196. package/dist/utilities/deepMergeSimple.spec.js.map +0 -1
  197. package/dist/utilities/languages.spec.js +0 -42
  198. 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: "api" | "client") => {
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
- moveItemsToRootConfirmation: string;
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
- } | Record<string, unknown>;
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;AAwD3C,eAAO,MAAM,wBAAwB,GAAI,kBAAkB,QAAQ,EAAE,SAAS,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAM7F,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
- function filterKeys(obj, parentGroupKey = '', keys) {
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 [namespaceKey, value] of Object.entries(obj)){
5
- // Skip $schema key
6
- if (namespaceKey === '$schema') {
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
- if (typeof value === 'object') {
11
- const filteredObject = filterKeys(value, namespaceKey, keys);
12
- if (Object.keys(filteredObject).length > 0) {
13
- result[namespaceKey] = filteredObject;
14
- }
15
- } else {
16
- for (const key of keys){
17
- const [groupKey, selector] = key.split(':');
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(filterKeys(selectedLanguage.translations, '', clientTranslationKeys));
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\nfunction filterKeys(obj: Record<string, unknown>, parentGroupKey = '', keys: string[]) {\n const result: Record<string, unknown> = {}\n\n for (const [namespaceKey, value] of Object.entries(obj)) {\n // Skip $schema key\n if (namespaceKey === '$schema') {\n result[namespaceKey] = value\n continue\n }\n\n if (typeof value === 'object') {\n const filteredObject = filterKeys(value as Record<string, unknown>, namespaceKey, keys)\n if (Object.keys(filteredObject).length > 0) {\n result[namespaceKey] = filteredObject\n }\n } else {\n for (const key of keys) {\n const [groupKey, selector] = key.split(':')\n\n if (parentGroupKey === groupKey) {\n if (namespaceKey === selector) {\n result[selector] = value\n } else {\n const pluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other']\n pluralKeys.forEach((pluralKey) => {\n if (namespaceKey === `${selector}_${pluralKey}`) {\n result[`${selector}_${pluralKey}`] = value\n }\n })\n }\n }\n }\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(filterKeys(selectedLanguage.translations, '', clientTranslationKeys))\n } else {\n return selectedLanguage.translations\n }\n}\n"],"names":["clientTranslationKeys","filterKeys","obj","parentGroupKey","keys","result","namespaceKey","value","Object","entries","filteredObject","length","key","groupKey","selector","split","pluralKeys","forEach","pluralKey","sortObject","sortedObject","sort","getTranslationsByContext","selectedLanguage","context","translations"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,mBAAkB;AAExD,SAASC,WAAWC,GAA4B,EAAEC,iBAAiB,EAAE,EAAEC,IAAc;IACnF,MAAMC,SAAkC,CAAC;IAEzC,KAAK,MAAM,CAACC,cAAcC,MAAM,IAAIC,OAAOC,OAAO,CAACP,KAAM;QACvD,mBAAmB;QACnB,IAAII,iBAAiB,WAAW;YAC9BD,MAAM,CAACC,aAAa,GAAGC;YACvB;QACF;QAEA,IAAI,OAAOA,UAAU,UAAU;YAC7B,MAAMG,iBAAiBT,WAAWM,OAAkCD,cAAcF;YAClF,IAAII,OAAOJ,IAAI,CAACM,gBAAgBC,MAAM,GAAG,GAAG;gBAC1CN,MAAM,CAACC,aAAa,GAAGI;YACzB;QACF,OAAO;YACL,KAAK,MAAME,OAAOR,KAAM;gBACtB,MAAM,CAACS,UAAUC,SAAS,GAAGF,IAAIG,KAAK,CAAC;gBAEvC,IAAIZ,mBAAmBU,UAAU;oBAC/B,IAAIP,iBAAiBQ,UAAU;wBAC7BT,MAAM,CAACS,SAAS,GAAGP;oBACrB,OAAO;wBACL,MAAMS,aAAa;4BAAC;4BAAQ;4BAAO;4BAAO;4BAAO;4BAAQ;yBAAQ;wBACjEA,WAAWC,OAAO,CAAC,CAACC;4BAClB,IAAIZ,iBAAiB,GAAGQ,SAAS,CAAC,EAAEI,WAAW,EAAE;gCAC/Cb,MAAM,CAAC,GAAGS,SAAS,CAAC,EAAEI,WAAW,CAAC,GAAGX;4BACvC;wBACF;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOF;AACT;AAEA,SAASc,WAAWjB,GAA4B;IAC9C,MAAMkB,eAAwC,CAAC;IAC/CZ,OAAOJ,IAAI,CAACF,KACTmB,IAAI,GACJJ,OAAO,CAAC,CAACL;QACR,IAAI,OAAOV,GAAG,CAACU,IAAI,KAAK,UAAU;YAChCQ,YAAY,CAACR,IAAI,GAAGO,WAAWjB,GAAG,CAACU,IAAI;QACzC,OAAO;YACLQ,YAAY,CAACR,IAAI,GAAGV,GAAG,CAACU,IAAI;QAC9B;IACF;IACF,OAAOQ;AACT;AAEA,OAAO,MAAME,2BAA2B,CAACC,kBAA4BC;IACnE,IAAIA,YAAY,UAAU;QACxB,OAAOL,WAAWlB,WAAWsB,iBAAiBE,YAAY,EAAE,IAAIzB;IAClE,OAAO;QACL,OAAOuB,iBAAiBE,YAAY;IACtC;AACF,EAAC"}
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"}
@@ -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>["translations"];
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: "api";
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: "client";
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,EACzC,+BAIC;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
+ {"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 ["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"];
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,6BAA8B,CAAA;AAEvD,eAAO,MAAM,iBAAiB,oTAmIpB,CAAA;AAkBV,wBAAgB,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAuBjG"}
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.293e026",
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.1.0"
49
+ "date-fns": "4.4.0"
50
50
  },
51
51
  "devDependencies": {
52
- "@types/react": "19.2.14",
53
- "@types/react-dom": "19.2.3",
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.3",
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