@payloadcms/translations 4.0.0-internal.7b031c8 → 4.0.0-internal.8001944

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 (144) hide show
  1. package/dist/clientKeys.d.ts +1 -1
  2. package/dist/clientKeys.d.ts.map +1 -1
  3. package/dist/clientKeys.js +27 -0
  4. package/dist/clientKeys.js.map +1 -1
  5. package/dist/languages/ar.d.ts.map +1 -1
  6. package/dist/languages/ar.js +29 -2
  7. package/dist/languages/ar.js.map +1 -1
  8. package/dist/languages/az.d.ts.map +1 -1
  9. package/dist/languages/az.js +29 -2
  10. package/dist/languages/az.js.map +1 -1
  11. package/dist/languages/bg.d.ts.map +1 -1
  12. package/dist/languages/bg.js +29 -2
  13. package/dist/languages/bg.js.map +1 -1
  14. package/dist/languages/bnBd.d.ts.map +1 -1
  15. package/dist/languages/bnBd.js +29 -2
  16. package/dist/languages/bnBd.js.map +1 -1
  17. package/dist/languages/bnIn.d.ts.map +1 -1
  18. package/dist/languages/bnIn.js +29 -2
  19. package/dist/languages/bnIn.js.map +1 -1
  20. package/dist/languages/ca.d.ts.map +1 -1
  21. package/dist/languages/ca.js +29 -2
  22. package/dist/languages/ca.js.map +1 -1
  23. package/dist/languages/cs.d.ts.map +1 -1
  24. package/dist/languages/cs.js +29 -2
  25. package/dist/languages/cs.js.map +1 -1
  26. package/dist/languages/da.d.ts.map +1 -1
  27. package/dist/languages/da.js +29 -2
  28. package/dist/languages/da.js.map +1 -1
  29. package/dist/languages/de.d.ts.map +1 -1
  30. package/dist/languages/de.js +29 -2
  31. package/dist/languages/de.js.map +1 -1
  32. package/dist/languages/en.d.ts +27 -0
  33. package/dist/languages/en.d.ts.map +1 -1
  34. package/dist/languages/en.js +29 -2
  35. package/dist/languages/en.js.map +1 -1
  36. package/dist/languages/es.d.ts.map +1 -1
  37. package/dist/languages/es.js +29 -2
  38. package/dist/languages/es.js.map +1 -1
  39. package/dist/languages/et.d.ts.map +1 -1
  40. package/dist/languages/et.js +29 -2
  41. package/dist/languages/et.js.map +1 -1
  42. package/dist/languages/fa.d.ts.map +1 -1
  43. package/dist/languages/fa.js +29 -2
  44. package/dist/languages/fa.js.map +1 -1
  45. package/dist/languages/fr.d.ts.map +1 -1
  46. package/dist/languages/fr.js +29 -2
  47. package/dist/languages/fr.js.map +1 -1
  48. package/dist/languages/he.d.ts.map +1 -1
  49. package/dist/languages/he.js +29 -2
  50. package/dist/languages/he.js.map +1 -1
  51. package/dist/languages/hr.d.ts.map +1 -1
  52. package/dist/languages/hr.js +29 -2
  53. package/dist/languages/hr.js.map +1 -1
  54. package/dist/languages/hu.d.ts.map +1 -1
  55. package/dist/languages/hu.js +29 -2
  56. package/dist/languages/hu.js.map +1 -1
  57. package/dist/languages/hy.d.ts.map +1 -1
  58. package/dist/languages/hy.js +29 -2
  59. package/dist/languages/hy.js.map +1 -1
  60. package/dist/languages/id.d.ts.map +1 -1
  61. package/dist/languages/id.js +29 -2
  62. package/dist/languages/id.js.map +1 -1
  63. package/dist/languages/is.d.ts.map +1 -1
  64. package/dist/languages/is.js +29 -2
  65. package/dist/languages/is.js.map +1 -1
  66. package/dist/languages/it.d.ts.map +1 -1
  67. package/dist/languages/it.js +29 -2
  68. package/dist/languages/it.js.map +1 -1
  69. package/dist/languages/ja.d.ts.map +1 -1
  70. package/dist/languages/ja.js +46 -19
  71. package/dist/languages/ja.js.map +1 -1
  72. package/dist/languages/ko.d.ts.map +1 -1
  73. package/dist/languages/ko.js +29 -2
  74. package/dist/languages/ko.js.map +1 -1
  75. package/dist/languages/lt.d.ts.map +1 -1
  76. package/dist/languages/lt.js +29 -2
  77. package/dist/languages/lt.js.map +1 -1
  78. package/dist/languages/lv.d.ts.map +1 -1
  79. package/dist/languages/lv.js +29 -2
  80. package/dist/languages/lv.js.map +1 -1
  81. package/dist/languages/my.d.ts.map +1 -1
  82. package/dist/languages/my.js +29 -2
  83. package/dist/languages/my.js.map +1 -1
  84. package/dist/languages/nb.d.ts.map +1 -1
  85. package/dist/languages/nb.js +29 -2
  86. package/dist/languages/nb.js.map +1 -1
  87. package/dist/languages/nl.d.ts.map +1 -1
  88. package/dist/languages/nl.js +29 -2
  89. package/dist/languages/nl.js.map +1 -1
  90. package/dist/languages/pl.d.ts.map +1 -1
  91. package/dist/languages/pl.js +29 -2
  92. package/dist/languages/pl.js.map +1 -1
  93. package/dist/languages/pt.d.ts.map +1 -1
  94. package/dist/languages/pt.js +29 -2
  95. package/dist/languages/pt.js.map +1 -1
  96. package/dist/languages/ro.d.ts.map +1 -1
  97. package/dist/languages/ro.js +29 -2
  98. package/dist/languages/ro.js.map +1 -1
  99. package/dist/languages/rs.d.ts.map +1 -1
  100. package/dist/languages/rs.js +29 -2
  101. package/dist/languages/rs.js.map +1 -1
  102. package/dist/languages/rsLatin.d.ts.map +1 -1
  103. package/dist/languages/rsLatin.js +29 -2
  104. package/dist/languages/rsLatin.js.map +1 -1
  105. package/dist/languages/ru.d.ts.map +1 -1
  106. package/dist/languages/ru.js +29 -2
  107. package/dist/languages/ru.js.map +1 -1
  108. package/dist/languages/sk.d.ts.map +1 -1
  109. package/dist/languages/sk.js +29 -2
  110. package/dist/languages/sk.js.map +1 -1
  111. package/dist/languages/sl.d.ts.map +1 -1
  112. package/dist/languages/sl.js +29 -2
  113. package/dist/languages/sl.js.map +1 -1
  114. package/dist/languages/sv.d.ts.map +1 -1
  115. package/dist/languages/sv.js +29 -2
  116. package/dist/languages/sv.js.map +1 -1
  117. package/dist/languages/ta.d.ts.map +1 -1
  118. package/dist/languages/ta.js +29 -2
  119. package/dist/languages/ta.js.map +1 -1
  120. package/dist/languages/th.d.ts.map +1 -1
  121. package/dist/languages/th.js +29 -2
  122. package/dist/languages/th.js.map +1 -1
  123. package/dist/languages/tr.d.ts.map +1 -1
  124. package/dist/languages/tr.js +29 -2
  125. package/dist/languages/tr.js.map +1 -1
  126. package/dist/languages/uk.d.ts.map +1 -1
  127. package/dist/languages/uk.js +29 -2
  128. package/dist/languages/uk.js.map +1 -1
  129. package/dist/languages/vi.d.ts.map +1 -1
  130. package/dist/languages/vi.js +29 -2
  131. package/dist/languages/vi.js.map +1 -1
  132. package/dist/languages/zh.d.ts.map +1 -1
  133. package/dist/languages/zh.js +29 -2
  134. package/dist/languages/zh.js.map +1 -1
  135. package/dist/languages/zhTw.d.ts.map +1 -1
  136. package/dist/languages/zhTw.js +50 -23
  137. package/dist/languages/zhTw.js.map +1 -1
  138. package/dist/utilities/getTranslationsByContext.d.ts +27 -0
  139. package/dist/utilities/getTranslationsByContext.d.ts.map +1 -1
  140. package/package.json +4 -4
  141. package/dist/utilities/deepMergeSimple.spec.js +0 -81
  142. package/dist/utilities/deepMergeSimple.spec.js.map +0 -1
  143. package/dist/utilities/languages.spec.js +0 -42
  144. package/dist/utilities/languages.spec.js.map +0 -1
