@payloadcms/db-mongodb 4.0.0-internal.b6f3b9a → 4.0.0-internal.b8a92d2

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 (47) hide show
  1. package/dist/connect.d.ts.map +1 -1
  2. package/dist/connect.js +8 -2
  3. package/dist/connect.js.map +1 -1
  4. package/dist/create.d.ts.map +1 -1
  5. package/dist/create.js +2 -1
  6. package/dist/create.js.map +1 -1
  7. package/dist/createGlobalVersion.js +1 -1
  8. package/dist/createGlobalVersion.js.map +1 -1
  9. package/dist/createMigration.d.ts.map +1 -1
  10. package/dist/createMigration.js +9 -2
  11. package/dist/createMigration.js.map +1 -1
  12. package/dist/createVersion.js +1 -1
  13. package/dist/createVersion.js.map +1 -1
  14. package/dist/find.js +1 -1
  15. package/dist/find.js.map +1 -1
  16. package/dist/findDistinct.d.ts.map +1 -1
  17. package/dist/findDistinct.js +52 -8
  18. package/dist/findDistinct.js.map +1 -1
  19. package/dist/findOne.js +1 -1
  20. package/dist/findOne.js.map +1 -1
  21. package/dist/migrateFresh.d.ts +4 -2
  22. package/dist/migrateFresh.d.ts.map +1 -1
  23. package/dist/migrateFresh.js +20 -6
  24. package/dist/migrateFresh.js.map +1 -1
  25. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.d.ts.map +1 -1
  26. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.js +4 -4
  27. package/dist/predefinedMigrations/migrateRelationshipsV2_V3.js.map +1 -1
  28. package/dist/queries/buildSearchParams.d.ts.map +1 -1
  29. package/dist/queries/buildSearchParams.js +189 -6
  30. package/dist/queries/buildSearchParams.js.map +1 -1
  31. package/dist/queries/parseParams.js.map +1 -1
  32. package/dist/queryDrafts.js +1 -1
  33. package/dist/queryDrafts.js.map +1 -1
  34. package/dist/utilities/buildJoinAggregation.d.ts +1 -1
  35. package/dist/utilities/buildJoinAggregation.d.ts.map +1 -1
  36. package/dist/utilities/buildJoinAggregation.js +2 -2
  37. package/dist/utilities/buildJoinAggregation.js.map +1 -1
  38. package/dist/utilities/transform.d.ts.map +1 -1
  39. package/dist/utilities/transform.js +15 -0
  40. package/dist/utilities/transform.js.map +1 -1
  41. package/package.json +5 -5
  42. package/dist/queries/buildSortParam.spec.js +0 -123
  43. package/dist/queries/buildSortParam.spec.js.map +0 -1
  44. package/dist/queries/getLocalizedSortProperty.spec.js +0 -215
  45. package/dist/queries/getLocalizedSortProperty.spec.js.map +0 -1
  46. package/dist/utilities/transform.spec.js +0 -479
  47. package/dist/utilities/transform.spec.js.map +0 -1
