@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.
- package/dist/clientKeys.d.ts +1 -1
- package/dist/clientKeys.d.ts.map +1 -1
- package/dist/clientKeys.js +27 -0
- package/dist/clientKeys.js.map +1 -1
- package/dist/languages/ar.d.ts.map +1 -1
- package/dist/languages/ar.js +29 -2
- package/dist/languages/ar.js.map +1 -1
- package/dist/languages/az.d.ts.map +1 -1
- package/dist/languages/az.js +29 -2
- package/dist/languages/az.js.map +1 -1
- package/dist/languages/bg.d.ts.map +1 -1
- package/dist/languages/bg.js +29 -2
- package/dist/languages/bg.js.map +1 -1
- package/dist/languages/bnBd.d.ts.map +1 -1
- package/dist/languages/bnBd.js +29 -2
- package/dist/languages/bnBd.js.map +1 -1
- package/dist/languages/bnIn.d.ts.map +1 -1
- package/dist/languages/bnIn.js +29 -2
- package/dist/languages/bnIn.js.map +1 -1
- package/dist/languages/ca.d.ts.map +1 -1
- package/dist/languages/ca.js +29 -2
- package/dist/languages/ca.js.map +1 -1
- package/dist/languages/cs.d.ts.map +1 -1
- package/dist/languages/cs.js +29 -2
- package/dist/languages/cs.js.map +1 -1
- package/dist/languages/da.d.ts.map +1 -1
- package/dist/languages/da.js +29 -2
- package/dist/languages/da.js.map +1 -1
- package/dist/languages/de.d.ts.map +1 -1
- package/dist/languages/de.js +29 -2
- package/dist/languages/de.js.map +1 -1
- package/dist/languages/en.d.ts +27 -0
- package/dist/languages/en.d.ts.map +1 -1
- package/dist/languages/en.js +29 -2
- package/dist/languages/en.js.map +1 -1
- package/dist/languages/es.d.ts.map +1 -1
- package/dist/languages/es.js +29 -2
- package/dist/languages/es.js.map +1 -1
- package/dist/languages/et.d.ts.map +1 -1
- package/dist/languages/et.js +29 -2
- package/dist/languages/et.js.map +1 -1
- package/dist/languages/fa.d.ts.map +1 -1
- package/dist/languages/fa.js +29 -2
- package/dist/languages/fa.js.map +1 -1
- package/dist/languages/fr.d.ts.map +1 -1
- package/dist/languages/fr.js +29 -2
- package/dist/languages/fr.js.map +1 -1
- package/dist/languages/he.d.ts.map +1 -1
- package/dist/languages/he.js +29 -2
- package/dist/languages/he.js.map +1 -1
- package/dist/languages/hr.d.ts.map +1 -1
- package/dist/languages/hr.js +29 -2
- package/dist/languages/hr.js.map +1 -1
- package/dist/languages/hu.d.ts.map +1 -1
- package/dist/languages/hu.js +29 -2
- package/dist/languages/hu.js.map +1 -1
- package/dist/languages/hy.d.ts.map +1 -1
- package/dist/languages/hy.js +29 -2
- package/dist/languages/hy.js.map +1 -1
- package/dist/languages/id.d.ts.map +1 -1
- package/dist/languages/id.js +29 -2
- package/dist/languages/id.js.map +1 -1
- package/dist/languages/is.d.ts.map +1 -1
- package/dist/languages/is.js +29 -2
- package/dist/languages/is.js.map +1 -1
- package/dist/languages/it.d.ts.map +1 -1
- package/dist/languages/it.js +29 -2
- package/dist/languages/it.js.map +1 -1
- package/dist/languages/ja.d.ts.map +1 -1
- package/dist/languages/ja.js +46 -19
- package/dist/languages/ja.js.map +1 -1
- package/dist/languages/ko.d.ts.map +1 -1
- package/dist/languages/ko.js +29 -2
- package/dist/languages/ko.js.map +1 -1
- package/dist/languages/lt.d.ts.map +1 -1
- package/dist/languages/lt.js +29 -2
- package/dist/languages/lt.js.map +1 -1
- package/dist/languages/lv.d.ts.map +1 -1
- package/dist/languages/lv.js +29 -2
- package/dist/languages/lv.js.map +1 -1
- package/dist/languages/my.d.ts.map +1 -1
- package/dist/languages/my.js +29 -2
- package/dist/languages/my.js.map +1 -1
- package/dist/languages/nb.d.ts.map +1 -1
- package/dist/languages/nb.js +29 -2
- package/dist/languages/nb.js.map +1 -1
- package/dist/languages/nl.d.ts.map +1 -1
- package/dist/languages/nl.js +29 -2
- package/dist/languages/nl.js.map +1 -1
- package/dist/languages/pl.d.ts.map +1 -1
- package/dist/languages/pl.js +29 -2
- package/dist/languages/pl.js.map +1 -1
- package/dist/languages/pt.d.ts.map +1 -1
- package/dist/languages/pt.js +29 -2
- package/dist/languages/pt.js.map +1 -1
- package/dist/languages/ro.d.ts.map +1 -1
- package/dist/languages/ro.js +29 -2
- package/dist/languages/ro.js.map +1 -1
- package/dist/languages/rs.d.ts.map +1 -1
- package/dist/languages/rs.js +29 -2
- package/dist/languages/rs.js.map +1 -1
- package/dist/languages/rsLatin.d.ts.map +1 -1
- package/dist/languages/rsLatin.js +29 -2
- package/dist/languages/rsLatin.js.map +1 -1
- package/dist/languages/ru.d.ts.map +1 -1
- package/dist/languages/ru.js +29 -2
- package/dist/languages/ru.js.map +1 -1
- package/dist/languages/sk.d.ts.map +1 -1
- package/dist/languages/sk.js +29 -2
- package/dist/languages/sk.js.map +1 -1
- package/dist/languages/sl.d.ts.map +1 -1
- package/dist/languages/sl.js +29 -2
- package/dist/languages/sl.js.map +1 -1
- package/dist/languages/sv.d.ts.map +1 -1
- package/dist/languages/sv.js +29 -2
- package/dist/languages/sv.js.map +1 -1
- package/dist/languages/ta.d.ts.map +1 -1
- package/dist/languages/ta.js +29 -2
- package/dist/languages/ta.js.map +1 -1
- package/dist/languages/th.d.ts.map +1 -1
- package/dist/languages/th.js +29 -2
- package/dist/languages/th.js.map +1 -1
- package/dist/languages/tr.d.ts.map +1 -1
- package/dist/languages/tr.js +29 -2
- package/dist/languages/tr.js.map +1 -1
- package/dist/languages/uk.d.ts.map +1 -1
- package/dist/languages/uk.js +29 -2
- package/dist/languages/uk.js.map +1 -1
- package/dist/languages/vi.d.ts.map +1 -1
- package/dist/languages/vi.js +29 -2
- package/dist/languages/vi.js.map +1 -1
- package/dist/languages/zh.d.ts.map +1 -1
- package/dist/languages/zh.js +29 -2
- package/dist/languages/zh.js.map +1 -1
- package/dist/languages/zhTw.d.ts.map +1 -1
- package/dist/languages/zhTw.js +50 -23
- package/dist/languages/zhTw.js.map +1 -1
- package/dist/utilities/getTranslationsByContext.d.ts +27 -0
- package/dist/utilities/getTranslationsByContext.d.ts.map +1 -1
- package/package.json +4 -4
- 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
|
@@ -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
|
|
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.
|
|
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.
|
|
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
55
|
"prettier": "3.5.3",
|
|
56
|
-
"typescript": "6.0.
|
|
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"}
|