@@ -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,9 +101,11 @@ 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;
104
106
  widgetCollectionRequired: string;
105
107
  widgetConfigurationError: string;
108
+ widgetDropFilesToUpload: string;
106
109
  widgetInvalidCollection: string;
107
110
  widgetInvalidFilterField: string;
108
111
  widgetInvalidSortField: string;
@@ -117,6 +120,8 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
117
120
  widgetSortFieldLabel: string;
118
121
  widgetTitleFallback: string;
119
122
  widgetTitleLabel: string;
123
+ widgetUploadDropzoneDescription: string;
124
+ widgetUploadFiles: string;
120
125
  };
121
126
  error: {
122
127
  accountAlreadyActivated: string;
@@ -128,6 +133,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
128
133
  emailOrPasswordIncorrect: string;
129
134
  failedToResetLayout: string;
130
135
  failedToSaveLayout: string;
136
+ fileFetchFailed: string;
131
137
  followingFieldsInvalid_one: string;
132
138
  followingFieldsInvalid_other: string;
133
139
  incorrectCollection: string;
@@ -144,6 +150,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
144
150
  missingIDOfDocument: string;
145
151
  missingIDOfVersion: string;
146
152
  missingRequiredData: string;
153
+ noFileFoundInClipboard: string;
147
154
  noFilesUploaded: string;
148
155
  noMatchedField: string;
149
156
  notAllowedToAccessPage: string;
@@ -158,6 +165,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
158
165
  tokenNotProvided: string;
159
166
  unableToCopy: string;
160
167
  unableToDeleteCount: string;
168
+ unableToReadClipboard: string;
161
169
  unableToReindexCollection: string;
162
170
  unableToUpdateCount: string;
163
171
  unauthorized: string;
@@ -166,6 +174,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
166
174
  unPublishingDocument: string;
167
175
  unspecific: string;
168
176
  unverifiedEmail: string;
177
+ urlNotAllowed: string;
169
178
  userEmailAlreadyRegistered: string;
170
179
  userLocked: string;
171
180
  usernameAlreadyRegistered: string;
@@ -283,6 +292,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
283
292
  create: string;
284
293
  created: string;
285
294
  createdAt: string;
295
+ createdBy: string;
286
296
  createNew: string;
287
297
  createNewLabel: string;
288
298
  creating: string;
@@ -343,6 +353,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
343
353
  filterWhere: string;
344
354
  globals: string;
345
355
  goBack: string;
356
+ goToPage: string;
346
357
  groupByLabel: string;
347
358
  hideSidebar: string;
348
359
  import: string;
@@ -375,6 +386,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
375
386
  newLabel: string;
376
387
  newPassword: string;
377
388
  next: string;
389
+ nextPage: string;
378
390
  no: string;
379
391
  noDateSelected: string;
380
392
  noFiltersSet: string;
@@ -400,7 +412,9 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
400
412
  original: string;
401
413
  overwriteExistingData: string;
402
414
  pageNotFound: string;
415
+ pageNumberRange: string;
403
416
  password: string;
417
+ pasteBelow: string;
404
418
  pasteField: string;
405
419
  pasteRow: string;
406
420
  payloadSettings: string;
@@ -410,11 +424,14 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
410
424
  perPageLabel: string;
411
425
  presets: string;
412
426
  previous: string;
427
+ previousPage: string;
413
428
  reindex: string;
414
429
  reindexingAll: string;
415
430
  reloadDocument: string;
416
431
  remove: string;
417
432
  rename: string;
433
+ replaceRow: string;
434
+ requiredFields: string;
418
435
  reset: string;
419
436
  resetPreferences: string;
420
437
  resetPreferencesDescription: string;
@@ -430,8 +447,12 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
430
447
  saveChanges: string;
431
448
  saving: string;
432
449
  schedulePublishFor: string;
450
+ searchAutomatically: string;
433
451
  searchBy: string;
452
+ searchCleared: string;
434
453
  searchColumns: string;
454
+ searchGroups: string;
455
+ searchResults: string;
435
456
  select: string;
436
457
  selectAll: string;
437
458
  selectAllRows: string;
@@ -442,9 +463,11 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
442
463
  showAllLabel: string;
443
464
  shownInTable: string;
444
465
  showSidebar: string;
466
+ skipToContent: string;
445
467
  sorryNotFound: string;
446
468
  sort: string;
447
469
  sortByLabelDirection: string;
470
+ sortByOrderToReorder: string;
448
471
  stayOnThisPage: string;
449
472
  submissionSuccessful: string;
450
473
  submit: string;
@@ -474,6 +497,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
474
497
  upcomingEvents: string;
475
498
  updatedAgo: string;
476
499
  updatedAt: string;
500
+ updatedBy: string;
477
501
  updatedCountSuccessfully: string;
478
502
  updatedLabelSuccessfully: string;
479
503
  updatedSuccessfully: string;
@@ -499,6 +523,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
499
523
  noParent: string;
500
524
  noResults: string;
501
525
  searchLabel: string;
526
+ searchResults: string;
502
527
  };
