@payloadcms/figma 0.0.1-alpha.43 → 0.0.1-alpha.45
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/api/control-plane.d.ts.map +1 -1
- package/dist/api/control-plane.js +90 -54
- package/dist/api/control-plane.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/debug.d.ts +8 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +156 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +17 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/db-content-api/generated/content-api-types.d.ts +3 -0
- package/dist/db-content-api/generated/content-api-types.d.ts.map +1 -1
- package/dist/db-content-api/generated/content-api-types.js.map +1 -1
- package/dist/db-content-api/index.d.ts +2 -0
- package/dist/db-content-api/index.d.ts.map +1 -1
- package/dist/db-content-api/index.js +118 -52
- package/dist/db-content-api/index.js.map +1 -1
- package/dist/db-content-api/temp-utilities/types.d.ts +22 -0
- package/dist/db-content-api/temp-utilities/types.d.ts.map +1 -0
- package/dist/db-content-api/temp-utilities/types.js +15 -0
- package/dist/db-content-api/temp-utilities/types.js.map +1 -0
- package/dist/db-content-api/utilities/data/index.d.ts +14 -4
- package/dist/db-content-api/utilities/data/index.d.ts.map +1 -1
- package/dist/db-content-api/utilities/data/index.js +16 -8
- package/dist/db-content-api/utilities/data/index.js.map +1 -1
- package/dist/db-content-api/utilities/data/transformPublishedLocale.d.ts +23 -0
- package/dist/db-content-api/utilities/data/transformPublishedLocale.d.ts.map +1 -0
- package/dist/db-content-api/utilities/data/transformPublishedLocale.js +42 -0
- package/dist/db-content-api/utilities/data/transformPublishedLocale.js.map +1 -0
- package/dist/db-content-api/utilities/locale/index.d.ts +10 -0
- package/dist/db-content-api/utilities/locale/index.d.ts.map +1 -0
- package/dist/db-content-api/utilities/locale/index.js +21 -0
- package/dist/db-content-api/utilities/locale/index.js.map +1 -0
- package/dist/db-content-api/utilities/meta/buildLocalizedPaths.d.ts.map +1 -1
- package/dist/db-content-api/utilities/meta/buildLocalizedPaths.js +11 -0
- package/dist/db-content-api/utilities/meta/buildLocalizedPaths.js.map +1 -1
- package/dist/db-content-api/utilities/meta/buildMeta.d.ts +18 -3
- package/dist/db-content-api/utilities/meta/buildMeta.d.ts.map +1 -1
- package/dist/db-content-api/utilities/meta/buildMeta.js +4 -1
- package/dist/db-content-api/utilities/meta/buildMeta.js.map +1 -1
- package/dist/db-content-api/utilities/meta/buildPathTypes.d.ts +8 -2
- package/dist/db-content-api/utilities/meta/buildPathTypes.d.ts.map +1 -1
- package/dist/db-content-api/utilities/meta/buildPathTypes.js +41 -11
- package/dist/db-content-api/utilities/meta/buildPathTypes.js.map +1 -1
- package/dist/db-content-api/utilities/where.d.ts +8 -0
- package/dist/db-content-api/utilities/where.d.ts.map +1 -1
- package/dist/db-content-api/utilities/where.js +6 -0
- package/dist/db-content-api/utilities/where.js.map +1 -1
- package/dist/oauth/endpoints/getLoginEndpoint.d.ts.map +1 -1
- package/dist/oauth/endpoints/getLoginEndpoint.js +18 -13
- package/dist/oauth/endpoints/getLoginEndpoint.js.map +1 -1
- package/dist/storage-content-api/utilities/index.d.ts +1 -1
- package/dist/storage-content-api/utilities/index.d.ts.map +1 -1
- package/dist/storage-content-api/utilities/index.js +1 -1
- package/dist/storage-content-api/utilities/index.js.map +1 -1
- package/dist/templates/README.md +1 -1
- package/dist/types/config.d.ts +2 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +0 -2
- package/dist/types/config.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/lambda-config.d.ts +1 -1
- package/dist/utils/lambda-config.d.ts.map +1 -1
- package/dist/utils/lambda-config.js +2 -2
- package/dist/utils/lambda-config.js.map +1 -1
- package/dist/utils/messages.d.ts +1 -1
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +1 -0
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/package-manager.d.ts +24 -0
- package/dist/utils/package-manager.d.ts.map +1 -1
- package/dist/utils/package-manager.js +53 -0
- package/dist/utils/package-manager.js.map +1 -1
- package/dist/utils/payload-config-ast.d.ts.map +1 -1
- package/dist/utils/payload-config-ast.js +7 -0
- package/dist/utils/payload-config-ast.js.map +1 -1
- package/dist/utils/payload-config-modifier.d.ts +1 -1
- package/dist/utils/payload-config-modifier.d.ts.map +1 -1
- package/dist/utils/payload-config-modifier.js +4 -3
- package/dist/utils/payload-config-modifier.js.map +1 -1
- package/dist/utils/project.d.ts +3 -2
- package/dist/utils/project.d.ts.map +1 -1
- package/dist/utils/project.js +4 -2
- package/dist/utils/project.js.map +1 -1
- package/package.json +1 -1
- package/dist/db-content-api/utilities/meta/index.d.ts +0 -5
- package/dist/db-content-api/utilities/meta/index.d.ts.map +0 -1
- package/dist/db-content-api/utilities/meta/index.js +0 -5
- package/dist/db-content-api/utilities/meta/index.js.map +0 -1
|
@@ -7,33 +7,10 @@ import { unwrapDocument, unwrapFindResponse } from './temp-utilities/unwrapDocum
|
|
|
7
7
|
import { createAuthMiddleware, createErrorMiddleware } from './utilities/auth.js';
|
|
8
8
|
import { dataToContentAPI } from './utilities/data/index.js';
|
|
9
9
|
import { convertPayloadJoinsToContentAPI } from './utilities/joins.js';
|
|
10
|
-
import {
|
|
10
|
+
import { addFallbackLocale } from './utilities/locale/index.js';
|
|
11
|
+
import { buildMeta } from './utilities/meta/buildMeta.js';
|
|
11
12
|
import { convertPayloadWhereToContentAPI } from './utilities/where.js';
|
|
12
|
-
async function
|
|
13
|
-
if (this.auth.mode === 'apiKey') {
|
|
14
|
-
this.payload.logger.info('Using API Key authentication');
|
|
15
|
-
} else if (this.auth.mode === 'tokenStore') {
|
|
16
|
-
this.payload.logger.info('Using TokenStore authentication (local dev)');
|
|
17
|
-
} else {
|
|
18
|
-
this.payload.logger.info('Using Dev JWT authentication (testing)');
|
|
19
|
-
}
|
|
20
|
-
if (process.env.PAYLOAD_DROP_DATABASE === 'true') {
|
|
21
|
-
this.payload.logger.info(`---- DROPPING CONTENT API SYSTEM (${this.contentSystemId}) ----`);
|
|
22
|
-
try {
|
|
23
|
-
await fetch(`${this.url}/dev/clear-db`, {
|
|
24
|
-
body: JSON.stringify({
|
|
25
|
-
contentSystemId: this.contentSystemId
|
|
26
|
-
}),
|
|
27
|
-
headers: {
|
|
28
|
-
'Content-Type': 'application/json'
|
|
29
|
-
},
|
|
30
|
-
method: 'POST'
|
|
31
|
-
});
|
|
32
|
-
this.payload.logger.info('---- DROPPED CONTENT API SYSTEM ----');
|
|
33
|
-
} catch (error) {
|
|
34
|
-
this.payload.logger.warn(`Failed to drop content system: ${error.message}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
13
|
+
async function syncCollections() {
|
|
37
14
|
let existingIds;
|
|
38
15
|
try {
|
|
39
16
|
const { data: response, error } = await this.client.GET('/api/v0/content_systems/{contentSystemId}/collections', {
|
|
@@ -67,6 +44,19 @@ async function init() {
|
|
|
67
44
|
}
|
|
68
45
|
}
|
|
69
46
|
}
|
|
47
|
+
async function init() {
|
|
48
|
+
if (this.auth.mode === 'apiKey') {
|
|
49
|
+
this.payload.logger.info('Using API Key authentication');
|
|
50
|
+
} else if (this.auth.mode === 'tokenStore') {
|
|
51
|
+
this.payload.logger.info('Using TokenStore authentication (local dev)');
|
|
52
|
+
} else {
|
|
53
|
+
this.payload.logger.info('Using Dev JWT authentication (testing)');
|
|
54
|
+
}
|
|
55
|
+
if (process.env.PAYLOAD_DROP_DATABASE === 'true') {
|
|
56
|
+
await this.clearDatabase();
|
|
57
|
+
}
|
|
58
|
+
await syncCollections.call(this);
|
|
59
|
+
}
|
|
70
60
|
async function createCollection(collectionId) {
|
|
71
61
|
try {
|
|
72
62
|
const { error } = await this.client.POST('/api/v0/content_systems/{contentSystemId}/collections', {
|
|
@@ -90,24 +80,21 @@ async function createCollection(collectionId) {
|
|
|
90
80
|
}
|
|
91
81
|
}
|
|
92
82
|
}
|
|
93
|
-
async function findMany({ collection, joins, limit, locale, page, pagination, sort, where }) {
|
|
94
|
-
|
|
95
|
-
// 'all' is a special Payload value meaning "return all locales" - don't send to Content API
|
|
96
|
-
const localization = this.payload.config.localization;
|
|
97
|
-
const effectiveLocale = locale && locale !== 'all' ? locale : localization ? localization.defaultLocale : undefined;
|
|
83
|
+
async function findMany({ collection, joins, limit, locale: localeArg, page, pagination: _pagination, sort, where }) {
|
|
84
|
+
const locale = addFallbackLocale(localeArg, this.payload);
|
|
98
85
|
const { data: response, error } = await this.client.POST('/api/v0/documents:find', {
|
|
99
86
|
body: {
|
|
100
87
|
collection,
|
|
101
88
|
contentSystemId: this.contentSystemId,
|
|
102
89
|
join: convertPayloadJoinsToContentAPI(this.payload, collection, joins),
|
|
103
90
|
limit,
|
|
104
|
-
locale
|
|
91
|
+
locale,
|
|
105
92
|
page: page ?? 1,
|
|
106
93
|
sort: addFallbackSort(sort, this.payload, collection),
|
|
107
94
|
where: convertPayloadWhereToContentAPI(where ?? {}),
|
|
108
95
|
...buildMeta(this.payload, {
|
|
109
96
|
collection,
|
|
110
|
-
locale
|
|
97
|
+
locale,
|
|
111
98
|
where
|
|
112
99
|
})
|
|
113
100
|
}
|
|
@@ -139,12 +126,10 @@ async function find(args) {
|
|
|
139
126
|
async function findVersions(args) {
|
|
140
127
|
const sortWithFallback = addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection);
|
|
141
128
|
const whereClause = convertPayloadWhereToContentAPI(args.where ?? {}, {
|
|
142
|
-
parentToDocumentId: true
|
|
129
|
+
parentToDocumentId: true,
|
|
130
|
+
stripVersionPrefix: true
|
|
143
131
|
});
|
|
144
|
-
|
|
145
|
-
// 'all' is a special Payload value meaning "return all locales" - don't send to Content API
|
|
146
|
-
const localization = this.payload.config.localization;
|
|
147
|
-
const effectiveLocale = args.locale && args.locale !== 'all' ? args.locale : localization ? localization.defaultLocale : undefined;
|
|
132
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
148
133
|
const { data: response, error } = await this.client.POST('/api/v0/document_versions:find', {
|
|
149
134
|
body: {
|
|
150
135
|
collection: args.collection,
|
|
@@ -152,13 +137,13 @@ async function findVersions(args) {
|
|
|
152
137
|
// TODO: FindVersionsArgs.limit should be 'number' not 'number | undefined'
|
|
153
138
|
// is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)
|
|
154
139
|
limit: args.limit,
|
|
155
|
-
locale
|
|
140
|
+
locale,
|
|
156
141
|
page: args.page ?? 1,
|
|
157
142
|
sort: sortWithFallback,
|
|
158
143
|
where: whereClause,
|
|
159
144
|
...buildMeta(this.payload, {
|
|
160
145
|
collection: args.collection,
|
|
161
|
-
locale
|
|
146
|
+
locale,
|
|
162
147
|
where: args.where
|
|
163
148
|
})
|
|
164
149
|
}
|
|
@@ -175,6 +160,7 @@ async function queryDrafts(args) {
|
|
|
175
160
|
const versionsResult = await this.findVersions({
|
|
176
161
|
collection: args.collection,
|
|
177
162
|
limit: args.limit,
|
|
163
|
+
locale: args.locale,
|
|
178
164
|
page: args.page,
|
|
179
165
|
pagination: args.pagination,
|
|
180
166
|
sort: args.sort,
|
|
@@ -207,10 +193,13 @@ async function createVersion(args) {
|
|
|
207
193
|
collection: args.collectionSlug,
|
|
208
194
|
contentSystemId: this.contentSystemId,
|
|
209
195
|
versionDoc: {
|
|
196
|
+
createdAt: args.createdAt,
|
|
210
197
|
latest: !args.autosave,
|
|
211
198
|
parent: String(args.parent),
|
|
199
|
+
updatedAt: args.updatedAt,
|
|
212
200
|
version: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {
|
|
213
|
-
applyDefaults: true
|
|
201
|
+
applyDefaults: true,
|
|
202
|
+
publishedLocale: args.publishedLocale
|
|
214
203
|
})
|
|
215
204
|
}
|
|
216
205
|
}
|
|
@@ -229,17 +218,30 @@ async function updateVersion(args) {
|
|
|
229
218
|
equals: args.id
|
|
230
219
|
}
|
|
231
220
|
};
|
|
221
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
222
|
+
// versionData contains version metadata plus nested version content
|
|
223
|
+
const { publishedLocale, version, ...versionMeta } = args.versionData;
|
|
232
224
|
const { data: response, error } = await this.client.POST('/api/v0/document_versions:update', {
|
|
233
225
|
body: {
|
|
234
226
|
collection: args.collection,
|
|
235
227
|
contentSystemId: this.contentSystemId,
|
|
236
228
|
createOnMissing: false,
|
|
229
|
+
locale,
|
|
237
230
|
versionDoc: {
|
|
238
|
-
|
|
231
|
+
createdAt: versionMeta.createdAt,
|
|
232
|
+
latest: versionMeta.latest,
|
|
233
|
+
parent: versionMeta.parent != null ? String(versionMeta.parent) : undefined,
|
|
234
|
+
updatedAt: versionMeta.updatedAt,
|
|
235
|
+
version: dataToContentAPI(this.payload, args.collection, version, {
|
|
236
|
+
publishedLocale
|
|
237
|
+
})
|
|
239
238
|
},
|
|
240
|
-
where: convertPayloadWhereToContentAPI(where
|
|
239
|
+
where: convertPayloadWhereToContentAPI(where, {
|
|
240
|
+
stripVersionPrefix: true
|
|
241
|
+
}),
|
|
241
242
|
...buildMeta(this.payload, {
|
|
242
243
|
collection: args.collection,
|
|
244
|
+
locale,
|
|
243
245
|
where
|
|
244
246
|
})
|
|
245
247
|
}
|
|
@@ -260,13 +262,18 @@ async function deleteVersions(args) {
|
|
|
260
262
|
if (!args.collection) {
|
|
261
263
|
throw new Error('deleteVersions requires a collection');
|
|
262
264
|
}
|
|
265
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
263
266
|
const { error } = await this.client.POST('/api/v0/document_versions:delete', {
|
|
264
267
|
body: {
|
|
265
268
|
collection: args.collection,
|
|
266
269
|
contentSystemId: this.contentSystemId,
|
|
267
|
-
|
|
270
|
+
locale,
|
|
271
|
+
where: convertPayloadWhereToContentAPI(args.where, {
|
|
272
|
+
stripVersionPrefix: true
|
|
273
|
+
}),
|
|
268
274
|
...buildMeta(this.payload, {
|
|
269
275
|
collection: args.collection,
|
|
276
|
+
locale,
|
|
270
277
|
where: args.where
|
|
271
278
|
})
|
|
272
279
|
}
|
|
@@ -287,7 +294,7 @@ async function findOne(args) {
|
|
|
287
294
|
return docs[0] ?? null;
|
|
288
295
|
}
|
|
289
296
|
async function updateMany(args) {
|
|
290
|
-
const
|
|
297
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
291
298
|
const { data: response, error } = await this.client.POST('/api/v0/documents:update', {
|
|
292
299
|
body: {
|
|
293
300
|
collection: args.collection,
|
|
@@ -295,11 +302,13 @@ async function updateMany(args) {
|
|
|
295
302
|
createOnMissing: false,
|
|
296
303
|
doc: dataToContentAPI(this.payload, args.collection, args.data),
|
|
297
304
|
limit: args.limit,
|
|
305
|
+
locale,
|
|
298
306
|
returning: {},
|
|
299
|
-
sort:
|
|
307
|
+
sort: addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection),
|
|
300
308
|
where: convertPayloadWhereToContentAPI(args.where),
|
|
301
309
|
...buildMeta(this.payload, {
|
|
302
310
|
collection: args.collection,
|
|
311
|
+
locale,
|
|
303
312
|
where: args.where
|
|
304
313
|
})
|
|
305
314
|
}
|
|
@@ -316,6 +325,7 @@ async function updateMany(args) {
|
|
|
316
325
|
return null;
|
|
317
326
|
}
|
|
318
327
|
async function updateOne(args) {
|
|
328
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
319
329
|
const where = args.where ?? {
|
|
320
330
|
id: {
|
|
321
331
|
equals: args.id
|
|
@@ -327,10 +337,12 @@ async function updateOne(args) {
|
|
|
327
337
|
contentSystemId: this.contentSystemId,
|
|
328
338
|
createOnMissing: false,
|
|
329
339
|
doc: dataToContentAPI(this.payload, args.collection, args.data),
|
|
340
|
+
locale,
|
|
330
341
|
returning: {},
|
|
331
342
|
where: convertPayloadWhereToContentAPI(where),
|
|
332
343
|
...buildMeta(this.payload, {
|
|
333
344
|
collection: args.collection,
|
|
345
|
+
locale,
|
|
334
346
|
where
|
|
335
347
|
})
|
|
336
348
|
}
|
|
@@ -351,13 +363,16 @@ async function updateOne(args) {
|
|
|
351
363
|
return unwrapDocument(this.payload, doc, args.collection);
|
|
352
364
|
}
|
|
353
365
|
async function deleteMany(args) {
|
|
366
|
+
const locale = addFallbackLocale(args.req?.locale, this.payload);
|
|
354
367
|
const { error } = await this.client.POST('/api/v0/documents:delete', {
|
|
355
368
|
body: {
|
|
356
369
|
collection: args.collection,
|
|
357
370
|
contentSystemId: this.contentSystemId,
|
|
371
|
+
locale,
|
|
358
372
|
where: convertPayloadWhereToContentAPI(args.where),
|
|
359
373
|
...buildMeta(this.payload, {
|
|
360
374
|
collection: args.collection,
|
|
375
|
+
locale,
|
|
361
376
|
where: args.where
|
|
362
377
|
})
|
|
363
378
|
}
|
|
@@ -367,14 +382,17 @@ async function deleteMany(args) {
|
|
|
367
382
|
}
|
|
368
383
|
}
|
|
369
384
|
async function deleteOne(args) {
|
|
385
|
+
const locale = addFallbackLocale(args.req?.locale, this.payload);
|
|
370
386
|
const { data: response, error } = await this.client.POST('/api/v0/documents:delete', {
|
|
371
387
|
body: {
|
|
372
388
|
collection: args.collection,
|
|
373
389
|
contentSystemId: this.contentSystemId,
|
|
390
|
+
locale,
|
|
374
391
|
returning: {},
|
|
375
392
|
where: convertPayloadWhereToContentAPI(args.where),
|
|
376
393
|
...buildMeta(this.payload, {
|
|
377
394
|
collection: args.collection,
|
|
395
|
+
locale,
|
|
378
396
|
where: args.where
|
|
379
397
|
})
|
|
380
398
|
}
|
|
@@ -392,18 +410,26 @@ async function deleteOne(args) {
|
|
|
392
410
|
return unwrapDocument(this.payload, doc, args.collection);
|
|
393
411
|
}
|
|
394
412
|
async function create(args) {
|
|
395
|
-
const
|
|
413
|
+
const isGlobalCollection = args.collection.startsWith('_global-');
|
|
414
|
+
const customIDType = this.payload.collections[args.collection]?.customIDType;
|
|
415
|
+
const id = (isGlobalCollection || customIDType || this.allowIDOnCreate) && args.data.id != null && (typeof args.data.id === 'string' || typeof args.data.id === 'number') ? String(args.data.id) : uuid();
|
|
416
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
396
417
|
const { data: response, error } = await this.client.POST('/api/v0/documents:create', {
|
|
397
418
|
body: {
|
|
398
419
|
collection: args.collection,
|
|
399
420
|
contentSystemId: this.contentSystemId,
|
|
400
421
|
doc: {
|
|
401
|
-
id: String(id),
|
|
402
422
|
...dataToContentAPI(this.payload, args.collection, args.data, {
|
|
403
423
|
applyDefaults: true,
|
|
404
424
|
createdAt: true
|
|
405
|
-
})
|
|
406
|
-
|
|
425
|
+
}),
|
|
426
|
+
id
|
|
427
|
+
},
|
|
428
|
+
locale,
|
|
429
|
+
...buildMeta(this.payload, {
|
|
430
|
+
collection: args.collection,
|
|
431
|
+
locale
|
|
432
|
+
})
|
|
407
433
|
}
|
|
408
434
|
});
|
|
409
435
|
if (error) {
|
|
@@ -414,14 +440,34 @@ async function create(args) {
|
|
|
414
440
|
}
|
|
415
441
|
return unwrapDocument(this.payload, response.result, args.collection);
|
|
416
442
|
}
|
|
443
|
+
async function clearDatabase() {
|
|
444
|
+
this.payload.logger.info(`---- CLEARING CONTENT API DATABASE ----`);
|
|
445
|
+
try {
|
|
446
|
+
await fetch(`${this.url}/dev/clear-db`, {
|
|
447
|
+
headers: {
|
|
448
|
+
'Content-Type': 'application/json'
|
|
449
|
+
},
|
|
450
|
+
method: 'POST'
|
|
451
|
+
});
|
|
452
|
+
this.payload.logger.info('---- CONTENT API DATABASE CLEARED ----');
|
|
453
|
+
// Re-sync collections after clearing
|
|
454
|
+
await syncCollections.call(this);
|
|
455
|
+
} catch (error) {
|
|
456
|
+
this.payload.logger.error(`Failed to clear database: ${error.message}`);
|
|
457
|
+
throw error;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
417
460
|
async function count(args) {
|
|
461
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
418
462
|
const { data: response, error } = await this.client.POST('/api/v0/documents:count', {
|
|
419
463
|
body: {
|
|
420
464
|
collection: args.collection,
|
|
421
465
|
contentSystemId: this.contentSystemId,
|
|
466
|
+
locale,
|
|
422
467
|
where: convertPayloadWhereToContentAPI(args.where),
|
|
423
468
|
...buildMeta(this.payload, {
|
|
424
469
|
collection: args.collection,
|
|
470
|
+
locale,
|
|
425
471
|
where: args.where
|
|
426
472
|
})
|
|
427
473
|
}
|
|
@@ -437,13 +483,18 @@ async function count(args) {
|
|
|
437
483
|
};
|
|
438
484
|
}
|
|
439
485
|
async function countVersions(args) {
|
|
486
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
440
487
|
const { data: response, error } = await this.client.POST('/api/v0/document_versions:count', {
|
|
441
488
|
body: {
|
|
442
489
|
collection: args.collection,
|
|
443
490
|
contentSystemId: this.contentSystemId,
|
|
444
|
-
|
|
491
|
+
locale,
|
|
492
|
+
where: convertPayloadWhereToContentAPI(args.where, {
|
|
493
|
+
stripVersionPrefix: true
|
|
494
|
+
}),
|
|
445
495
|
...buildMeta(this.payload, {
|
|
446
496
|
collection: args.collection,
|
|
497
|
+
locale,
|
|
447
498
|
where: args.where
|
|
448
499
|
})
|
|
449
500
|
}
|
|
@@ -469,6 +520,7 @@ async function upsert(args) {
|
|
|
469
520
|
if (!documentId) {
|
|
470
521
|
documentId = uuid();
|
|
471
522
|
}
|
|
523
|
+
const locale = addFallbackLocale(args.locale, this.payload);
|
|
472
524
|
const { data: response, error } = await this.client.POST('/api/v0/documents:update', {
|
|
473
525
|
body: {
|
|
474
526
|
collection: args.collection,
|
|
@@ -480,7 +532,13 @@ async function upsert(args) {
|
|
|
480
532
|
applyDefaults: true,
|
|
481
533
|
createdAt: true
|
|
482
534
|
}),
|
|
483
|
-
|
|
535
|
+
locale,
|
|
536
|
+
where: convertPayloadWhereToContentAPI(args.where),
|
|
537
|
+
...buildMeta(this.payload, {
|
|
538
|
+
collection: args.collection,
|
|
539
|
+
locale,
|
|
540
|
+
where: args.where
|
|
541
|
+
})
|
|
484
542
|
}
|
|
485
543
|
});
|
|
486
544
|
if (error) {
|
|
@@ -511,6 +569,7 @@ function createGlobal(args) {
|
|
|
511
569
|
function findGlobal(args) {
|
|
512
570
|
return this.findOne({
|
|
513
571
|
collection: getGlobalSlug(args.slug),
|
|
572
|
+
locale: args.locale,
|
|
514
573
|
where: args.where ?? {}
|
|
515
574
|
});
|
|
516
575
|
}
|
|
@@ -532,6 +591,7 @@ function findGlobalVersions(args) {
|
|
|
532
591
|
return this.findVersions({
|
|
533
592
|
collection: getGlobalSlug(args.global),
|
|
534
593
|
limit: args.limit,
|
|
594
|
+
locale: args.locale,
|
|
535
595
|
page: args.page,
|
|
536
596
|
pagination: args.pagination,
|
|
537
597
|
sort: args.sort,
|
|
@@ -546,6 +606,7 @@ function createGlobalVersion(args) {
|
|
|
546
606
|
collectionSlug: getGlobalSlug(args.globalSlug),
|
|
547
607
|
createdAt: args.createdAt,
|
|
548
608
|
parent: args.globalSlug,
|
|
609
|
+
publishedLocale: args.publishedLocale,
|
|
549
610
|
updatedAt: args.updatedAt,
|
|
550
611
|
versionData: args.versionData
|
|
551
612
|
});
|
|
@@ -556,12 +617,14 @@ function updateGlobalVersion(args) {
|
|
|
556
617
|
return this.updateVersion({
|
|
557
618
|
id: args.id,
|
|
558
619
|
collection: getGlobalSlug(args.global),
|
|
620
|
+
locale: args.locale,
|
|
559
621
|
versionData: args.versionData
|
|
560
622
|
});
|
|
561
623
|
}
|
|
562
624
|
// args.where is guaranteed by Payload when args.id is undefined
|
|
563
625
|
return this.updateVersion({
|
|
564
626
|
collection: getGlobalSlug(args.global),
|
|
627
|
+
locale: args.locale,
|
|
565
628
|
versionData: args.versionData,
|
|
566
629
|
where: args.where
|
|
567
630
|
});
|
|
@@ -569,6 +632,7 @@ function updateGlobalVersion(args) {
|
|
|
569
632
|
function countGlobalVersions(args) {
|
|
570
633
|
return this.countVersions({
|
|
571
634
|
collection: getGlobalSlug(args.global),
|
|
635
|
+
locale: args.locale,
|
|
572
636
|
where: args.where
|
|
573
637
|
});
|
|
574
638
|
}
|
|
@@ -589,8 +653,10 @@ export const contentAPIAdapter = (opts)=>({
|
|
|
589
653
|
client.use(createErrorMiddleware(middlewareOpts));
|
|
590
654
|
return createDatabaseAdapter({
|
|
591
655
|
name: 'content-api',
|
|
656
|
+
allowIDOnCreate: opts.allowIDOnCreate ?? false,
|
|
592
657
|
auth: opts.auth,
|
|
593
658
|
beginTransaction: ()=>Promise.resolve(null),
|
|
659
|
+
clearDatabase: clearDatabase,
|
|
594
660
|
client,
|
|
595
661
|
commitTransaction: async ()=>{},
|
|
596
662
|
contentSystemId: opts.contentSystemId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/db-content-api/index.ts"],"sourcesContent":["import type {\n BaseDatabaseAdapter,\n Count,\n CountArgs,\n CountGlobalVersionArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterObj,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n QueryDrafts,\n QueryDraftsArgs,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateMany,\n UpdateManyArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n UpsertArgs,\n} from 'payload'\n\nimport createClient from 'openapi-fetch'\nimport { createDatabaseAdapter } from 'payload'\nimport { v4 as uuid } from 'uuid'\n\nimport type { paths } from './generated/content-api-types.js'\n\nimport { getGlobalSlug } from './temp-utilities/slug.js'\nimport { addFallbackSort } from './temp-utilities/sorting.js'\nimport { unwrapDocument, unwrapFindResponse } from './temp-utilities/unwrapDocument.js'\nimport { type AuthMode, createAuthMiddleware, createErrorMiddleware } from './utilities/auth.js'\nimport { dataToContentAPI } from './utilities/data/index.js'\nimport { convertPayloadJoinsToContentAPI } from './utilities/joins.js'\nimport { buildMeta } from './utilities/meta/index.js'\nimport { convertPayloadWhereToContentAPI } from './utilities/where.js'\n\ntype ContentAPIOptions = {\n auth: AuthMode\n contentSystemId: string\n url: string\n}\n\nexport type ContentAPIAdapter = {\n auth: AuthMode\n client: ReturnType<typeof createClient<paths>>\n contentSystemId: string\n url: string\n} & BaseDatabaseAdapter\n\nasync function init(this: ContentAPIAdapter) {\n if (this.auth.mode === 'apiKey') {\n this.payload.logger.info('Using API Key authentication')\n } else if (this.auth.mode === 'tokenStore') {\n this.payload.logger.info('Using TokenStore authentication (local dev)')\n } else {\n this.payload.logger.info('Using Dev JWT authentication (testing)')\n }\n\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n this.payload.logger.info(`---- DROPPING CONTENT API SYSTEM (${this.contentSystemId}) ----`)\n try {\n await fetch(`${this.url}/dev/clear-db`, {\n body: JSON.stringify({ contentSystemId: this.contentSystemId }),\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n })\n this.payload.logger.info('---- DROPPED CONTENT API SYSTEM ----')\n } catch (error) {\n this.payload.logger.warn(`Failed to drop content system: ${(error as Error).message}`)\n }\n }\n\n let existingIds: Set<string>\n try {\n const { data: response, error } = await this.client.GET(\n '/api/v0/content_systems/{contentSystemId}/collections',\n {\n params: { path: { contentSystemId: this.contentSystemId } },\n },\n )\n\n if (error) {\n throw new Error(JSON.stringify(error))\n }\n if (!response) {\n throw new Error('No response from collections endpoint')\n }\n\n existingIds = new Set(response.data.map((c) => c.id))\n this.payload.logger.info(`Found ${existingIds.size} existing collections`)\n } catch (error) {\n this.payload.logger.warn(\n `Failed to fetch collections, will attempt to create all: ${(error as Error).message}`,\n )\n existingIds = new Set()\n }\n\n for (const collection of this.payload.config.collections) {\n if (!existingIds.has(collection.slug)) {\n await createCollection.call(this, collection.slug)\n }\n }\n\n for (const global of this.payload.config.globals || []) {\n const globalId = `_global-${global.slug}`\n if (!existingIds.has(globalId)) {\n await createCollection.call(this, globalId)\n }\n }\n}\n\nasync function createCollection(this: ContentAPIAdapter, collectionId: string) {\n try {\n const { error } = await this.client.POST(\n '/api/v0/content_systems/{contentSystemId}/collections',\n {\n body: { id: collectionId },\n params: { path: { contentSystemId: this.contentSystemId } },\n },\n )\n\n if (error) {\n throw new Error(JSON.stringify(error))\n }\n this.payload.logger.info(`Created collection: ${collectionId}`)\n } catch (error) {\n const errorMessage = (error as Error).message\n if (!errorMessage.includes('already exists') && !errorMessage.includes('409')) {\n this.payload.logger.warn(`Failed to create collection ${collectionId}: ${errorMessage}`)\n }\n }\n}\n\nasync function findMany(\n this: ContentAPIAdapter,\n {\n collection,\n joins,\n limit,\n locale,\n page,\n pagination,\n sort,\n where,\n // Not yet passed to Content API:\n // - select: supported by Content API, pass-through possible\n // Not supported by Content API:\n // - draftsEnabled, versions, projection\n }: Pick<FindArgs, 'joins' | 'locale' | 'pagination' | 'sort' | 'where'> &\n Required<Pick<FindArgs, 'collection' | 'limit' | 'page'>>,\n) {\n // Use provided locale or fall back to default locale from config\n // 'all' is a special Payload value meaning \"return all locales\" - don't send to Content API\n const localization = this.payload.config.localization\n const effectiveLocale =\n locale && locale !== 'all' ? locale : localization ? localization.defaultLocale : undefined\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:find', {\n body: {\n collection,\n contentSystemId: this.contentSystemId,\n join: convertPayloadJoinsToContentAPI(this.payload, collection, joins),\n limit,\n locale: effectiveLocale && locale !== 'all' ? effectiveLocale : undefined,\n page: page ?? 1,\n sort: addFallbackSort(sort, this.payload, collection),\n where: convertPayloadWhereToContentAPI(where ?? {}),\n ...buildMeta(this.payload, { collection, locale: effectiveLocale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API findMany error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from findMany')\n }\n\n return unwrapFindResponse(this.payload, response.result, collection)\n}\n\nasync function find(this: ContentAPIAdapter, args: FindArgs) {\n const collectionConfig = this.payload.config.collections.find((c) => c.slug === args.collection)\n return findMany.call(this, {\n collection: args.collection,\n joins: args.joins,\n // TODO: FindArgs.limit should be 'number' not 'number | undefined'\n // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)\n limit: args.limit!,\n locale: args.locale,\n page: args.page ?? 1,\n pagination: args.pagination,\n sort: args.sort || collectionConfig?.defaultSort,\n where: args.where,\n })\n}\n\n// TODO: remove Omit when this PR is released: https://github.com/payloadcms/payload/pull/15183\nasync function findVersions(this: ContentAPIAdapter, args: Omit<FindVersionsArgs, 'skip'>) {\n const sortWithFallback = addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection)\n\n const whereClause = convertPayloadWhereToContentAPI(args.where ?? {}, {\n parentToDocumentId: true,\n })\n\n // Use provided locale or fall back to default locale from config\n // 'all' is a special Payload value meaning \"return all locales\" - don't send to Content API\n const localization = this.payload.config.localization\n const effectiveLocale =\n args.locale && args.locale !== 'all'\n ? args.locale\n : localization\n ? localization.defaultLocale\n : undefined\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:find', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n // TODO: FindVersionsArgs.limit should be 'number' not 'number | undefined'\n // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)\n limit: args.limit!,\n locale: effectiveLocale && args.locale !== 'all' ? effectiveLocale : undefined,\n page: args.page ?? 1,\n sort: sortWithFallback,\n where: whereClause,\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale: effectiveLocale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API findVersions error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from findVersions')\n }\n\n return unwrapFindResponse(this.payload, response.result, args.collection)\n}\n\nasync function queryDrafts(this: ContentAPIAdapter, args: QueryDraftsArgs) {\n const versionsResult = await this.findVersions({\n collection: args.collection,\n limit: args.limit,\n page: args.page,\n pagination: args.pagination,\n sort: args.sort,\n where: { ...args.where, latest: { equals: true } },\n })\n\n // queryDrafts should return documents with fields at root level, not nested in 'version'\n // So we need to unwrap the version structure and merge version fields to root\n const docs = versionsResult.docs.map((versionDoc) => {\n const { version, ...versionMeta } = versionDoc\n return {\n ...versionMeta,\n ...version,\n // Keep version metadata like parent, but document fields take precedence\n id: version.id, // Document ID, not version ID\n }\n })\n\n return {\n ...versionsResult,\n docs,\n }\n}\n\nasync function createVersion(this: ContentAPIAdapter, args: CreateVersionArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:create', {\n body: {\n collection: args.collectionSlug,\n contentSystemId: this.contentSystemId,\n versionDoc: {\n latest: !args.autosave,\n parent: String(args.parent),\n version: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {\n applyDefaults: true,\n }),\n },\n },\n })\n\n if (error) {\n throw new Error(`Content API createVersion error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from createVersion')\n }\n return unwrapDocument(this.payload, response.result, args.collectionSlug)\n}\n\nasync function updateVersion(this: ContentAPIAdapter, args: UpdateVersionArgs) {\n const where = args.where ?? { id: { equals: args.id } }\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n versionDoc: {\n version: dataToContentAPI(this.payload, args.collection, args.versionData),\n },\n where: convertPayloadWhereToContentAPI(where),\n ...buildMeta(this.payload, { collection: args.collection, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateVersion error: ${JSON.stringify(error)}`)\n }\n if (!response?.result || !('data' in response.result)) {\n throw new Error('No document data in updateVersion response')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function deleteVersions(this: ContentAPIAdapter, args: DeleteVersionsArgs) {\n if (!args.collection) {\n throw new Error('deleteVersions requires a collection')\n }\n\n const { error } = await this.client.POST('/api/v0/document_versions:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, { collection: args.collection, where: args.where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteVersions error: ${JSON.stringify(error)}`)\n }\n}\n\nasync function findOne(this: ContentAPIAdapter, args: FindOneArgs) {\n const { docs } = await this.find({\n collection: args.collection,\n joins: args.joins,\n limit: 1,\n locale: args.locale,\n pagination: false,\n where: args.where,\n })\n return docs[0] ?? null\n}\n\nasync function updateMany(this: ContentAPIAdapter, args: UpdateManyArgs) {\n const sortWithFallback = addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n doc: dataToContentAPI(this.payload, args.collection, args.data),\n limit: args.limit,\n returning: {},\n sort: sortWithFallback,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, { collection: args.collection, where: args.where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateMany error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from updateMany')\n }\n\n if (response.result && 'data' in response.result) {\n return response.result.data.map((doc) => unwrapDocument(this.payload, doc, args.collection))\n }\n return null\n}\n\nasync function updateOne(this: ContentAPIAdapter, args: UpdateOneArgs) {\n const where = args.where ?? { id: { equals: args.id } }\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n doc: dataToContentAPI(this.payload, args.collection, args.data),\n returning: {},\n where: convertPayloadWhereToContentAPI(where),\n ...buildMeta(this.payload, { collection: args.collection, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateOne error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from updateOne')\n }\n if (!response.result || !('data' in response.result)) {\n throw new Error('Unexpected response format from updateOne')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function deleteMany(this: ContentAPIAdapter, args: DeleteManyArgs) {\n const { error } = await this.client.POST('/api/v0/documents:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, { collection: args.collection, where: args.where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteMany error: ${JSON.stringify(error)}`)\n }\n}\n\nasync function deleteOne(this: ContentAPIAdapter, args: DeleteOneArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/documents:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n returning: {}, // Request deleted document back\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, { collection: args.collection, where: args.where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteOne error: ${JSON.stringify(error)}`)\n }\n if (!response?.result || !('data' in response.result)) {\n throw new Error('No document data in deleteOne response')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function create(this: ContentAPIAdapter, args: CreateArgs) {\n const id = (args.data.id as string | undefined) || uuid()\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:create', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n doc: {\n id: String(id),\n ...dataToContentAPI(this.payload, args.collection, args.data, {\n applyDefaults: true,\n createdAt: true,\n }),\n },\n },\n })\n\n if (error) {\n throw new Error(`Content API create error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from create')\n }\n return unwrapDocument(this.payload, response.result, args.collection)\n}\n\nasync function count(this: ContentAPIAdapter, args: CountArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/documents:count', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, { collection: args.collection, where: args.where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API count error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from count')\n }\n\n return { totalDocs: response.result.count }\n}\n\nasync function countVersions(this: ContentAPIAdapter, args: CountArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:count', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, { collection: args.collection, where: args.where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API countVersions error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from countVersions')\n }\n\n return { totalDocs: response.result.count }\n}\n\nasync function upsert(this: ContentAPIAdapter, args: UpsertArgs) {\n let documentId = args.data.id as string | undefined\n if (!documentId && args.where && 'id' in args.where) {\n const idClause = (args.where as Record<string, unknown>).id as Record<string, unknown>\n if (idClause && 'equals' in idClause) {\n documentId = idClause.equals as string\n }\n }\n if (!documentId) {\n documentId = uuid()\n }\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: { id: documentId },\n doc: dataToContentAPI(this.payload, args.collection, args.data, {\n applyDefaults: true,\n createdAt: true,\n }),\n where: convertPayloadWhereToContentAPI(args.where),\n },\n })\n\n if (error) {\n throw new Error(`Content API upsert error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from upsert')\n }\n if (!response.result || !('data' in response.result)) {\n throw new Error('Unexpected response format from upsert')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n throw new Error('No document data in upsert response')\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nfunction createGlobal(this: ContentAPIAdapter, args: CreateGlobalArgs) {\n return this.create({\n collection: getGlobalSlug(args.slug),\n data: { ...args.data, id: args.slug, globalType: args.slug },\n })\n}\n\nfunction findGlobal(this: ContentAPIAdapter, args: FindGlobalArgs) {\n return this.findOne({ collection: getGlobalSlug(args.slug), where: args.where ?? {} })\n}\n\nasync function updateGlobal(this: ContentAPIAdapter, args: UpdateGlobalArgs) {\n // Use upsert to ensure the global exists\n // Use slug as the consistent document ID for globals\n return this.upsert({\n collection: getGlobalSlug(args.slug),\n data: args.data,\n where: { id: { equals: args.slug } },\n })\n}\n\n// TODO: remove Omit when this PR is released: https://github.com/payloadcms/payload/pull/15183\nfunction findGlobalVersions(this: ContentAPIAdapter, args: Omit<FindGlobalVersionsArgs, 'skip'>) {\n return this.findVersions({\n collection: getGlobalSlug(args.global),\n limit: args.limit,\n page: args.page,\n pagination: args.pagination,\n sort: args.sort,\n where: args.where,\n })\n}\n\nfunction createGlobalVersion(this: ContentAPIAdapter, args: CreateGlobalVersionArgs) {\n // For globals, use the globalSlug as the consistent document ID\n // This matches what we do in updateGlobal\n return this.createVersion({\n autosave: args.autosave,\n collectionSlug: getGlobalSlug(args.globalSlug),\n createdAt: args.createdAt,\n parent: args.globalSlug,\n updatedAt: args.updatedAt,\n versionData: args.versionData,\n })\n}\n\nfunction updateGlobalVersion(this: ContentAPIAdapter, args: UpdateGlobalVersionArgs) {\n // UpdateVersion requires either id OR where, not both\n if (args.id !== undefined) {\n return this.updateVersion({\n id: args.id,\n collection: getGlobalSlug(args.global),\n versionData: args.versionData,\n })\n }\n // args.where is guaranteed by Payload when args.id is undefined\n return this.updateVersion({\n collection: getGlobalSlug(args.global),\n versionData: args.versionData,\n where: args.where,\n })\n}\n\nfunction countGlobalVersions(this: ContentAPIAdapter, args: CountGlobalVersionArgs) {\n return this.countVersions({ collection: getGlobalSlug(args.global), where: args.where })\n}\n\nexport const contentAPIAdapter = (opts: ContentAPIOptions): DatabaseAdapterObj => ({\n name: 'content-api',\n defaultIDType: 'text',\n init: ({ payload }) => {\n const client = createClient<paths>({ baseUrl: opts.url })\n\n const middlewareOpts = {\n auth: opts.auth,\n contentSystemId: opts.contentSystemId,\n logger: payload.logger,\n url: opts.url,\n }\n\n client.use(createAuthMiddleware(middlewareOpts))\n client.use(createErrorMiddleware(middlewareOpts))\n\n return createDatabaseAdapter<ContentAPIAdapter>({\n name: 'content-api',\n auth: opts.auth,\n beginTransaction: () => Promise.resolve(null),\n client,\n commitTransaction: async () => {},\n contentSystemId: opts.contentSystemId,\n count: count as Count,\n countGlobalVersions: countGlobalVersions as CountGlobalVersions,\n countVersions: countVersions as CountVersions,\n create: create as Create,\n createGlobal: createGlobal as CreateGlobal,\n createGlobalVersion: createGlobalVersion as CreateGlobalVersion,\n createVersion: createVersion as CreateVersion,\n defaultIDType: 'text',\n deleteMany: deleteMany as DeleteMany,\n deleteOne: deleteOne as DeleteOne,\n deleteVersions: deleteVersions as DeleteVersions,\n find: find as Find,\n findDistinct: () =>\n Promise.reject(new Error('findDistinct is not yet implemented for Content API adapter')),\n findGlobal: findGlobal as FindGlobal,\n findGlobalVersions: findGlobalVersions as FindGlobalVersions,\n findOne: findOne as FindOne,\n findVersions: findVersions as FindVersions,\n init,\n packageName: '@payloadcms/db-content-api',\n payload,\n queryDrafts: queryDrafts as QueryDrafts,\n rollbackTransaction: async () => {},\n updateGlobal: updateGlobal as UpdateGlobal,\n updateGlobalVersion: updateGlobalVersion as UpdateGlobalVersion,\n updateMany: updateMany as UpdateMany,\n updateOne: updateOne as UpdateOne,\n updateVersion: updateVersion as UpdateVersion,\n upsert: upsert as Upsert,\n url: opts.url,\n })\n },\n})\n"],"names":["createClient","createDatabaseAdapter","v4","uuid","getGlobalSlug","addFallbackSort","unwrapDocument","unwrapFindResponse","createAuthMiddleware","createErrorMiddleware","dataToContentAPI","convertPayloadJoinsToContentAPI","buildMeta","convertPayloadWhereToContentAPI","init","auth","mode","payload","logger","info","process","env","PAYLOAD_DROP_DATABASE","contentSystemId","fetch","url","body","JSON","stringify","headers","method","error","warn","message","existingIds","data","response","client","GET","params","path","Error","Set","map","c","id","size","collection","config","collections","has","slug","createCollection","call","global","globals","globalId","collectionId","POST","errorMessage","includes","findMany","joins","limit","locale","page","pagination","sort","where","localization","effectiveLocale","defaultLocale","undefined","join","result","find","args","collectionConfig","defaultSort","findVersions","sortWithFallback","whereClause","parentToDocumentId","queryDrafts","versionsResult","latest","equals","docs","versionDoc","version","versionMeta","createVersion","collectionSlug","autosave","parent","String","versionData","applyDefaults","updateVersion","createOnMissing","doc","deleteVersions","findOne","updateMany","returning","updateOne","deleteMany","deleteOne","create","createdAt","count","totalDocs","countVersions","upsert","documentId","idClause","createGlobal","globalType","findGlobal","updateGlobal","findGlobalVersions","createGlobalVersion","globalSlug","updatedAt","updateGlobalVersion","countGlobalVersions","contentAPIAdapter","opts","name","defaultIDType","baseUrl","middlewareOpts","use","beginTransaction","Promise","resolve","commitTransaction","findDistinct","reject","packageName","rollbackTransaction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/db-content-api/index.ts"],"sourcesContent":["import type {\n BaseDatabaseAdapter,\n Count,\n CountArgs,\n CountGlobalVersionArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterObj,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n QueryDrafts,\n QueryDraftsArgs,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateMany,\n UpdateManyArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n UpsertArgs,\n} from 'payload'\n\nimport createClient from 'openapi-fetch'\nimport { createDatabaseAdapter } from 'payload'\nimport { v4 as uuid } from 'uuid'\n\nimport type { paths } from './generated/content-api-types.js'\n\nimport { getGlobalSlug } from './temp-utilities/slug.js'\nimport { addFallbackSort } from './temp-utilities/sorting.js'\nimport { unwrapDocument, unwrapFindResponse } from './temp-utilities/unwrapDocument.js'\nimport { type AuthMode, createAuthMiddleware, createErrorMiddleware } from './utilities/auth.js'\nimport { dataToContentAPI } from './utilities/data/index.js'\nimport { convertPayloadJoinsToContentAPI } from './utilities/joins.js'\nimport { addFallbackLocale } from './utilities/locale/index.js'\nimport { buildMeta } from './utilities/meta/buildMeta.js'\nimport { convertPayloadWhereToContentAPI } from './utilities/where.js'\n\ntype ContentAPIOptions = {\n allowIDOnCreate?: boolean\n auth: AuthMode\n contentSystemId: string\n url: string\n}\n\nexport type ContentAPIAdapter = {\n auth: AuthMode\n clearDatabase: () => Promise<void>\n client: ReturnType<typeof createClient<paths>>\n contentSystemId: string\n url: string\n} & BaseDatabaseAdapter\n\nasync function syncCollections(this: ContentAPIAdapter) {\n let existingIds: Set<string>\n try {\n const { data: response, error } = await this.client.GET(\n '/api/v0/content_systems/{contentSystemId}/collections',\n {\n params: { path: { contentSystemId: this.contentSystemId } },\n },\n )\n\n if (error) {\n throw new Error(JSON.stringify(error))\n }\n if (!response) {\n throw new Error('No response from collections endpoint')\n }\n\n existingIds = new Set(response.data.map((c) => c.id))\n this.payload.logger.info(`Found ${existingIds.size} existing collections`)\n } catch (error) {\n this.payload.logger.warn(\n `Failed to fetch collections, will attempt to create all: ${(error as Error).message}`,\n )\n existingIds = new Set()\n }\n\n for (const collection of this.payload.config.collections) {\n if (!existingIds.has(collection.slug)) {\n await createCollection.call(this, collection.slug)\n }\n }\n\n for (const global of this.payload.config.globals || []) {\n const globalId = `_global-${global.slug}`\n if (!existingIds.has(globalId)) {\n await createCollection.call(this, globalId)\n }\n }\n}\n\nasync function init(this: ContentAPIAdapter) {\n if (this.auth.mode === 'apiKey') {\n this.payload.logger.info('Using API Key authentication')\n } else if (this.auth.mode === 'tokenStore') {\n this.payload.logger.info('Using TokenStore authentication (local dev)')\n } else {\n this.payload.logger.info('Using Dev JWT authentication (testing)')\n }\n\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n await this.clearDatabase()\n }\n\n await syncCollections.call(this)\n}\n\nasync function createCollection(this: ContentAPIAdapter, collectionId: string) {\n try {\n const { error } = await this.client.POST(\n '/api/v0/content_systems/{contentSystemId}/collections',\n {\n body: { id: collectionId },\n params: { path: { contentSystemId: this.contentSystemId } },\n },\n )\n\n if (error) {\n throw new Error(JSON.stringify(error))\n }\n this.payload.logger.info(`Created collection: ${collectionId}`)\n } catch (error) {\n const errorMessage = (error as Error).message\n if (!errorMessage.includes('already exists') && !errorMessage.includes('409')) {\n this.payload.logger.warn(`Failed to create collection ${collectionId}: ${errorMessage}`)\n }\n }\n}\n\nasync function findMany(\n this: ContentAPIAdapter,\n {\n collection,\n joins,\n limit,\n locale: localeArg,\n page,\n pagination: _pagination,\n sort,\n where,\n // Not yet passed to Content API:\n // - select: supported by Content API, pass-through possible\n // Not supported by Content API:\n // - draftsEnabled, versions, projection\n }: Pick<FindArgs, 'joins' | 'locale' | 'pagination' | 'sort' | 'where'> &\n Required<Pick<FindArgs, 'collection' | 'limit' | 'page'>>,\n) {\n const locale = addFallbackLocale(localeArg, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:find', {\n body: {\n collection,\n contentSystemId: this.contentSystemId,\n join: convertPayloadJoinsToContentAPI(this.payload, collection, joins),\n limit,\n locale,\n page: page ?? 1,\n sort: addFallbackSort(sort, this.payload, collection),\n where: convertPayloadWhereToContentAPI(where ?? {}),\n ...buildMeta(this.payload, { collection, locale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API findMany error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from findMany')\n }\n\n return unwrapFindResponse(this.payload, response.result, collection)\n}\n\nasync function find(this: ContentAPIAdapter, args: FindArgs) {\n const collectionConfig = this.payload.config.collections.find((c) => c.slug === args.collection)\n return findMany.call(this, {\n collection: args.collection,\n joins: args.joins,\n // TODO: FindArgs.limit should be 'number' not 'number | undefined'\n // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)\n limit: args.limit!,\n locale: args.locale,\n page: args.page ?? 1,\n pagination: args.pagination,\n sort: args.sort || collectionConfig?.defaultSort,\n where: args.where,\n })\n}\n\n// TODO: remove Omit when this PR is released: https://github.com/payloadcms/payload/pull/15183\nasync function findVersions(this: ContentAPIAdapter, args: Omit<FindVersionsArgs, 'skip'>) {\n const sortWithFallback = addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection)\n\n const whereClause = convertPayloadWhereToContentAPI(args.where ?? {}, {\n parentToDocumentId: true,\n stripVersionPrefix: true,\n })\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:find', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n // TODO: FindVersionsArgs.limit should be 'number' not 'number | undefined'\n // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)\n limit: args.limit!,\n locale,\n page: args.page ?? 1,\n sort: sortWithFallback,\n where: whereClause,\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API findVersions error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from findVersions')\n }\n\n return unwrapFindResponse(this.payload, response.result, args.collection)\n}\n\nasync function queryDrafts(this: ContentAPIAdapter, args: QueryDraftsArgs) {\n const versionsResult = await this.findVersions({\n collection: args.collection,\n limit: args.limit,\n locale: args.locale,\n page: args.page,\n pagination: args.pagination,\n sort: args.sort,\n where: { ...args.where, latest: { equals: true } },\n })\n\n // queryDrafts should return documents with fields at root level, not nested in 'version'\n // So we need to unwrap the version structure and merge version fields to root\n const docs = versionsResult.docs.map((versionDoc) => {\n const { version, ...versionMeta } = versionDoc\n return {\n ...versionMeta,\n ...version,\n // Keep version metadata like parent, but document fields take precedence\n id: version.id, // Document ID, not version ID\n }\n })\n\n return {\n ...versionsResult,\n docs,\n }\n}\n\nasync function createVersion(this: ContentAPIAdapter, args: CreateVersionArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:create', {\n body: {\n collection: args.collectionSlug,\n contentSystemId: this.contentSystemId,\n versionDoc: {\n createdAt: args.createdAt,\n latest: !args.autosave,\n parent: String(args.parent),\n updatedAt: args.updatedAt,\n version: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {\n applyDefaults: true,\n publishedLocale: args.publishedLocale,\n }),\n },\n },\n })\n\n if (error) {\n throw new Error(`Content API createVersion error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from createVersion')\n }\n return unwrapDocument(this.payload, response.result, args.collectionSlug)\n}\n\nasync function updateVersion(this: ContentAPIAdapter, args: UpdateVersionArgs) {\n const where = args.where ?? { id: { equals: args.id } }\n const locale = addFallbackLocale(args.locale, this.payload)\n\n // versionData contains version metadata plus nested version content\n const { publishedLocale, version, ...versionMeta } = args.versionData\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n locale,\n versionDoc: {\n createdAt: versionMeta.createdAt,\n latest: versionMeta.latest,\n parent: versionMeta.parent != null ? String(versionMeta.parent) : undefined,\n updatedAt: versionMeta.updatedAt,\n version: dataToContentAPI(this.payload, args.collection, version, { publishedLocale }),\n },\n where: convertPayloadWhereToContentAPI(where, { stripVersionPrefix: true }),\n ...buildMeta(this.payload, { collection: args.collection, locale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateVersion error: ${JSON.stringify(error)}`)\n }\n if (!response?.result || !('data' in response.result)) {\n throw new Error('No document data in updateVersion response')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function deleteVersions(this: ContentAPIAdapter, args: DeleteVersionsArgs) {\n if (!args.collection) {\n throw new Error('deleteVersions requires a collection')\n }\n\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { error } = await this.client.POST('/api/v0/document_versions:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where, { stripVersionPrefix: true }),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteVersions error: ${JSON.stringify(error)}`)\n }\n}\n\nasync function findOne(this: ContentAPIAdapter, args: FindOneArgs) {\n const { docs } = await this.find({\n collection: args.collection,\n joins: args.joins,\n limit: 1,\n locale: args.locale,\n pagination: false,\n where: args.where,\n })\n return docs[0] ?? null\n}\n\nasync function updateMany(this: ContentAPIAdapter, args: UpdateManyArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n doc: dataToContentAPI(this.payload, args.collection, args.data),\n limit: args.limit,\n locale,\n returning: {},\n sort: addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection),\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateMany error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from updateMany')\n }\n\n if (response.result && 'data' in response.result) {\n return response.result.data.map((doc) => unwrapDocument(this.payload, doc, args.collection))\n }\n return null\n}\n\nasync function updateOne(this: ContentAPIAdapter, args: UpdateOneArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n const where = args.where ?? { id: { equals: args.id } }\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n doc: dataToContentAPI(this.payload, args.collection, args.data),\n locale,\n returning: {},\n where: convertPayloadWhereToContentAPI(where),\n ...buildMeta(this.payload, { collection: args.collection, locale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateOne error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from updateOne')\n }\n if (!response.result || !('data' in response.result)) {\n throw new Error('Unexpected response format from updateOne')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function deleteMany(this: ContentAPIAdapter, args: DeleteManyArgs) {\n const locale = addFallbackLocale(args.req?.locale, this.payload)\n\n const { error } = await this.client.POST('/api/v0/documents:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteMany error: ${JSON.stringify(error)}`)\n }\n}\n\nasync function deleteOne(this: ContentAPIAdapter, args: DeleteOneArgs) {\n const locale = addFallbackLocale(args.req?.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n returning: {}, // Request deleted document back\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteOne error: ${JSON.stringify(error)}`)\n }\n if (!response?.result || !('data' in response.result)) {\n throw new Error('No document data in deleteOne response')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function create(this: ContentAPIAdapter, args: CreateArgs) {\n const isGlobalCollection = args.collection.startsWith('_global-')\n const customIDType = this.payload.collections[args.collection]?.customIDType\n const id =\n (isGlobalCollection || customIDType || this.allowIDOnCreate) &&\n args.data.id != null &&\n (typeof args.data.id === 'string' || typeof args.data.id === 'number')\n ? String(args.data.id)\n : uuid()\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:create', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n doc: {\n ...dataToContentAPI(this.payload, args.collection, args.data, {\n applyDefaults: true,\n createdAt: true,\n }),\n id,\n },\n locale,\n ...buildMeta(this.payload, { collection: args.collection, locale }),\n },\n })\n\n if (error) {\n throw new Error(`Content API create error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from create')\n }\n return unwrapDocument(this.payload, response.result, args.collection)\n}\n\nasync function clearDatabase(this: ContentAPIAdapter) {\n this.payload.logger.info(`---- CLEARING CONTENT API DATABASE ----`)\n try {\n await fetch(`${this.url}/dev/clear-db`, {\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n })\n this.payload.logger.info('---- CONTENT API DATABASE CLEARED ----')\n\n // Re-sync collections after clearing\n await syncCollections.call(this)\n } catch (error) {\n this.payload.logger.error(`Failed to clear database: ${(error as Error).message}`)\n throw error\n }\n}\n\nasync function count(this: ContentAPIAdapter, args: CountArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:count', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API count error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from count')\n }\n\n return { totalDocs: response.result.count }\n}\n\nasync function countVersions(this: ContentAPIAdapter, args: CountArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:count', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where, { stripVersionPrefix: true }),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API countVersions error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from countVersions')\n }\n\n return { totalDocs: response.result.count }\n}\n\nasync function upsert(this: ContentAPIAdapter, args: UpsertArgs) {\n let documentId = args.data.id as string | undefined\n if (!documentId && args.where && 'id' in args.where) {\n const idClause = (args.where as Record<string, unknown>).id as Record<string, unknown>\n if (idClause && 'equals' in idClause) {\n documentId = idClause.equals as string\n }\n }\n if (!documentId) {\n documentId = uuid()\n }\n\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: { id: documentId },\n doc: dataToContentAPI(this.payload, args.collection, args.data, {\n applyDefaults: true,\n createdAt: true,\n }),\n locale,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API upsert error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from upsert')\n }\n if (!response.result || !('data' in response.result)) {\n throw new Error('Unexpected response format from upsert')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n throw new Error('No document data in upsert response')\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nfunction createGlobal(this: ContentAPIAdapter, args: CreateGlobalArgs) {\n return this.create({\n collection: getGlobalSlug(args.slug),\n data: { ...args.data, id: args.slug, globalType: args.slug },\n })\n}\n\nfunction findGlobal(this: ContentAPIAdapter, args: FindGlobalArgs) {\n return this.findOne({\n collection: getGlobalSlug(args.slug),\n locale: args.locale,\n where: args.where ?? {},\n })\n}\n\nasync function updateGlobal(this: ContentAPIAdapter, args: UpdateGlobalArgs) {\n // Use upsert to ensure the global exists\n // Use slug as the consistent document ID for globals\n return this.upsert({\n collection: getGlobalSlug(args.slug),\n data: args.data,\n where: { id: { equals: args.slug } },\n })\n}\n\n// TODO: remove Omit when this PR is released: https://github.com/payloadcms/payload/pull/15183\nfunction findGlobalVersions(this: ContentAPIAdapter, args: Omit<FindGlobalVersionsArgs, 'skip'>) {\n return this.findVersions({\n collection: getGlobalSlug(args.global),\n limit: args.limit,\n locale: args.locale,\n page: args.page,\n pagination: args.pagination,\n sort: args.sort,\n where: args.where,\n })\n}\n\nfunction createGlobalVersion(this: ContentAPIAdapter, args: CreateGlobalVersionArgs) {\n // For globals, use the globalSlug as the consistent document ID\n // This matches what we do in updateGlobal\n return this.createVersion({\n autosave: args.autosave,\n collectionSlug: getGlobalSlug(args.globalSlug),\n createdAt: args.createdAt,\n parent: args.globalSlug,\n publishedLocale: args.publishedLocale,\n updatedAt: args.updatedAt,\n versionData: args.versionData,\n })\n}\n\nfunction updateGlobalVersion(this: ContentAPIAdapter, args: UpdateGlobalVersionArgs) {\n // UpdateVersion requires either id OR where, not both\n if (args.id !== undefined) {\n return this.updateVersion({\n id: args.id,\n collection: getGlobalSlug(args.global),\n locale: args.locale,\n versionData: args.versionData,\n })\n }\n // args.where is guaranteed by Payload when args.id is undefined\n return this.updateVersion({\n collection: getGlobalSlug(args.global),\n locale: args.locale,\n versionData: args.versionData,\n where: args.where,\n })\n}\n\nfunction countGlobalVersions(this: ContentAPIAdapter, args: CountGlobalVersionArgs) {\n return this.countVersions({\n collection: getGlobalSlug(args.global),\n locale: args.locale,\n where: args.where,\n })\n}\n\nexport const contentAPIAdapter = (opts: ContentAPIOptions): DatabaseAdapterObj => ({\n name: 'content-api',\n defaultIDType: 'text',\n init: ({ payload }) => {\n const client = createClient<paths>({ baseUrl: opts.url })\n\n const middlewareOpts = {\n auth: opts.auth,\n contentSystemId: opts.contentSystemId,\n logger: payload.logger,\n url: opts.url,\n }\n\n client.use(createAuthMiddleware(middlewareOpts))\n client.use(createErrorMiddleware(middlewareOpts))\n\n return createDatabaseAdapter<ContentAPIAdapter>({\n name: 'content-api',\n allowIDOnCreate: opts.allowIDOnCreate ?? false,\n auth: opts.auth,\n beginTransaction: () => Promise.resolve(null),\n clearDatabase: clearDatabase as () => Promise<void>,\n client,\n commitTransaction: async () => {},\n contentSystemId: opts.contentSystemId,\n count: count as Count,\n countGlobalVersions: countGlobalVersions as CountGlobalVersions,\n countVersions: countVersions as CountVersions,\n create: create as Create,\n createGlobal: createGlobal as CreateGlobal,\n createGlobalVersion: createGlobalVersion as CreateGlobalVersion,\n createVersion: createVersion as CreateVersion,\n defaultIDType: 'text',\n deleteMany: deleteMany as DeleteMany,\n deleteOne: deleteOne as DeleteOne,\n deleteVersions: deleteVersions as DeleteVersions,\n find: find as Find,\n findDistinct: () =>\n Promise.reject(new Error('findDistinct is not yet implemented for Content API adapter')),\n findGlobal: findGlobal as FindGlobal,\n findGlobalVersions: findGlobalVersions as FindGlobalVersions,\n findOne: findOne as FindOne,\n findVersions: findVersions as FindVersions,\n init,\n packageName: '@payloadcms/db-content-api',\n payload,\n queryDrafts: queryDrafts as QueryDrafts,\n rollbackTransaction: async () => {},\n updateGlobal: updateGlobal as UpdateGlobal,\n updateGlobalVersion: updateGlobalVersion as UpdateGlobalVersion,\n updateMany: updateMany as UpdateMany,\n updateOne: updateOne as UpdateOne,\n updateVersion: updateVersion as UpdateVersion,\n upsert: upsert as Upsert,\n url: opts.url,\n })\n },\n})\n"],"names":["createClient","createDatabaseAdapter","v4","uuid","getGlobalSlug","addFallbackSort","unwrapDocument","unwrapFindResponse","createAuthMiddleware","createErrorMiddleware","dataToContentAPI","convertPayloadJoinsToContentAPI","addFallbackLocale","buildMeta","convertPayloadWhereToContentAPI","syncCollections","existingIds","data","response","error","client","GET","params","path","contentSystemId","Error","JSON","stringify","Set","map","c","id","payload","logger","info","size","warn","message","collection","config","collections","has","slug","createCollection","call","global","globals","globalId","init","auth","mode","process","env","PAYLOAD_DROP_DATABASE","clearDatabase","collectionId","POST","body","errorMessage","includes","findMany","joins","limit","locale","localeArg","page","pagination","_pagination","sort","where","join","result","find","args","collectionConfig","defaultSort","findVersions","sortWithFallback","whereClause","parentToDocumentId","stripVersionPrefix","queryDrafts","versionsResult","latest","equals","docs","versionDoc","version","versionMeta","createVersion","collectionSlug","createdAt","autosave","parent","String","updatedAt","versionData","applyDefaults","publishedLocale","updateVersion","createOnMissing","undefined","doc","deleteVersions","findOne","updateMany","returning","updateOne","deleteMany","req","deleteOne","create","isGlobalCollection","startsWith","customIDType","allowIDOnCreate","fetch","url","headers","method","count","totalDocs","countVersions","upsert","documentId","idClause","createGlobal","globalType","findGlobal","updateGlobal","findGlobalVersions","createGlobalVersion","globalSlug","updateGlobalVersion","countGlobalVersions","contentAPIAdapter","opts","name","defaultIDType","baseUrl","middlewareOpts","use","beginTransaction","Promise","resolve","commitTransaction","findDistinct","reject","packageName","rollbackTransaction"],"mappings":"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"}
|