@payloadcms/figma 0.0.1-alpha.40 → 0.0.1-alpha.42

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 (100) hide show
  1. package/dist/auth/oauth-flow.d.ts.map +1 -1
  2. package/dist/auth/oauth-flow.js +6 -3
  3. package/dist/auth/oauth-flow.js.map +1 -1
  4. package/dist/auth/refresh.d.ts +2 -1
  5. package/dist/auth/refresh.d.ts.map +1 -1
  6. package/dist/auth/refresh.js +11 -3
  7. package/dist/auth/refresh.js.map +1 -1
  8. package/dist/auth/token-store.d.ts +6 -4
  9. package/dist/auth/token-store.d.ts.map +1 -1
  10. package/dist/auth/token-store.js +17 -14
  11. package/dist/auth/token-store.js.map +1 -1
  12. package/dist/auth/types.d.ts +7 -4
  13. package/dist/auth/types.d.ts.map +1 -1
  14. package/dist/auth/types.js.map +1 -1
  15. package/dist/cli.js +8 -6
  16. package/dist/cli.js.map +1 -1
  17. package/dist/commands/deploy.d.ts.map +1 -1
  18. package/dist/commands/deploy.js +2 -1
  19. package/dist/commands/deploy.js.map +1 -1
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +12 -1
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/list-tokens.d.ts +3 -3
  24. package/dist/commands/list-tokens.d.ts.map +1 -1
  25. package/dist/commands/list-tokens.js +20 -8
  26. package/dist/commands/list-tokens.js.map +1 -1
  27. package/dist/commands/login.d.ts.map +1 -1
  28. package/dist/commands/login.js +12 -4
  29. package/dist/commands/login.js.map +1 -1
  30. package/dist/commands/logout.d.ts +5 -4
  31. package/dist/commands/logout.d.ts.map +1 -1
  32. package/dist/commands/logout.js +55 -12
  33. package/dist/commands/logout.js.map +1 -1
  34. package/dist/db-content-api/generated/content-api-types.d.ts +168 -102
  35. package/dist/db-content-api/generated/content-api-types.d.ts.map +1 -1
  36. package/dist/db-content-api/generated/content-api-types.js.map +1 -1
  37. package/dist/db-content-api/index.d.ts.map +1 -1
  38. package/dist/db-content-api/index.js +82 -67
  39. package/dist/db-content-api/index.js.map +1 -1
  40. package/dist/db-content-api/temp-utilities/unwrapDocument.d.ts +31 -1
  41. package/dist/db-content-api/temp-utilities/unwrapDocument.d.ts.map +1 -1
  42. package/dist/db-content-api/temp-utilities/unwrapDocument.js +24 -24
  43. package/dist/db-content-api/temp-utilities/unwrapDocument.js.map +1 -1
  44. package/dist/db-content-api/utilities/buildPathTypes.d.ts +12 -0
  45. package/dist/db-content-api/utilities/buildPathTypes.d.ts.map +1 -0
  46. package/dist/db-content-api/utilities/buildPathTypes.js +157 -0
  47. package/dist/db-content-api/utilities/buildPathTypes.js.map +1 -0
  48. package/dist/db-content-api/utilities/data/index.d.ts +2 -0
  49. package/dist/db-content-api/utilities/data/index.d.ts.map +1 -1
  50. package/dist/db-content-api/utilities/data/index.js +18 -1
  51. package/dist/db-content-api/utilities/data/index.js.map +1 -1
  52. package/dist/db-content-api/utilities/where.d.ts.map +1 -1
  53. package/dist/db-content-api/utilities/where.js +17 -3
  54. package/dist/db-content-api/utilities/where.js.map +1 -1
  55. package/dist/oauth/components/LogoutButton/index.d.ts.map +1 -1
  56. package/dist/oauth/components/LogoutButton/index.js +5 -3
  57. package/dist/oauth/components/LogoutButton/index.js.map +1 -1
  58. package/dist/oauth/endpoints/getLoginEndpoint.d.ts.map +1 -1
  59. package/dist/oauth/endpoints/getLoginEndpoint.js +17 -7
  60. package/dist/oauth/endpoints/getLoginEndpoint.js.map +1 -1
  61. package/dist/oauth/endpoints/getLogoutEndpoint.d.ts.map +1 -1
  62. package/dist/oauth/endpoints/getLogoutEndpoint.js +7 -4
  63. package/dist/oauth/endpoints/getLogoutEndpoint.js.map +1 -1
  64. package/dist/plugin/build-config.js +3 -3
  65. package/dist/plugin/build-config.js.map +1 -1
  66. package/dist/storage-content-api/api-types.d.ts +8 -1
  67. package/dist/storage-content-api/api-types.d.ts.map +1 -1
  68. package/dist/storage-content-api/api-types.js.map +1 -1
  69. package/dist/storage-content-api/client-uploads/generateSignedURL.js +1 -0
  70. package/dist/storage-content-api/client-uploads/generateSignedURL.js.map +1 -1
  71. package/dist/storage-content-api/generateURL.d.ts.map +1 -1
  72. package/dist/storage-content-api/generateURL.js +3 -2
  73. package/dist/storage-content-api/generateURL.js.map +1 -1
  74. package/dist/storage-content-api/handleDelete.d.ts.map +1 -1
  75. package/dist/storage-content-api/handleDelete.js +4 -2
  76. package/dist/storage-content-api/handleDelete.js.map +1 -1
  77. package/dist/storage-content-api/handleUpload.d.ts +1 -1
  78. package/dist/storage-content-api/handleUpload.d.ts.map +1 -1
  79. package/dist/storage-content-api/handleUpload.js +11 -3
  80. package/dist/storage-content-api/handleUpload.js.map +1 -1
  81. package/dist/storage-content-api/staticHandler.js +1 -0
  82. package/dist/storage-content-api/staticHandler.js.map +1 -1
  83. package/dist/utils/format-env-suffix.d.ts +12 -0
  84. package/dist/utils/format-env-suffix.d.ts.map +1 -0
  85. package/dist/utils/format-env-suffix.js +13 -0
  86. package/dist/utils/format-env-suffix.js.map +1 -0
  87. package/dist/utils/lambda-config.js +26 -12
  88. package/dist/utils/lambda-config.js.map +1 -1
  89. package/dist/utils/messages.d.ts.map +1 -1
  90. package/dist/utils/messages.js +1 -2
  91. package/dist/utils/messages.js.map +1 -1
  92. package/package.json +1 -1
  93. package/dist/db-content-api/temp-utilities/pagination.d.ts +0 -13
  94. package/dist/db-content-api/temp-utilities/pagination.d.ts.map +0 -1
  95. package/dist/db-content-api/temp-utilities/pagination.js +0 -45
  96. package/dist/db-content-api/temp-utilities/pagination.js.map +0 -1
  97. package/dist/oauth/utilities/getAdminPath.d.ts +0 -8
  98. package/dist/oauth/utilities/getAdminPath.d.ts.map +0 -1
  99. package/dist/oauth/utilities/getAdminPath.js +0 -9
  100. package/dist/oauth/utilities/getAdminPath.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import createClient from 'openapi-fetch';
2
2
  import { createDatabaseAdapter } from 'payload';
3
3
  import { v4 as uuid } from 'uuid';
4
- import { getPaginationData } from './temp-utilities/pagination.js';
5
4
  import { getGlobalSlug } from './temp-utilities/slug.js';
6
5
  import { addFallbackSort } from './temp-utilities/sorting.js';