@@ -1,215 +0,0 @@
1
- import { describe, beforeAll, it, expect } from 'vitest';
2
- import { flattenAllFields, sanitizeConfig } from 'payload';
3
- import { getLocalizedSortProperty } from './getLocalizedSortProperty.js';
4
- let config;
5
- describe('get localized sort property', ()=>{
6
- beforeAll(async ()=>{
7
- config = await sanitizeConfig({
8
- localization: {
9
- defaultLocale: 'en',
10
- fallback: true,
11
- locales: [
12
- 'en',
13
- 'es'
14
- ]
15
- }
16
- });
17
- });
18
- it('passes through a non-localized sort property', ()=>{
19
- const result = getLocalizedSortProperty({
20
- config,
21
- parentIsLocalized: false,
22
- fields: [
23
- {
24
- name: 'title',
25
- type: 'text'
26
- }
27
- ],
28
- locale: 'en',
29
- segments: [
30
- 'title'
31
- ]
32
- });
33
- expect(result).toStrictEqual('title');
34
- });
35
- it('properly localizes an un-localized sort property', ()=>{
36
- const result = getLocalizedSortProperty({
37
- config,
38
- parentIsLocalized: false,
39
- fields: [
40
- {
41
- name: 'title',
42
- type: 'text',
43
- localized: true
44
- }
45
- ],
46
- locale: 'en',
47
- segments: [
48
- 'title'
49
- ]
50
- });
51
- expect(result).toStrictEqual('title.en');
52
- });
53
- it('keeps specifically asked-for localized sort properties', ()=>{
54
- const result = getLocalizedSortProperty({
55
- config,
56
- parentIsLocalized: false,
57
- fields: [
58
- {
59
- name: 'title',
60
- type: 'text',
61
- localized: true
62
- }
63
- ],
64
- locale: 'en',
65
- segments: [
66
- 'title',
67
- 'es'
68
- ]
69
- });
70
- expect(result).toStrictEqual('title.es');
71
- });
72
- it('properly localizes nested sort properties', ()=>{
73
- const result = getLocalizedSortProperty({
74
- config,
75
- parentIsLocalized: false,
76
- fields: flattenAllFields({
77
- fields: [
78
- {
79
- name: 'group',
80
- type: 'group',
81
- fields: [
82
- {
83
- name: 'title',
84
- type: 'text',
85
- localized: true
86
- }
87
- ]
88
- }
89
- ]
90
- }),
91
- locale: 'en',
92
- segments: [
93
- 'group',
94
- 'title'
95
- ]
96
- });
97
- expect(result).toStrictEqual('group.title.en');
98
- });
99
- it('keeps requested locale with nested sort properties', ()=>{
100
- const result = getLocalizedSortProperty({
101
- config,
102
- parentIsLocalized: false,
103
- fields: flattenAllFields({
104
- fields: [
105
- {
106
- name: 'group',
107
- type: 'group',
108
- fields: [
109
- {
110
- name: 'title',
111
- type: 'text',
112
- localized: true
113
- }
114
- ]
115
- }
116
- ]
117
- }),
118
- locale: 'en',
119
- segments: [
120
- 'group',
121
- 'title',
122
- 'es'
123
- ]
124
- });
125
- expect(result).toStrictEqual('group.title.es');
126
- });
127
- it('properly localizes field within row', ()=>{
128
- const result = getLocalizedSortProperty({
129
- config,
130
- parentIsLocalized: false,
131
- fields: flattenAllFields({
132
- fields: [
133
- {
134
- type: 'row',
135
- fields: [
136
- {
137
- name: 'title',
138
- type: 'text',
139
- localized: true
140
- }
141
- ]
142
- }
143
- ]
144
- }),
145
- locale: 'en',
146
- segments: [
147
- 'title'
148
- ]
149
- });
150
- expect(result).toStrictEqual('title.en');
151
- });
152
- it('properly localizes field within named tab', ()=>{
153
- const result = getLocalizedSortProperty({
154
- config,
155
- parentIsLocalized: false,
156
- fields: flattenAllFields({
157
- fields: [
158
- {
159
- type: 'tabs',
160
- tabs: [
161
- {
162
- name: 'tab',
163
- fields: [
164
- {
165
- name: 'title',
166
- type: 'text',
167
- localized: true
168
- }
169
- ]
170
- }
171
- ]
172
- }
173
- ]
174
- }),
175
- locale: 'en',
176
- segments: [
177
- 'tab',
178
- 'title'
179
- ]
180
- });
181
- expect(result).toStrictEqual('tab.title.en');
182
- });
183
- it('properly localizes field within unnamed tab', ()=>{
184
- const result = getLocalizedSortProperty({
185
- config,
186
- parentIsLocalized: false,
187
- fields: flattenAllFields({
188
- fields: [
189
- {
190
- type: 'tabs',
191
- tabs: [
192
- {
193
- fields: [
194
- {
195
- name: 'title',
196
- type: 'text',
197
- localized: true
198
- }
199
- ],
200
- label: 'Tab'
201
- }
202
- ]
203
- }
204
- ]
205
- }),
206
- locale: 'en',
207
- segments: [
208
- 'title'
209
- ]
210
- });
211
- expect(result).toStrictEqual('title.en');
212
- });
213
- });
214
-
215
- //# sourceMappingURL=getLocalizedSortProperty.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/queries/getLocalizedSortProperty.spec.ts"],"sourcesContent":["import { describe, beforeAll, it, expect } from 'vitest'\nimport type { Config, SanitizedConfig } from 'payload'\nimport { flattenAllFields, sanitizeConfig } from 'payload'\n\nimport { getLocalizedSortProperty } from './getLocalizedSortProperty.js'\n\nlet config: SanitizedConfig\n\ndescribe('get localized sort property', () => {\n beforeAll(async () => {\n config = await sanitizeConfig({\n localization: {\n defaultLocale: 'en',\n fallback: true,\n locales: ['en', 'es'],\n },\n } as Config)\n })\n it('passes through a non-localized sort property', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: [\n {\n name: 'title',\n type: 'text',\n },\n ],\n locale: 'en',\n segments: ['title'],\n })\n\n expect(result).toStrictEqual('title')\n })\n\n it('properly localizes an un-localized sort property', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n locale: 'en',\n segments: ['title'],\n })\n\n expect(result).toStrictEqual('title.en')\n })\n\n it('keeps specifically asked-for localized sort properties', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n locale: 'en',\n segments: ['title', 'es'],\n })\n\n expect(result).toStrictEqual('title.es')\n })\n\n it('properly localizes nested sort properties', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: flattenAllFields({\n fields: [\n {\n name: 'group',\n type: 'group',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n }),\n locale: 'en',\n segments: ['group', 'title'],\n })\n\n expect(result).toStrictEqual('group.title.en')\n })\n\n it('keeps requested locale with nested sort properties', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: flattenAllFields({\n fields: [\n {\n name: 'group',\n type: 'group',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n }),\n locale: 'en',\n segments: ['group', 'title', 'es'],\n })\n\n expect(result).toStrictEqual('group.title.es')\n })\n\n it('properly localizes field within row', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: flattenAllFields({\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n }),\n locale: 'en',\n segments: ['title'],\n })\n\n expect(result).toStrictEqual('title.en')\n })\n\n it('properly localizes field within named tab', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: flattenAllFields({\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'tab',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n },\n ],\n }),\n locale: 'en',\n segments: ['tab', 'title'],\n })\n\n expect(result).toStrictEqual('tab.title.en')\n })\n\n it('properly localizes field within unnamed tab', () => {\n const result = getLocalizedSortProperty({\n config,\n parentIsLocalized: false,\n fields: flattenAllFields({\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n label: 'Tab',\n },\n ],\n },\n ],\n }),\n locale: 'en',\n segments: ['title'],\n })\n\n expect(result).toStrictEqual('title.en')\n })\n})\n"],"names":["describe","beforeAll","it","expect","flattenAllFields","sanitizeConfig","getLocalizedSortProperty","config","localization","defaultLocale","fallback","locales","result","parentIsLocalized","fields","name","type","locale","segments","toStrictEqual","localized","tabs","label"],"mappings":"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"}
@@ -1,479 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { flattenAllFields } from 'payload';
3
- import { Types } from 'mongoose';
4
- import { transform } from './transform.js';
5
- const flattenRelationshipValues = (obj, prefix = '')=>{
6
- return Object.keys(obj).reduce((acc, key)=>{
7
- const fullKey = prefix ? `${prefix}.${key}` : key;
8
- const value = obj[key];
9
- if (value && typeof value === 'object' && !(value instanceof Types.ObjectId)) {
10
- Object.assign(acc, flattenRelationshipValues(value, fullKey));
11
- // skip relationTo and blockType
12
- } else if (!fullKey.endsWith('relationTo') && !fullKey.endsWith('blockType')) {
13
- acc[fullKey] = value;
14
- }
15
- return acc;
16
- }, {});
17
- };
18
- const relsFields = [
19
- {
20
- name: 'rel_1',
21
- type: 'relationship',
22
- relationTo: 'rels'
23
- },
24
- {
25
- name: 'rel_1_l',
26
- type: 'relationship',
27
- localized: true,
28
- relationTo: 'rels'
29
- },
30
- {
31
- name: 'rel_2',
32
- type: 'relationship',
33
- hasMany: true,
34
- relationTo: 'rels'
35
- },
36
- {
37
- name: 'rel_2_l',
38
- type: 'relationship',
39
- hasMany: true,
40
- localized: true,
41
- relationTo: 'rels'
42
- },
43
- {
44
- name: 'rel_3',
45
- type: 'relationship',
46
- relationTo: [
47
- 'rels'
48
- ]
49
- },
50
- {
51
- name: 'rel_3_l',
52
- type: 'relationship',
53
- localized: true,
54
- relationTo: [
55
- 'rels'
56
- ]
57
- },
58
- {
59
- name: 'rel_4',
60
- type: 'relationship',
61
- hasMany: true,
62
- relationTo: [
63
- 'rels'
64
- ]
65
- },
66
- {
67
- name: 'rel_4_l',
68
- type: 'relationship',
69
- hasMany: true,
70
- localized: true,
71
- relationTo: [
72
- 'rels'
73
- ]
74
- }
75
- ];
76
- const referenceBlockFields = [
77
- ...relsFields,
78
- {
79
- name: 'group',
80
- type: 'group',
81
- fields: relsFields
82
- },
83
- {
84
- name: 'array',
85
- type: 'array',
86
- fields: relsFields
87
- }
88
- ];
89
- const config = {
90
- blocks: [
91
- {
92
- slug: 'reference-block',
93
- fields: referenceBlockFields,
94
- flattenedFields: flattenAllFields({
95
- fields: referenceBlockFields
96
- })
97
- }
98
- ],
99
- collections: [
100
- {
101
- slug: 'docs',
102
- fields: [
103
- ...relsFields,
104
- {
105
- name: 'array',
106
- type: 'array',
107
- fields: [
108
- {
109
- name: 'array',
110
- type: 'array',
111
- fields: relsFields
112
- },
113
- {
114
- name: 'blocks',
115
- type: 'blocks',
116
- blocks: [
117
- {
118
- slug: 'block',
119
- fields: relsFields
120
- }
121
- ]
122
- },
123
- ...relsFields
124
- ]
125
- },
126
- {
127
- name: 'arrayLocalized',
128
- type: 'array',
129
- fields: [
130
- {
131
- name: 'array',
132
- type: 'array',
133
- fields: relsFields
134
- },
135
- {
136
- name: 'blocks',
137
- type: 'blocks',
138
- blocks: [
139
- {
140
- slug: 'block',
141
- fields: relsFields
142
- }
143
- ]
144
- },
145
- ...relsFields
146
- ],
147
- localized: true
148
- },
149
- {
150
- name: 'blocks',
151
- type: 'blocks',
152
- blocks: [
153
- {
154
- slug: 'block',
155
- fields: [
156
- ...relsFields,
157
- {
158
- name: 'group',
159
- type: 'group',
160
- fields: relsFields
161
- },
162
- {
163
- name: 'array',
164
- type: 'array',
165
- fields: relsFields
166
- }
167
- ]
168
- }
169
- ]
170
- },
171
- {
172
- name: 'referencedBlocks',
173
- type: 'blocks',
174
- blocks: [
175
- 'reference-block'
176
- ]
177
- },
178
- {
179
- name: 'group',
180
- type: 'group',
181
- fields: [
182
- ...relsFields,
183
- {
184
- name: 'array',
185
- type: 'array',
186
- fields: relsFields
187
- }
188
- ]
189
- },
190
- {
191
- name: 'groupLocalized',
192
- type: 'group',
193
- fields: [
194
- ...relsFields,
195
- {
196
- name: 'array',
197
- type: 'array',
198
- fields: relsFields
199
- }
200
- ],
201
- localized: true
202
- },
203
- {
204
- name: 'groupAndRow',
205
- type: 'group',
206
- fields: [
207
- {
208
- type: 'row',
209
- fields: [
210
- ...relsFields,
211
- {
212
- type: 'array',
213
- name: 'array',
214
- fields: relsFields
215
- }
216
- ]
217
- }
218
- ]
219
- },
220
- {
221
- type: 'tabs',
222
- tabs: [
223
- {
224
- name: 'tab',
225
- fields: relsFields
226
- },
227
- {
228
- name: 'tabLocalized',
229
- fields: relsFields,
230
- localized: true
231
- },
232
- {
233
- label: 'another',
234
- fields: [
235
- {
236
- type: 'tabs',
237
- tabs: [
238
- {
239
- name: 'nestedTab',
240
- fields: relsFields
241
- }
242
- ]
243
- }
244
- ]
245
- }
246
- ]
247
- }
248
- ]
249
- },
250
- {
251
- slug: 'rels',
252
- fields: []
253
- }
254
- ],
255
- localization: {
256
- defaultLocale: 'en',
257
- localeCodes: [
258
- 'en',
259
- 'es'
260
- ],
261
- locales: [
262
- {
263
- code: 'en',
264
- label: 'EN'
265
- },
266
- {
267
- code: 'es',
268
- label: 'ES'
269
- }
270
- ]
271
- }
272
- };
273
- const relsData = {
274
- rel_1: new Types.ObjectId().toHexString(),
275
- rel_1_l: {
276
- en: new Types.ObjectId().toHexString(),
277
- es: new Types.ObjectId().toHexString()
278
- },
279
- rel_2: [
280
- new Types.ObjectId().toHexString()
281
- ],
282
- rel_2_l: {
283
- en: [
284
- new Types.ObjectId().toHexString()
285
- ],
286
- es: [
287
- new Types.ObjectId().toHexString()
288
- ]
289
- },
290
- rel_3: {
291
- relationTo: 'rels',
292
- value: new Types.ObjectId().toHexString()
293
- },
294
- rel_3_l: {
295
- en: {
296
- relationTo: 'rels',
297
- value: new Types.ObjectId().toHexString()
298
- },
299
- es: {
300
- relationTo: 'rels',
301
- value: new Types.ObjectId().toHexString()
302
- }
303
- },
304
- rel_4: [
305
- {
306
- relationTo: 'rels',
307
- value: new Types.ObjectId().toHexString()
308
- }
309
- ],
310
- rel_4_l: {
311
- en: [
312
- {
313
- relationTo: 'rels',
314
- value: new Types.ObjectId().toHexString()
315
- }
316
- ],
317
- es: [
318
- {
319
- relationTo: 'rels',
320
- value: new Types.ObjectId().toHexString()
321
- }
322
- ]
323
- }
324
- };
325
- describe('transform', ()=>{
326
- it('should sanitize relationships', ()=>{
327
- const data = {
328
- ...relsData,
329
- array: [
330
- {
331
- ...relsData,
332
- array: [
333
- {
334
- ...relsData
335
- }
336
- ],
337
- blocks: [
338
- {
339
- blockType: 'block',
340
- ...relsData
341
- }
342
- ]
343
- }
344
- ],
345
- arrayLocalized: {
346
- en: [
347
- {
348
- ...relsData,
349
- array: [
350
- {
351
- ...relsData
352
- }
353
- ],
354
- blocks: [
355
- {
356
- blockType: 'block',
357
- ...relsData
358
- }
359
- ]
360
- }
361
- ],
362
- es: [
363
- {
364
- ...relsData,
365
- array: [
366
- {
367
- ...relsData
368
- }
369
- ],
370
- blocks: [
371
- {
372
- blockType: 'block',
373
- ...relsData
374
- }
375
- ]
376
- }
377
- ]
378
- },
379
- blocks: [
380
- {
381
- blockType: 'block',
382
- ...relsData,
383
- array: [
384
- {
385
- ...relsData
386
- }
387
- ],
388
- group: {
389
- ...relsData
390
- }
391
- }
392
- ],
393
- referencedBlocks: [
394
- {
395
- blockType: 'reference-block',
396
- array: [
397
- {
398
- ...relsData
399
- }
400
- ],
401
- group: {
402
- ...relsData
403
- },
404
- ...relsData
405
- }
406
- ],
407
- group: {
408
- ...relsData,
409
- array: [
410
- {
411
- ...relsData
412
- }
413
- ]
414
- },
415
- groupAndRow: {
416
- ...relsData,
417
- array: [
418
- {
419
- ...relsData
420
- }
421
- ]
422
- },
423
- groupLocalized: {
424
- en: {
425
- ...relsData,
426
- array: [
427
- {
428
- ...relsData
429
- }
430
- ]
431
- },
432
- es: {
433
- ...relsData,
434
- array: [
435
- {
436
- ...relsData
437
- }
438
- ]
439
- }
440
- },
441
- tab: {
442
- ...relsData
443
- },
444
- tabLocalized: {
445
- en: {
446
- ...relsData
447
- },
448
- es: {
449
- ...relsData
450
- }
451
- },
452
- nestedTab: {
453
- ...relsData
454
- }
455
- };
456
- const flattenValuesBefore = Object.values(flattenRelationshipValues(data));
457
- const mockAdapter = {
458
- payload: {
459
- config
460
- }
461
- };
462
- transform({
463
- adapter: mockAdapter,
464
- operation: 'write',
465
- data,
466
- fields: config.collections[0].fields
467
- });
468
- if ('updatedAt' in data) {
469
- delete data.updatedAt;
470
- }
471
- const flattenValuesAfter = Object.values(flattenRelationshipValues(data));
472
- flattenValuesAfter.forEach((value, i)=>{
473
- expect(value).toBeInstanceOf(Types.ObjectId);
474
- expect(flattenValuesBefore[i]).toBe(value.toHexString());
475
- });
476
- });
477
- });
478
-
479
- //# sourceMappingURL=transform.spec.js.map