503
528
  localization: {
504
529
  cannotCopySameLocale: string;
@@ -532,6 +557,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
532
557
  addFile: string;
533
558
  addFiles: string;
534
559
  bulkUpload: string;
560
+ copyLinkToFile: string;
535
561
  crop: string;
536
562
  cropToolDescription: string;
537
563
  download: string;
@@ -550,6 +576,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
550
576
  linkToFile: string;
551
577
  moreInfo: string;
552
578
  noFile: string;
579
+ pasteFromClipboard: string;
553
580
  pasteURL: string;
554
581
  previewSizes: string;
555
582
  renameFile: string;
@@ -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,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM7F,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;AAwD3C,eAAO,MAAM,wBAAwB,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM7F,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/translations",
3
- "version": "4.0.0-internal.7b031c8",
3
+ "version": "4.0.0-internal.8001944",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,11 +49,11 @@
49
49
  "date-fns": "4.1.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
55
  "prettier": "3.5.3",
56
- "typescript": "6.0.3",
56
+ "typescript": "npm:@typescript/typescript6@6.0.2",
57
57
  "@payloadcms/eslint-config": "3.28.0"
58
58
  },
59
59
  "scripts": {
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/languages.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { extractHeaderLanguage } from './languages.js'\n\ndescribe('extractHeaderLanguage', () => {\n it('should return exact match when base language tag is supported', () => {\n expect(extractHeaderLanguage('ja')).toBe('ja')\n expect(extractHeaderLanguage('en')).toBe('en')\n expect(extractHeaderLanguage('de')).toBe('de')\n })\n\n it('should fall back to base tag when regional tag has no exact match', () => {\n expect(extractHeaderLanguage('ja-JP')).toBe('ja')\n expect(extractHeaderLanguage('de-AT')).toBe('de')\n expect(extractHeaderLanguage('fr-BE')).toBe('fr')\n })\n\n it('should match exact regional tag when it is supported', () => {\n // zh-TW is in acceptedLanguages, so it should match directly\n expect(extractHeaderLanguage('zh-TW')).toBe('zh-TW')\n // bn-BD is in acceptedLanguages\n expect(extractHeaderLanguage('bn-BD')).toBe('bn-BD')\n })\n\n it('should fall back to base tag for unsupported regional variant of a supported regional language', () => {\n // zh-CN is not in acceptedLanguages, but zh is\n expect(extractHeaderLanguage('zh-CN')).toBe('zh')\n })\n\n it('should return undefined for unsupported languages', () => {\n expect(extractHeaderLanguage('xx')).toBeUndefined()\n expect(extractHeaderLanguage('xx-XX')).toBeUndefined()\n })\n\n it('should respect quality ordering and return highest quality supported language', () => {\n expect(extractHeaderLanguage('ja-JP;q=0.9, en;q=1.0')).toBe('en')\n expect(extractHeaderLanguage('ja-JP, en;q=0.9')).toBe('ja')\n })\n\n it('should skip unsupported languages and find the next supported one', () => {\n expect(extractHeaderLanguage('xx-XX, ja-JP')).toBe('ja')\n expect(extractHeaderLanguage('xx, yy, de-DE')).toBe('de')\n })\n\n it('should handle empty string', () => {\n // empty string produces one entry with empty language, which won't match\n expect(extractHeaderLanguage('')).toBeUndefined()\n })\n})\n"],"names":["describe","expect","it","extractHeaderLanguage","toBe","toBeUndefined"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,qBAAqB,QAAQ,iBAAgB;AAEtDH,SAAS,yBAAyB;IAChCE,GAAG,iEAAiE;QAClED,OAAOE,sBAAsB,OAAOC,IAAI,CAAC;QACzCH,OAAOE,sBAAsB,OAAOC,IAAI,CAAC;QACzCH,OAAOE,sBAAsB,OAAOC,IAAI,CAAC;IAC3C;IAEAF,GAAG,qEAAqE;QACtED,OAAOE,sBAAsB,UAAUC,IAAI,CAAC;QAC5CH,OAAOE,sBAAsB,UAAUC,IAAI,CAAC;QAC5CH,OAAOE,sBAAsB,UAAUC,IAAI,CAAC;IAC9C;IAEAF,GAAG,wDAAwD;QACzD,6DAA6D;QAC7DD,OAAOE,sBAAsB,UAAUC,IAAI,CAAC;QAC5C,gCAAgC;QAChCH,OAAOE,sBAAsB,UAAUC,IAAI,CAAC;IAC9C;IAEAF,GAAG,kGAAkG;QACnG,+CAA+C;QAC/CD,OAAOE,sBAAsB,UAAUC,IAAI,CAAC;IAC9C;IAEAF,GAAG,qDAAqD;QACtDD,OAAOE,sBAAsB,OAAOE,aAAa;QACjDJ,OAAOE,sBAAsB,UAAUE,aAAa;IACtD;IAEAH,GAAG,iFAAiF;QAClFD,OAAOE,sBAAsB,0BAA0BC,IAAI,CAAC;QAC5DH,OAAOE,sBAAsB,oBAAoBC,IAAI,CAAC;IACxD;IAEAF,GAAG,qEAAqE;QACtED,OAAOE,sBAAsB,iBAAiBC,IAAI,CAAC;QACnDH,OAAOE,sBAAsB,kBAAkBC,IAAI,CAAC;IACtD;IAEAF,GAAG,8BAA8B;QAC/B,yEAAyE;QACzED,OAAOE,sBAAsB,KAAKE,aAAa;IACjD;AACF"}