7
- import { unwrapDocument } from './temp-utilities/unwrapDocument.js';
6
+ import { unwrapDocument, unwrapFindResponse } from './temp-utilities/unwrapDocument.js';
8
7
  import { createAuthMiddleware, createErrorMiddleware } from './utilities/auth.js';
8
+ import { buildPathTypes } from './utilities/buildPathTypes.js';
9
9
  import { dataToContentAPI } from './utilities/data/index.js';
10
10
  import { convertPayloadJoinsToContentAPI } from './utilities/joins.js';
11
11
  import { convertPayloadWhereToContentAPI } from './utilities/where.js';
@@ -93,13 +93,14 @@ async function createCollection(collectionId) {
93
93
  async function findMany({ collection, joins, limit, page, pagination, sort, where }) {
94
94
  const { data: response, error } = await this.client.POST('/api/v0/documents:find', {
95
95
  body: {
96
- collectionId: collection,
96
+ collection,
97
97
  contentSystemId: this.contentSystemId,
98
98
  join: convertPayloadJoinsToContentAPI(this.payload, collection, joins),
99
99
  limit,
100
100
  page: page ?? 1,
101
101
  sort: addFallbackSort(sort, this.payload, collection),
102
- where: convertPayloadWhereToContentAPI(where ?? {})
102
+ where: convertPayloadWhereToContentAPI(where ?? {}),
103
+ ...buildPathTypes(this.payload, collection, where)
103
104
  }
104
105
  });
105
106
  if (error) {
@@ -108,17 +109,16 @@ async function findMany({ collection, joins, limit, page, pagination, sort, wher
108
109
  if (!response) {
109
110
  throw new Error('No response from findMany');
110
111
  }
111
- return {
112
- docs: response.result.data.map((doc)=>unwrapDocument(this.payload, doc, collection)),
113
- ...getPaginationData(response.result.pagination, pagination)
114
- };
112
+ return unwrapFindResponse(this.payload, response.result, collection);
115
113
  }
116
114
  async function find(args) {
117
115
  const collectionConfig = this.payload.config.collections.find((c)=>c.slug === args.collection);
118
116
  return findMany.call(this, {
119
117
  collection: args.collection,
120
118
  joins: args.joins,
121
- limit: args.limit ?? 0,
119
+ // TODO: FindArgs.limit should be 'number' not 'number | undefined'
120
+ // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)
121
+ limit: args.limit,
122
122
  page: args.page ?? 1,
123
123
  pagination: args.pagination,
124
124
  sort: args.sort || collectionConfig?.defaultSort,
@@ -133,12 +133,15 @@ async function findVersions(args) {
133
133
  });
134
134
  const { data: response, error } = await this.client.POST('/api/v0/document_versions:find', {
135
135
  body: {
136
- collectionId: args.collection,
136
+ collection: args.collection,
137
137
  contentSystemId: this.contentSystemId,
138
- limit: args.limit ?? 0,
138
+ // TODO: FindVersionsArgs.limit should be 'number' not 'number | undefined'
139
+ // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)
140
+ limit: args.limit,
139
141
  page: args.page ?? 1,
140
142
  sort: sortWithFallback,
141
- where: whereClause
143
+ where: whereClause,
144
+ ...buildPathTypes(this.payload, args.collection, args.where)
142
145
  }
143
146
  });
144
147
  if (error) {
@@ -147,11 +150,7 @@ async function findVersions(args) {
147
150
  if (!response) {
148
151
  throw new Error('No response from findVersions');
149
152
  }
150
- const docs = response.result.data.map((doc)=>unwrapDocument(this.payload, doc, args.collection));
151
- return {
152
- docs,
153
- ...getPaginationData(response.result.pagination, args.pagination)
154
- };
153
+ return unwrapFindResponse(this.payload, response.result, args.collection);
155
154
  }
156
155
  async function queryDrafts(args) {
157
156
  const versionsResult = await this.findVersions({
@@ -186,13 +185,15 @@ async function queryDrafts(args) {
186
185
  async function createVersion(args) {
187
186
  const { data: response, error } = await this.client.POST('/api/v0/document_versions:create', {
188
187
  body: {
189
- collectionId: args.collectionSlug,
188
+ collection: args.collectionSlug,
190
189
  contentSystemId: this.contentSystemId,
191
- data: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {
192
- applyDefaults: true
193
- }),
194
- documentId: String(args.parent),
195
- latest: !args.autosave
190
+ versionDoc: {
191
+ latest: !args.autosave,
192
+ parent: String(args.parent),
193
+ version: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {
194
+ applyDefaults: true
195
+ })
196
+ }
196
197
  }
197
198
  });
198
199
  if (error) {
@@ -201,23 +202,24 @@ async function createVersion(args) {
201
202
  if (!response) {
202
203
  throw new Error('No response from createVersion');
203
204
  }
204
- if (!('data' in response.result)) {
205
- throw new Error('Unexpected response format from createVersion');
206
- }
207
- return unwrapDocument(this.payload, response.result.data, args.collectionSlug);
205
+ return unwrapDocument(this.payload, response.result, args.collectionSlug);
208
206
  }
209
207
  async function updateVersion(args) {
208
+ const where = args.where ?? {
209
+ id: {
210
+ equals: args.id
211
+ }
212
+ };
210
213
  const { data: response, error } = await this.client.POST('/api/v0/document_versions:update', {
211
214
  body: {
212
- collectionId: args.collection,
215
+ collection: args.collection,
213
216
  contentSystemId: this.contentSystemId,
214
217
  createOnMissing: false,
215
- data: dataToContentAPI(this.payload, args.collection, args.versionData),
216
- where: convertPayloadWhereToContentAPI(args.where ?? {
217
- id: {
218
- equals: args.id
219
- }
220
- })
218
+ versionDoc: {
219
+ version: dataToContentAPI(this.payload, args.collection, args.versionData)
220
+ },
221
+ where: convertPayloadWhereToContentAPI(where),
222
+ ...buildPathTypes(this.payload, args.collection, where)
221
223
  }
222
224
  });
223
225
  if (error) {
@@ -238,9 +240,10 @@ async function deleteVersions(args) {
238
240
  }
239
241
  const { error } = await this.client.POST('/api/v0/document_versions:delete', {
240
242
  body: {
241
- collectionId: args.collection,
243
+ collection: args.collection,
242
244
  contentSystemId: this.contentSystemId,
243
- where: convertPayloadWhereToContentAPI(args.where)
245
+ where: convertPayloadWhereToContentAPI(args.where),
246
+ ...buildPathTypes(this.payload, args.collection, args.where)
244
247
  }
245
248
  });
246
249
  if (error) {
@@ -258,14 +261,18 @@ async function findOne(args) {
258
261
  return docs[0] ?? null;
259
262
  }
260
263
  async function updateMany(args) {
264
+ const sortWithFallback = addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection);
261
265
  const { data: response, error } = await this.client.POST('/api/v0/documents:update', {
262
266
  body: {
263
- collectionId: args.collection,
267
+ collection: args.collection,
264
268
  contentSystemId: this.contentSystemId,
265
269
  createOnMissing: false,
266
- data: dataToContentAPI(this.payload, args.collection, args.data),
270
+ doc: dataToContentAPI(this.payload, args.collection, args.data),
271
+ limit: args.limit,
267
272
  returning: {},
268
- where: convertPayloadWhereToContentAPI(args.where)
273
+ sort: sortWithFallback,
274
+ where: convertPayloadWhereToContentAPI(args.where),
275
+ ...buildPathTypes(this.payload, args.collection, args.where)
269
276
  }
270
277
  });
271
278
  if (error) {
@@ -280,18 +287,20 @@ async function updateMany(args) {
280
287
  return null;
281
288
  }
282
289
  async function updateOne(args) {
290
+ const where = args.where ?? {
291
+ id: {
292
+ equals: args.id
293
+ }
294
+ };
283
295
  const { data: response, error } = await this.client.POST('/api/v0/documents:update', {
284
296
  body: {
285
- collectionId: args.collection,
297
+ collection: args.collection,
286
298
  contentSystemId: this.contentSystemId,
287
299
  createOnMissing: false,
288
- data: dataToContentAPI(this.payload, args.collection, args.data),
300
+ doc: dataToContentAPI(this.payload, args.collection, args.data),
289
301
  returning: {},
290
- where: convertPayloadWhereToContentAPI(args.where ?? {
291
- id: {
292
- equals: args.id
293
- }
294
- })
302
+ where: convertPayloadWhereToContentAPI(where),
303
+ ...buildPathTypes(this.payload, args.collection, where)
295
304
  }
296
305
  });
297
306
  if (error) {
@@ -312,9 +321,10 @@ async function updateOne(args) {
312
321
  async function deleteMany(args) {
313
322
  const { error } = await this.client.POST('/api/v0/documents:delete', {
314
323
  body: {
315
- collectionId: args.collection,
324
+ collection: args.collection,
316
325
  contentSystemId: this.contentSystemId,
317
- where: convertPayloadWhereToContentAPI(args.where)
326
+ where: convertPayloadWhereToContentAPI(args.where),
327
+ ...buildPathTypes(this.payload, args.collection, args.where)
318
328
  }
319
329
  });
320
330
  if (error) {
@@ -324,10 +334,11 @@ async function deleteMany(args) {
324
334
  async function deleteOne(args) {
325
335
  const { data: response, error } = await this.client.POST('/api/v0/documents:delete', {
326
336
  body: {
327
- collectionId: args.collection,
337
+ collection: args.collection,
328
338
  contentSystemId: this.contentSystemId,
329
339
  returning: {},
330
- where: convertPayloadWhereToContentAPI(args.where)
340
+ where: convertPayloadWhereToContentAPI(args.where),
341
+ ...buildPathTypes(this.payload, args.collection, args.where)
331
342
  }
332
343
  });
333
344
  if (error) {
@@ -346,12 +357,15 @@ async function create(args) {
346
357
  const id = args.data.id || uuid();
347
358
  const { data: response, error } = await this.client.POST('/api/v0/documents:create', {
348
359
  body: {
349
- id: String(id),
350
- collectionId: args.collection,
360
+ collection: args.collection,
351
361
  contentSystemId: this.contentSystemId,
352
- data: dataToContentAPI(this.payload, args.collection, args.data, {
353
- applyDefaults: true
354
- })
362
+ doc: {
363
+ id: String(id),
364
+ ...dataToContentAPI(this.payload, args.collection, args.data, {
365
+ applyDefaults: true,
366
+ createdAt: true
367
+ })
368
+ }
355
369
  }
356
370
  });
357
371
  if (error) {
@@ -360,17 +374,15 @@ async function create(args) {
360
374
  if (!response) {
361
375
  throw new Error('No response from create');
362
376
  }
363
- if (!('data' in response.result)) {
364
- throw new Error('Unexpected response format from create');
365
- }
366
- return unwrapDocument(this.payload, response.result.data, args.collection);
377
+ return unwrapDocument(this.payload, response.result, args.collection);
367
378
  }
368
379
  async function count(args) {
369
380
  const { data: response, error } = await this.client.POST('/api/v0/documents:count', {
370
381
  body: {
371
- collectionId: args.collection,
382
+ collection: args.collection,
372
383
  contentSystemId: this.contentSystemId,
373
- where: convertPayloadWhereToContentAPI(args.where)
384
+ where: convertPayloadWhereToContentAPI(args.where),
385
+ ...buildPathTypes(this.payload, args.collection, args.where)
374
386
  }
375
387
  });
376
388
  if (error) {
@@ -386,9 +398,10 @@ async function count(args) {
386
398
  async function countVersions(args) {
387
399
  const { data: response, error } = await this.client.POST('/api/v0/document_versions:count', {
388
400
  body: {
389
- collectionId: args.collection,
401
+ collection: args.collection,
390
402
  contentSystemId: this.contentSystemId,
391
- where: convertPayloadWhereToContentAPI(args.where)
403
+ where: convertPayloadWhereToContentAPI(args.where),
404
+ ...buildPathTypes(this.payload, args.collection, args.where)
392
405
  }
393
406
  });
394
407
  if (error) {
@@ -414,13 +427,14 @@ async function upsert(args) {
414
427
  }
415
428
  const { data: response, error } = await this.client.POST('/api/v0/documents:update', {
416
429
  body: {
417
- collectionId: args.collection,
430
+ collection: args.collection,
418
431
  contentSystemId: this.contentSystemId,
419
432
  createOnMissing: {
420
433
  id: documentId
421
434
  },
422
- data: dataToContentAPI(this.payload, args.collection, args.data, {
423
- applyDefaults: true
435
+ doc: dataToContentAPI(this.payload, args.collection, args.data, {
436
+ applyDefaults: true,
437
+ createdAt: true
424
438
  }),
425
439
  where: convertPayloadWhereToContentAPI(args.where)
426
440
  }
@@ -445,6 +459,7 @@ function createGlobal(args) {
445
459
  collection: getGlobalSlug(args.slug),
446
460
  data: {
447
461
  ...args.data,
462
+ id: args.slug,
448
463
  globalType: args.slug
449
464
  }
450
465
  });
@@ -531,7 +546,7 @@ export const contentAPIAdapter = (opts)=>({
531
546
  return createDatabaseAdapter({
532
547
  name: 'content-api',
533
548
  auth: opts.auth,
534
- beginTransaction: ()=>Promise.resolve('no-op-transaction'),
549
+ beginTransaction: ()=>Promise.resolve(null),
535
550
  client,
536
551
  commitTransaction: async ()=>{},
537
552
  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 { getPaginationData } from './temp-utilities/pagination.js'\nimport { getGlobalSlug } from './temp-utilities/slug.js'\nimport { addFallbackSort } from './temp-utilities/sorting.js'\nimport { unwrapDocument } 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 { 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 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, locale, versions, projection\n }: Pick<FindArgs, 'joins' | 'pagination' | 'sort' | 'where'> &\n Required<Pick<FindArgs, 'collection' | 'limit' | 'page'>>,\n) {\n const { data: response, error } = await this.client.POST('/api/v0/documents:find', {\n body: {\n collectionId: collection,\n contentSystemId: this.contentSystemId,\n join: convertPayloadJoinsToContentAPI(this.payload, collection, joins),\n limit,\n page: page ?? 1,\n sort: addFallbackSort(sort, this.payload, collection),\n where: convertPayloadWhereToContentAPI(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 {\n docs: response.result.data.map((doc) => unwrapDocument(this.payload, doc, collection)),\n ...getPaginationData(response.result.pagination, pagination),\n }\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 limit: args.limit ?? 0,\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 const { data: response, error } = await this.client.POST('/api/v0/document_versions:find', {\n body: {\n collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n limit: args.limit ?? 0,\n page: args.page ?? 1,\n sort: sortWithFallback,\n where: whereClause,\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 const docs = response.result.data.map((doc) => unwrapDocument(this.payload, doc, args.collection))\n\n return {\n docs,\n ...getPaginationData(response.result.pagination, args.pagination),\n }\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 as any\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 collectionId: args.collectionSlug,\n contentSystemId: this.contentSystemId,\n data: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {\n applyDefaults: true,\n }),\n documentId: String(args.parent),\n latest: !args.autosave,\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 if (!('data' in response.result)) {\n throw new Error('Unexpected response format from createVersion')\n }\n\n return unwrapDocument(this.payload, response.result.data, args.collectionSlug)\n}\n\nasync function updateVersion(this: ContentAPIAdapter, args: UpdateVersionArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:update', {\n body: {\n collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n data: dataToContentAPI(this.payload, args.collection, args.versionData),\n where: convertPayloadWhereToContentAPI(args.where ?? { id: { equals: args.id } }),\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 collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(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 pagination: false,\n where: args.where,\n })\n return docs[0] ?? null\n}\n\nasync function updateMany(this: ContentAPIAdapter, args: UpdateManyArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n data: dataToContentAPI(this.payload, args.collection, args.data),\n returning: {},\n where: convertPayloadWhereToContentAPI(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 { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n data: dataToContentAPI(this.payload, args.collection, args.data),\n returning: {},\n where: convertPayloadWhereToContentAPI(args.where ?? { id: { equals: args.id } }),\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 collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(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 collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n returning: {}, // Request deleted document back\n where: convertPayloadWhereToContentAPI(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 id: String(id),\n collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n data: dataToContentAPI(this.payload, args.collection, args.data, { applyDefaults: true }),\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 if (!('data' in response.result)) {\n throw new Error('Unexpected response format from create')\n }\n\n return unwrapDocument(this.payload, response.result.data, 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 collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(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 collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n where: convertPayloadWhereToContentAPI(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 collectionId: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: { id: documentId },\n data: dataToContentAPI(this.payload, args.collection, args.data, { applyDefaults: true }),\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, 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('no-op-transaction'),\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","getPaginationData","getGlobalSlug","addFallbackSort","unwrapDocument","createAuthMiddleware","createErrorMiddleware","dataToContentAPI","convertPayloadJoinsToContentAPI","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","page","pagination","sort","where","join","docs","result","doc","find","args","collectionConfig","defaultSort","findVersions","sortWithFallback","whereClause","parentToDocumentId","queryDrafts","versionsResult","latest","equals","versionDoc","version","versionMeta","createVersion","collectionSlug","versionData","applyDefaults","documentId","String","parent","autosave","updateVersion","createOnMissing","deleteVersions","findOne","updateMany","returning","updateOne","deleteMany","deleteOne","create","count","totalDocs","countVersions","upsert","idClause","createGlobal","globalType","findGlobal","updateGlobal","findGlobalVersions","createGlobalVersion","globalSlug","createdAt","updatedAt","updateGlobalVersion","undefined","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 { buildPathTypes } from './utilities/buildPathTypes.js'\nimport { dataToContentAPI } from './utilities/data/index.js'\nimport { convertPayloadJoinsToContentAPI } from './utilities/joins.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 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, locale, versions, projection\n }: Pick<FindArgs, 'joins' | 'pagination' | 'sort' | 'where'> &\n Required<Pick<FindArgs, 'collection' | 'limit' | 'page'>>,\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 page: page ?? 1,\n sort: addFallbackSort(sort, this.payload, collection),\n where: convertPayloadWhereToContentAPI(where ?? {}),\n ...buildPathTypes(this.payload, collection, 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 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 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 page: args.page ?? 1,\n sort: sortWithFallback,\n where: whereClause,\n ...buildPathTypes(this.payload, args.collection, args.where),\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 ...buildPathTypes(this.payload, 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 ...buildPathTypes(this.payload, args.collection, 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 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 ...buildPathTypes(this.payload, args.collection, 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 ...buildPathTypes(this.payload, 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 ...buildPathTypes(this.payload, args.collection, 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 ...buildPathTypes(this.payload, args.collection, 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 ...buildPathTypes(this.payload, args.collection, 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 ...buildPathTypes(this.payload, args.collection, 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","buildPathTypes","dataToContentAPI","convertPayloadJoinsToContentAPI","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","page","pagination","sort","where","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","undefined","countGlobalVersions","contentAPIAdapter","opts","name","defaultIDType","baseUrl","middlewareOpts","use","beginTransaction","Promise","resolve","commitTransaction","findDistinct","reject","packageName","rollbackTransaction"],"mappings":"AAgDA,OAAOA,kBAAkB,gBAAe;AACxC,SAASC,qBAAqB,QAAQ,UAAS;AAC/C,SAASC,MAAMC,IAAI,QAAQ,OAAM;AAIjC,SAASC,aAAa,QAAQ,2BAA0B;AACxD,SAASC,eAAe,QAAQ,8BAA6B;AAC7D,SAASC,cAAc,EAAEC,kBAAkB,QAAQ,qCAAoC;AACvF,SAAwBC,oBAAoB,EAAEC,qBAAqB,QAAQ,sBAAqB;AAChG,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,4BAA2B;AAC5D,SAASC,+BAA+B,QAAQ,uBAAsB;AACtE,SAASC,+BAA+B,QAAQ,uBAAsB;AAetE,eAAeC;IACb,IAAI,IAAI,CAACC,IAAI,CAACC,IAAI,KAAK,UAAU;QAC/B,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC;IAC3B,OAAO,IAAI,IAAI,CAACJ,IAAI,CAACC,IAAI,KAAK,cAAc;QAC1C,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC;IAC3B,OAAO;QACL,IAAI,CAACF,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC;IAC3B;IAEA,IAAIC,QAAQC,GAAG,CAACC,qBAAqB,KAAK,QAAQ;QAChD,IAAI,CAACL,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAACI,eAAe,CAAC,MAAM,CAAC;QAC1F,IAAI;YACF,MAAMC,MAAM,GAAG,IAAI,CAACC,GAAG,CAAC,aAAa,CAAC,EAAE;gBACtCC,MAAMC,KAAKC,SAAS,CAAC;oBAAEL,iBAAiB,IAAI,CAACA,eAAe;gBAAC;gBAC7DM,SAAS;oBAAE,gBAAgB;gBAAmB;gBAC9CC,QAAQ;YACV;YACA,IAAI,CAACb,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC;QAC3B,EAAE,OAAOY,OAAO;YACd,IAAI,CAACd,OAAO,CAACC,MAAM,CAACc,IAAI,CAAC,CAAC,+BAA+B,EAAE,AAACD,MAAgBE,OAAO,EAAE;QACvF;IACF;IAEA,IAAIC;IACJ,IAAI;QACF,MAAM,EAAEC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACC,GAAG,CACrD,yDACA;YACEC,QAAQ;gBAAEC,MAAM;oBAAEjB,iBAAiB,IAAI,CAACA,eAAe;gBAAC;YAAE;QAC5D;QAGF,IAAIQ,OAAO;YACT,MAAM,IAAIU,MAAMd,KAAKC,SAAS,CAACG;QACjC;QACA,IAAI,CAACK,UAAU;YACb,MAAM,IAAIK,MAAM;QAClB;QAEAP,cAAc,IAAIQ,IAAIN,SAASD,IAAI,CAACQ,GAAG,CAAC,CAACC,IAAMA,EAAEC,EAAE;QACnD,IAAI,CAAC5B,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,MAAM,EAAEe,YAAYY,IAAI,CAAC,qBAAqB,CAAC;IAC3E,EAAE,OAAOf,OAAO;QACd,IAAI,CAACd,OAAO,CAACC,MAAM,CAACc,IAAI,CACtB,CAAC,yDAAyD,EAAE,AAACD,MAAgBE,OAAO,EAAE;QAExFC,cAAc,IAAIQ;IACpB;IAEA,KAAK,MAAMK,cAAc,IAAI,CAAC9B,OAAO,CAAC+B,MAAM,CAACC,WAAW,CAAE;QACxD,IAAI,CAACf,YAAYgB,GAAG,CAACH,WAAWI,IAAI,GAAG;YACrC,MAAMC,iBAAiBC,IAAI,CAAC,IAAI,EAAEN,WAAWI,IAAI;QACnD;IACF;IAEA,KAAK,MAAMG,UAAU,IAAI,CAACrC,OAAO,CAAC+B,MAAM,CAACO,OAAO,IAAI,EAAE,CAAE;QACtD,MAAMC,WAAW,CAAC,QAAQ,EAAEF,OAAOH,IAAI,EAAE;QACzC,IAAI,CAACjB,YAAYgB,GAAG,CAACM,WAAW;YAC9B,MAAMJ,iBAAiBC,IAAI,CAAC,IAAI,EAAEG;QACpC;IACF;AACF;AAEA,eAAeJ,iBAA0CK,YAAoB;IAC3E,IAAI;QACF,MAAM,EAAE1B,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CACtC,yDACA;YACEhC,MAAM;gBAAEmB,IAAIY;YAAa;YACzBlB,QAAQ;gBAAEC,MAAM;oBAAEjB,iBAAiB,IAAI,CAACA,eAAe;gBAAC;YAAE;QAC5D;QAGF,IAAIQ,OAAO;YACT,MAAM,IAAIU,MAAMd,KAAKC,SAAS,CAACG;QACjC;QACA,IAAI,CAACd,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,oBAAoB,EAAEsC,cAAc;IAChE,EAAE,OAAO1B,OAAO;QACd,MAAM4B,eAAe,AAAC5B,MAAgBE,OAAO;QAC7C,IAAI,CAAC0B,aAAaC,QAAQ,CAAC,qBAAqB,CAACD,aAAaC,QAAQ,CAAC,QAAQ;YAC7E,IAAI,CAAC3C,OAAO,CAACC,MAAM,CAACc,IAAI,CAAC,CAAC,4BAA4B,EAAEyB,aAAa,EAAE,EAAEE,cAAc;QACzF;IACF;AACF;AAEA,eAAeE,SAEb,EACEd,UAAU,EACVe,KAAK,EACLC,KAAK,EACLC,IAAI,EACJC,UAAU,EACVC,IAAI,EACJC,KAAK,EAMoD;IAE3D,MAAM,EAAEhC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,0BAA0B;QACjFhC,MAAM;YACJqB;YACAxB,iBAAiB,IAAI,CAACA,eAAe;YACrC6C,MAAMxD,gCAAgC,IAAI,CAACK,OAAO,EAAE8B,YAAYe;YAChEC;YACAC,MAAMA,QAAQ;YACdE,MAAM7D,gBAAgB6D,MAAM,IAAI,CAACjD,OAAO,EAAE8B;YAC1CoB,OAAOtD,gCAAgCsD,SAAS,CAAC;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAE8B,YAAYoB,MAAM;QACpD;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,4BAA4B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IACxE;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IAEA,OAAOlC,mBAAmB,IAAI,CAACU,OAAO,EAAEmB,SAASiC,MAAM,EAAEtB;AAC3D;AAEA,eAAeuB,KAA8BC,IAAc;IACzD,MAAMC,mBAAmB,IAAI,CAACvD,OAAO,CAAC+B,MAAM,CAACC,WAAW,CAACqB,IAAI,CAAC,CAAC1B,IAAMA,EAAEO,IAAI,KAAKoB,KAAKxB,UAAU;IAC/F,OAAOc,SAASR,IAAI,CAAC,IAAI,EAAE;QACzBN,YAAYwB,KAAKxB,UAAU;QAC3Be,OAAOS,KAAKT,KAAK;QACjB,mEAAmE;QACnE,oGAAoG;QACpGC,OAAOQ,KAAKR,KAAK;QACjBC,MAAMO,KAAKP,IAAI,IAAI;QACnBC,YAAYM,KAAKN,UAAU;QAC3BC,MAAMK,KAAKL,IAAI,IAAIM,kBAAkBC;QACrCN,OAAOI,KAAKJ,KAAK;IACnB;AACF;AAEA,+FAA+F;AAC/F,eAAeO,aAAsCH,IAAoC;IACvF,MAAMI,mBAAmBtE,gBAAgBkE,KAAKL,IAAI,IAAI,cAAc,IAAI,CAACjD,OAAO,EAAEsD,KAAKxB,UAAU;IAEjG,MAAM6B,cAAc/D,gCAAgC0D,KAAKJ,KAAK,IAAI,CAAC,GAAG;QACpEU,oBAAoB;IACtB;IAEA,MAAM,EAAE1C,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,kCAAkC;QACzFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrC,2EAA2E;YAC3E,oGAAoG;YACpGwC,OAAOQ,KAAKR,KAAK;YACjBC,MAAMO,KAAKP,IAAI,IAAI;YACnBE,MAAMS;YACNR,OAAOS;YACP,GAAGlE,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,gCAAgC,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC5E;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IAEA,OAAOlC,mBAAmB,IAAI,CAACU,OAAO,EAAEmB,SAASiC,MAAM,EAAEE,KAAKxB,UAAU;AAC1E;AAEA,eAAe+B,YAAqCP,IAAqB;IACvE,MAAMQ,iBAAiB,MAAM,IAAI,CAACL,YAAY,CAAC;QAC7C3B,YAAYwB,KAAKxB,UAAU;QAC3BgB,OAAOQ,KAAKR,KAAK;QACjBC,MAAMO,KAAKP,IAAI;QACfC,YAAYM,KAAKN,UAAU;QAC3BC,MAAMK,KAAKL,IAAI;QACfC,OAAO;YAAE,GAAGI,KAAKJ,KAAK;YAAEa,QAAQ;gBAAEC,QAAQ;YAAK;QAAE;IACnD;IAEA,yFAAyF;IACzF,8EAA8E;IAC9E,MAAMC,OAAOH,eAAeG,IAAI,CAACvC,GAAG,CAAC,CAACwC;QACpC,MAAM,EAAEC,OAAO,EAAE,GAAGC,aAAa,GAAGF;QACpC,OAAO;YACL,GAAGE,WAAW;YACd,GAAGD,OAAO;YACV,yEAAyE;YACzEvC,IAAIuC,QAAQvC,EAAE;QAChB;IACF;IAEA,OAAO;QACL,GAAGkC,cAAc;QACjBG;IACF;AACF;AAEA,eAAeI,cAAuCf,IAAuB;IAC3E,MAAM,EAAEpC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,oCAAoC;QAC3FhC,MAAM;YACJqB,YAAYwB,KAAKgB,cAAc;YAC/BhE,iBAAiB,IAAI,CAACA,eAAe;YACrC4D,YAAY;gBACVH,QAAQ,CAACT,KAAKiB,QAAQ;gBACtBC,QAAQC,OAAOnB,KAAKkB,MAAM;gBAC1BL,SAASzE,iBAAiB,IAAI,CAACM,OAAO,EAAEsD,KAAKgB,cAAc,EAAEhB,KAAKoB,WAAW,EAAE;oBAC7EC,eAAe;gBACjB;YACF;QACF;IACF;IAEA,IAAI7D,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,iCAAiC,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC7E;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IACA,OAAOnC,eAAe,IAAI,CAACW,OAAO,EAAEmB,SAASiC,MAAM,EAAEE,KAAKgB,cAAc;AAC1E;AAEA,eAAeM,cAAuCtB,IAAuB;IAC3E,MAAMJ,QAAQI,KAAKJ,KAAK,IAAI;QAAEtB,IAAI;YAAEoC,QAAQV,KAAK1B,EAAE;QAAC;IAAE;IAEtD,MAAM,EAAEV,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,oCAAoC;QAC3FhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrCuE,iBAAiB;YACjBX,YAAY;gBACVC,SAASzE,iBAAiB,IAAI,CAACM,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKoB,WAAW;YAC3E;YACAxB,OAAOtD,gCAAgCsD;YACvC,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEoB,MAAM;QACzD;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,iCAAiC,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC7E;IACA,IAAI,CAACK,UAAUiC,UAAU,CAAE,CAAA,UAAUjC,SAASiC,MAAM,AAAD,GAAI;QACrD,MAAM,IAAI5B,MAAM;IAClB;IAEA,MAAMsD,MAAM3D,SAASiC,MAAM,CAAClC,IAAI,CAAC,EAAE;IACnC,IAAI,CAAC4D,KAAK;QACR,OAAO;IACT;IAEA,OAAOzF,eAAe,IAAI,CAACW,OAAO,EAAE8E,KAAKxB,KAAKxB,UAAU;AAC1D;AAEA,eAAeiD,eAAwCzB,IAAwB;IAC7E,IAAI,CAACA,KAAKxB,UAAU,EAAE;QACpB,MAAM,IAAIN,MAAM;IAClB;IAEA,MAAM,EAAEV,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,oCAAoC;QAC3EhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrC4C,OAAOtD,gCAAgC0D,KAAKJ,KAAK;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,kCAAkC,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC9E;AACF;AAEA,eAAekE,QAAiC1B,IAAiB;IAC/D,MAAM,EAAEW,IAAI,EAAE,GAAG,MAAM,IAAI,CAACZ,IAAI,CAAC;QAC/BvB,YAAYwB,KAAKxB,UAAU;QAC3Be,OAAOS,KAAKT,KAAK;QACjBC,OAAO;QACPE,YAAY;QACZE,OAAOI,KAAKJ,KAAK;IACnB;IACA,OAAOe,IAAI,CAAC,EAAE,IAAI;AACpB;AAEA,eAAegB,WAAoC3B,IAAoB;IACrE,MAAMI,mBAAmBtE,gBAAgBkE,KAAKL,IAAI,IAAI,cAAc,IAAI,CAACjD,OAAO,EAAEsD,KAAKxB,UAAU;IAEjG,MAAM,EAAEZ,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,4BAA4B;QACnFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrCuE,iBAAiB;YACjBC,KAAKpF,iBAAiB,IAAI,CAACM,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKpC,IAAI;YAC9D4B,OAAOQ,KAAKR,KAAK;YACjBoC,WAAW,CAAC;YACZjC,MAAMS;YACNR,OAAOtD,gCAAgC0D,KAAKJ,KAAK;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,8BAA8B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC1E;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IAEA,IAAIL,SAASiC,MAAM,IAAI,UAAUjC,SAASiC,MAAM,EAAE;QAChD,OAAOjC,SAASiC,MAAM,CAAClC,IAAI,CAACQ,GAAG,CAAC,CAACoD,MAAQzF,eAAe,IAAI,CAACW,OAAO,EAAE8E,KAAKxB,KAAKxB,UAAU;IAC5F;IACA,OAAO;AACT;AAEA,eAAeqD,UAAmC7B,IAAmB;IACnE,MAAMJ,QAAQI,KAAKJ,KAAK,IAAI;QAAEtB,IAAI;YAAEoC,QAAQV,KAAK1B,EAAE;QAAC;IAAE;IAEtD,MAAM,EAAEV,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,4BAA4B;QACnFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrCuE,iBAAiB;YACjBC,KAAKpF,iBAAiB,IAAI,CAACM,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKpC,IAAI;YAC9DgE,WAAW,CAAC;YACZhC,OAAOtD,gCAAgCsD;YACvC,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEoB,MAAM;QACzD;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,6BAA6B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IACzE;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IACA,IAAI,CAACL,SAASiC,MAAM,IAAI,CAAE,CAAA,UAAUjC,SAASiC,MAAM,AAAD,GAAI;QACpD,MAAM,IAAI5B,MAAM;IAClB;IAEA,MAAMsD,MAAM3D,SAASiC,MAAM,CAAClC,IAAI,CAAC,EAAE;IACnC,IAAI,CAAC4D,KAAK;QACR,OAAO;IACT;IAEA,OAAOzF,eAAe,IAAI,CAACW,OAAO,EAAE8E,KAAKxB,KAAKxB,UAAU;AAC1D;AAEA,eAAesD,WAAoC9B,IAAoB;IACrE,MAAM,EAAExC,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,4BAA4B;QACnEhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrC4C,OAAOtD,gCAAgC0D,KAAKJ,KAAK;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,8BAA8B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC1E;AACF;AAEA,eAAeuE,UAAmC/B,IAAmB;IACnE,MAAM,EAAEpC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,4BAA4B;QACnFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrC4E,WAAW,CAAC;YACZhC,OAAOtD,gCAAgC0D,KAAKJ,KAAK;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,6BAA6B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IACzE;IACA,IAAI,CAACK,UAAUiC,UAAU,CAAE,CAAA,UAAUjC,SAASiC,MAAM,AAAD,GAAI;QACrD,MAAM,IAAI5B,MAAM;IAClB;IAEA,MAAMsD,MAAM3D,SAASiC,MAAM,CAAClC,IAAI,CAAC,EAAE;IACnC,IAAI,CAAC4D,KAAK;QACR,OAAO;IACT;IAEA,OAAOzF,eAAe,IAAI,CAACW,OAAO,EAAE8E,KAAKxB,KAAKxB,UAAU;AAC1D;AAEA,eAAewD,OAAgChC,IAAgB;IAC7D,MAAM1B,KAAK,AAAC0B,KAAKpC,IAAI,CAACU,EAAE,IAA2B1C;IAEnD,MAAM,EAAEgC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,4BAA4B;QACnFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrCwE,KAAK;gBACHlD,IAAI6C,OAAO7C;gBACX,GAAGlC,iBAAiB,IAAI,CAACM,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKpC,IAAI,EAAE;oBAC5DyD,eAAe;oBACfY,WAAW;gBACb,EAAE;YACJ;QACF;IACF;IAEA,IAAIzE,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,0BAA0B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IACtE;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IACA,OAAOnC,eAAe,IAAI,CAACW,OAAO,EAAEmB,SAASiC,MAAM,EAAEE,KAAKxB,UAAU;AACtE;AAEA,eAAe0D,MAA+BlC,IAAe;IAC3D,MAAM,EAAEpC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,2BAA2B;QAClFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrC4C,OAAOtD,gCAAgC0D,KAAKJ,KAAK;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,yBAAyB,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IACrE;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IAEA,OAAO;QAAEiE,WAAWtE,SAASiC,MAAM,CAACoC,KAAK;IAAC;AAC5C;AAEA,eAAeE,cAAuCpC,IAAe;IACnE,MAAM,EAAEpC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,mCAAmC;QAC1FhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrC4C,OAAOtD,gCAAgC0D,KAAKJ,KAAK;YACjD,GAAGzD,eAAe,IAAI,CAACO,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKJ,KAAK,CAAC;QAC9D;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,iCAAiC,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IAC7E;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IAEA,OAAO;QAAEiE,WAAWtE,SAASiC,MAAM,CAACoC,KAAK;IAAC;AAC5C;AAEA,eAAeG,OAAgCrC,IAAgB;IAC7D,IAAIsC,aAAatC,KAAKpC,IAAI,CAACU,EAAE;IAC7B,IAAI,CAACgE,cAActC,KAAKJ,KAAK,IAAI,QAAQI,KAAKJ,KAAK,EAAE;QACnD,MAAM2C,WAAW,AAACvC,KAAKJ,KAAK,CAA6BtB,EAAE;QAC3D,IAAIiE,YAAY,YAAYA,UAAU;YACpCD,aAAaC,SAAS7B,MAAM;QAC9B;IACF;IACA,IAAI,CAAC4B,YAAY;QACfA,aAAa1G;IACf;IAEA,MAAM,EAAEgC,MAAMC,QAAQ,EAAEL,KAAK,EAAE,GAAG,MAAM,IAAI,CAACM,MAAM,CAACqB,IAAI,CAAC,4BAA4B;QACnFhC,MAAM;YACJqB,YAAYwB,KAAKxB,UAAU;YAC3BxB,iBAAiB,IAAI,CAACA,eAAe;YACrCuE,iBAAiB;gBAAEjD,IAAIgE;YAAW;YAClCd,KAAKpF,iBAAiB,IAAI,CAACM,OAAO,EAAEsD,KAAKxB,UAAU,EAAEwB,KAAKpC,IAAI,EAAE;gBAC9DyD,eAAe;gBACfY,WAAW;YACb;YACArC,OAAOtD,gCAAgC0D,KAAKJ,KAAK;QACnD;IACF;IAEA,IAAIpC,OAAO;QACT,MAAM,IAAIU,MAAM,CAAC,0BAA0B,EAAEd,KAAKC,SAAS,CAACG,QAAQ;IACtE;IACA,IAAI,CAACK,UAAU;QACb,MAAM,IAAIK,MAAM;IAClB;IACA,IAAI,CAACL,SAASiC,MAAM,IAAI,CAAE,CAAA,UAAUjC,SAASiC,MAAM,AAAD,GAAI;QACpD,MAAM,IAAI5B,MAAM;IAClB;IAEA,MAAMsD,MAAM3D,SAASiC,MAAM,CAAClC,IAAI,CAAC,EAAE;IACnC,IAAI,CAAC4D,KAAK;QACR,MAAM,IAAItD,MAAM;IAClB;IAEA,OAAOnC,eAAe,IAAI,CAACW,OAAO,EAAE8E,KAAKxB,KAAKxB,UAAU;AAC1D;AAEA,SAASgE,aAAsCxC,IAAsB;IACnE,OAAO,IAAI,CAACgC,MAAM,CAAC;QACjBxD,YAAY3C,cAAcmE,KAAKpB,IAAI;QACnChB,MAAM;YAAE,GAAGoC,KAAKpC,IAAI;YAAEU,IAAI0B,KAAKpB,IAAI;YAAE6D,YAAYzC,KAAKpB,IAAI;QAAC;IAC7D;AACF;AAEA,SAAS8D,WAAoC1C,IAAoB;IAC/D,OAAO,IAAI,CAAC0B,OAAO,CAAC;QAAElD,YAAY3C,cAAcmE,KAAKpB,IAAI;QAAGgB,OAAOI,KAAKJ,KAAK,IAAI,CAAC;IAAE;AACtF;AAEA,eAAe+C,aAAsC3C,IAAsB;IACzE,yCAAyC;IACzC,qDAAqD;IACrD,OAAO,IAAI,CAACqC,MAAM,CAAC;QACjB7D,YAAY3C,cAAcmE,KAAKpB,IAAI;QACnChB,MAAMoC,KAAKpC,IAAI;QACfgC,OAAO;YAAEtB,IAAI;gBAAEoC,QAAQV,KAAKpB,IAAI;YAAC;QAAE;IACrC;AACF;AAEA,+FAA+F;AAC/F,SAASgE,mBAA4C5C,IAA0C;IAC7F,OAAO,IAAI,CAACG,YAAY,CAAC;QACvB3B,YAAY3C,cAAcmE,KAAKjB,MAAM;QACrCS,OAAOQ,KAAKR,KAAK;QACjBC,MAAMO,KAAKP,IAAI;QACfC,YAAYM,KAAKN,UAAU;QAC3BC,MAAMK,KAAKL,IAAI;QACfC,OAAOI,KAAKJ,KAAK;IACnB;AACF;AAEA,SAASiD,oBAA6C7C,IAA6B;IACjF,gEAAgE;IAChE,0CAA0C;IAC1C,OAAO,IAAI,CAACe,aAAa,CAAC;QACxBE,UAAUjB,KAAKiB,QAAQ;QACvBD,gBAAgBnF,cAAcmE,KAAK8C,UAAU;QAC7Cb,WAAWjC,KAAKiC,SAAS;QACzBf,QAAQlB,KAAK8C,UAAU;QACvBC,WAAW/C,KAAK+C,SAAS;QACzB3B,aAAapB,KAAKoB,WAAW;IAC/B;AACF;AAEA,SAAS4B,oBAA6ChD,IAA6B;IACjF,sDAAsD;IACtD,IAAIA,KAAK1B,EAAE,KAAK2E,WAAW;QACzB,OAAO,IAAI,CAAC3B,aAAa,CAAC;YACxBhD,IAAI0B,KAAK1B,EAAE;YACXE,YAAY3C,cAAcmE,KAAKjB,MAAM;YACrCqC,aAAapB,KAAKoB,WAAW;QAC/B;IACF;IACA,gEAAgE;IAChE,OAAO,IAAI,CAACE,aAAa,CAAC;QACxB9C,YAAY3C,cAAcmE,KAAKjB,MAAM;QACrCqC,aAAapB,KAAKoB,WAAW;QAC7BxB,OAAOI,KAAKJ,KAAK;IACnB;AACF;AAEA,SAASsD,oBAA6ClD,IAA4B;IAChF,OAAO,IAAI,CAACoC,aAAa,CAAC;QAAE5D,YAAY3C,cAAcmE,KAAKjB,MAAM;QAAGa,OAAOI,KAAKJ,KAAK;IAAC;AACxF;AAEA,OAAO,MAAMuD,oBAAoB,CAACC,OAAiD,CAAA;QACjFC,MAAM;QACNC,eAAe;QACf/G,MAAM,CAAC,EAAEG,OAAO,EAAE;YAChB,MAAMoB,SAASrC,aAAoB;gBAAE8H,SAASH,KAAKlG,GAAG;YAAC;YAEvD,MAAMsG,iBAAiB;gBACrBhH,MAAM4G,KAAK5G,IAAI;gBACfQ,iBAAiBoG,KAAKpG,eAAe;gBACrCL,QAAQD,QAAQC,MAAM;gBACtBO,KAAKkG,KAAKlG,GAAG;YACf;YAEAY,OAAO2F,GAAG,CAACxH,qBAAqBuH;YAChC1F,OAAO2F,GAAG,CAACvH,sBAAsBsH;YAEjC,OAAO9H,sBAAyC;gBAC9C2H,MAAM;gBACN7G,MAAM4G,KAAK5G,IAAI;gBACfkH,kBAAkB,IAAMC,QAAQC,OAAO,CAAC;gBACxC9F;gBACA+F,mBAAmB,WAAa;gBAChC7G,iBAAiBoG,KAAKpG,eAAe;gBACrCkF,OAAOA;gBACPgB,qBAAqBA;gBACrBd,eAAeA;gBACfJ,QAAQA;gBACRQ,cAAcA;gBACdK,qBAAqBA;gBACrB9B,eAAeA;gBACfuC,eAAe;gBACfxB,YAAYA;gBACZC,WAAWA;gBACXN,gBAAgBA;gBAChB1B,MAAMA;gBACN+D,cAAc,IACZH,QAAQI,MAAM,CAAC,IAAI7F,MAAM;gBAC3BwE,YAAYA;gBACZE,oBAAoBA;gBACpBlB,SAASA;gBACTvB,cAAcA;gBACd5D;gBACAyH,aAAa;gBACbtH;gBACA6D,aAAaA;gBACb0D,qBAAqB,WAAa;gBAClCtB,cAAcA;gBACdK,qBAAqBA;gBACrBrB,YAAYA;gBACZE,WAAWA;gBACXP,eAAeA;gBACfe,QAAQA;gBACRnF,KAAKkG,KAAKlG,GAAG;YACf;QACF;IACF,CAAA,EAAE"}
@@ -1,4 +1,34 @@
1
1
  import type { Payload } from 'payload';
2
2
  import type { components } from '../generated/content-api-types.js';
3
- export declare function unwrapDocument(payload: Payload, doc: components['schemas']['Document'] | components['schemas']['DocumentVersion'], collectionSlug?: string): Record<string, unknown>;
3
+ type DocumentResponse = {
4
+ id: string;
5
+ } & components['schemas']['Document'];
6
+ type DocumentVersionResponse = {
7
+ id: string;
8
+ } & components['schemas']['DocumentVersion'];
9
+ export declare function unwrapDocument(payload: Payload, doc: DocumentResponse | DocumentVersionResponse, collectionSlug?: string): Record<string, unknown>;
10
+ export declare const unwrapFindResponse: (payload: Payload, response: components["schemas"]["FindDocumentsResponse"]["result"] | components["schemas"]["FindDocumentVersionsResponse"]["result"], collection: string) => {
11
+ totalDocs: number;
12
+ limit: number;
13
+ page: number;
14
+ totalPages: number;
15
+ pagingCounter: number;
16
+ hasPrevPage: boolean;
17
+ hasNextPage: boolean;
18
+ prevPage: number | null;
19
+ nextPage: number | null;
20
+ docs: Record<string, unknown>[];
21
+ } | {
22
+ totalDocs: number;
23
+ limit: number;
24
+ page: number;
25
+ totalPages: number;
26
+ pagingCounter: number;
27
+ hasPrevPage: boolean;
28
+ hasNextPage: boolean;
29
+ prevPage: number | null;
30
+ nextPage: number | null;
31
+ docs: Record<string, unknown>[];
32
+ };
33
+ export {};
4
34
  //# sourceMappingURL=unwrapDocument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrapDocument.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/temp-utilities/unwrapDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAWnE,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,EACjF,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoDzB"}
1
+ {"version":3,"file":"unwrapDocument.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/temp-utilities/unwrapDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAInE,KAAK,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AAC1E,KAAK,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AASxF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,gBAAgB,GAAG,uBAAuB,EAC/C,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyCzB;AAED,eAAO,MAAM,kBAAkB,YACpB,OAAO,YAEZ,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,GACxD,UAAU,CAAC,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,cACvD,MAAM;;;;;;;;;;;;;;;;;;;;;;CASnB,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { dataFromContentAPI } from '../utilities/data/index.js';
2
2
  // Helper to unwrap Content API document format to Payload format
3
3
  // Content API returns:
4
- // - For documents: { id, data: { ...fields }, createdAt, updatedAt }
5
- // - For versions: { id, documentId, latest, data: { ...fields }, createdAt, updatedAt }
4
+ // - For documents: { id, contentSystemId, collection, doc: { ...fields, createdAt, updatedAt } }
5
+ // - For versions: { id, contentSystemId, collection, versionDoc: { id, createdAt, updatedAt, latest, parent, version: {...fields} } }
6
6
  // Payload expects:
7
7
  // - For documents: { id, ...fields, createdAt, updatedAt }
8
8
  // - For versions: { id, parent, latest, version: { ...fields }, createdAt, updatedAt }
@@ -10,18 +10,13 @@ export function unwrapDocument(payload, doc, collectionSlug) {
10
10
  if (!doc) {
11
11
  return doc;
12
12
  }
13
- // Check if this is a DocumentVersion (has documentId and latest fields)
14
- const isVersion = 'documentId' in doc && 'latest' in doc;
13
+ // Check if this is a DocumentVersion (has versionDoc field)
14
+ const isVersion = 'versionDoc' in doc;
15
15
  if (isVersion) {
16
16
  // For versions, Payload expects nested structure with 'version' field
17
- const versionDoc = doc;
17
+ const { versionDoc } = doc;
18
18
  const baseDoc = {
19
- id: versionDoc.id,
20
- createdAt: versionDoc.createdAt,
21
- latest: versionDoc.latest,
22
- parent: versionDoc.documentId,
23
- updatedAt: versionDoc.updatedAt,
24
- version: versionDoc.data
19
+ ...versionDoc
25
20
  };
26
21
  // Transform data from Content API format to Payload format
27
22
  if (collectionSlug) {
@@ -34,20 +29,25 @@ export function unwrapDocument(payload, doc, collectionSlug) {
34
29
  }
35
30
  }
36
31
  return baseDoc;
37
- } else {
38
- // For regular documents, spread data at root level
39
- const baseDoc = {
40
- ...doc.data,
41
- id: doc.id,
42
- createdAt: doc.createdAt,
43
- updatedAt: doc.updatedAt
44
- };
45
- // Transform data from Content API format to Payload format
46
- if (collectionSlug) {
47
- return dataFromContentAPI(payload, collectionSlug, baseDoc);
48
- }
49
- return baseDoc;
50
32
  }
33
+ // For regular documents, spread doc data at root level
34
+ const { id, doc: docData } = doc;
35
+ const baseDoc = {
36
+ ...docData,
37
+ id
38
+ };
39
+ // Transform data from Content API format to Payload format
40
+ if (collectionSlug) {
41
+ return dataFromContentAPI(payload, collectionSlug, baseDoc);
42
+ }
43
+ return baseDoc;
51
44
  }
45
+ export const unwrapFindResponse = (payload, response, collection)=>{
46
+ const { data, ...paginationFields } = response;
47
+ return {
48
+ docs: data.map((doc)=>unwrapDocument(payload, doc, collection)),
49
+ ...paginationFields
50
+ };
51
+ };
52
52
 
53
53
  //# sourceMappingURL=unwrapDocument.js.map