From 1dc748d3415e2f5ca4e3412ceffba77d1ee97007 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Fri, 21 Feb 2025 17:31:24 +0200 Subject: [PATCH 01/33] perf(db-mongodb): remove `JSON.parse(JSON.stringify)` copying of results (#11293) Improves performance and optimizes memory usage for mongodb adapter by cutting down copying of results via `JSON.parse(JSON.stringify())`. Instead, `transform` does necessary transformations (`ObjectID` -> `string,` `Date` -> `string`) without any copying --- packages/db-mongodb/src/create.ts | 28 +- packages/db-mongodb/src/createGlobal.ts | 27 +- .../db-mongodb/src/createGlobalVersion.ts | 60 +-- packages/db-mongodb/src/createVersion.ts | 68 ++-- packages/db-mongodb/src/deleteOne.ts | 17 +- packages/db-mongodb/src/find.ts | 17 +- packages/db-mongodb/src/findGlobal.ts | 19 +- packages/db-mongodb/src/findGlobalVersions.ts | 25 +- packages/db-mongodb/src/findOne.ts | 12 +- packages/db-mongodb/src/findVersions.ts | 18 +- packages/db-mongodb/src/models/buildSchema.ts | 2 + .../migrateRelationshipsV2_V3.ts | 14 +- packages/db-mongodb/src/queryDrafts.ts | 26 +- packages/db-mongodb/src/updateGlobal.ts | 23 +- .../db-mongodb/src/updateGlobalVersion.ts | 21 +- packages/db-mongodb/src/updateOne.ts | 15 +- packages/db-mongodb/src/updateVersion.ts | 21 +- .../src/utilities/sanitizeInternalFields.ts | 20 - .../src/utilities/sanitizeRelationshipIDs.ts | 165 --------- ...ationshipIDs.spec.ts => transform.spec.ts} | 18 +- .../db-mongodb/src/utilities/transform.ts | 347 ++++++++++++++++++ test/joins/int.spec.ts | 5 +- test/select/int.spec.ts | 30 +- 23 files changed, 578 insertions(+), 420 deletions(-) delete mode 100644 packages/db-mongodb/src/utilities/sanitizeInternalFields.ts delete mode 100644 packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts rename packages/db-mongodb/src/utilities/{sanitizeRelationshipIDs.spec.ts => transform.spec.ts} (95%) create mode 100644 packages/db-mongodb/src/utilities/transform.ts diff --git a/packages/db-mongodb/src/create.ts b/packages/db-mongodb/src/create.ts index 49e549b7e4..3c99e79324 100644 --- a/packages/db-mongodb/src/create.ts +++ b/packages/db-mongodb/src/create.ts @@ -5,7 +5,7 @@ import type { MongooseAdapter } from './index.js' import { getSession } from './utilities/getSession.js' import { handleError } from './utilities/handleError.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const create: Create = async function create( this: MongooseAdapter, @@ -18,31 +18,31 @@ export const create: Create = async function create( let doc - const sanitizedData = sanitizeRelationshipIDs({ - config: this.payload.config, + transform({ + adapter: this, data, fields: this.payload.collections[collection].config.fields, + operation: 'write', }) if (this.payload.collections[collection].customIDType) { - sanitizedData._id = sanitizedData.id + data._id = data.id } try { - ;[doc] = await Model.create([sanitizedData], options) + ;[doc] = await Model.create([data], options) } catch (error) { handleError({ collection, error, req }) } - // doc.toJSON does not do stuff like converting ObjectIds to string, or date strings to date objects. That's why we use JSON.parse/stringify here - const result: Document = JSON.parse(JSON.stringify(doc)) - const verificationToken = doc._verificationToken + doc = doc.toObject() - // custom id type reset - result.id = result._id - if (verificationToken) { - result._verificationToken = verificationToken - } + transform({ + adapter: this, + data: doc, + fields: this.payload.collections[collection].config.fields, + operation: 'read', + }) - return result + return doc } diff --git a/packages/db-mongodb/src/createGlobal.ts b/packages/db-mongodb/src/createGlobal.ts index 969eeaed7c..28c10b39ca 100644 --- a/packages/db-mongodb/src/createGlobal.ts +++ b/packages/db-mongodb/src/createGlobal.ts @@ -4,8 +4,7 @@ import type { CreateGlobal } from 'payload' import type { MongooseAdapter } from './index.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const createGlobal: CreateGlobal = async function createGlobal( this: MongooseAdapter, @@ -13,26 +12,28 @@ export const createGlobal: CreateGlobal = async function createGlobal( ) { const Model = this.globals - const global = sanitizeRelationshipIDs({ - config: this.payload.config, - data: { - globalType: slug, - ...data, - }, + transform({ + adapter: this, + data, fields: this.payload.config.globals.find((globalConfig) => globalConfig.slug === slug).fields, + globalSlug: slug, + operation: 'write', }) const options: CreateOptions = { session: await getSession(this, req), } - let [result] = (await Model.create([global], options)) as any + let [result] = (await Model.create([data], options)) as any - result = JSON.parse(JSON.stringify(result)) + result = result.toObject() - // custom id type reset - result.id = result._id - result = sanitizeInternalFields(result) + transform({ + adapter: this, + data: result, + fields: this.payload.config.globals.find((globalConfig) => globalConfig.slug === slug).fields, + operation: 'read', + }) return result } diff --git a/packages/db-mongodb/src/createGlobalVersion.ts b/packages/db-mongodb/src/createGlobalVersion.ts index a6fe7ccb5f..2137ca84aa 100644 --- a/packages/db-mongodb/src/createGlobalVersion.ts +++ b/packages/db-mongodb/src/createGlobalVersion.ts @@ -1,11 +1,11 @@ import type { CreateOptions } from 'mongoose' -import { buildVersionGlobalFields, type CreateGlobalVersion, type Document } from 'payload' +import { buildVersionGlobalFields, type CreateGlobalVersion } from 'payload' import type { MongooseAdapter } from './index.js' import { getSession } from './utilities/getSession.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const createGlobalVersion: CreateGlobalVersion = async function createGlobalVersion( this: MongooseAdapter, @@ -26,25 +26,30 @@ export const createGlobalVersion: CreateGlobalVersion = async function createGlo session: await getSession(this, req), } - const data = sanitizeRelationshipIDs({ - config: this.payload.config, - data: { - autosave, - createdAt, - latest: true, - parent, - publishedLocale, - snapshot, - updatedAt, - version: versionData, - }, - fields: buildVersionGlobalFields( - this.payload.config, - this.payload.config.globals.find((global) => global.slug === globalSlug), - ), + const data = { + autosave, + createdAt, + latest: true, + parent, + publishedLocale, + snapshot, + updatedAt, + version: versionData, + } + + const fields = buildVersionGlobalFields( + this.payload.config, + this.payload.config.globals.find((global) => global.slug === globalSlug), + ) + + transform({ + adapter: this, + data, + fields, + operation: 'write', }) - const [doc] = await VersionModel.create([data], options, req) + let [doc] = await VersionModel.create([data], options, req) await VersionModel.updateMany( { @@ -70,13 +75,14 @@ export const createGlobalVersion: CreateGlobalVersion = async function createGlo options, ) - const result: Document = JSON.parse(JSON.stringify(doc)) - const verificationToken = doc._verificationToken + doc = doc.toObject() - // custom id type reset - result.id = result._id - if (verificationToken) { - result._verificationToken = verificationToken - } - return result + transform({ + adapter: this, + data: doc, + fields, + operation: 'read', + }) + + return doc } diff --git a/packages/db-mongodb/src/createVersion.ts b/packages/db-mongodb/src/createVersion.ts index 3482345e24..a0894adc88 100644 --- a/packages/db-mongodb/src/createVersion.ts +++ b/packages/db-mongodb/src/createVersion.ts @@ -1,12 +1,11 @@ import type { CreateOptions } from 'mongoose' -import { Types } from 'mongoose' -import { buildVersionCollectionFields, type CreateVersion, type Document } from 'payload' +import { buildVersionCollectionFields, type CreateVersion } from 'payload' import type { MongooseAdapter } from './index.js' import { getSession } from './utilities/getSession.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const createVersion: CreateVersion = async function createVersion( this: MongooseAdapter, @@ -27,25 +26,30 @@ export const createVersion: CreateVersion = async function createVersion( session: await getSession(this, req), } - const data = sanitizeRelationshipIDs({ - config: this.payload.config, - data: { - autosave, - createdAt, - latest: true, - parent, - publishedLocale, - snapshot, - updatedAt, - version: versionData, - }, - fields: buildVersionCollectionFields( - this.payload.config, - this.payload.collections[collectionSlug].config, - ), + const data = { + autosave, + createdAt, + latest: true, + parent, + publishedLocale, + snapshot, + updatedAt, + version: versionData, + } + + const fields = buildVersionCollectionFields( + this.payload.config, + this.payload.collections[collectionSlug].config, + ) + + transform({ + adapter: this, + data, + fields, + operation: 'write', }) - const [doc] = await VersionModel.create([data], options, req) + let [doc] = await VersionModel.create([data], options, req) const parentQuery = { $or: [ @@ -56,13 +60,6 @@ export const createVersion: CreateVersion = async function createVersion( }, ], } - if (data.parent instanceof Types.ObjectId) { - parentQuery.$or.push({ - parent: { - $eq: data.parent.toString(), - }, - }) - } await VersionModel.updateMany( { @@ -89,13 +86,14 @@ export const createVersion: CreateVersion = async function createVersion( options, ) - const result: Document = JSON.parse(JSON.stringify(doc)) - const verificationToken = doc._verificationToken + doc = doc.toObject() - // custom id type reset - result.id = result._id - if (verificationToken) { - result._verificationToken = verificationToken - } - return result + transform({ + adapter: this, + data: doc, + fields, + operation: 'read', + }) + + return doc } diff --git a/packages/db-mongodb/src/deleteOne.ts b/packages/db-mongodb/src/deleteOne.ts index 1ba5c2b7fd..0ae3231531 100644 --- a/packages/db-mongodb/src/deleteOne.ts +++ b/packages/db-mongodb/src/deleteOne.ts @@ -1,12 +1,12 @@ import type { QueryOptions } from 'mongoose' -import type { DeleteOne, Document } from 'payload' +import type { DeleteOne } from 'payload' import type { MongooseAdapter } from './index.js' import { buildQuery } from './queries/buildQuery.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const deleteOne: DeleteOne = async function deleteOne( this: MongooseAdapter, @@ -35,11 +35,12 @@ export const deleteOne: DeleteOne = async function deleteOne( return null } - let result: Document = JSON.parse(JSON.stringify(doc)) + transform({ + adapter: this, + data: doc, + fields: this.payload.collections[collection].config.fields, + operation: 'read', + }) - // custom id type reset - result.id = result._id - result = sanitizeInternalFields(result) - - return result + return doc } diff --git a/packages/db-mongodb/src/find.ts b/packages/db-mongodb/src/find.ts index ab8733f87c..65f556ec33 100644 --- a/packages/db-mongodb/src/find.ts +++ b/packages/db-mongodb/src/find.ts @@ -10,7 +10,7 @@ import { buildSortParam } from './queries/buildSortParam.js' import { buildJoinAggregation } from './utilities/buildJoinAggregation.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const find: Find = async function find( this: MongooseAdapter, @@ -133,13 +133,12 @@ export const find: Find = async function find( result = await Model.paginate(query, paginationOptions) } - const docs = JSON.parse(JSON.stringify(result.docs)) + transform({ + adapter: this, + data: result.docs, + fields: this.payload.collections[collection].config.fields, + operation: 'read', + }) - return { - ...result, - docs: docs.map((doc) => { - doc.id = doc._id - return sanitizeInternalFields(doc) - }), - } + return result } diff --git a/packages/db-mongodb/src/findGlobal.ts b/packages/db-mongodb/src/findGlobal.ts index 61b61abdf7..dbefa258c8 100644 --- a/packages/db-mongodb/src/findGlobal.ts +++ b/packages/db-mongodb/src/findGlobal.ts @@ -8,14 +8,15 @@ import type { MongooseAdapter } from './index.js' import { buildQuery } from './queries/buildQuery.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const findGlobal: FindGlobal = async function findGlobal( this: MongooseAdapter, { slug, locale, req, select, where }, ) { const Model = this.globals - const fields = this.payload.globals.config.find((each) => each.slug === slug).flattenedFields + const globalConfig = this.payload.globals.config.find((each) => each.slug === slug) + const fields = globalConfig.flattenedFields const options: QueryOptions = { lean: true, select: buildProjectionFromSelect({ @@ -34,18 +35,18 @@ export const findGlobal: FindGlobal = async function findGlobal( where: combineQueries({ globalType: { equals: slug } }, where), }) - let doc = (await Model.findOne(query, {}, options)) as any + const doc = (await Model.findOne(query, {}, options)) as any if (!doc) { return null } - if (doc._id) { - doc.id = doc._id - delete doc._id - } - doc = JSON.parse(JSON.stringify(doc)) - doc = sanitizeInternalFields(doc) + transform({ + adapter: this, + data: doc, + fields: globalConfig.fields, + operation: 'read', + }) return doc } diff --git a/packages/db-mongodb/src/findGlobalVersions.ts b/packages/db-mongodb/src/findGlobalVersions.ts index b028a8d224..2ecd21edde 100644 --- a/packages/db-mongodb/src/findGlobalVersions.ts +++ b/packages/db-mongodb/src/findGlobalVersions.ts @@ -9,18 +9,15 @@ import { buildQuery } from './queries/buildQuery.js' import { buildSortParam } from './queries/buildSortParam.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const findGlobalVersions: FindGlobalVersions = async function findGlobalVersions( this: MongooseAdapter, { global, limit, locale, page, pagination, req, select, skip, sort: sortArg, where }, ) { + const globalConfig = this.payload.globals.config.find(({ slug }) => slug === global) const Model = this.versions[global] - const versionFields = buildVersionGlobalFields( - this.payload.config, - this.payload.globals.config.find(({ slug }) => slug === global), - true, - ) + const versionFields = buildVersionGlobalFields(this.payload.config, globalConfig, true) const session = await getSession(this, req) const options: QueryOptions = { @@ -103,13 +100,13 @@ export const findGlobalVersions: FindGlobalVersions = async function findGlobalV } const result = await Model.paginate(query, paginationOptions) - const docs = JSON.parse(JSON.stringify(result.docs)) - return { - ...result, - docs: docs.map((doc) => { - doc.id = doc._id - return sanitizeInternalFields(doc) - }), - } + transform({ + adapter: this, + data: result.docs, + fields: buildVersionGlobalFields(this.payload.config, globalConfig), + operation: 'read', + }) + + return result } diff --git a/packages/db-mongodb/src/findOne.ts b/packages/db-mongodb/src/findOne.ts index 8db28b3d59..7fec58d949 100644 --- a/packages/db-mongodb/src/findOne.ts +++ b/packages/db-mongodb/src/findOne.ts @@ -1,5 +1,5 @@ import type { AggregateOptions, QueryOptions } from 'mongoose' -import type { Document, FindOne } from 'payload' +import type { FindOne } from 'payload' import type { MongooseAdapter } from './index.js' @@ -7,7 +7,7 @@ import { buildQuery } from './queries/buildQuery.js' import { buildJoinAggregation } from './utilities/buildJoinAggregation.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const findOne: FindOne = async function findOne( this: MongooseAdapter, @@ -58,11 +58,7 @@ export const findOne: FindOne = async function findOne( return null } - let result: Document = JSON.parse(JSON.stringify(doc)) + transform({ adapter: this, data: doc, fields: collectionConfig.fields, operation: 'read' }) - // custom id type reset - result.id = result._id - result = sanitizeInternalFields(result) - - return result + return doc } diff --git a/packages/db-mongodb/src/findVersions.ts b/packages/db-mongodb/src/findVersions.ts index 0f123b1f23..0b5eb37459 100644 --- a/packages/db-mongodb/src/findVersions.ts +++ b/packages/db-mongodb/src/findVersions.ts @@ -9,7 +9,7 @@ import { buildQuery } from './queries/buildQuery.js' import { buildSortParam } from './queries/buildSortParam.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const findVersions: FindVersions = async function findVersions( this: MongooseAdapter, @@ -104,13 +104,13 @@ export const findVersions: FindVersions = async function findVersions( } const result = await Model.paginate(query, paginationOptions) - const docs = JSON.parse(JSON.stringify(result.docs)) - return { - ...result, - docs: docs.map((doc) => { - doc.id = doc._id - return sanitizeInternalFields(doc) - }), - } + transform({ + adapter: this, + data: result.docs, + fields: buildVersionCollectionFields(this.payload.config, collectionConfig), + operation: 'read', + }) + + return result } diff --git a/packages/db-mongodb/src/models/buildSchema.ts b/packages/db-mongodb/src/models/buildSchema.ts index af7f501585..2c6d5b69ed 100644 --- a/packages/db-mongodb/src/models/buildSchema.ts +++ b/packages/db-mongodb/src/models/buildSchema.ts @@ -476,6 +476,7 @@ const fieldToSchemaMap: Record = { if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) { schemaToReturn = { + _id: false, type: payload.config.localization.localeCodes.reduce((locales, locale) => { let localeSchema: { [key: string]: any } = {} @@ -698,6 +699,7 @@ const fieldToSchemaMap: Record = { if (fieldShouldBeLocalized({ field, parentIsLocalized }) && payload.config.localization) { schemaToReturn = { + _id: false, type: payload.config.localization.localeCodes.reduce((locales, locale) => { let localeSchema: { [key: string]: any } = {} diff --git a/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts b/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts index 11d5f4b4fc..7eabd67769 100644 --- a/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts +++ b/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts @@ -6,11 +6,12 @@ import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload' import type { MongooseAdapter } from '../index.js' import { getSession } from '../utilities/getSession.js' -import { sanitizeRelationshipIDs } from '../utilities/sanitizeRelationshipIDs.js' +import { transform } from '../utilities/transform.js' const migrateModelWithBatching = async ({ batchSize, config, + db, fields, Model, parentIsLocalized, @@ -18,6 +19,7 @@ const migrateModelWithBatching = async ({ }: { batchSize: number config: SanitizedConfig + db: MongooseAdapter fields: Field[] Model: Model parentIsLocalized: boolean @@ -49,7 +51,7 @@ const migrateModelWithBatching = async ({ } for (const doc of docs) { - sanitizeRelationshipIDs({ config, data: doc, fields, parentIsLocalized }) + transform({ adapter: db, data: doc, fields, operation: 'write', parentIsLocalized }) } await Model.collection.bulkWrite( @@ -124,6 +126,7 @@ export async function migrateRelationshipsV2_V3({ await migrateModelWithBatching({ batchSize, config, + db, fields: collection.fields, Model: db.collections[collection.slug], parentIsLocalized: false, @@ -139,6 +142,7 @@ export async function migrateRelationshipsV2_V3({ await migrateModelWithBatching({ batchSize, config, + db, fields: buildVersionCollectionFields(config, collection), Model: db.versions[collection.slug], parentIsLocalized: false, @@ -167,10 +171,11 @@ export async function migrateRelationshipsV2_V3({ // in case if the global doesn't exist in the database yet (not saved) if (doc) { - sanitizeRelationshipIDs({ - config, + transform({ + adapter: db, data: doc, fields: global.fields, + operation: 'write', }) await GlobalsModel.collection.updateOne( @@ -191,6 +196,7 @@ export async function migrateRelationshipsV2_V3({ await migrateModelWithBatching({ batchSize, config, + db, fields: buildVersionGlobalFields(config, global), Model: db.versions[global.slug], parentIsLocalized: false, diff --git a/packages/db-mongodb/src/queryDrafts.ts b/packages/db-mongodb/src/queryDrafts.ts index 0216d24fd0..1a8ba6269b 100644 --- a/packages/db-mongodb/src/queryDrafts.ts +++ b/packages/db-mongodb/src/queryDrafts.ts @@ -10,7 +10,7 @@ import { buildSortParam } from './queries/buildSortParam.js' import { buildJoinAggregation } from './utilities/buildJoinAggregation.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' +import { transform } from './utilities/transform.js' export const queryDrafts: QueryDrafts = async function queryDrafts( this: MongooseAdapter, @@ -124,18 +124,18 @@ export const queryDrafts: QueryDrafts = async function queryDrafts( result = await VersionModel.paginate(versionQuery, paginationOptions) } - const docs = JSON.parse(JSON.stringify(result.docs)) + transform({ + adapter: this, + data: result.docs, + fields: buildVersionCollectionFields(this.payload.config, collectionConfig), + operation: 'read', + }) - return { - ...result, - docs: docs.map((doc) => { - doc = { - _id: doc.parent, - id: doc.parent, - ...doc.version, - } - - return sanitizeInternalFields(doc) - }), + for (let i = 0; i < result.docs.length; i++) { + const id = result.docs[i].parent + result.docs[i] = result.docs[i].version + result.docs[i].id = id } + + return result } diff --git a/packages/db-mongodb/src/updateGlobal.ts b/packages/db-mongodb/src/updateGlobal.ts index 86686064db..3ed8a04b3c 100644 --- a/packages/db-mongodb/src/updateGlobal.ts +++ b/packages/db-mongodb/src/updateGlobal.ts @@ -5,8 +5,7 @@ import type { MongooseAdapter } from './index.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const updateGlobal: UpdateGlobal = async function updateGlobal( this: MongooseAdapter, @@ -27,25 +26,11 @@ export const updateGlobal: UpdateGlobal = async function updateGlobal( session: await getSession(this, req), } - let result + transform({ adapter: this, data, fields, globalSlug: slug, operation: 'write' }) - const sanitizedData = sanitizeRelationshipIDs({ - config: this.payload.config, - data, - fields, - }) + const result: any = await Model.findOneAndUpdate({ globalType: slug }, data, options) - result = await Model.findOneAndUpdate({ globalType: slug }, sanitizedData, options) - - if (!result) { - return null - } - - result = JSON.parse(JSON.stringify(result)) - - // custom id type reset - result.id = result._id - result = sanitizeInternalFields(result) + transform({ adapter: this, data: result, fields, globalSlug: slug, operation: 'read' }) return result } diff --git a/packages/db-mongodb/src/updateGlobalVersion.ts b/packages/db-mongodb/src/updateGlobalVersion.ts index 3337d63f5b..9bc4b592ea 100644 --- a/packages/db-mongodb/src/updateGlobalVersion.ts +++ b/packages/db-mongodb/src/updateGlobalVersion.ts @@ -7,7 +7,7 @@ import type { MongooseAdapter } from './index.js' import { buildQuery } from './queries/buildQuery.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export async function updateGlobalVersion( this: MongooseAdapter, @@ -47,26 +47,15 @@ export async function updateGlobalVersion( where: whereToUse, }) - const sanitizedData = sanitizeRelationshipIDs({ - config: this.payload.config, - data: versionData, - fields, - }) + transform({ adapter: this, data: versionData, fields, operation: 'write' }) - const doc = await VersionModel.findOneAndUpdate(query, sanitizedData, options) + const doc = await VersionModel.findOneAndUpdate(query, versionData, options) if (!doc) { return null } - const result = JSON.parse(JSON.stringify(doc)) + transform({ adapter: this, data: doc, fields, operation: 'read' }) - const verificationToken = doc._verificationToken - - // custom id type reset - result.id = result._id - if (verificationToken) { - result._verificationToken = verificationToken - } - return result + return doc } diff --git a/packages/db-mongodb/src/updateOne.ts b/packages/db-mongodb/src/updateOne.ts index 569a36a83b..25dd47ba37 100644 --- a/packages/db-mongodb/src/updateOne.ts +++ b/packages/db-mongodb/src/updateOne.ts @@ -7,8 +7,7 @@ import { buildQuery } from './queries/buildQuery.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' import { handleError } from './utilities/handleError.js' -import { sanitizeInternalFields } from './utilities/sanitizeInternalFields.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const updateOne: UpdateOne = async function updateOne( this: MongooseAdapter, @@ -39,14 +38,10 @@ export const updateOne: UpdateOne = async function updateOne( let result - const sanitizedData = sanitizeRelationshipIDs({ - config: this.payload.config, - data, - fields, - }) + transform({ adapter: this, data, fields, operation: 'write' }) try { - result = await Model.findOneAndUpdate(query, sanitizedData, options) + result = await Model.findOneAndUpdate(query, data, options) } catch (error) { handleError({ collection, error, req }) } @@ -55,9 +50,7 @@ export const updateOne: UpdateOne = async function updateOne( return null } - result = JSON.parse(JSON.stringify(result)) - result.id = result._id - result = sanitizeInternalFields(result) + transform({ adapter: this, data: result, fields, operation: 'read' }) return result } diff --git a/packages/db-mongodb/src/updateVersion.ts b/packages/db-mongodb/src/updateVersion.ts index 4f9bd5d4c5..a2431388a4 100644 --- a/packages/db-mongodb/src/updateVersion.ts +++ b/packages/db-mongodb/src/updateVersion.ts @@ -7,7 +7,7 @@ import type { MongooseAdapter } from './index.js' import { buildQuery } from './queries/buildQuery.js' import { buildProjectionFromSelect } from './utilities/buildProjectionFromSelect.js' import { getSession } from './utilities/getSession.js' -import { sanitizeRelationshipIDs } from './utilities/sanitizeRelationshipIDs.js' +import { transform } from './utilities/transform.js' export const updateVersion: UpdateVersion = async function updateVersion( this: MongooseAdapter, @@ -45,26 +45,15 @@ export const updateVersion: UpdateVersion = async function updateVersion( where: whereToUse, }) - const sanitizedData = sanitizeRelationshipIDs({ - config: this.payload.config, - data: versionData, - fields, - }) + transform({ adapter: this, data: versionData, fields, operation: 'write' }) - const doc = await VersionModel.findOneAndUpdate(query, sanitizedData, options) + const doc = await VersionModel.findOneAndUpdate(query, versionData, options) if (!doc) { return null } - const result = JSON.parse(JSON.stringify(doc)) + transform({ adapter: this, data: doc, fields, operation: 'write' }) - const verificationToken = doc._verificationToken - - // custom id type reset - result.id = result._id - if (verificationToken) { - result._verificationToken = verificationToken - } - return result + return doc } diff --git a/packages/db-mongodb/src/utilities/sanitizeInternalFields.ts b/packages/db-mongodb/src/utilities/sanitizeInternalFields.ts deleted file mode 100644 index 14ab00da67..0000000000 --- a/packages/db-mongodb/src/utilities/sanitizeInternalFields.ts +++ /dev/null @@ -1,20 +0,0 @@ -const internalFields = ['__v'] - -export const sanitizeInternalFields = >(incomingDoc: T): T => - Object.entries(incomingDoc).reduce((newDoc, [key, val]): T => { - if (key === '_id') { - return { - ...newDoc, - id: val, - } - } - - if (internalFields.indexOf(key) > -1) { - return newDoc - } - - return { - ...newDoc, - [key]: val, - } - }, {} as T) diff --git a/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts b/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts deleted file mode 100644 index cb699cc294..0000000000 --- a/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts +++ /dev/null @@ -1,165 +0,0 @@ -import type { CollectionConfig, Field, SanitizedConfig, TraverseFieldsCallback } from 'payload' - -import { Types } from 'mongoose' -import { traverseFields } from 'payload' -import { fieldAffectsData, fieldShouldBeLocalized } from 'payload/shared' - -type Args = { - config: SanitizedConfig - data: Record - fields: Field[] - parentIsLocalized?: boolean -} - -interface RelationObject { - relationTo: string - value: number | string -} - -function isValidRelationObject(value: unknown): value is RelationObject { - return typeof value === 'object' && value !== null && 'relationTo' in value && 'value' in value -} - -const convertValue = ({ - relatedCollection, - value, -}: { - relatedCollection: CollectionConfig - value: number | string -}): number | string | Types.ObjectId => { - const customIDField = relatedCollection.fields.find( - (field) => fieldAffectsData(field) && field.name === 'id', - ) - - if (customIDField) { - return value - } - - try { - return new Types.ObjectId(value) - } catch { - return value - } -} - -const sanitizeRelationship = ({ config, field, locale, ref, value }) => { - let relatedCollection: CollectionConfig | undefined - let result = value - - const hasManyRelations = typeof field.relationTo !== 'string' - - if (!hasManyRelations) { - relatedCollection = config.collections?.find(({ slug }) => slug === field.relationTo) - } - - if (Array.isArray(value)) { - result = value.map((val) => { - // Handle has many - if (relatedCollection && val && (typeof val === 'string' || typeof val === 'number')) { - return convertValue({ - relatedCollection, - value: val, - }) - } - - // Handle has many - polymorphic - if (isValidRelationObject(val)) { - const relatedCollectionForSingleValue = config.collections?.find( - ({ slug }) => slug === val.relationTo, - ) - - if (relatedCollectionForSingleValue) { - return { - relationTo: val.relationTo, - value: convertValue({ - relatedCollection: relatedCollectionForSingleValue, - value: val.value, - }), - } - } - } - - return val - }) - } - - // Handle has one - polymorphic - if (isValidRelationObject(value)) { - relatedCollection = config.collections?.find(({ slug }) => slug === value.relationTo) - - if (relatedCollection) { - result = { - relationTo: value.relationTo, - value: convertValue({ relatedCollection, value: value.value }), - } - } - } - - // Handle has one - if (relatedCollection && value && (typeof value === 'string' || typeof value === 'number')) { - result = convertValue({ - relatedCollection, - value, - }) - } - if (locale) { - ref[locale] = result - } else { - ref[field.name] = result - } -} - -export const sanitizeRelationshipIDs = ({ - config, - data, - fields, - parentIsLocalized, -}: Args): Record => { - const sanitize: TraverseFieldsCallback = ({ field, ref }) => { - if (!ref || typeof ref !== 'object') { - return - } - - if (field.type === 'relationship' || field.type === 'upload') { - if (!ref[field.name]) { - return - } - - // handle localized relationships - if (config.localization && fieldShouldBeLocalized({ field, parentIsLocalized })) { - const locales = config.localization.locales - const fieldRef = ref[field.name] - if (typeof fieldRef !== 'object') { - return - } - - for (const { code } of locales) { - const value = ref[field.name][code] - if (value) { - sanitizeRelationship({ config, field, locale: code, ref: fieldRef, value }) - } - } - } else { - // handle non-localized relationships - sanitizeRelationship({ - config, - field, - locale: undefined, - ref, - value: ref[field.name], - }) - } - } - } - - traverseFields({ - callback: sanitize, - config, - fields, - fillEmpty: false, - parentIsLocalized, - ref: data, - }) - - return data -} diff --git a/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.spec.ts b/packages/db-mongodb/src/utilities/transform.spec.ts similarity index 95% rename from packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.spec.ts rename to packages/db-mongodb/src/utilities/transform.spec.ts index 4bc8c3c64f..85b5bdb49e 100644 --- a/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.spec.ts +++ b/packages/db-mongodb/src/utilities/transform.spec.ts @@ -2,7 +2,8 @@ import { flattenAllFields, type Field, type SanitizedConfig } from 'payload' import { Types } from 'mongoose' -import { sanitizeRelationshipIDs } from './sanitizeRelationshipIDs.js' +import { transform } from './transform.js' +import type { MongooseAdapter } from '../index.js' const flattenRelationshipValues = (obj: Record, prefix = ''): Record => { return Object.keys(obj).reduce( @@ -297,7 +298,7 @@ const relsData = { }, } -describe('sanitizeRelationshipIDs', () => { +describe('transform', () => { it('should sanitize relationships', () => { const data = { ...relsData, @@ -382,7 +383,18 @@ describe('sanitizeRelationshipIDs', () => { } const flattenValuesBefore = Object.values(flattenRelationshipValues(data)) - sanitizeRelationshipIDs({ config, data, fields: config.collections[0].fields }) + const mockAdapter = { + payload: { + config, + }, + } as MongooseAdapter + + transform({ + adapter: mockAdapter, + operation: 'write', + data, + fields: config.collections[0].fields, + }) const flattenValuesAfter = Object.values(flattenRelationshipValues(data)) flattenValuesAfter.forEach((value, i) => { diff --git a/packages/db-mongodb/src/utilities/transform.ts b/packages/db-mongodb/src/utilities/transform.ts new file mode 100644 index 0000000000..02c7b63cdf --- /dev/null +++ b/packages/db-mongodb/src/utilities/transform.ts @@ -0,0 +1,347 @@ +import type { + CollectionConfig, + DateField, + Field, + JoinField, + RelationshipField, + SanitizedConfig, + TraverseFieldsCallback, + UploadField, +} from 'payload' + +import { Types } from 'mongoose' +import { traverseFields } from 'payload' +import { fieldAffectsData, fieldShouldBeLocalized } from 'payload/shared' + +import type { MongooseAdapter } from '../index.js' + +interface RelationObject { + relationTo: string + value: number | string +} + +function isValidRelationObject(value: unknown): value is RelationObject { + return typeof value === 'object' && value !== null && 'relationTo' in value && 'value' in value +} + +const convertRelationshipValue = ({ + operation, + relatedCollection, + validateRelationships, + value, +}: { + operation: Args['operation'] + relatedCollection: CollectionConfig + validateRelationships?: boolean + value: unknown +}) => { + const customIDField = relatedCollection.fields.find( + (field) => fieldAffectsData(field) && field.name === 'id', + ) + + if (operation === 'read') { + if (value instanceof Types.ObjectId) { + return value.toHexString() + } + + return value + } + + if (customIDField) { + return value + } + + if (typeof value === 'string') { + try { + return new Types.ObjectId(value) + } catch (e) { + if (validateRelationships) { + throw e + } + return value + } + } + + return value +} + +const sanitizeRelationship = ({ + config, + field, + locale, + operation, + ref, + validateRelationships, + value, +}: { + config: SanitizedConfig + field: JoinField | RelationshipField | UploadField + locale?: string + operation: Args['operation'] + ref: Record + validateRelationships?: boolean + value?: unknown +}) => { + if (field.type === 'join') { + if ( + operation === 'read' && + value && + typeof value === 'object' && + 'docs' in value && + Array.isArray(value.docs) + ) { + for (let i = 0; i < value.docs.length; i++) { + const item = value.docs[i] + + if (item instanceof Types.ObjectId) { + value.docs[i] = item.toHexString() + } else if (Array.isArray(field.collection) && item) { + // Fields here for polymorphic joins cannot be determinted, JSON.parse needed + value.docs[i] = JSON.parse(JSON.stringify(value.docs[i])) + } + } + } + + return value + } + let relatedCollection: CollectionConfig | undefined + let result = value + + const hasManyRelations = typeof field.relationTo !== 'string' + + if (!hasManyRelations) { + relatedCollection = config.collections?.find(({ slug }) => slug === field.relationTo) + } + + if (Array.isArray(value)) { + result = value.map((val) => { + // Handle has many - polymorphic + if (isValidRelationObject(val)) { + const relatedCollectionForSingleValue = config.collections?.find( + ({ slug }) => slug === val.relationTo, + ) + + if (relatedCollectionForSingleValue) { + return { + relationTo: val.relationTo, + value: convertRelationshipValue({ + operation, + relatedCollection: relatedCollectionForSingleValue, + validateRelationships, + value: val.value, + }), + } + } + } + + if (relatedCollection) { + return convertRelationshipValue({ + operation, + relatedCollection, + validateRelationships, + value: val, + }) + } + + return val + }) + } + // Handle has one - polymorphic + else if (isValidRelationObject(value)) { + relatedCollection = config.collections?.find(({ slug }) => slug === value.relationTo) + + if (relatedCollection) { + result = { + relationTo: value.relationTo, + value: convertRelationshipValue({ + operation, + relatedCollection, + validateRelationships, + value: value.value, + }), + } + } + } + // Handle has one + else if (relatedCollection) { + result = convertRelationshipValue({ + operation, + relatedCollection, + validateRelationships, + value, + }) + } + + if (locale) { + ref[locale] = result + } else { + ref[field.name] = result + } +} + +const sanitizeDate = ({ + field, + locale, + ref, + value, +}: { + field: DateField + locale?: string + ref: Record + value: unknown +}) => { + if (!value) { + return + } + + if (value instanceof Date) { + value = value.toISOString() + } + + if (locale) { + ref[locale] = value + } else { + ref[field.name] = value + } +} + +type Args = { + /** instance of the adapter */ + adapter: MongooseAdapter + /** data to transform, can be an array of documents or a single document */ + data: Record | Record[] + /** fields accossiated with the data */ + fields: Field[] + /** slug of the global, pass only when the operation is `write` */ + globalSlug?: string + /** + * Type of the operation + * read - sanitizes ObjectIDs, Date to strings. + * write - sanitizes string relationships to ObjectIDs. + */ + operation: 'read' | 'write' + parentIsLocalized?: boolean + /** + * Throw errors on invalid relationships + * @default true + */ + validateRelationships?: boolean +} + +export const transform = ({ + adapter, + data, + fields, + globalSlug, + operation, + parentIsLocalized, + validateRelationships = true, +}: Args) => { + if (Array.isArray(data)) { + for (let i = 0; i < data.length; i++) { + transform({ adapter, data: data[i], fields, globalSlug, operation, validateRelationships }) + } + return + } + + const { + payload: { config }, + } = adapter + + if (operation === 'read') { + delete data['__v'] + data.id = data._id + delete data['_id'] + + if (data.id instanceof Types.ObjectId) { + data.id = data.id.toHexString() + } + } + + if (operation === 'write' && globalSlug) { + data.globalType = globalSlug + } + + const sanitize: TraverseFieldsCallback = ({ field, ref }) => { + if (!ref || typeof ref !== 'object') { + return + } + + if (field.type === 'date' && operation === 'read' && ref[field.name]) { + if (config.localization && fieldShouldBeLocalized({ field, parentIsLocalized })) { + const fieldRef = ref[field.name] + if (!fieldRef || typeof fieldRef !== 'object') { + return + } + + for (const locale of config.localization.localeCodes) { + sanitizeDate({ + field, + ref: fieldRef, + value: fieldRef[locale], + }) + } + } else { + sanitizeDate({ + field, + ref: ref as Record, + value: ref[field.name], + }) + } + } + + if ( + field.type === 'relationship' || + field.type === 'upload' || + (operation === 'read' && field.type === 'join') + ) { + if (!ref[field.name]) { + return + } + + // handle localized relationships + if (config.localization && fieldShouldBeLocalized({ field, parentIsLocalized })) { + const locales = config.localization.locales + const fieldRef = ref[field.name] + if (typeof fieldRef !== 'object') { + return + } + + for (const { code } of locales) { + const value = ref[field.name][code] + if (value) { + sanitizeRelationship({ + config, + field, + locale: code, + operation, + ref: fieldRef, + validateRelationships, + value, + }) + } + } + } else { + // handle non-localized relationships + sanitizeRelationship({ + config, + field, + locale: undefined, + operation, + ref: ref as Record, + validateRelationships, + value: ref[field.name], + }) + } + } + } + + traverseFields({ + callback: sanitize, + config, + fields, + fillEmpty: false, + parentIsLocalized, + ref: data, + }) +} diff --git a/test/joins/int.spec.ts b/test/joins/int.spec.ts index 12b535e01c..a83c3b3f92 100644 --- a/test/joins/int.spec.ts +++ b/test/joins/int.spec.ts @@ -175,7 +175,10 @@ describe('Joins Field', () => { collection: categoriesSlug, }) - expect(Object.keys(categoryWithPosts)).toStrictEqual(['id', 'group']) + expect(categoryWithPosts).toStrictEqual({ + id: categoryWithPosts.id, + group: categoryWithPosts.group, + }) expect(categoryWithPosts.group.relatedPosts.docs).toHaveLength(10) expect(categoryWithPosts.group.relatedPosts.docs[0]).toHaveProperty('id') diff --git a/test/select/int.spec.ts b/test/select/int.spec.ts index a106a8d2cb..dd8cf4f2c1 100644 --- a/test/select/int.spec.ts +++ b/test/select/int.spec.ts @@ -1648,7 +1648,10 @@ describe('Select', () => { }, }) - expect(Object.keys(res)).toStrictEqual(['id', 'text']) + expect(res).toStrictEqual({ + id: res.id, + text: res.text, + }) }) it('should apply select with updateByID', async () => { @@ -1661,7 +1664,10 @@ describe('Select', () => { select: { text: true }, }) - expect(Object.keys(res)).toStrictEqual(['id', 'text']) + expect(res).toStrictEqual({ + id: res.id, + text: res.text, + }) }) it('should apply select with updateBulk', async () => { @@ -1680,7 +1686,10 @@ describe('Select', () => { assert(res.docs[0]) - expect(Object.keys(res.docs[0])).toStrictEqual(['id', 'text']) + expect(res.docs[0]).toStrictEqual({ + id: res.docs[0].id, + text: res.docs[0].text, + }) }) it('should apply select with deleteByID', async () => { @@ -1692,7 +1701,10 @@ describe('Select', () => { select: { text: true }, }) - expect(Object.keys(res)).toStrictEqual(['id', 'text']) + expect(res).toStrictEqual({ + id: res.id, + text: res.text, + }) }) it('should apply select with deleteBulk', async () => { @@ -1710,7 +1722,10 @@ describe('Select', () => { assert(res.docs[0]) - expect(Object.keys(res.docs[0])).toStrictEqual(['id', 'text']) + expect(res.docs[0]).toStrictEqual({ + id: res.docs[0].id, + text: res.docs[0].text, + }) }) it('should apply select with duplicate', async () => { @@ -1722,7 +1737,10 @@ describe('Select', () => { select: { text: true }, }) - expect(Object.keys(res)).toStrictEqual(['id', 'text']) + expect(res).toStrictEqual({ + id: res.id, + text: res.text, + }) }) }) From f779e48a58609ecdefae2ace5ebccb0ea7e9313c Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Fri, 21 Feb 2025 18:15:27 +0200 Subject: [PATCH 02/33] fix: working `bin` configuration for custom scripts (#11294) Previously, the `bin` configuration wasn't working at all. Possibly because in an ESM environment this cannot work, because `import` always returns an object with a default export under the `module` key. ```ts const script: BinScript = await import(pathToFileURL(userBinScript.scriptPath).toString()) await script(config) ``` Now, this works, but you must define a `script` export from your file. Attached an integration test that asserts that it actually works. Added documentation on how to use it, as previously it was missing. This can be also helpful for plugins. ### Documentation Using the `bin` configuration property, you can inject your own scripts to `npx payload`. Example for `pnpm payload seed`: Step 1: create `seed.ts` file in the same folder with `payload.config.ts` with: ```ts import type { SanitizedConfig } from 'payload' import payload from 'payload' // Script must define a "script" function export that accepts the sanitized config export const script = async (config: SanitizedConfig) => { await payload.init({ config }) await payload.create({ collection: 'pages', data: { title: 'my title' } }) payload.logger.info('Succesffully seeded!') process.exit(0) } ``` Step 2: add the `seed` script to `bin`: ```ts export default buildConfig({ bin: [ { scriptPath: path.resolve(dirname, 'seed.ts'), key: 'seed', }, ], }) ``` Now you can run the script using: ```sh pnpm payload seed ``` --- docs/configuration/overview.mdx | 110 ++++++++++++++++++++---------- packages/payload/src/bin/index.ts | 14 +++- test/config/bin.ts | 8 +++ test/config/config.ts | 24 +++++-- test/config/customScript.ts | 13 ++++ test/config/int.spec.ts | 30 ++++++++ test/config/testFilePath.ts | 7 ++ 7 files changed, 162 insertions(+), 44 deletions(-) create mode 100644 test/config/bin.ts create mode 100644 test/config/customScript.ts create mode 100644 test/config/testFilePath.ts diff --git a/docs/configuration/overview.mdx b/docs/configuration/overview.mdx index 74f4f00cea..c51de58e2b 100644 --- a/docs/configuration/overview.mdx +++ b/docs/configuration/overview.mdx @@ -63,41 +63,41 @@ export default buildConfig({ The following options are available: -| Option | Description | -| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`admin`** | The configuration options for the Admin Panel, including Custom Components, Live Preview, etc. [More details](../admin/overview#admin-options). | -| **`bin`** | Register custom bin scripts for Payload to execute. | -| **`editor`** | The Rich Text Editor which will be used by `richText` fields. [More details](../rich-text/overview). | -| **`db`** * | The Database Adapter which will be used by Payload. [More details](../database/overview). | -| **`serverURL`** | A string used to define the absolute URL of your app. This includes the protocol, for example `https://example.com`. No paths allowed, only protocol, domain and (optionally) port. | -| **`collections`** | An array of Collections for Payload to manage. [More details](./collections). | -| **`compatibility`** | Compatibility flags for earlier versions of Payload. [More details](#compatibility-flags). | -| **`globals`** | An array of Globals for Payload to manage. [More details](./globals). | -| **`cors`** | Cross-origin resource sharing (CORS) is a mechanism that accept incoming requests from given domains. You can also customize the `Access-Control-Allow-Headers` header. [More details](#cors). | -| **`localization`** | Opt-in to translate your content into multiple locales. [More details](./localization). | -| **`logger`** | Logger options, logger options with a destination stream, or an instantiated logger instance. [More details](https://getpino.io/#/docs/api?id=options). | -| **`loggingLevels`** | An object to override the level to use in the logger for Payload's errors. | -| **`graphQL`** | Manage GraphQL-specific functionality, including custom queries and mutations, query complexity limits, etc. [More details](../graphql/overview#graphql-options). | -| **`cookiePrefix`** | A string that will be prefixed to all cookies that Payload sets. | -| **`csrf`** | A whitelist array of URLs to allow Payload to accept cookies from. [More details](../authentication/cookies#csrf-attacks). | -| **`defaultDepth`** | If a user does not specify `depth` while requesting a resource, this depth will be used. [More details](../queries/depth). | -| **`defaultMaxTextLength`** | The maximum allowed string length to be permitted application-wide. Helps to prevent malicious public document creation. | -| **`maxDepth`** | The maximum allowed depth to be permitted application-wide. This setting helps prevent against malicious queries. Defaults to `10`. [More details](../queries/depth). | -| **`indexSortableFields`** | Automatically index all sortable top-level fields in the database to improve sort performance and add database compatibility for Azure Cosmos and similar. | -| **`upload`** | Base Payload upload configuration. [More details](../upload/overview#payload-wide-upload-options). | -| **`routes`** | Control the routing structure that Payload binds itself to. [More details](../admin/overview#root-level-routes). | -| **`email`** | Configure the Email Adapter for Payload to use. [More details](../email/overview). | -| **`onInit`** | A function that is called immediately following startup that receives the Payload instance as its only argument. | -| **`debug`** | Enable to expose more detailed error information. | -| **`telemetry`** | Disable Payload telemetry by passing `false`. [More details](#telemetry). | -| **`hooks`** | An array of Root Hooks. [More details](../hooks/overview). | -| **`plugins`** | An array of Plugins. [More details](../plugins/overview). | -| **`endpoints`** | An array of Custom Endpoints added to the Payload router. [More details](../rest-api/overview#custom-endpoints). | -| **`custom`** | Extension point for adding custom data (e.g. for plugins). | -| **`i18n`** | Internationalization configuration. Pass all i18n languages you'd like the admin UI to support. Defaults to English-only. [More details](./i18n). | -| **`secret`** * | A secure, unguessable string that Payload will use for any encryption workflows - for example, password salt / hashing. | -| **`sharp`** | If you would like Payload to offer cropping, focal point selection, and automatic media resizing, install and pass the Sharp module to the config here. | -| **`typescript`** | Configure TypeScript settings here. [More details](#typescript). | +| Option | Description | +| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **`admin`** | The configuration options for the Admin Panel, including Custom Components, Live Preview, etc. [More details](../admin/overview#admin-options). | +| **`bin`** | Register custom bin scripts for Payload to execute. [More Details](#custom-bin-scripts). | +| **`editor`** | The Rich Text Editor which will be used by `richText` fields. [More details](../rich-text/overview). | +| **`db`** * | The Database Adapter which will be used by Payload. [More details](../database/overview). | +| **`serverURL`** | A string used to define the absolute URL of your app. This includes the protocol, for example `https://example.com`. No paths allowed, only protocol, domain and (optionally) port. | +| **`collections`** | An array of Collections for Payload to manage. [More details](./collections). | +| **`compatibility`** | Compatibility flags for earlier versions of Payload. [More details](#compatibility-flags). | +| **`globals`** | An array of Globals for Payload to manage. [More details](./globals). | +| **`cors`** | Cross-origin resource sharing (CORS) is a mechanism that accept incoming requests from given domains. You can also customize the `Access-Control-Allow-Headers` header. [More details](#cors). | +| **`localization`** | Opt-in to translate your content into multiple locales. [More details](./localization). | +| **`logger`** | Logger options, logger options with a destination stream, or an instantiated logger instance. [More details](https://getpino.io/#/docs/api?id=options). | +| **`loggingLevels`** | An object to override the level to use in the logger for Payload's errors. | +| **`graphQL`** | Manage GraphQL-specific functionality, including custom queries and mutations, query complexity limits, etc. [More details](../graphql/overview#graphql-options). | +| **`cookiePrefix`** | A string that will be prefixed to all cookies that Payload sets. | +| **`csrf`** | A whitelist array of URLs to allow Payload to accept cookies from. [More details](../authentication/cookies#csrf-attacks). | +| **`defaultDepth`** | If a user does not specify `depth` while requesting a resource, this depth will be used. [More details](../queries/depth). | +| **`defaultMaxTextLength`** | The maximum allowed string length to be permitted application-wide. Helps to prevent malicious public document creation. | +| **`maxDepth`** | The maximum allowed depth to be permitted application-wide. This setting helps prevent against malicious queries. Defaults to `10`. [More details](../queries/depth). | +| **`indexSortableFields`** | Automatically index all sortable top-level fields in the database to improve sort performance and add database compatibility for Azure Cosmos and similar. | +| **`upload`** | Base Payload upload configuration. [More details](../upload/overview#payload-wide-upload-options). | +| **`routes`** | Control the routing structure that Payload binds itself to. [More details](../admin/overview#root-level-routes). | +| **`email`** | Configure the Email Adapter for Payload to use. [More details](../email/overview). | +| **`onInit`** | A function that is called immediately following startup that receives the Payload instance as its only argument. | +| **`debug`** | Enable to expose more detailed error information. | +| **`telemetry`** | Disable Payload telemetry by passing `false`. [More details](#telemetry). | +| **`hooks`** | An array of Root Hooks. [More details](../hooks/overview). | +| **`plugins`** | An array of Plugins. [More details](../plugins/overview). | +| **`endpoints`** | An array of Custom Endpoints added to the Payload router. [More details](../rest-api/overview#custom-endpoints). | +| **`custom`** | Extension point for adding custom data (e.g. for plugins). | +| **`i18n`** | Internationalization configuration. Pass all i18n languages you'd like the admin UI to support. Defaults to English-only. [More details](./i18n). | +| **`secret`** * | A secure, unguessable string that Payload will use for any encryption workflows - for example, password salt / hashing. | +| **`sharp`** | If you would like Payload to offer cropping, focal point selection, and automatic media resizing, install and pass the Sharp module to the config here. | +| **`typescript`** | Configure TypeScript settings here. [More details](#typescript). | _* An asterisk denotes that a property is required._ @@ -265,3 +265,43 @@ The Payload Config can accept compatibility flags for running the newest version Payload localization works on a field-by-field basis. As you can nest fields within other fields, you could potentially nest a localized field within a localized field—but this would be redundant and unnecessary. There would be no reason to define a localized field within a localized parent field, given that the entire data structure from the parent field onward would be localized. By default, Payload will remove the `localized: true` property from sub-fields if a parent field is localized. Set this compatibility flag to `true` only if you have an existing Payload MongoDB database from pre-3.0, and you have nested localized fields that you would like to maintain without migrating. + + +## Custom bin scripts + +Using the `bin` configuration property, you can inject your own scripts to `npx payload`. +Example for `pnpm payload seed`: + + +Step 1: create `seed.ts` file in the same folder with `payload.config.ts` with: + +```ts +import type { SanitizedConfig } from 'payload' + +import payload from 'payload' + +// Script must define a "script" function export that accepts the sanitized config +export const script = async (config: SanitizedConfig) => { + await payload.init({ config }) + await payload.create({ collection: 'pages', data: { title: 'my title' } }) + payload.logger.info('Succesffully seeded!') + process.exit(0) +} +``` + +Step 2: add the `seed` script to `bin`: +```ts +export default buildConfig({ + bin: [ + { + scriptPath: path.resolve(dirname, 'seed.ts'), + key: 'seed', + }, + ], +}) +``` + +Now you can run the command using: +```sh +pnpm payload seed +``` \ No newline at end of file diff --git a/packages/payload/src/bin/index.ts b/packages/payload/src/bin/index.ts index f9eb3714b9..2faa0697ad 100755 --- a/packages/payload/src/bin/index.ts +++ b/packages/payload/src/bin/index.ts @@ -76,8 +76,18 @@ export const bin = async () => { if (userBinScript) { try { - const script: BinScript = await import(pathToFileURL(userBinScript.scriptPath).toString()) - await script(config) + const module = await import(pathToFileURL(userBinScript.scriptPath).toString()) + + if (!module.script || typeof module.script !== 'function') { + console.error( + `Could not find "script" function export for script ${userBinScript.key} in ${userBinScript.scriptPath}`, + ) + } else { + await module.script(config).catch((err: unknown) => { + console.log(`Script ${userBinScript.key} failed, details:`) + console.error(err) + }) + } } catch (err) { console.log(`Could not find associated bin script for the ${userBinScript.key} command`) console.error(err) diff --git a/test/config/bin.ts b/test/config/bin.ts new file mode 100644 index 0000000000..0ab75bdeb8 --- /dev/null +++ b/test/config/bin.ts @@ -0,0 +1,8 @@ +import path from 'path' +import { fileURLToPath } from 'url' + +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) +const { bin } = await import(path.resolve(dirname, '../../packages/payload/src/bin/index.js')) + +await bin() diff --git a/test/config/config.ts b/test/config/config.ts index c777de4113..957b7c7996 100644 --- a/test/config/config.ts +++ b/test/config/config.ts @@ -80,6 +80,12 @@ export default buildConfigWithDefaults({ path: '/config', }, ], + bin: [ + { + scriptPath: path.resolve(dirname, 'customScript.ts'), + key: 'start-server', + }, + ], globals: [ { slug: 'my-global', @@ -107,13 +113,17 @@ export default buildConfigWithDefaults({ }, ], onInit: async (payload) => { - await payload.create({ - collection: 'users', - data: { - email: devUser.email, - password: devUser.password, - }, - }) + const { totalDocs } = await payload.count({ collection: 'users' }) + + if (totalDocs === 0) { + await payload.create({ + collection: 'users', + data: { + email: devUser.email, + password: devUser.password, + }, + }) + } }, typescript: { outputFile: path.resolve(dirname, 'payload-types.ts'), diff --git a/test/config/customScript.ts b/test/config/customScript.ts new file mode 100644 index 0000000000..24989e5791 --- /dev/null +++ b/test/config/customScript.ts @@ -0,0 +1,13 @@ +import type { SanitizedConfig } from 'payload' + +import { writeFileSync } from 'fs' +import payload from 'payload' + +import { testFilePath } from './testFilePath.js' + +export const script = async (config: SanitizedConfig) => { + await payload.init({ config }) + const data = await payload.find({ collection: 'users' }) + writeFileSync(testFilePath, JSON.stringify(data), 'utf-8') + process.exit(0) +} diff --git a/test/config/int.spec.ts b/test/config/int.spec.ts index c6750ad690..c3a843cc00 100644 --- a/test/config/int.spec.ts +++ b/test/config/int.spec.ts @@ -1,11 +1,14 @@ import type { BlockField, Payload } from 'payload' +import { execSync } from 'child_process' +import { existsSync, readFileSync, rmSync } from 'fs' import path from 'path' import { fileURLToPath } from 'url' import type { NextRESTClient } from '../helpers/NextRESTClient.js' import { initPayloadInt } from '../helpers/initPayloadInt.js' +import { testFilePath } from './testFilePath.js' let restClient: NextRESTClient let payload: Payload @@ -106,4 +109,31 @@ describe('Config', () => { expect(response.headers.get('Access-Control-Allow-Headers')).toContain('x-custom-header') }) }) + + describe('bin config', () => { + const executeCLI = (command: string) => { + execSync(`pnpm tsx "${path.resolve(dirname, 'bin.ts')}" ${command}`, { + env: { + ...process.env, + PAYLOAD_CONFIG_PATH: path.resolve(dirname, 'config.ts'), + PAYLOAD_DROP_DATABASE: 'false', + }, + stdio: 'inherit', + cwd: path.resolve(dirname, '../..'), // from root + }) + } + + const deleteTestFile = () => { + if (existsSync(testFilePath)) { + rmSync(testFilePath) + } + } + + it('should execute a custom script', () => { + deleteTestFile() + executeCLI('start-server') + expect(JSON.parse(readFileSync(testFilePath, 'utf-8')).docs).toHaveLength(1) + deleteTestFile() + }) + }) }) diff --git a/test/config/testFilePath.ts b/test/config/testFilePath.ts new file mode 100644 index 0000000000..a65672e109 --- /dev/null +++ b/test/config/testFilePath.ts @@ -0,0 +1,7 @@ +import path from 'path' +import { fileURLToPath } from 'url' + +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) + +export const testFilePath = path.resolve(dirname, '_data.json') From 6ff380ce592923f8f312719ba0aa7e2bbb332058 Mon Sep 17 00:00:00 2001 From: Tib Date: Fri, 21 Feb 2025 18:29:57 +0100 Subject: [PATCH 03/33] docs: update outdated docs/rich-text/overview feature names (#11324) Features was outdated --- docs/rich-text/overview.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/rich-text/overview.mdx b/docs/rich-text/overview.mdx index 02ff5ad8ac..5374950e46 100644 --- a/docs/rich-text/overview.mdx +++ b/docs/rich-text/overview.mdx @@ -145,13 +145,13 @@ Here's an overview of all the included features: | Feature Name | Included by default | Description | | --- | --- | --- | -| **`BoldTextFeature`** | Yes | Handles the bold text format | -| **`ItalicTextFeature`** | Yes | Handles the italic text format | -| **`UnderlineTextFeature`** | Yes | Handles the underline text format | -| **`StrikethroughTextFeature`** | Yes | Handles the strikethrough text format | -| **`SubscriptTextFeature`** | Yes | Handles the subscript text format | -| **`SuperscriptTextFeature`** | Yes | Handles the superscript text format | -| **`InlineCodeTextFeature`** | Yes | Handles the inline-code text format | +| **`BoldFeature`** | Yes | Handles the bold text format | +| **`ItalicFeature`** | Yes | Handles the italic text format | +| **`UnderlineFeature`** | Yes | Handles the underline text format | +| **`StrikethroughFeature`** | Yes | Handles the strikethrough text format | +| **`SubscriptFeature`** | Yes | Handles the subscript text format | +| **`SuperscriptFeature`** | Yes | Handles the superscript text format | +| **`InlineCodeFeature`** | Yes | Handles the inline-code text format | | **`ParagraphFeature`** | Yes | Handles paragraphs. Since they are already a key feature of lexical itself, this Feature mainly handles the Slash and Add-Block menu entries for paragraphs | | **`HeadingFeature`** | Yes | Adds Heading Nodes (by default, H1 - H6, but that can be customized) | | **`AlignFeature`** | Yes | Allows you to align text left, centered and right | From 0058f82d870071e5f000f13c2cfe89de0afb4e0e Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Fri, 21 Feb 2025 11:09:40 -0700 Subject: [PATCH 04/33] perf: add limit: 1 and pagination: false to various payload queries (#11319) `payload.find` queries can be made faster by specifying `limit: 1` and `pagination: false` when only the first document is needed. This PR applies those options to various queries to improve performance. --- packages/payload/src/auth/strategies/jwt.ts | 2 ++ .../src/utilities/getGlobalViewRedirect.ts | 1 + packages/plugin-search/src/Search/hooks/deleteFromSearch.ts | 2 ++ packages/plugin-search/src/utilities/syncDocAsSearchIndex.ts | 2 ++ packages/plugin-stripe/src/webhooks/handleCreatedOrUpdated.ts | 4 ++++ packages/plugin-stripe/src/webhooks/handleDeleted.ts | 2 ++ 6 files changed, 13 insertions(+) diff --git a/packages/payload/src/auth/strategies/jwt.ts b/packages/payload/src/auth/strategies/jwt.ts index 45fbc84db8..1cbb2b771e 100644 --- a/packages/payload/src/auth/strategies/jwt.ts +++ b/packages/payload/src/auth/strategies/jwt.ts @@ -54,6 +54,8 @@ async function autoLogin({ await payload.find({ collection: collection.config.slug, depth: isGraphQL ? 0 : collection.config.auth.depth, + limit: 1, + pagination: false, where, }) ).docs[0] diff --git a/packages/plugin-multi-tenant/src/utilities/getGlobalViewRedirect.ts b/packages/plugin-multi-tenant/src/utilities/getGlobalViewRedirect.ts index 562264848b..6cb79b7c15 100644 --- a/packages/plugin-multi-tenant/src/utilities/getGlobalViewRedirect.ts +++ b/packages/plugin-multi-tenant/src/utilities/getGlobalViewRedirect.ts @@ -52,6 +52,7 @@ export async function getGlobalViewRedirect({ depth: 0, limit: 1, overrideAccess: false, + pagination: false, user, where: { [tenantFieldName]: { diff --git a/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts b/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts index 761534eed9..04a395598c 100644 --- a/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts +++ b/packages/plugin-search/src/Search/hooks/deleteFromSearch.ts @@ -12,6 +12,8 @@ export const deleteFromSearch: DeleteFromSearch = async ({ const searchDocQuery = await payload.find({ collection: searchSlug, depth: 0, + limit: 1, + pagination: false, req, where: { doc: { diff --git a/packages/plugin-search/src/utilities/syncDocAsSearchIndex.ts b/packages/plugin-search/src/utilities/syncDocAsSearchIndex.ts index 199a6c3b16..bb8734439f 100644 --- a/packages/plugin-search/src/utilities/syncDocAsSearchIndex.ts +++ b/packages/plugin-search/src/utilities/syncDocAsSearchIndex.ts @@ -149,7 +149,9 @@ export const syncDocAsSearchIndex = async ({ } = await payload.find({ collection, draft: false, + limit: 1, locale: syncLocale, + pagination: false, req, where: { and: [ diff --git a/packages/plugin-stripe/src/webhooks/handleCreatedOrUpdated.ts b/packages/plugin-stripe/src/webhooks/handleCreatedOrUpdated.ts index bf9c773e1f..16db3affcd 100644 --- a/packages/plugin-stripe/src/webhooks/handleCreatedOrUpdated.ts +++ b/packages/plugin-stripe/src/webhooks/handleCreatedOrUpdated.ts @@ -54,6 +54,8 @@ export const handleCreatedOrUpdated: HandleCreatedOrUpdated = async (args) => { // First, search for an existing document in Payload const payloadQuery = await payload.find({ collection: collectionSlug, + limit: 1, + pagination: false, where: { stripeID: { equals: stripeID, @@ -95,6 +97,8 @@ export const handleCreatedOrUpdated: HandleCreatedOrUpdated = async (args) => { if (stripeDoc?.email) { const authQuery = await payload.find({ collection: collectionSlug, + limit: 1, + pagination: false, where: { email: { equals: stripeDoc.email, diff --git a/packages/plugin-stripe/src/webhooks/handleDeleted.ts b/packages/plugin-stripe/src/webhooks/handleDeleted.ts index 75d0f55311..f74f6cbab2 100644 --- a/packages/plugin-stripe/src/webhooks/handleDeleted.ts +++ b/packages/plugin-stripe/src/webhooks/handleDeleted.ts @@ -40,6 +40,8 @@ export const handleDeleted: HandleDeleted = async (args) => { try { const payloadQuery = await payload.find({ collection: collectionSlug, + limit: 1, + pagination: false, where: { stripeID: { equals: stripeID, From 5d7be15c524530f76b49a0b5416bbebceabc5070 Mon Sep 17 00:00:00 2001 From: Patrik Date: Fri, 21 Feb 2025 13:15:54 -0500 Subject: [PATCH 05/33] templates: update docker-compose to use postgres by default in postgres specific templates (#11328) ### What? Updated `docker-compose.yml` to use `Postgres` by default, with `MongoDB` commented out in the templates that are by default using the postgres adapter. Fixes #11322 --- templates/with-postgres/docker-compose.yml | 50 ++++++++++--------- .../with-vercel-postgres/docker-compose.yml | 50 ++++++++++--------- .../src/generate-template-variations.ts | 2 + 3 files changed, 56 insertions(+), 46 deletions(-) diff --git a/templates/with-postgres/docker-compose.yml b/templates/with-postgres/docker-compose.yml index 3aba7cc7e2..40e4acb761 100644 --- a/templates/with-postgres/docker-compose.yml +++ b/templates/with-postgres/docker-compose.yml @@ -2,42 +2,46 @@ version: '3' services: payload: - image: node:18-alpine + image: node:20-alpine ports: - '3000:3000' volumes: - .:/home/node/app - node_modules:/home/node/app/node_modules working_dir: /home/node/app/ - command: sh -c "corepack enable && corepack prepare pnpm@latest --activate && pnpm install && pnpm dev" + command: sh -c "corepack enable && corepack prepare pnpm@9.0.0 --activate && pnpm install && pnpm dev" depends_on: - - mongo - # - postgres + - postgres + # - mongo env_file: - .env - # Ensure your DATABASE_URI uses 'mongo' as the hostname ie. mongodb://mongo/my-db-name - mongo: - image: mongo:latest - ports: - - '27017:27017' - command: - - --storageEngine=wiredTiger + # Ensure your DATABASE_URI uses 'postgresql' as the hostname ie. postgresql://127.0.0.1:5432/your-database-name + postgres: + restart: always + image: postgres:latest volumes: - - data:/data/db - logging: - driver: none + - pgdata:/var/lib/postgresql/data + ports: + - '5432:5432' + environment: + POSTGRES_USER: postgres + POSTGRES_DB: your-database-name # THIS MUST MATCH YOUR DB NAME IN .env + POSTGRES_HOST_AUTH_METHOD: trust - # Uncomment the following to use postgres - # postgres: - # restart: always - # image: postgres:latest - # volumes: - # - pgdata:/var/lib/postgresql/data + # Uncomment the following to use mongodb + # mongo: + # image: mongo:latest # ports: - # - "5432:5432" + # - '27017:27017' + # command: + # - --storageEngine=wiredTiger + # volumes: + # - data:/data/db + # logging: + # driver: none volumes: - data: - # pgdata: + pgdata: + # data: node_modules: diff --git a/templates/with-vercel-postgres/docker-compose.yml b/templates/with-vercel-postgres/docker-compose.yml index 3aba7cc7e2..40e4acb761 100644 --- a/templates/with-vercel-postgres/docker-compose.yml +++ b/templates/with-vercel-postgres/docker-compose.yml @@ -2,42 +2,46 @@ version: '3' services: payload: - image: node:18-alpine + image: node:20-alpine ports: - '3000:3000' volumes: - .:/home/node/app - node_modules:/home/node/app/node_modules working_dir: /home/node/app/ - command: sh -c "corepack enable && corepack prepare pnpm@latest --activate && pnpm install && pnpm dev" + command: sh -c "corepack enable && corepack prepare pnpm@9.0.0 --activate && pnpm install && pnpm dev" depends_on: - - mongo - # - postgres + - postgres + # - mongo env_file: - .env - # Ensure your DATABASE_URI uses 'mongo' as the hostname ie. mongodb://mongo/my-db-name - mongo: - image: mongo:latest - ports: - - '27017:27017' - command: - - --storageEngine=wiredTiger + # Ensure your DATABASE_URI uses 'postgresql' as the hostname ie. postgresql://127.0.0.1:5432/your-database-name + postgres: + restart: always + image: postgres:latest volumes: - - data:/data/db - logging: - driver: none + - pgdata:/var/lib/postgresql/data + ports: + - '5432:5432' + environment: + POSTGRES_USER: postgres + POSTGRES_DB: your-database-name # THIS MUST MATCH YOUR DB NAME IN .env + POSTGRES_HOST_AUTH_METHOD: trust - # Uncomment the following to use postgres - # postgres: - # restart: always - # image: postgres:latest - # volumes: - # - pgdata:/var/lib/postgresql/data + # Uncomment the following to use mongodb + # mongo: + # image: mongo:latest # ports: - # - "5432:5432" + # - '27017:27017' + # command: + # - --storageEngine=wiredTiger + # volumes: + # - data:/data/db + # logging: + # driver: none volumes: - data: - # pgdata: + pgdata: + # data: node_modules: diff --git a/tools/scripts/src/generate-template-variations.ts b/tools/scripts/src/generate-template-variations.ts index e385edbaec..c38049a4ab 100644 --- a/tools/scripts/src/generate-template-variations.ts +++ b/tools/scripts/src/generate-template-variations.ts @@ -68,6 +68,7 @@ async function main() { dbUri: 'POSTGRES_URL', }, sharp: false, + skipDockerCompose: true, storage: 'vercelBlobStorage', vercelDeployButtonLink: `https://vercel.com/new/clone?repository-url=` + @@ -107,6 +108,7 @@ async function main() { db: 'postgres', dirname: 'with-postgres', sharp: true, + skipDockerCompose: true, storage: 'localDisk', }, { From a8bec9a1b260a2ad1849d099e2a715fb04cf77db Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Fri, 21 Feb 2025 13:42:47 -0500 Subject: [PATCH 06/33] fix(ui): only show bulk select all when count is less than total (#11329) It doesn't make sense to display "select all" when bulk editing if your current selection already contains all records. --- .../ui/src/elements/ListSelection/index.scss | 4 ++ .../ui/src/elements/ListSelection/index.tsx | 6 +- test/admin/e2e/general/e2e.spec.ts | 61 +++++++++++++------ tsconfig.base.json | 2 +- 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/packages/ui/src/elements/ListSelection/index.scss b/packages/ui/src/elements/ListSelection/index.scss index d2dd8b8675..f3f496d708 100644 --- a/packages/ui/src/elements/ListSelection/index.scss +++ b/packages/ui/src/elements/ListSelection/index.scss @@ -2,8 +2,10 @@ @layer payload-default { .list-selection { + display: flex; margin-left: auto; color: var(--theme-elevation-500); + gap: 0.5em; &__button { color: var(--theme-elevation-500); @@ -11,6 +13,8 @@ border: none; text-decoration: underline; cursor: pointer; + padding: 0; + font-size: inherit; } @include small-break { diff --git a/packages/ui/src/elements/ListSelection/index.tsx b/packages/ui/src/elements/ListSelection/index.tsx index f72b645b83..5620a29a55 100644 --- a/packages/ui/src/elements/ListSelection/index.tsx +++ b/packages/ui/src/elements/ListSelection/index.tsx @@ -22,13 +22,13 @@ export const ListSelection: React.FC = ({ label }) => { return (
{t('general:selectedCount', { count, label })} - {selectAll !== SelectAllStatus.AllAvailable && ( + {selectAll !== SelectAllStatus.AllAvailable && count < totalDocs && ( - {' '} - — + = (props) => { } = props const { permissions } = useAuth() + const { openModal } = useModal() const { selectAll } = useSelection() const { t } = useTranslation() @@ -39,16 +41,17 @@ export const EditMany: React.FC = (props) => { return (
- { + openModal(drawerSlug) setSelected([]) }} - slug={drawerSlug} + type="button" > {t('general:edit')} - + = (props) => { beforeActions, collectionConfig, collectionSlug, - disableBulkDelete, - disableBulkEdit, enableColumns = true, enableSort = false, listMenuItems, @@ -148,19 +150,7 @@ export const ListControls: React.FC = (props) => { />
- {!smallBreak && ( - - {beforeActions && beforeActions} - {!disableBulkEdit && ( - - - - - - )} - {!disableBulkDelete && } - - )} + {!smallBreak && {beforeActions && beforeActions}} {enableColumns && ( = ({ label }) => { +export const ListSelection: React.FC = ({ + collectionConfig, + disableBulkDelete, + disableBulkEdit, + label, +}) => { const { count, selectAll, toggleAll, totalDocs } = useSelection() const { t } = useTranslation() @@ -21,21 +35,27 @@ export const ListSelection: React.FC = ({ label }) => { return (
- {t('general:selectedCount', { count, label })} + {t('general:selectedCount', { count, label: '' })} {selectAll !== SelectAllStatus.AllAvailable && count < totalDocs && ( + + )} + {!disableBulkEdit && !disableBulkDelete && } + {!disableBulkEdit && ( - - + + + )} + {!disableBulkDelete && }
) } diff --git a/packages/ui/src/elements/PublishMany/index.scss b/packages/ui/src/elements/PublishMany/index.scss new file mode 100644 index 0000000000..d310ebdf22 --- /dev/null +++ b/packages/ui/src/elements/PublishMany/index.scss @@ -0,0 +1,21 @@ +@import '../../scss/styles.scss'; + +@layer payload-default { + .publish-many { + &__toggle { + font-size: inherit; + line-height: inherit; + display: inline-flex; + background: transparent; + color: var(--theme-elevation-800); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + border: 0; + padding: 0; + align-items: center; + cursor: pointer; + text-decoration: underline; + } + } +} diff --git a/packages/ui/src/elements/PublishMany/index.tsx b/packages/ui/src/elements/PublishMany/index.tsx index 8bae422581..2585ce7bd4 100644 --- a/packages/ui/src/elements/PublishMany/index.tsx +++ b/packages/ui/src/elements/PublishMany/index.tsx @@ -16,7 +16,7 @@ import { useTranslation } from '../../providers/Translation/index.js' import { requests } from '../../utilities/api.js' import { parseSearchParams } from '../../utilities/parseSearchParams.js' import { ConfirmationModal } from '../ConfirmationModal/index.js' -import { Pill } from '../Pill/index.js' +import './index.scss' export type PublishManyProps = { collection: ClientCollectionConfig @@ -133,14 +133,15 @@ export const PublishMany: React.FC = (props) => { return ( - { openModal(modalSlug) }} + type="button" > {t('version:publish')} - + = (props) => { return ( - { toggleModal(modalSlug) }} + type="button" > {t('version:unpublish')} - + = ({ className, collectionConfig, Description, + disableBulkDelete, + disableBulkEdit, hasCreatePermission, i18n, isBulkUploadEnabled, @@ -72,7 +76,12 @@ const DefaultListHeader: React.FC = ({ )} {!smallBreak && ( - + )} {Description} diff --git a/packages/ui/src/views/List/index.tsx b/packages/ui/src/views/List/index.tsx index 07dbf69a49..9a5c862541 100644 --- a/packages/ui/src/views/List/index.tsx +++ b/packages/ui/src/views/List/index.tsx @@ -9,8 +9,6 @@ import React, { Fragment, useEffect, useState } from 'react' import { useBulkUpload } from '../../elements/BulkUpload/index.js' import { Button } from '../../elements/Button/index.js' -import { DeleteMany } from '../../elements/DeleteMany/index.js' -import { EditMany } from '../../elements/EditMany/index.js' import { Gutter } from '../../elements/Gutter/index.js' import { ListControls } from '../../elements/ListControls/index.js' import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js' @@ -18,13 +16,11 @@ import { ListSelection } from '../../elements/ListSelection/index.js' import { useModal } from '../../elements/Modal/index.js' import { Pagination } from '../../elements/Pagination/index.js' import { PerPage } from '../../elements/PerPage/index.js' -import { PublishMany } from '../../elements/PublishMany/index.js' import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js' import { SelectMany } from '../../elements/SelectMany/index.js' import { useStepNav } from '../../elements/StepNav/index.js' import { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js' import { TableColumnsProvider } from '../../elements/TableColumns/index.js' -import { UnpublishMany } from '../../elements/UnpublishMany/index.js' import { ViewDescription } from '../../elements/ViewDescription/index.js' import { useAuth } from '../../providers/Auth/index.js' import { useConfig } from '../../providers/Config/index.js' @@ -185,6 +181,8 @@ export function DefaultListView(props: ListViewClientProps) { />
} + disableBulkDelete={disableBulkDelete} + disableBulkEdit={disableBulkEdit} hasCreatePermission={hasCreatePermission} i18n={i18n} isBulkUploadEnabled={isBulkUploadEnabled && !upload.hideFileInputOnCreate} @@ -203,8 +201,6 @@ export function DefaultListView(props: ListViewClientProps) { } collectionConfig={collectionConfig} collectionSlug={collectionSlug} - disableBulkDelete={disableBulkDelete} - disableBulkEdit={disableBulkEdit} listMenuItems={listMenuItems} renderedFilters={renderedFilters} resolvedFilterOptions={resolvedFilterOptions} @@ -267,6 +263,9 @@ export function DefaultListView(props: ListViewClientProps) { {smallBreak && (
@@ -278,14 +277,6 @@ export function DefaultListView(props: ListViewClientProps) { ] : [] : beforeActions} - {!disableBulkEdit && ( - - - - - - )} - {!disableBulkDelete && }
)} diff --git a/test/admin/e2e/general/e2e.spec.ts b/test/admin/e2e/general/e2e.spec.ts index 2da7c45f62..ec77d11e64 100644 --- a/test/admin/e2e/general/e2e.spec.ts +++ b/test/admin/e2e/general/e2e.spec.ts @@ -12,6 +12,7 @@ import { openNav, saveDocAndAssert, saveDocHotkeyAndAssert, + // throttleTest, } from '../../../helpers.js' import { AdminUrlUtil } from '../../../helpers/adminUrlUtil.js' import { initPayloadE2ENoConfig } from '../../../helpers/initPayloadE2ENoConfig.js' @@ -51,7 +52,6 @@ let payload: PayloadTestSDK import { navigateToDoc } from 'helpers/e2e/navigateToDoc.js' import { openDocControls } from 'helpers/e2e/openDocControls.js' import path from 'path' -import { wait } from 'payload/shared' import { fileURLToPath } from 'url' import type { PayloadTestSDK } from '../../../helpers/sdk/index.js' @@ -101,6 +101,12 @@ describe('General', () => { }) beforeEach(async () => { + // await throttleTest({ + // page, + // context, + // delay: 'Fast 4G', + // }) + await reInitializeDB({ serverURL, snapshotKey: 'adminTests', @@ -735,6 +741,7 @@ describe('General', () => { await page.goto(postsUrl.list) await page.locator('#search-filter-input').fill('Post') + await page.waitForURL(/search=Post/) await expect(page.locator('.table table > tbody > tr')).toHaveCount(5) await page.locator('input#select-all').check() await page.locator('button#select-all-across-pages').click() @@ -860,9 +867,12 @@ describe('General', () => { await page.goto(postsUrl.list) await page.locator('#search-filter-input').fill('Post') + await page.waitForURL(/search=Post/) await expect(page.locator('.table table > tbody > tr')).toHaveCount(5) + await page.locator('input#select-all').check() await page.locator('button#select-all-across-pages').click() + await page.locator('.edit-many__toggle').click() await page.locator('.field-select .rs__control').click() From d766b1904c79e120687388703f01e769f0b39fb0 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Fri, 21 Feb 2025 17:08:05 -0500 Subject: [PATCH 08/33] feat(ui): threads row data through list drawer onSelect callback (#11339) When rendering a list drawer, you can pass a custom `onSelect` callback to execute when the user clicks on the linked cell within the table. The underlying handler, however, only passes the `docID` and `collectionSlug` args through the callback, rather than the document itself. This makes it impossible to perform side-effects that require the data of the row that was selected. Instances of this callback were also largely untyped. Needed for #11330. --- .../features/relationship/client/drawer/index.tsx | 7 ++++--- .../src/features/upload/client/drawer/index.tsx | 7 ++++--- .../field/elements/relationship/Button/index.tsx | 11 +++++------ .../field/elements/relationship/Element/index.tsx | 8 +++++--- .../src/field/elements/upload/Button/index.tsx | 8 +++++--- .../src/field/elements/upload/Element/index.tsx | 9 +++++---- .../ui/src/elements/ListDrawer/DrawerContent.tsx | 2 ++ packages/ui/src/elements/ListDrawer/Provider.tsx | 13 +++++++++++-- .../TableColumns/RenderDefaultCell/index.tsx | 1 + packages/ui/src/fields/Upload/Input.tsx | 10 +++++----- 10 files changed, 47 insertions(+), 29 deletions(-) diff --git a/packages/richtext-lexical/src/features/relationship/client/drawer/index.tsx b/packages/richtext-lexical/src/features/relationship/client/drawer/index.tsx index 5f60d1667d..11b0b9c444 100644 --- a/packages/richtext-lexical/src/features/relationship/client/drawer/index.tsx +++ b/packages/richtext-lexical/src/features/relationship/client/drawer/index.tsx @@ -1,4 +1,5 @@ 'use client' +import type { ListDrawerProps } from '@payloadcms/ui' import type { LexicalEditor } from 'lexical' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js' @@ -67,13 +68,13 @@ const RelationshipDrawerComponent: React.FC = ({ enabledCollectionSlugs } ) }, [editor, openListDrawer]) - const onSelect = useCallback( - ({ collectionSlug, docID }: { collectionSlug: string; docID: number | string }) => { + const onSelect = useCallback>( + ({ collectionSlug, doc }) => { insertRelationship({ editor, relationTo: collectionSlug, replaceNodeKey, - value: docID, + value: doc.id, }) closeListDrawer() }, diff --git a/packages/richtext-lexical/src/features/upload/client/drawer/index.tsx b/packages/richtext-lexical/src/features/upload/client/drawer/index.tsx index b3b7645f5a..d384c0adb5 100644 --- a/packages/richtext-lexical/src/features/upload/client/drawer/index.tsx +++ b/packages/richtext-lexical/src/features/upload/client/drawer/index.tsx @@ -1,4 +1,5 @@ 'use client' +import type { ListDrawerProps } from '@payloadcms/ui' import type { LexicalEditor } from 'lexical' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js' @@ -77,14 +78,14 @@ const UploadDrawerComponent: React.FC = ({ enabledCollectionSlugs }) => { ) }, [editor, openListDrawer]) - const onSelect = useCallback( - ({ collectionSlug, docID }: { collectionSlug: string; docID: number | string }) => { + const onSelect = useCallback>( + ({ collectionSlug, doc }) => { closeListDrawer() insertUpload({ editor, relationTo: collectionSlug, replaceNodeKey, - value: docID, + value: doc.id, }) }, [editor, closeListDrawer, replaceNodeKey], diff --git a/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx b/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx index 103b221a18..b851227f06 100644 --- a/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx +++ b/packages/richtext-slate/src/field/elements/relationship/Button/index.tsx @@ -1,7 +1,8 @@ 'use client' +import type { ListDrawerProps } from '@payloadcms/ui' import { useListDrawer, useTranslation } from '@payloadcms/ui' -import React, { Fragment, useCallback, useEffect, useState } from 'react' +import React, { Fragment, useCallback, useState } from 'react' import { ReactEditor, useSlate } from 'slate-react' import { RelationshipIcon } from '../../../icons/Relationship/index.js' @@ -34,15 +35,13 @@ type Props = { const RelationshipButtonComponent: React.FC = ({ enabledCollectionSlugs }) => { const { t } = useTranslation() const editor = useSlate() - const [selectedCollectionSlug, setSelectedCollectionSlug] = useState( - () => enabledCollectionSlugs[0], - ) - const [ListDrawer, ListDrawerToggler, { closeDrawer, isDrawerOpen }] = useListDrawer({ + const [selectedCollectionSlug] = useState(() => enabledCollectionSlugs[0]) + const [ListDrawer, ListDrawerToggler, { closeDrawer }] = useListDrawer({ collectionSlugs: enabledCollectionSlugs, selectedCollection: selectedCollectionSlug, }) - const onSelect = useCallback( + const onSelect = useCallback>( ({ collectionSlug, docID }) => { insertRelationship(editor, { relationTo: collectionSlug, diff --git a/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx b/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx index 321ae45a12..d31cb5e420 100644 --- a/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx +++ b/packages/richtext-slate/src/field/elements/relationship/Element/index.tsx @@ -1,5 +1,7 @@ 'use client' +import type { ListDrawerProps } from '@payloadcms/ui' + import { getTranslation } from '@payloadcms/translations' import { Button, @@ -103,8 +105,8 @@ const RelationshipElementComponent: React.FC = () => { [editor, element, relatedCollection, cacheBust, setParams, closeDrawer], ) - const swapRelationship = React.useCallback( - ({ collectionSlug, docID }) => { + const swapRelationship = useCallback>( + ({ collectionSlug, doc }) => { const elementPath = ReactEditor.findPath(editor, element) Transforms.setNodes( @@ -113,7 +115,7 @@ const RelationshipElementComponent: React.FC = () => { type: 'relationship', children: [{ text: ' ' }], relationTo: collectionSlug, - value: { id: docID }, + value: { id: doc.id }, }, { at: elementPath }, ) diff --git a/packages/richtext-slate/src/field/elements/upload/Button/index.tsx b/packages/richtext-slate/src/field/elements/upload/Button/index.tsx index 7d6d9cfe8d..fd92669287 100644 --- a/packages/richtext-slate/src/field/elements/upload/Button/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/Button/index.tsx @@ -1,5 +1,7 @@ 'use client' +import type { ListDrawerProps } from '@payloadcms/ui' + import { useListDrawer, useTranslation } from '@payloadcms/ui' import React, { Fragment, useCallback } from 'react' import { ReactEditor, useSlate } from 'slate-react' @@ -41,12 +43,12 @@ const UploadButton: React.FC = ({ enabledCollectionSlugs }) => { uploads: true, }) - const onSelect = useCallback( - ({ collectionSlug, docID }) => { + const onSelect = useCallback>( + ({ collectionSlug, doc }) => { insertUpload(editor, { relationTo: collectionSlug, value: { - id: docID, + id: doc.id, }, }) closeDrawer() diff --git a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx index 6f2671cb05..9f1d63b0df 100644 --- a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx @@ -1,5 +1,6 @@ 'use client' +import type { ListDrawerProps } from '@payloadcms/ui' import type { ClientCollectionConfig } from 'payload' import { getTranslation } from '@payloadcms/translations' @@ -23,8 +24,8 @@ import type { UploadElementType } from '../types.js' import { useElement } from '../../../providers/ElementProvider.js' import { EnabledRelationshipsCondition } from '../../EnabledRelationshipsCondition.js' import { uploadFieldsSchemaPath, uploadName } from '../shared.js' -import './index.scss' import { UploadDrawer } from './UploadDrawer/index.js' +import './index.scss' const baseClass = 'rich-text-upload' @@ -110,13 +111,13 @@ const UploadElementComponent: React.FC<{ enabledCollectionSlugs?: string[] }> = [editor, element, setParams, cacheBust, closeDrawer], ) - const swapUpload = React.useCallback( - ({ collectionSlug, docID }) => { + const swapUpload = useCallback>( + ({ collectionSlug, doc }) => { const newNode = { type: uploadName, children: [{ text: ' ' }], relationTo: collectionSlug, - value: { id: docID }, + value: { id: doc.id }, } const elementPath = ReactEditor.findPath(editor, element) diff --git a/packages/ui/src/elements/ListDrawer/DrawerContent.tsx b/packages/ui/src/elements/ListDrawer/DrawerContent.tsx index 9b33597dbf..3e74151707 100644 --- a/packages/ui/src/elements/ListDrawer/DrawerContent.tsx +++ b/packages/ui/src/elements/ListDrawer/DrawerContent.tsx @@ -111,6 +111,7 @@ export const ListDrawerContent: React.FC = ({ [ serverFunction, closeModal, + allowCreate, drawerSlug, isOpen, enableRowSelections, @@ -130,6 +131,7 @@ export const ListDrawerContent: React.FC = ({ if (typeof onSelect === 'function') { onSelect({ collectionSlug: selectedOption.value, + doc, docID: doc.id, }) } diff --git a/packages/ui/src/elements/ListDrawer/Provider.tsx b/packages/ui/src/elements/ListDrawer/Provider.tsx index 71cd4d1e59..c66f009680 100644 --- a/packages/ui/src/elements/ListDrawer/Provider.tsx +++ b/packages/ui/src/elements/ListDrawer/Provider.tsx @@ -1,4 +1,4 @@ -import type { CollectionSlug, ListQuery } from 'payload' +import type { CollectionSlug, Data, ListQuery } from 'payload' import { createContext, useContext } from 'react' @@ -14,7 +14,16 @@ export type ListDrawerContextProps = { readonly enabledCollections?: CollectionSlug[] readonly onBulkSelect?: (selected: ReturnType['selected']) => void readonly onQueryChange?: (query: ListQuery) => void - readonly onSelect?: (args: { collectionSlug: CollectionSlug; docID: string }) => void + readonly onSelect?: (args: { + collectionSlug: CollectionSlug + doc: Data + /** + * @deprecated + * The `docID` property is deprecated and will be removed in the next major version of Payload. + * Use `doc.id` instead. + */ + docID: string + }) => void readonly selectedOption?: Option readonly setSelectedOption?: (option: Option) => void } diff --git a/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx b/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx index 1ccb1b4f0c..ee52e1fb7b 100644 --- a/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx +++ b/packages/ui/src/elements/TableColumns/RenderDefaultCell/index.tsx @@ -36,6 +36,7 @@ export const RenderDefaultCell: React.FC<{ if (typeof onSelect === 'function') { onSelect({ collectionSlug: rowColl, + doc: rowData, docID: rowData.id as string, }) } diff --git a/packages/ui/src/fields/Upload/Input.tsx b/packages/ui/src/fields/Upload/Input.tsx index 57458cae8d..878e8e755a 100644 --- a/packages/ui/src/fields/Upload/Input.tsx +++ b/packages/ui/src/fields/Upload/Input.tsx @@ -350,9 +350,9 @@ export function UploadInput(props: UploadInputProps) { [closeCreateDocDrawer, activeRelationTo, onChange], ) - const onListSelect = React.useCallback>( - async ({ collectionSlug, docID }) => { - const loadedDocs = await populateDocs([docID], collectionSlug) + const onListSelect = useCallback>( + async ({ collectionSlug, doc }) => { + const loadedDocs = await populateDocs([doc.id], collectionSlug) const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null setPopulatedDocs((currentDocs) => { if (selectedDoc) { @@ -375,9 +375,9 @@ export function UploadInput(props: UploadInputProps) { return currentDocs }) if (hasMany) { - onChange([...(Array.isArray(value) ? value : []), docID]) + onChange([...(Array.isArray(value) ? value : []), doc.id]) } else { - onChange(docID) + onChange(doc.id) } closeListDrawer() }, From 3ffc268438b5a96ab6653bd566dd401bfe520158 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Fri, 21 Feb 2025 16:26:28 -0700 Subject: [PATCH 09/33] fix: safely access config.blocks during type generation (#11320) A discord user reported a "`TypeError: config.blocks is not iterable`" error when generating types: https://discord.com/channels/967097582721572934/1342383112289517578/1342383112289517578 To prevent that error, this PR ensures config.blocks is safely accessed during type generation --- .../src/utilities/configToJSONSchema.ts | 60 ++++++++++--------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/packages/payload/src/utilities/configToJSONSchema.ts b/packages/payload/src/utilities/configToJSONSchema.ts index aeb55398c9..1debb3b0fa 100644 --- a/packages/payload/src/utilities/configToJSONSchema.ts +++ b/packages/payload/src/utilities/configToJSONSchema.ts @@ -1152,40 +1152,43 @@ export function configToJSONSchema( ) : {} - const blocksDefinition: JSONSchema4 = { - type: 'object', - additionalProperties: false, - properties: {}, - required: [], - } - for (const block of config.blocks) { - const blockFieldSchemas = fieldsToJSONSchema( - collectionIDFieldTypes, - block.flattenedFields, - interfaceNameDefinitions, - config, - i18n, - ) - - const blockSchema: JSONSchema4 = { + let blocksDefinition: JSONSchema4 | undefined = undefined + if (config?.blocks?.length) { + blocksDefinition = { type: 'object', additionalProperties: false, - properties: { - ...blockFieldSchemas.properties, - blockType: { - const: block.slug, + properties: {}, + required: [], + } + for (const block of config.blocks) { + const blockFieldSchemas = fieldsToJSONSchema( + collectionIDFieldTypes, + block.flattenedFields, + interfaceNameDefinitions, + config, + i18n, + ) + + const blockSchema: JSONSchema4 = { + type: 'object', + additionalProperties: false, + properties: { + ...blockFieldSchemas.properties, + blockType: { + const: block.slug, + }, }, - }, - required: ['blockType', ...blockFieldSchemas.required], - } + required: ['blockType', ...blockFieldSchemas.required], + } - const interfaceName = block.interfaceName ?? block.slug - interfaceNameDefinitions.set(interfaceName, blockSchema) + const interfaceName = block.interfaceName ?? block.slug + interfaceNameDefinitions.set(interfaceName, blockSchema) - blocksDefinition.properties[block.slug] = { - $ref: `#/definitions/${interfaceName}`, + blocksDefinition.properties[block.slug] = { + $ref: `#/definitions/${interfaceName}`, + } + ;(blocksDefinition.required as string[]).push(block.slug) } - ;(blocksDefinition.required as string[]).push(block.slug) } let jsonSchema: JSONSchema4 = { @@ -1225,6 +1228,7 @@ export function configToJSONSchema( ], title: 'Config', } + if (jobsSchemas.definitions?.size) { for (const [key, value] of jobsSchemas.definitions) { jsonSchema.definitions[key] = value From a13d4fe5c6113f593c2dd6d0f2e2ea73f7e5f197 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Sat, 22 Feb 2025 01:59:50 +0200 Subject: [PATCH 10/33] perf: remove deep copy of the entire sanitized entity config in `configToJSONSchema` (#11342) Small performance improvement for types generation and anywhere else `configToJSONSchema` can be used. We did a deep copy of the whole sanitized entity config, which can be expensive. Now, to do the needed mutation of `flattenedFields`, we just create a new reference of `flattenedFields` for that. --- .../src/utilities/configToJSONSchema.ts | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/payload/src/utilities/configToJSONSchema.ts b/packages/payload/src/utilities/configToJSONSchema.ts index 1debb3b0fa..81fab58601 100644 --- a/packages/payload/src/utilities/configToJSONSchema.ts +++ b/packages/payload/src/utilities/configToJSONSchema.ts @@ -15,7 +15,6 @@ import type { SanitizedGlobalConfig } from '../globals/config/types.js' import { MissingEditorProp } from '../errors/MissingEditorProp.js' import { fieldAffectsData } from '../fields/config/types.js' import { generateJobsJSONSchemas } from '../queues/config/generateJobsJSONSchemas.js' -import { deepCopyObject } from './deepCopyObject.js' import { toWords } from './formatLabels.js' import { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js' @@ -719,7 +718,7 @@ export function fieldsToJSONSchema( // This function is part of the public API and is exported through payload/utilities export function entityToJSONSchema( config: SanitizedConfig, - incomingEntity: SanitizedCollectionConfig | SanitizedGlobalConfig, + entity: SanitizedCollectionConfig | SanitizedGlobalConfig, interfaceNameDefinitions: Map, defaultIDType: 'number' | 'text', collectionIDFieldTypes?: { [key: string]: 'number' | 'string' }, @@ -729,25 +728,30 @@ export function entityToJSONSchema( collectionIDFieldTypes = getCollectionIDFieldTypes({ config, defaultIDType }) } - const entity: SanitizedCollectionConfig | SanitizedGlobalConfig = deepCopyObject(incomingEntity) const title = entity.typescript?.interface ? entity.typescript.interface : singular(toWords(entity.slug, true)) + let mutableFields = [...entity.flattenedFields] + const idField: FieldAffectingData = { name: 'id', type: defaultIDType as 'text', required: true } - const customIdField = entity.flattenedFields.find( - (field) => field.name === 'id', - ) as FieldAffectingData + const customIdField = mutableFields.find((field) => field.name === 'id') as FieldAffectingData if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') { - customIdField.required = true + mutableFields = mutableFields.map((field) => { + if (field === customIdField) { + return { ...field, required: true } + } + + return field + }) } else { - entity.flattenedFields.unshift(idField) + mutableFields.unshift(idField) } // mark timestamp fields required if ('timestamps' in entity && entity.timestamps !== false) { - entity.flattenedFields = entity.flattenedFields.map((field) => { + mutableFields = mutableFields.map((field) => { if (field.name === 'createdAt' || field.name === 'updatedAt') { return { ...field, @@ -765,7 +769,7 @@ export function entityToJSONSchema( (typeof entity.auth?.disableLocalStrategy === 'object' && entity.auth.disableLocalStrategy.enableFields)) ) { - entity.flattenedFields.push({ + mutableFields.push({ name: 'password', type: 'text', }) @@ -777,7 +781,7 @@ export function entityToJSONSchema( title, ...fieldsToJSONSchema( collectionIDFieldTypes, - entity.flattenedFields, + mutableFields, interfaceNameDefinitions, config, i18n, From 1725af5e3a5925124b0c32223fd3ab17555dcd95 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Fri, 21 Feb 2025 17:27:07 -0700 Subject: [PATCH 11/33] fix(next): use correct hmr url if assetPrefix is set in next config (#10859) The next.js assetPrefix needs to be included in the websocket URL. Previously, we were appending both assetPrefix and basePath, which is incorrect. `assetPrefix` overrides `basePath` if both are set. This PR mimics the way Next.js connects to the HMR server. Sources: - https://github.com/AlessioGr/next.js/blob/canary/packages/next/src/server/lib/router-server.ts#L688 - https://github.com/AlessioGr/next.js/blob/canary/packages/next/src/server/config.ts#L322 - https://github.com/AlessioGr/next.js/blob/canary/packages/next/src/client/components/react-dev-overlay/app/client-entry.tsx --- packages/next/src/withPayload.js | 4 ---- packages/payload/src/index.ts | 8 +++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/next/src/withPayload.js b/packages/next/src/withPayload.js index 5476aa2a46..fff14cabe1 100644 --- a/packages/next/src/withPayload.js +++ b/packages/next/src/withPayload.js @@ -147,10 +147,6 @@ export const withPayload = (nextConfig = {}) => { toReturn.env.NEXT_BASE_PATH = nextConfig.basePath } - if (nextConfig.assetPrefix) { - toReturn.env.NEXT_ASSET_PREFIX = nextConfig.assetPrefix - } - return toReturn } diff --git a/packages/payload/src/index.ts b/packages/payload/src/index.ts index 17dc214bf4..d955eab676 100644 --- a/packages/payload/src/index.ts +++ b/packages/payload/src/index.ts @@ -922,11 +922,13 @@ export const getPayload = async ( ) { try { const port = process.env.PORT || '3000' - const basePath = process.env.NEXT_BASE_PATH || '' - const assetPrefix = process.env.NEXT_ASSET_PREFIX || '' + + const path = '/_next/webpack-hmr' + // The __NEXT_ASSET_PREFIX env variable is set for both assetPrefix and basePath (tested in Next.js 15.1.6) + const prefix = process.env.__NEXT_ASSET_PREFIX ?? '' cached.ws = new WebSocket( - `ws://localhost:${port}${basePath}${assetPrefix}/_next/webpack-hmr`, + process.env.PAYLOAD_HMR_URL_OVERRIDE ?? `ws://localhost:${port}${prefix}${path}`, ) cached.ws.onmessage = (event) => { From b014416584b9d7d7401c09d32a4069a90650d5b1 Mon Sep 17 00:00:00 2001 From: Paul Date: Sat, 22 Feb 2025 00:32:37 +0000 Subject: [PATCH 12/33] feat: add support for not_like operation (#11326) This PR adds support for `not_like` as a query operation. Functions just as a negative to `like`, uses `ilike` in postgres and `like` in sqlite --- .../src/queries/buildSearchParams.ts | 19 +++++ .../db-sqlite/src/createJSONQuery/index.ts | 6 +- packages/db-sqlite/src/index.ts | 3 +- .../src/postgres/createJSONQuery/index.ts | 9 ++- packages/drizzle/src/queries/operatorMap.ts | 3 + packages/drizzle/src/queries/parseParams.ts | 15 ++-- packages/payload/src/types/constants.ts | 1 + packages/translations/src/clientKeys.ts | 1 + packages/translations/src/languages/ar.ts | 1 + packages/translations/src/languages/az.ts | 1 + packages/translations/src/languages/bg.ts | 1 + packages/translations/src/languages/ca.ts | 1 + packages/translations/src/languages/cs.ts | 1 + packages/translations/src/languages/da.ts | 1 + packages/translations/src/languages/de.ts | 1 + packages/translations/src/languages/en.ts | 1 + packages/translations/src/languages/es.ts | 1 + packages/translations/src/languages/et.ts | 1 + packages/translations/src/languages/fa.ts | 1 + packages/translations/src/languages/fr.ts | 1 + packages/translations/src/languages/he.ts | 1 + packages/translations/src/languages/hr.ts | 1 + packages/translations/src/languages/hu.ts | 1 + packages/translations/src/languages/it.ts | 1 + packages/translations/src/languages/ja.ts | 1 + packages/translations/src/languages/ko.ts | 1 + packages/translations/src/languages/lt.ts | 1 + packages/translations/src/languages/my.ts | 1 + packages/translations/src/languages/nb.ts | 1 + packages/translations/src/languages/nl.ts | 1 + packages/translations/src/languages/pl.ts | 1 + packages/translations/src/languages/pt.ts | 1 + packages/translations/src/languages/ro.ts | 1 + packages/translations/src/languages/rs.ts | 1 + .../translations/src/languages/rsLatin.ts | 1 + packages/translations/src/languages/ru.ts | 1 + packages/translations/src/languages/sk.ts | 1 + packages/translations/src/languages/sl.ts | 1 + packages/translations/src/languages/sv.ts | 1 + packages/translations/src/languages/th.ts | 1 + packages/translations/src/languages/tr.ts | 1 + packages/translations/src/languages/uk.ts | 1 + packages/translations/src/languages/vi.ts | 1 + packages/translations/src/languages/zh.ts | 1 + packages/translations/src/languages/zhTw.ts | 1 + .../src/elements/WhereBuilder/field-types.tsx | 15 ++-- test/fields/int.spec.ts | 76 +++++++++++++++++++ 47 files changed, 170 insertions(+), 15 deletions(-) diff --git a/packages/db-mongodb/src/queries/buildSearchParams.ts b/packages/db-mongodb/src/queries/buildSearchParams.ts index 736707e9e4..fbeefa0911 100644 --- a/packages/db-mongodb/src/queries/buildSearchParams.ts +++ b/packages/db-mongodb/src/queries/buildSearchParams.ts @@ -255,6 +255,25 @@ export async function buildSearchParam({ return result } + if (formattedOperator === 'not_like' && typeof formattedValue === 'string') { + const words = formattedValue.split(' ') + + const result = { + value: { + $and: words.map((word) => ({ + [path]: { + $not: { + $options: 'i', + $regex: word.replace(/[\\^$*+?.()|[\]{}]/g, '\\$&'), + }, + }, + })), + }, + } + + return result + } + // Some operators like 'near' need to define a full query // so if there is no operator key, just return the value if (!operatorKey) { diff --git a/packages/db-sqlite/src/createJSONQuery/index.ts b/packages/db-sqlite/src/createJSONQuery/index.ts index 891503f401..376ea58eaa 100644 --- a/packages/db-sqlite/src/createJSONQuery/index.ts +++ b/packages/db-sqlite/src/createJSONQuery/index.ts @@ -50,10 +50,12 @@ const createConstraint = ({ const newAlias = `${pathSegments[0]}_alias_${pathSegments.length - 1}` let formattedValue = value let formattedOperator = operator - if (['contains', 'like'].includes(operator)) { formattedOperator = 'like' formattedValue = `%${value}%` + } else if (['not_like', 'notlike'].includes(operator)) { + formattedOperator = 'not like' + formattedValue = `%${value}%` } else if (operator === 'equals') { formattedOperator = '=' } @@ -61,7 +63,7 @@ const createConstraint = ({ return `EXISTS ( SELECT 1 FROM json_each(${alias}.value -> '${pathSegments[0]}') AS ${newAlias} - WHERE ${newAlias}.value ->> '${pathSegments[1]}' ${formattedOperator} '${formattedValue}' + WHERE COALESCE(${newAlias}.value ->> '${pathSegments[1]}', '') ${formattedOperator} '${formattedValue}' )` } diff --git a/packages/db-sqlite/src/index.ts b/packages/db-sqlite/src/index.ts index 030b504961..2bd3e0a674 100644 --- a/packages/db-sqlite/src/index.ts +++ b/packages/db-sqlite/src/index.ts @@ -37,7 +37,7 @@ import { updateOne, updateVersion, } from '@payloadcms/drizzle' -import { like } from 'drizzle-orm' +import { like, notLike } from 'drizzle-orm' import { createDatabaseAdapter, defaultBeginTransaction } from 'payload' import { fileURLToPath } from 'url' @@ -81,6 +81,7 @@ export function sqliteAdapter(args: Args): DatabaseAdapterObj { ...operatorMap, contains: like, like, + not_like: notLike, } as unknown as Operators return createDatabaseAdapter({ diff --git a/packages/drizzle/src/postgres/createJSONQuery/index.ts b/packages/drizzle/src/postgres/createJSONQuery/index.ts index 00864aa239..88ac57b4ae 100644 --- a/packages/drizzle/src/postgres/createJSONQuery/index.ts +++ b/packages/drizzle/src/postgres/createJSONQuery/index.ts @@ -7,12 +7,13 @@ const operatorMap: Record = { like: 'like_regex', not_equals: '!=', not_in: 'in', + not_like: '!like_regex', } const sanitizeValue = (value: unknown, operator?: string) => { if (typeof value === 'string') { - // ignore casing with like - return `"${operator === 'like' ? '(?i)' : ''}${value}"` + // ignore casing with like or not_like + return `"${['like', 'not_like'].includes(operator) ? '(?i)' : ''}${value}"` } return value as string @@ -35,6 +36,10 @@ export const createJSONQuery = ({ column, operator, pathSegments, value }: Creat }) } else if (operator === 'exists') { sql = `${value === false ? 'NOT ' : ''}jsonb_path_exists(${columnName}, '$.${jsonPaths}')` + } else if (['not_like'].includes(operator)) { + const mappedOperator = operatorMap[operator] + + sql = `NOT jsonb_path_exists(${columnName}, '$.${jsonPaths} ? (@ ${mappedOperator.substring(1)} ${sanitizeValue(value, operator)})')` } else { sql = `jsonb_path_exists(${columnName}, '$.${jsonPaths} ? (@ ${operatorMap[operator]} ${sanitizeValue(value, operator)})')` } diff --git a/packages/drizzle/src/queries/operatorMap.ts b/packages/drizzle/src/queries/operatorMap.ts index 18a3ee7923..5fc24a2f39 100644 --- a/packages/drizzle/src/queries/operatorMap.ts +++ b/packages/drizzle/src/queries/operatorMap.ts @@ -11,6 +11,7 @@ import { lt, lte, ne, + notIlike, notInArray, or, type SQL, @@ -31,6 +32,7 @@ type OperatorKeys = | 'like' | 'not_equals' | 'not_in' + | 'not_like' | 'or' export type Operators = Record SQL> @@ -48,6 +50,7 @@ export const operatorMap: Operators = { less_than_equal: lte, like: ilike, not_equals: ne, + not_like: notIlike, // TODO: support this // all: all, not_in: notInArray, diff --git a/packages/drizzle/src/queries/parseParams.ts b/packages/drizzle/src/queries/parseParams.ts index a6182fb668..44c277f367 100644 --- a/packages/drizzle/src/queries/parseParams.ts +++ b/packages/drizzle/src/queries/parseParams.ts @@ -161,6 +161,7 @@ export function parseParams({ like: { operator: 'like', wildcard: '%' }, not_equals: { operator: '<>', wildcard: '' }, not_in: { operator: 'not in', wildcard: '' }, + not_like: { operator: 'not like', wildcard: '%' }, } let formattedValue = val @@ -175,11 +176,15 @@ export function parseParams({ formattedValue = '' } - constraints.push( - sql.raw( - `${table[columnName].name}${jsonQuery} ${operatorKeys[operator].operator} ${formattedValue}`, - ), - ) + let jsonQuerySelector = `${table[columnName].name}${jsonQuery}` + + if (adapter.name === 'sqlite' && operator === 'not_like') { + jsonQuerySelector = `COALESCE(${table[columnName].name}${jsonQuery}, '')` + } + + const rawSQLQuery = `${jsonQuerySelector} ${operatorKeys[operator].operator} ${formattedValue}` + + constraints.push(sql.raw(rawSQLQuery)) break } diff --git a/packages/payload/src/types/constants.ts b/packages/payload/src/types/constants.ts index 6c0eb6a2d4..7cbbaeb634 100644 --- a/packages/payload/src/types/constants.ts +++ b/packages/payload/src/types/constants.ts @@ -11,6 +11,7 @@ export const validOperators = [ 'less_than', 'less_than_equal', 'like', + 'not_like', 'within', 'intersects', 'near', diff --git a/packages/translations/src/clientKeys.ts b/packages/translations/src/clientKeys.ts index fe4e69ec33..cf16b4f237 100644 --- a/packages/translations/src/clientKeys.ts +++ b/packages/translations/src/clientKeys.ts @@ -301,6 +301,7 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'operators:isIn', 'operators:contains', 'operators:isLike', + 'operators:isNotLike', 'operators:isNotEqualTo', 'operators:near', 'operators:isGreaterThan', diff --git a/packages/translations/src/languages/ar.ts b/packages/translations/src/languages/ar.ts index 2786e15495..5b17f2403b 100644 --- a/packages/translations/src/languages/ar.ts +++ b/packages/translations/src/languages/ar.ts @@ -370,6 +370,7 @@ export const arTranslations: DefaultTranslationsObject = { isLike: 'هو مثل', isNotEqualTo: 'لا يساوي', isNotIn: 'غير موجود في', + isNotLike: 'ليس مثل', near: 'قريب من', within: 'في غضون', }, diff --git a/packages/translations/src/languages/az.ts b/packages/translations/src/languages/az.ts index 5274fd8723..9801df92a8 100644 --- a/packages/translations/src/languages/az.ts +++ b/packages/translations/src/languages/az.ts @@ -375,6 +375,7 @@ export const azTranslations: DefaultTranslationsObject = { isLike: 'kimi', isNotEqualTo: 'bərabər deyil', isNotIn: 'daxil deyil', + isNotLike: 'deyil kimi', near: 'yaxın', within: 'daxilinde', }, diff --git a/packages/translations/src/languages/bg.ts b/packages/translations/src/languages/bg.ts index bc5efa25b1..5e1275d710 100644 --- a/packages/translations/src/languages/bg.ts +++ b/packages/translations/src/languages/bg.ts @@ -373,6 +373,7 @@ export const bgTranslations: DefaultTranslationsObject = { isLike: 'е като', isNotEqualTo: 'не е равно на', isNotIn: 'не е в', + isNotLike: 'не е като', near: 'близко', within: 'в рамките на', }, diff --git a/packages/translations/src/languages/ca.ts b/packages/translations/src/languages/ca.ts index b77c40589a..a355699a00 100644 --- a/packages/translations/src/languages/ca.ts +++ b/packages/translations/src/languages/ca.ts @@ -374,6 +374,7 @@ export const caTranslations: DefaultTranslationsObject = { isLike: 'és semblant a', isNotEqualTo: 'no és igual a', isNotIn: 'no està en', + isNotLike: 'no és com', near: 'a prop de', within: 'dins de', }, diff --git a/packages/translations/src/languages/cs.ts b/packages/translations/src/languages/cs.ts index d6202264d0..072a477ef3 100644 --- a/packages/translations/src/languages/cs.ts +++ b/packages/translations/src/languages/cs.ts @@ -371,6 +371,7 @@ export const csTranslations: DefaultTranslationsObject = { isLike: 'je jako', isNotEqualTo: 'není rovno', isNotIn: 'není v', + isNotLike: 'není jako', near: 'blízko', within: 'uvnitř', }, diff --git a/packages/translations/src/languages/da.ts b/packages/translations/src/languages/da.ts index c24a6418d0..52aa59d898 100644 --- a/packages/translations/src/languages/da.ts +++ b/packages/translations/src/languages/da.ts @@ -372,6 +372,7 @@ export const daTranslations: DefaultTranslationsObject = { isLike: 'Ligner', isNotEqualTo: 'Er ikke lig med', isNotIn: 'Er ikke i', + isNotLike: 'er ikke som', near: 'Tæt på', within: 'Inden for', }, diff --git a/packages/translations/src/languages/de.ts b/packages/translations/src/languages/de.ts index 136cae63bd..d5e400f55b 100644 --- a/packages/translations/src/languages/de.ts +++ b/packages/translations/src/languages/de.ts @@ -379,6 +379,7 @@ export const deTranslations: DefaultTranslationsObject = { isLike: 'ist wie', isNotEqualTo: 'ist nicht gleich', isNotIn: 'ist nicht drin', + isNotLike: 'ist nicht wie', near: 'in der Nähe', within: 'innerhalb', }, diff --git a/packages/translations/src/languages/en.ts b/packages/translations/src/languages/en.ts index c6885dfd4e..99944915a1 100644 --- a/packages/translations/src/languages/en.ts +++ b/packages/translations/src/languages/en.ts @@ -374,6 +374,7 @@ export const enTranslations = { isLike: 'is like', isNotEqualTo: 'is not equal to', isNotIn: 'is not in', + isNotLike: 'is not like', near: 'near', within: 'within', }, diff --git a/packages/translations/src/languages/es.ts b/packages/translations/src/languages/es.ts index 13f163f506..e52f71cd1d 100644 --- a/packages/translations/src/languages/es.ts +++ b/packages/translations/src/languages/es.ts @@ -378,6 +378,7 @@ export const esTranslations: DefaultTranslationsObject = { isLike: 'es como', isNotEqualTo: 'no es igual a', isNotIn: 'no está en', + isNotLike: 'no es como', near: 'cerca', within: 'dentro de', }, diff --git a/packages/translations/src/languages/et.ts b/packages/translations/src/languages/et.ts index 7db8dd89ce..cbc2122a00 100644 --- a/packages/translations/src/languages/et.ts +++ b/packages/translations/src/languages/et.ts @@ -370,6 +370,7 @@ export const etTranslations: DefaultTranslationsObject = { isLike: 'on sarnane', isNotEqualTo: 'ei võrdu', isNotIn: 'ei ole hulgas', + isNotLike: 'ei ole nagu', near: 'lähedal', within: 'vahemikus', }, diff --git a/packages/translations/src/languages/fa.ts b/packages/translations/src/languages/fa.ts index 912ae3818e..37e2edd85b 100644 --- a/packages/translations/src/languages/fa.ts +++ b/packages/translations/src/languages/fa.ts @@ -371,6 +371,7 @@ export const faTranslations: DefaultTranslationsObject = { isLike: 'مانند این است', isNotEqualTo: 'برابر نیست', isNotIn: 'در این نیست', + isNotLike: 'مانند نیست', near: 'نزدیک', within: 'در داخل', }, diff --git a/packages/translations/src/languages/fr.ts b/packages/translations/src/languages/fr.ts index 06a6e0bdeb..0436b817d8 100644 --- a/packages/translations/src/languages/fr.ts +++ b/packages/translations/src/languages/fr.ts @@ -383,6 +383,7 @@ export const frTranslations: DefaultTranslationsObject = { isLike: 'est comme', isNotEqualTo: 'n’est pas égal à', isNotIn: 'n’est pas dans', + isNotLike: "n'est pas comme", near: 'proche', within: 'dans', }, diff --git a/packages/translations/src/languages/he.ts b/packages/translations/src/languages/he.ts index f1024d68e4..3acd9855d3 100644 --- a/packages/translations/src/languages/he.ts +++ b/packages/translations/src/languages/he.ts @@ -366,6 +366,7 @@ export const heTranslations: DefaultTranslationsObject = { isLike: 'דומה ל', isNotEqualTo: 'לא שווה ל', isNotIn: 'לא נמצא ב', + isNotLike: 'אינו דומה', near: 'קרוב ל', within: 'בתוך', }, diff --git a/packages/translations/src/languages/hr.ts b/packages/translations/src/languages/hr.ts index 918a43f2f3..980b4670d5 100644 --- a/packages/translations/src/languages/hr.ts +++ b/packages/translations/src/languages/hr.ts @@ -373,6 +373,7 @@ export const hrTranslations: DefaultTranslationsObject = { isLike: 'je kao', isNotEqualTo: 'nije jednako', isNotIn: 'nije unutra', + isNotLike: 'nije kao', near: 'blizu', within: 'unutar', }, diff --git a/packages/translations/src/languages/hu.ts b/packages/translations/src/languages/hu.ts index 547ae0a385..2275076e99 100644 --- a/packages/translations/src/languages/hu.ts +++ b/packages/translations/src/languages/hu.ts @@ -376,6 +376,7 @@ export const huTranslations: DefaultTranslationsObject = { isLike: 'olyan, mint', isNotEqualTo: 'nem egyenlő', isNotIn: 'nincs benne', + isNotLike: 'nem olyan mint', near: 'közel', within: 'belül', }, diff --git a/packages/translations/src/languages/it.ts b/packages/translations/src/languages/it.ts index c432de1d77..35200dcee4 100644 --- a/packages/translations/src/languages/it.ts +++ b/packages/translations/src/languages/it.ts @@ -377,6 +377,7 @@ export const itTranslations: DefaultTranslationsObject = { isLike: 'è come', isNotEqualTo: 'non è uguale a', isNotIn: 'non è in', + isNotLike: 'non è come', near: 'vicino', within: "all'interno", }, diff --git a/packages/translations/src/languages/ja.ts b/packages/translations/src/languages/ja.ts index 555e0ba200..505adf587b 100644 --- a/packages/translations/src/languages/ja.ts +++ b/packages/translations/src/languages/ja.ts @@ -373,6 +373,7 @@ export const jaTranslations: DefaultTranslationsObject = { isLike: 'のような', isNotEqualTo: '等しくない', isNotIn: '入っていません', + isNotLike: 'ではない', near: '近く', within: '内で', }, diff --git a/packages/translations/src/languages/ko.ts b/packages/translations/src/languages/ko.ts index 709e42ea78..48bacf66af 100644 --- a/packages/translations/src/languages/ko.ts +++ b/packages/translations/src/languages/ko.ts @@ -371,6 +371,7 @@ export const koTranslations: DefaultTranslationsObject = { isLike: '유사', isNotEqualTo: '같지 않음', isNotIn: '포함되지 않음', + isNotLike: '같지 않다', near: '근처', within: '내에서', }, diff --git a/packages/translations/src/languages/lt.ts b/packages/translations/src/languages/lt.ts index c885697018..1fa7524aa2 100644 --- a/packages/translations/src/languages/lt.ts +++ b/packages/translations/src/languages/lt.ts @@ -375,6 +375,7 @@ export const ltTranslations: DefaultTranslationsObject = { isLike: 'yra panašu', isNotEqualTo: 'nelygu', isNotIn: 'nėra', + isNotLike: 'nėra panašus', near: 'šalia', within: 'viduje', }, diff --git a/packages/translations/src/languages/my.ts b/packages/translations/src/languages/my.ts index 97a13dac1e..b6dfb9af2d 100644 --- a/packages/translations/src/languages/my.ts +++ b/packages/translations/src/languages/my.ts @@ -378,6 +378,7 @@ export const myTranslations: DefaultTranslationsObject = { isLike: 'တူသည်', isNotEqualTo: 'ညီမျှသည်', isNotIn: 'မဝင်ပါ', + isNotLike: 'မဟုတ်ကဲ့သို့', near: 'နီး', within: 'အတွင်း', }, diff --git a/packages/translations/src/languages/nb.ts b/packages/translations/src/languages/nb.ts index 5e38ffd8fa..50e3336b38 100644 --- a/packages/translations/src/languages/nb.ts +++ b/packages/translations/src/languages/nb.ts @@ -374,6 +374,7 @@ export const nbTranslations: DefaultTranslationsObject = { isLike: 'er som', isNotEqualTo: 'er ikke lik', isNotIn: 'er ikke med', + isNotLike: 'er ikke lik', near: 'nær', within: 'innen', }, diff --git a/packages/translations/src/languages/nl.ts b/packages/translations/src/languages/nl.ts index 9255f319da..41fe48868e 100644 --- a/packages/translations/src/languages/nl.ts +++ b/packages/translations/src/languages/nl.ts @@ -377,6 +377,7 @@ export const nlTranslations: DefaultTranslationsObject = { isLike: 'is als', isNotEqualTo: 'is niet gelijk aan', isNotIn: 'zit er niet in', + isNotLike: 'is niet zoals', near: 'nabij', within: 'binnen', }, diff --git a/packages/translations/src/languages/pl.ts b/packages/translations/src/languages/pl.ts index d2ae7dd2f9..2f9bfba12c 100644 --- a/packages/translations/src/languages/pl.ts +++ b/packages/translations/src/languages/pl.ts @@ -373,6 +373,7 @@ export const plTranslations: DefaultTranslationsObject = { isLike: 'jest jak', isNotEqualTo: 'nie jest równe', isNotIn: 'nie ma go w', + isNotLike: 'nie jest jak', near: 'blisko', within: 'w ciągu', }, diff --git a/packages/translations/src/languages/pt.ts b/packages/translations/src/languages/pt.ts index f225801e5d..2164112e04 100644 --- a/packages/translations/src/languages/pt.ts +++ b/packages/translations/src/languages/pt.ts @@ -374,6 +374,7 @@ export const ptTranslations: DefaultTranslationsObject = { isLike: 'é como', isNotEqualTo: 'não é igual a', isNotIn: 'não está em', + isNotLike: 'não é como', near: 'perto', within: 'dentro', }, diff --git a/packages/translations/src/languages/ro.ts b/packages/translations/src/languages/ro.ts index a3132bd95c..ea9e1d6bd2 100644 --- a/packages/translations/src/languages/ro.ts +++ b/packages/translations/src/languages/ro.ts @@ -377,6 +377,7 @@ export const roTranslations: DefaultTranslationsObject = { isLike: 'este ca', isNotEqualTo: 'nu este egal cu', isNotIn: 'nu este în', + isNotLike: 'nu este ca', near: 'în apropiere de', within: 'înăuntru', }, diff --git a/packages/translations/src/languages/rs.ts b/packages/translations/src/languages/rs.ts index e468878dd9..38b76d92a1 100644 --- a/packages/translations/src/languages/rs.ts +++ b/packages/translations/src/languages/rs.ts @@ -373,6 +373,7 @@ export const rsTranslations: DefaultTranslationsObject = { isLike: 'је као', isNotEqualTo: 'није једнако', isNotIn: 'није у', + isNotLike: 'nije kao', near: 'близу', within: 'unutar', }, diff --git a/packages/translations/src/languages/rsLatin.ts b/packages/translations/src/languages/rsLatin.ts index 2f087bdecb..cba4d51d0d 100644 --- a/packages/translations/src/languages/rsLatin.ts +++ b/packages/translations/src/languages/rsLatin.ts @@ -374,6 +374,7 @@ export const rsLatinTranslations: DefaultTranslationsObject = { isLike: 'je kao', isNotEqualTo: 'nije jednako', isNotIn: 'nije unutra', + isNotLike: 'nije kao', near: 'blizu', within: 'unutar', }, diff --git a/packages/translations/src/languages/ru.ts b/packages/translations/src/languages/ru.ts index 65dafd1829..acb5828cd9 100644 --- a/packages/translations/src/languages/ru.ts +++ b/packages/translations/src/languages/ru.ts @@ -377,6 +377,7 @@ export const ruTranslations: DefaultTranslationsObject = { isLike: 'похоже', isNotEqualTo: 'не равно', isNotIn: 'нет в', + isNotLike: 'не похож', near: 'рядом', within: 'в пределах', }, diff --git a/packages/translations/src/languages/sk.ts b/packages/translations/src/languages/sk.ts index 8036611839..85a3d03a62 100644 --- a/packages/translations/src/languages/sk.ts +++ b/packages/translations/src/languages/sk.ts @@ -374,6 +374,7 @@ export const skTranslations: DefaultTranslationsObject = { isLike: 'je ako', isNotEqualTo: 'nie je rovné', isNotIn: 'nie je v', + isNotLike: 'nie je ako', near: 'blízko', within: 'vnútri', }, diff --git a/packages/translations/src/languages/sl.ts b/packages/translations/src/languages/sl.ts index cce83e554b..6cc87b28cb 100644 --- a/packages/translations/src/languages/sl.ts +++ b/packages/translations/src/languages/sl.ts @@ -372,6 +372,7 @@ export const slTranslations: DefaultTranslationsObject = { isLike: 'je podobno', isNotEqualTo: 'ni enako', isNotIn: 'ni v', + isNotLike: 'ni podobno', near: 'blizu', within: 'znotraj', }, diff --git a/packages/translations/src/languages/sv.ts b/packages/translations/src/languages/sv.ts index f6f8731681..03eac52039 100644 --- a/packages/translations/src/languages/sv.ts +++ b/packages/translations/src/languages/sv.ts @@ -374,6 +374,7 @@ export const svTranslations: DefaultTranslationsObject = { isLike: 'är som', isNotEqualTo: 'är inte lika med', isNotIn: 'är inte med', + isNotLike: 'är inte som', near: 'nära', within: 'inom', }, diff --git a/packages/translations/src/languages/th.ts b/packages/translations/src/languages/th.ts index 4195d5e70e..79b5f19b21 100644 --- a/packages/translations/src/languages/th.ts +++ b/packages/translations/src/languages/th.ts @@ -369,6 +369,7 @@ export const thTranslations: DefaultTranslationsObject = { isLike: 'เหมือน', isNotEqualTo: 'ไม่เท่ากับ', isNotIn: 'ไม่ได้อยู่ใน', + isNotLike: 'ไม่เหมือน', near: 'ใกล้', within: 'ภายใน', }, diff --git a/packages/translations/src/languages/tr.ts b/packages/translations/src/languages/tr.ts index 5743ea19b0..87e2243110 100644 --- a/packages/translations/src/languages/tr.ts +++ b/packages/translations/src/languages/tr.ts @@ -378,6 +378,7 @@ export const trTranslations: DefaultTranslationsObject = { isLike: 'gibidir', isNotEqualTo: 'eşit değildir', isNotIn: 'içinde değil', + isNotLike: 'gibi değil', near: 'yakın', within: 'içinde', }, diff --git a/packages/translations/src/languages/uk.ts b/packages/translations/src/languages/uk.ts index 277113116e..3ceb4b5ae2 100644 --- a/packages/translations/src/languages/uk.ts +++ b/packages/translations/src/languages/uk.ts @@ -372,6 +372,7 @@ export const ukTranslations: DefaultTranslationsObject = { isLike: 'схоже', isNotEqualTo: 'не дорівнює', isNotIn: 'не в', + isNotLike: 'не такий як', near: 'поруч', within: 'в межах', }, diff --git a/packages/translations/src/languages/vi.ts b/packages/translations/src/languages/vi.ts index 405f7a7a05..b11716d869 100644 --- a/packages/translations/src/languages/vi.ts +++ b/packages/translations/src/languages/vi.ts @@ -372,6 +372,7 @@ export const viTranslations: DefaultTranslationsObject = { isLike: 'gần giống', isNotEqualTo: 'không bằng', isNotIn: 'không có trong', + isNotLike: 'không giống như', near: 'gần', within: 'trong', }, diff --git a/packages/translations/src/languages/zh.ts b/packages/translations/src/languages/zh.ts index e4ac7491e6..8a66c5ef40 100644 --- a/packages/translations/src/languages/zh.ts +++ b/packages/translations/src/languages/zh.ts @@ -362,6 +362,7 @@ export const zhTranslations: DefaultTranslationsObject = { isLike: '就像', isNotEqualTo: '不等于', isNotIn: '不在', + isNotLike: '不像', near: '附近', within: '在...之内', }, diff --git a/packages/translations/src/languages/zhTw.ts b/packages/translations/src/languages/zhTw.ts index 3929675dc3..e365afc0ef 100644 --- a/packages/translations/src/languages/zhTw.ts +++ b/packages/translations/src/languages/zhTw.ts @@ -362,6 +362,7 @@ export const zhTwTranslations: DefaultTranslationsObject = { isLike: '就像', isNotEqualTo: '不等於', isNotIn: '不在', + isNotLike: '不像', near: '附近', within: '在...之內', }, diff --git a/packages/ui/src/elements/WhereBuilder/field-types.tsx b/packages/ui/src/elements/WhereBuilder/field-types.tsx index 4cf4d86d74..49407a6951 100644 --- a/packages/ui/src/elements/WhereBuilder/field-types.tsx +++ b/packages/ui/src/elements/WhereBuilder/field-types.tsx @@ -73,6 +73,11 @@ const like = { value: 'like', } +const notLike = { + label: 'isNotLike', + value: 'not_like', +} + const contains = { label: 'contains', value: 'contains', @@ -90,7 +95,7 @@ const fieldTypeConditions: { }, code: { component: 'Text', - operators: [...base, like, contains], + operators: [...base, like, notLike, contains], }, date: { component: 'Date', @@ -102,7 +107,7 @@ const fieldTypeConditions: { }, json: { component: 'Text', - operators: [...base, like, contains, within, intersects], + operators: [...base, like, contains, notLike, within, intersects], }, number: { component: 'Number', @@ -122,7 +127,7 @@ const fieldTypeConditions: { }, richText: { component: 'Text', - operators: [...base, like, contains], + operators: [...base, like, notLike, contains], }, select: { component: 'Select', @@ -130,11 +135,11 @@ const fieldTypeConditions: { }, text: { component: 'Text', - operators: [...base, like, contains], + operators: [...base, like, notLike, contains], }, textarea: { component: 'Text', - operators: [...base, like, contains], + operators: [...base, like, notLike, contains], }, upload: { component: 'Text', diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index c937123679..3b36ffacf5 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -165,6 +165,68 @@ describe('Fields', () => { expect(missResult).toBeFalsy() }) + it('should query like on value', async () => { + const miss = await payload.create({ + collection: 'text-fields', + data: { + text: 'dog', + }, + }) + + const hit = await payload.create({ + collection: 'text-fields', + data: { + text: 'cat', + }, + }) + + const { docs } = await payload.find({ + collection: 'text-fields', + where: { + text: { + like: 'cat', + }, + }, + }) + + const hitResult = docs.find(({ id: findID }) => hit.id === findID) + const missResult = docs.find(({ id: findID }) => miss.id === findID) + + expect(hitResult).toBeDefined() + expect(missResult).toBeFalsy() + }) + + it('should query not_like on value', async () => { + const hit = await payload.create({ + collection: 'text-fields', + data: { + text: 'dog', + }, + }) + + const miss = await payload.create({ + collection: 'text-fields', + data: { + text: 'cat', + }, + }) + + const { docs } = await payload.find({ + collection: 'text-fields', + where: { + text: { + not_like: 'cat', + }, + }, + }) + + const hitResult = docs.find(({ id: findID }) => hit.id === findID) + const missResult = docs.find(({ id: findID }) => miss.id === findID) + + expect(hitResult).toBeDefined() + expect(missResult).toBeFalsy() + }) + it('should query hasMany within an array', async () => { const docFirst = await payload.create({ collection: 'text-fields', @@ -2713,6 +2775,20 @@ describe('Fields', () => { expect(docIDs).not.toContain(bazBar.id) }) + it('should query nested properties - not_like', async () => { + const { docs } = await payload.find({ + collection: 'json-fields', + where: { + 'json.baz': { not_like: 'bar' }, + }, + }) + + const docIDs = docs.map(({ id }) => id) + + expect(docIDs).toContain(fooBar.id) + expect(docIDs).not.toContain(bazBar.id) + }) + it('should query nested properties - equals', async () => { const { docs } = await payload.find({ collection: 'json-fields', From 4224c680023707fff7d67cacd9dbd75b77f4128c Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Sat, 22 Feb 2025 15:23:00 +0200 Subject: [PATCH 13/33] docs: fix links to react hooks (#11344) --- docs/custom-components/overview.mdx | 10 +++++----- docs/fields/overview.mdx | 4 ++-- docs/hooks/overview.mdx | 2 +- packages/ui/src/forms/Form/context.ts | 6 +++--- packages/ui/src/forms/useField/index.tsx | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/custom-components/overview.mdx b/docs/custom-components/overview.mdx index 78731517f4..bf0c376d26 100644 --- a/docs/custom-components/overview.mdx +++ b/docs/custom-components/overview.mdx @@ -276,7 +276,7 @@ export default async function MyServerComponent({ But, the Payload Config is [non-serializable](https://react.dev/reference/rsc/use-client#serializable-types) by design. It is full of custom validation functions and more. This means that the Payload Config, in its entirety, cannot be passed directly to Client Components. -For this reason, Payload creates a Client Config and passes it into the Config Provider. This is a serializable version of the Payload Config that can be accessed from any Client Component via the [`useConfig`](../admin/hooks#useconfig) hook: +For this reason, Payload creates a Client Config and passes it into the Config Provider. This is a serializable version of the Payload Config that can be accessed from any Client Component via the [`useConfig`](../admin/react-hooks#useconfig) hook: ```tsx 'use client' @@ -375,7 +375,7 @@ export function MyClientComponent() { ``` - See the [Hooks](../admin/hooks) documentation for a full list of available hooks. + See the [Hooks](../admin/react-hooks) documentation for a full list of available hooks. ### Getting the Current Locale @@ -422,12 +422,12 @@ function Greeting() { ``` - See the [Hooks](../admin/hooks) documentation for a full list of available hooks. + See the [Hooks](../admin/react-hooks) documentation for a full list of available hooks. ### Using Hooks -To make it easier to [build your Custom Components](#building-custom-components), you can use [Payload's built-in React Hooks](../admin/hooks) in any Client Component. For example, you might want to interact with one of Payload's many React Contexts. To do this, you can use one of the many hooks available depending on your needs. +To make it easier to [build your Custom Components](#building-custom-components), you can use [Payload's built-in React Hooks](../admin/react-hooks) in any Client Component. For example, you might want to interact with one of Payload's many React Contexts. To do this, you can use one of the many hooks available depending on your needs. ```tsx 'use client' @@ -444,7 +444,7 @@ export function MyClientComponent() { ``` - See the [Hooks](../admin/hooks) documentation for a full list of available hooks. + See the [Hooks](../admin/react-hooks) documentation for a full list of available hooks. ### Adding Styles diff --git a/docs/fields/overview.mdx b/docs/fields/overview.mdx index 2faed7329f..77f9f94872 100644 --- a/docs/fields/overview.mdx +++ b/docs/fields/overview.mdx @@ -658,7 +658,7 @@ In addition to the above props, all Server Components will also receive the foll When swapping out the `Field` component, you are responsible for sending and receiving the field's `value` from the form itself. -To do so, import the [`useField`](../admin/hooks#usefield) hook from `@payloadcms/ui` and use it to manage the field's value: +To do so, import the [`useField`](../admin/react-hooks#usefield) hook from `@payloadcms/ui` and use it to manage the field's value: ```tsx 'use client' @@ -677,7 +677,7 @@ export const CustomTextField: React.FC = () => { ``` - For a complete list of all available React hooks, see the [Payload React Hooks](../admin/hooks) documentation. For additional help, see [Building Custom Components](../custom-components/overview#building-custom-components). + For a complete list of all available React hooks, see the [Payload React Hooks](../admin/react-hooks) documentation. For additional help, see [Building Custom Components](../custom-components/overview#building-custom-components). ##### TypeScript#field-component-types diff --git a/docs/hooks/overview.mdx b/docs/hooks/overview.mdx index 7d489c6bad..82533ec3f3 100644 --- a/docs/hooks/overview.mdx +++ b/docs/hooks/overview.mdx @@ -27,7 +27,7 @@ There are four main types of Hooks in Payload: **Reminder:** - Payload also ships a set of _React_ hooks that you can use in your frontend application. Although they share a common name, these are very different things and should not be confused. [More details](../admin/hooks). + Payload also ships a set of _React_ hooks that you can use in your frontend application. Although they share a common name, these are very different things and should not be confused. [More details](../admin/react-hooks). ## Root Hooks diff --git a/packages/ui/src/forms/Form/context.ts b/packages/ui/src/forms/Form/context.ts index b630fb3887..6c520d93ae 100644 --- a/packages/ui/src/forms/Form/context.ts +++ b/packages/ui/src/forms/Form/context.ts @@ -24,7 +24,7 @@ export type RenderedFieldSlots = Map /** * Get the state of the form, can be used to submit & validate the form. * - * @see https://payloadcms.com/docs/admin/hooks#useform + * @see https://payloadcms.com/docs/admin/react-hooks#useform */ const useForm = (): Context => useContext(FormContext) /** @@ -42,7 +42,7 @@ const useFormInitializing = (): boolean => useContext(InitializingContext) /** * Get and set the value of a form field based on a selector * - * @see https://payloadcms.com/docs/admin/hooks#useformfields + * @see https://payloadcms.com/docs/admin/react-hooks#useformfields */ const useFormFields = ( selector: (context: FormFieldsContextType) => Value, @@ -51,7 +51,7 @@ const useFormFields = ( /** * Get the state of all form fields. * - * @see https://payloadcms.com/docs/admin/hooks#useallformfields + * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields */ const useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext) diff --git a/packages/ui/src/forms/useField/index.tsx b/packages/ui/src/forms/useField/index.tsx index 17ae9fd55c..e30b4cd6ee 100644 --- a/packages/ui/src/forms/useField/index.tsx +++ b/packages/ui/src/forms/useField/index.tsx @@ -27,7 +27,7 @@ import { /** * Get and set the value of a form field. * - * @see https://payloadcms.com/docs/admin/hooks#usefield + * @see https://payloadcms.com/docs/admin/react-hooks#usefield */ export const useField = (options: Options): FieldType => { const { disableFormData = false, hasRows, path, validate } = options From f477e0e3c4122f021c8ccadbadae0f7f0d291db2 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Mon, 24 Feb 2025 09:29:45 -0500 Subject: [PATCH 14/33] feat(plugin-multi-tenant): export useTenantSelection hook for public usage (#11364) Exports the `useTenantSelection` hook from the multi-tenant plugin, this way other users can import and use the hook along with it's methods. Can be imported: ```ts import { useTenantSelection } from '@payloadcms/plugin-multi-tenant/client' ``` The context returned: ```ts type ContextType = { /** * Array of options to select from */ options: OptionObject[] /** * The currently selected tenant ID */ selectedTenantID: number | string | undefined /** * Prevents a refresh when the tenant is changed * * If not switching tenants while viewing a "global", set to true */ setPreventRefreshOnChange: React.Dispatch> /** * Sets the selected tenant ID * * @param args.id - The ID of the tenant to select * @param args.refresh - Whether to refresh the page after changing the tenant */ setTenant: (args: { id: number | string | undefined; refresh?: boolean }) => void } ``` --- docs/plugins/multi-tenant.mdx | 44 +++++++++++++++++++ .../plugin-multi-tenant/src/exports/client.ts | 1 + .../TenantSelectionProvider/index.client.tsx | 17 +++++++ 3 files changed, 62 insertions(+) diff --git a/docs/plugins/multi-tenant.mdx b/docs/plugins/multi-tenant.mdx index b982a0c5e2..743b8281ad 100644 --- a/docs/plugins/multi-tenant.mdx +++ b/docs/plugins/multi-tenant.mdx @@ -278,6 +278,50 @@ async rewrites() { } ``` +### React Hooks + +Below are the hooks exported from the plugin that you can import into your own custom components to consume. + +#### useTenantSelection + +You can import this like so: + +```tsx +import { useTenantSelection } from '@payloadcms/plugin-multi-tenant/client' + +... + +const tenantContext = useTenantSelection() +``` + +The hook returns the following context: + +```ts +type ContextType = { + /** + * Array of options to select from + */ + options: OptionObject[] + /** + * The currently selected tenant ID + */ + selectedTenantID: number | string | undefined + /** + * Prevents a refresh when the tenant is changed + * + * If not switching tenants while viewing a "global", set to true + */ + setPreventRefreshOnChange: React.Dispatch> + /** + * Sets the selected tenant ID + * + * @param args.id - The ID of the tenant to select + * @param args.refresh - Whether to refresh the page after changing the tenant + */ + setTenant: (args: { id: number | string | undefined; refresh?: boolean }) => void +} +``` + ## Examples diff --git a/packages/plugin-multi-tenant/src/exports/client.ts b/packages/plugin-multi-tenant/src/exports/client.ts index 0abd2ea795..cd6fb65b94 100644 --- a/packages/plugin-multi-tenant/src/exports/client.ts +++ b/packages/plugin-multi-tenant/src/exports/client.ts @@ -1,2 +1,3 @@ export { TenantField } from '../components/TenantField/index.client.js' export { TenantSelector } from '../components/TenantSelector/index.js' +export { useTenantSelection } from '../providers/TenantSelectionProvider/index.client.js' diff --git a/packages/plugin-multi-tenant/src/providers/TenantSelectionProvider/index.client.tsx b/packages/plugin-multi-tenant/src/providers/TenantSelectionProvider/index.client.tsx index 5587303648..eacf66cb29 100644 --- a/packages/plugin-multi-tenant/src/providers/TenantSelectionProvider/index.client.tsx +++ b/packages/plugin-multi-tenant/src/providers/TenantSelectionProvider/index.client.tsx @@ -9,9 +9,26 @@ import React, { createContext } from 'react' import { SELECT_ALL } from '../../constants.js' type ContextType = { + /** + * Array of options to select from + */ options: OptionObject[] + /** + * The currently selected tenant ID + */ selectedTenantID: number | string | undefined + /** + * Prevents a refresh when the tenant is changed + * + * If not switching tenants while viewing a "global", set to true + */ setPreventRefreshOnChange: React.Dispatch> + /** + * Sets the selected tenant ID + * + * @param args.id - The ID of the tenant to select + * @param args.refresh - Whether to refresh the page after changing the tenant + */ setTenant: (args: { id: number | string | undefined; refresh?: boolean }) => void } From f9121c1a3a3a6700b11eb358aa200ee13f1320a5 Mon Sep 17 00:00:00 2001 From: Paul Date: Mon, 24 Feb 2025 14:49:52 +0000 Subject: [PATCH 15/33] fix(ui): link element triggering clicks twice (#11362) Fixes https://github.com/payloadcms/payload/issues/11359#issuecomment-2678213414 The link element by using startTransitionRoute and manually calling router.push would technically cause links to be clicked twice, by not preventing default browser behaviour. This caused a problem on clicking /create links as it hit the route twice. Added a test making sure Create new doesn't lead to abnormally increased document counts Changes: - Added `e.preventDefault()` in our Link element - Added `preventDefault` as an optional prop to this element so that people can handle it on their own if needed via a custom `onClick` --- packages/ui/src/elements/Link/index.tsx | 18 ++++++++++- test/versions/e2e.spec.ts | 43 ++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/elements/Link/index.tsx b/packages/ui/src/elements/Link/index.tsx index 4fbd1b2fa4..5ab5f9d139 100644 --- a/packages/ui/src/elements/Link/index.tsx +++ b/packages/ui/src/elements/Link/index.tsx @@ -23,10 +23,20 @@ function isModifiedEvent(event: React.MouseEvent): boolean { ) } -export const Link: React.FC[0]> = ({ +type Props = { + /** + * Disable the e.preventDefault() call on click if you want to handle it yourself via onClick + * + * @default true + */ + preventDefault?: boolean +} & Parameters[0] + +export const Link: React.FC = ({ children, href, onClick, + preventDefault = true, ref, replace, scroll, @@ -47,6 +57,12 @@ export const Link: React.FC[0]> = ({ onClick(e) } + // We need a preventDefault here so that a clicked link doesn't trigger twice, + // once for default browser navigation and once for startRouteTransition + if (preventDefault) { + e.preventDefault() + } + startRouteTransition(() => { const url = typeof href === 'string' ? href : formatUrl(href) diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts index 0cd34eb850..d7d44c0842 100644 --- a/test/versions/e2e.spec.ts +++ b/test/versions/e2e.spec.ts @@ -438,6 +438,47 @@ describe('Versions', () => { await expect(drawer.locator('.id-label')).toBeVisible() }) + test('collection - autosave - should not create duplicates when clicking Create new', async () => { + // This test checks that when we click "Create new" in the list view, it only creates 1 extra document and not more + const { totalDocs: initialDocsCount } = await payload.find({ + collection: autosaveCollectionSlug, + draft: true, + }) + + await page.goto(autosaveURL.create) + await page.locator('#field-title').fill('autosave title') + await waitForAutoSaveToRunAndComplete(page) + await expect(page.locator('#field-title')).toHaveValue('autosave title') + + const { totalDocs: updatedDocsCount } = await payload.find({ + collection: autosaveCollectionSlug, + draft: true, + }) + + await expect(() => { + expect(updatedDocsCount).toBe(initialDocsCount + 1) + }).toPass({ timeout: POLL_TOPASS_TIMEOUT, intervals: [100] }) + + await page.goto(autosaveURL.list) + const createNewButton = page.locator('.list-header .btn:has-text("Create New")') + await createNewButton.click() + + await page.waitForURL(`**/${autosaveCollectionSlug}/**`) + + await page.locator('#field-title').fill('autosave title') + await waitForAutoSaveToRunAndComplete(page) + await expect(page.locator('#field-title')).toHaveValue('autosave title') + + const { totalDocs: latestDocsCount } = await payload.find({ + collection: autosaveCollectionSlug, + draft: true, + }) + + await expect(() => { + expect(latestDocsCount).toBe(updatedDocsCount + 1) + }).toPass({ timeout: POLL_TOPASS_TIMEOUT, intervals: [100] }) + }) + test('collection - should update updatedAt', async () => { await page.goto(url.create) await page.waitForURL(`**/${url.create}`) @@ -757,7 +798,7 @@ describe('Versions', () => { // schedule publish should not be available before document has been saved await page.locator('#action-save-popup').click() - await expect(page.locator('#schedule-publish')).not.toBeVisible() + await expect(page.locator('#schedule-publish')).toBeHidden() // save draft then try to schedule publish await saveDocAndAssert(page) From d32608649cd8df1c901fc5462515f3f7d49776fc Mon Sep 17 00:00:00 2001 From: Rafal Sypien <22473352+inuue@users.noreply.github.com> Date: Mon, 24 Feb 2025 07:36:11 -0800 Subject: [PATCH 16/33] docs: add info about changes in localized fields to v2 -> v3 migration guide (#11244) ### What? Information that locale fields in database are changing to a simpler data structure in v3. ### Why? Simple data migration is not enough to get it working, I had to spend quite some time to figure out migration files and still it required some manual input. Maybe others will find it useful when starting a v3 migration. ### How? I had to do some custom migration scripts on my own to get v3 to work with existing pages data. --------- Co-authored-by: Sasha <64744993+r1tsuu@users.noreply.github.com> --- docs/migration-guide/overview.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/migration-guide/overview.mdx b/docs/migration-guide/overview.mdx index 99e4bf9990..386cee9a5c 100644 --- a/docs/migration-guide/overview.mdx +++ b/docs/migration-guide/overview.mdx @@ -414,6 +414,15 @@ For more details, see the [Documentation](https://payloadcms.com/docs/getting-st ``` 1. The `./src/public` directory is now located directly at root level `./public` [see Next.js docs for details](https://nextjs.org/docs/pages/building-your-application/optimizing/static-assets) +1. Payload now automatically removes `localized: true` property from sub-fields if a parent is localized, as it's redunant and unnecessary. If you have some existing data in this structure and you want to disable that behavior, you need to enable `allowLocalizedWithinLocalized` flag in your payload.config [read more in documentation](https://payloadcms.com/docs/configuration/overview#compatibility-flags), or create a migration script that aligns your data. +Mongodb example for a link in a page layout. + + ```diff + - layout.columns.en.link.en.type.en + + layout.columns.en.link.type + ``` + + ## Custom Components 1. All Payload React components have been moved from the `payload` package to `@payloadcms/ui`. If you were previously importing components into your app from the `payload` package, for example to create Custom Components, you will need to change your import paths: From d92c0009edc8ceb8ed6e253e2b590b11fd5ba301 Mon Sep 17 00:00:00 2001 From: Jessica Chowdhury <67977755+JessChowdhury@users.noreply.github.com> Date: Mon, 24 Feb 2025 16:10:21 +0000 Subject: [PATCH 17/33] fix(plugin-nested-docs): corrects data shape of breadcrumbs returned in hooks (#10866) ### What? The `plugin-nested-docs` returns an array of breadcrumbs - the `resaveChildren` file accidentally processed the breadcrumbs twice, once where the data is updated and once within the `populateBreadcrumbs` function which was causing the objects to be double nested. ### How? Removes the extra nesting from `resaveChildren` file and allows the `populateBreadcrumbs` to return the final data. Fixes #10855 --- .../src/hooks/resaveChildren.ts | 5 +- test/plugin-nested-docs/int.spec.ts | 86 ++++++++++++++++++- 2 files changed, 86 insertions(+), 5 deletions(-) diff --git a/packages/plugin-nested-docs/src/hooks/resaveChildren.ts b/packages/plugin-nested-docs/src/hooks/resaveChildren.ts index 783cde5bab..bac3467a9e 100644 --- a/packages/plugin-nested-docs/src/hooks/resaveChildren.ts +++ b/packages/plugin-nested-docs/src/hooks/resaveChildren.ts @@ -81,10 +81,7 @@ const resave = async ({ collection, doc, draft, pluginConfig, req }: ResaveArgs) await req.payload.update({ id: child.id, collection: collection.slug, - data: { - ...child, - [breadcrumbSlug]: await populateBreadcrumbs(req, pluginConfig, collection, child), - }, + data: populateBreadcrumbs(req, pluginConfig, collection, child), depth: 0, draft: isDraft, locale: req.locale, diff --git a/test/plugin-nested-docs/int.spec.ts b/test/plugin-nested-docs/int.spec.ts index 6c7359cd9b..90d9262c6e 100644 --- a/test/plugin-nested-docs/int.spec.ts +++ b/test/plugin-nested-docs/int.spec.ts @@ -76,7 +76,6 @@ describe('@payloadcms/plugin-nested-docs', () => { }, }) } - // update parent doc await payload.update({ collection: 'pages', @@ -110,6 +109,91 @@ describe('@payloadcms/plugin-nested-docs', () => { // @ts-ignore expect(lastUpdatedChildBreadcrumbs[0].url).toStrictEqual('/11-children-updated') }) + + it('should return breadcrumbs as an array of objects', async () => { + const parentDoc = await payload.create({ + collection: 'pages', + data: { + title: 'parent doc', + slug: 'parent-doc', + _status: 'published', + }, + }) + + const childDoc = await payload.create({ + collection: 'pages', + data: { + title: 'child doc', + slug: 'child-doc', + parent: parentDoc.id, + _status: 'published', + }, + }) + + // expect breadcrumbs to be an array + expect(childDoc.breadcrumbs).toBeInstanceOf(Array) + expect(childDoc.breadcrumbs).toBeDefined() + + // expect each to be objects + childDoc.breadcrumbs?.map((breadcrumb) => { + expect(breadcrumb).toBeInstanceOf(Object) + }) + }) + + it('should update child doc breadcrumb without affecting any other data', async () => { + const parentDoc = await payload.create({ + collection: 'pages', + data: { + title: 'parent doc', + slug: 'parent', + }, + }) + + const childDoc = await payload.create({ + collection: 'pages', + data: { + title: 'child doc', + slug: 'child', + parent: parentDoc.id, + _status: 'published', + }, + }) + + await payload.update({ + collection: 'pages', + id: parentDoc.id, + data: { + title: 'parent updated', + slug: 'parent-updated', + _status: 'published', + }, + }) + + const updatedChild = await payload + .find({ + collection: 'pages', + where: { + id: { + equals: childDoc.id, + }, + }, + }) + .then(({ docs }) => docs[0]) + + if (!updatedChild) { + return + } + + // breadcrumbs should be updated + expect(updatedChild.breadcrumbs).toHaveLength(2) + + expect(updatedChild.breadcrumbs?.[0]?.url).toStrictEqual('/parent-updated') + expect(updatedChild.breadcrumbs?.[1]?.url).toStrictEqual('/parent-updated/child') + + // no other data should be affected + expect(updatedChild.title).toEqual('child doc') + expect(updatedChild.slug).toEqual('child') + }) }) describe('overrides', () => { From 37781808eb3dbdf18716d89e54d60c00f6beede6 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Mon, 24 Feb 2025 11:17:09 -0500 Subject: [PATCH 18/33] fix(plugin-multi-tenant): user access, thread field names through (#11365) ### What? Two things: 1. Users unassigned to a tenant could not access their own account 2. Custom `tenantsArrayFieldName` and `tenantsArrayTenantFieldName` configurations were not being used in all cases ### Why? 1. The access constraint provided by the plugin would not allow them to make changes to their own account 2. `getUserTenantIDs` and `afterTenantDelete` were not using the custom field names properly ### How? 1. Adds constraint for users allowing them to manage their own account by default. Externally nothing has changed. If you need to lock your users access control down you should do that just as you would without this plugin. 2. Threads the field names through for usage. Fixes https://github.com/payloadcms/payload/issues/11317 --- .../src/hooks/afterTenantDelete.ts | 8 ++- packages/plugin-multi-tenant/src/index.ts | 6 +++ .../src/utilities/addCollectionAccess.ts | 8 +++ .../src/utilities/getTenantAccess.ts | 15 +++++- .../src/utilities/getUserTenantIDs.ts | 18 +++++-- .../src/utilities/withTenantAccess.ts | 51 +++++++++++++++---- test/plugin-multi-tenant/int.spec.ts | 3 +- test/plugin-multi-tenant/seed/index.ts | 6 +-- 8 files changed, 96 insertions(+), 19 deletions(-) diff --git a/packages/plugin-multi-tenant/src/hooks/afterTenantDelete.ts b/packages/plugin-multi-tenant/src/hooks/afterTenantDelete.ts index 8deb27942d..626bb3014d 100644 --- a/packages/plugin-multi-tenant/src/hooks/afterTenantDelete.ts +++ b/packages/plugin-multi-tenant/src/hooks/afterTenantDelete.ts @@ -115,7 +115,13 @@ export const afterTenantDelete = id: user.id, collection: usersSlug, data: { - tenants: (user.tenants || []).filter(({ tenant: tenantID }) => tenantID !== id), + [usersTenantsArrayFieldName]: (user[usersTenantsArrayFieldName] || []).filter( + (row: Record) => { + if (row[usersTenantsArrayTenantFieldName]) { + return row[usersTenantsArrayTenantFieldName] !== id + } + }, + ), }, }), ) diff --git a/packages/plugin-multi-tenant/src/index.ts b/packages/plugin-multi-tenant/src/index.ts index 96d254a938..a94da8d059 100644 --- a/packages/plugin-multi-tenant/src/index.ts +++ b/packages/plugin-multi-tenant/src/index.ts @@ -92,6 +92,8 @@ export const multiTenantPlugin = addCollectionAccess({ collection: adminUsersCollection, fieldName: `${tenantsArrayFieldName}.${tenantsArrayTenantFieldName}`, + tenantsArrayFieldName, + tenantsArrayTenantFieldName, userHasAccessToAllTenants, }) @@ -130,6 +132,8 @@ export const multiTenantPlugin = addCollectionAccess({ collection, fieldName: 'id', + tenantsArrayFieldName, + tenantsArrayTenantFieldName, userHasAccessToAllTenants, }) } @@ -205,6 +209,8 @@ export const multiTenantPlugin = addCollectionAccess({ collection, fieldName: tenantFieldName, + tenantsArrayFieldName, + tenantsArrayTenantFieldName, userHasAccessToAllTenants, }) } diff --git a/packages/plugin-multi-tenant/src/utilities/addCollectionAccess.ts b/packages/plugin-multi-tenant/src/utilities/addCollectionAccess.ts index 65d41b12ef..e70d45965f 100644 --- a/packages/plugin-multi-tenant/src/utilities/addCollectionAccess.ts +++ b/packages/plugin-multi-tenant/src/utilities/addCollectionAccess.ts @@ -20,6 +20,8 @@ const collectionAccessKeys: AllAccessKeys< type Args = { collection: CollectionConfig fieldName: string + tenantsArrayFieldName?: string + tenantsArrayTenantFieldName?: string userHasAccessToAllTenants: Required< MultiTenantPluginConfig >['userHasAccessToAllTenants'] @@ -32,6 +34,8 @@ type Args = { export const addCollectionAccess = ({ collection, fieldName, + tenantsArrayFieldName, + tenantsArrayTenantFieldName, userHasAccessToAllTenants, }: Args): void => { collectionAccessKeys.forEach((key) => { @@ -40,7 +44,11 @@ export const addCollectionAccess = ({ } collection.access[key] = withTenantAccess({ accessFunction: collection.access?.[key], + collection, fieldName: key === 'readVersions' ? `version.${fieldName}` : fieldName, + operation: key, + tenantsArrayFieldName, + tenantsArrayTenantFieldName, userHasAccessToAllTenants, }) }) diff --git a/packages/plugin-multi-tenant/src/utilities/getTenantAccess.ts b/packages/plugin-multi-tenant/src/utilities/getTenantAccess.ts index 7749fb37e0..b7cd2dc683 100644 --- a/packages/plugin-multi-tenant/src/utilities/getTenantAccess.ts +++ b/packages/plugin-multi-tenant/src/utilities/getTenantAccess.ts @@ -2,14 +2,25 @@ import type { Where } from 'payload' import type { UserWithTenantsField } from '../types.js' +import { defaults } from '../defaults.js' import { getUserTenantIDs } from './getUserTenantIDs.js' type Args = { fieldName: string + tenantsArrayFieldName?: string + tenantsArrayTenantFieldName?: string user: UserWithTenantsField } -export function getTenantAccess({ fieldName, user }: Args): Where { - const userAssignedTenantIDs = getUserTenantIDs(user) +export function getTenantAccess({ + fieldName, + tenantsArrayFieldName = defaults.tenantsArrayFieldName, + tenantsArrayTenantFieldName = defaults.tenantsArrayTenantFieldName, + user, +}: Args): Where { + const userAssignedTenantIDs = getUserTenantIDs(user, { + tenantsArrayFieldName, + tenantsArrayTenantFieldName, + }) return { [fieldName]: { diff --git a/packages/plugin-multi-tenant/src/utilities/getUserTenantIDs.ts b/packages/plugin-multi-tenant/src/utilities/getUserTenantIDs.ts index fce80f19e6..01ebd6a979 100644 --- a/packages/plugin-multi-tenant/src/utilities/getUserTenantIDs.ts +++ b/packages/plugin-multi-tenant/src/utilities/getUserTenantIDs.ts @@ -1,5 +1,6 @@ import type { Tenant, UserWithTenantsField } from '../types.js' +import { defaults } from '../defaults.js' import { extractID } from './extractID.js' /** @@ -9,15 +10,26 @@ import { extractID } from './extractID.js' */ export const getUserTenantIDs = ( user: null | UserWithTenantsField, + options?: { + tenantsArrayFieldName?: string + tenantsArrayTenantFieldName?: string + }, ): IDType[] => { if (!user) { return [] } + const { + tenantsArrayFieldName = defaults.tenantsArrayFieldName, + tenantsArrayTenantFieldName = defaults.tenantsArrayTenantFieldName, + } = options || {} + return ( - user?.tenants?.reduce((acc, { tenant }) => { - if (tenant) { - acc.push(extractID(tenant as Tenant)) + (Array.isArray(user[tenantsArrayFieldName]) ? user[tenantsArrayFieldName] : [])?.reduce< + IDType[] + >((acc, row) => { + if (row[tenantsArrayTenantFieldName]) { + acc.push(extractID(row[tenantsArrayTenantFieldName] as Tenant)) } return acc diff --git a/packages/plugin-multi-tenant/src/utilities/withTenantAccess.ts b/packages/plugin-multi-tenant/src/utilities/withTenantAccess.ts index 003a8ee8aa..78fb779650 100644 --- a/packages/plugin-multi-tenant/src/utilities/withTenantAccess.ts +++ b/packages/plugin-multi-tenant/src/utilities/withTenantAccess.ts @@ -1,4 +1,12 @@ -import type { Access, AccessArgs, AccessResult, User } from 'payload' +import type { + Access, + AccessArgs, + AccessResult, + AllOperations, + CollectionConfig, + User, + Where, +} from 'payload' import type { MultiTenantPluginConfig, UserWithTenantsField } from '../types.js' @@ -7,15 +15,26 @@ import { getTenantAccess } from './getTenantAccess.js' type Args = { accessFunction?: Access + collection: CollectionConfig fieldName: string + operation: AllOperations + tenantsArrayFieldName?: string + tenantsArrayTenantFieldName?: string userHasAccessToAllTenants: Required< MultiTenantPluginConfig >['userHasAccessToAllTenants'] } export const withTenantAccess = - ({ accessFunction, fieldName, userHasAccessToAllTenants }: Args) => + ({ + accessFunction, + collection, + fieldName, + tenantsArrayFieldName, + tenantsArrayTenantFieldName, + userHasAccessToAllTenants, + }: Args) => async (args: AccessArgs): Promise => { - const constraints = [] + const constraints: Where[] = [] const accessFn = typeof accessFunction === 'function' ? accessFunction @@ -34,12 +53,26 @@ export const withTenantAccess = args.req.user as ConfigType extends { user: unknown } ? ConfigType['user'] : User, ) ) { - constraints.push( - getTenantAccess({ - fieldName, - user: args.req.user as UserWithTenantsField, - }), - ) + const tenantConstraint = getTenantAccess({ + fieldName, + tenantsArrayFieldName, + tenantsArrayTenantFieldName, + user: args.req.user as UserWithTenantsField, + }) + if (collection.slug === args.req.user.collection) { + constraints.push({ + or: [ + { + id: { + equals: args.req.user.id, + }, + }, + tenantConstraint, + ], + }) + } else { + constraints.push(tenantConstraint) + } return combineWhereConstraints(constraints) } diff --git a/test/plugin-multi-tenant/int.spec.ts b/test/plugin-multi-tenant/int.spec.ts index 100e117205..512ea44000 100644 --- a/test/plugin-multi-tenant/int.spec.ts +++ b/test/plugin-multi-tenant/int.spec.ts @@ -7,6 +7,7 @@ import type { NextRESTClient } from '../helpers/NextRESTClient.js' import { devUser } from '../credentials.js' import { initPayloadInt } from '../helpers/initPayloadInt.js' +import { tenantsSlug } from './shared.js' let payload: Payload let restClient: NextRESTClient @@ -40,7 +41,7 @@ describe('@payloadcms/plugin-multi-tenant', () => { describe('tenants', () => { it('should create a tenant', async () => { const tenant1 = await payload.create({ - collection: 'tenants', + collection: tenantsSlug, data: { name: 'tenant1', domain: 'tenant1.com', diff --git a/test/plugin-multi-tenant/seed/index.ts b/test/plugin-multi-tenant/seed/index.ts index fe7efeae5a..4e37f2a1ec 100644 --- a/test/plugin-multi-tenant/seed/index.ts +++ b/test/plugin-multi-tenant/seed/index.ts @@ -1,19 +1,19 @@ import type { Config } from 'payload' import { devUser } from '../../credentials.js' -import { menuItemsSlug, menuSlug, usersSlug } from '../shared.js' +import { menuItemsSlug, menuSlug, tenantsSlug, usersSlug } from '../shared.js' export const seed: Config['onInit'] = async (payload) => { // create tenants const blueDogTenant = await payload.create({ - collection: 'tenants', + collection: tenantsSlug, data: { name: 'Blue Dog', domain: 'bluedog.com', }, }) const steelCatTenant = await payload.create({ - collection: 'tenants', + collection: tenantsSlug, data: { name: 'Steel Cat', domain: 'steelcat.com', From 2477fc6c753f7311260720794dec3a8d7d970e32 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Mon, 24 Feb 2025 11:52:12 -0500 Subject: [PATCH 19/33] fix(ui): custom block labels stale when reordering blocks (#11367) When blocks have custom row labels, those row labels become stale when reordering blocks. After moving a block, for example, the row label will jump back the original block until form state returns with the proper rendering order. This is especially evident on slow networks. --- packages/ui/src/forms/Form/fieldReducer.ts | 47 ++++++++++++++++------ test/fields/collections/Blocks/e2e.spec.ts | 34 ++++++++++++++++ 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/packages/ui/src/forms/Form/fieldReducer.ts b/packages/ui/src/forms/Form/fieldReducer.ts index e5b4029c7f..642925cf7e 100644 --- a/packages/ui/src/forms/Form/fieldReducer.ts +++ b/packages/ui/src/forms/Form/fieldReducer.ts @@ -180,31 +180,52 @@ export function fieldReducer(state: FormState, action: FieldAction): FormState { case 'MOVE_ROW': { const { moveFromIndex, moveToIndex, path } = action - const { remainingFields, rows } = separateRows(path, state) - // copy the row to move - const copyOfMovingRow = rows[moveFromIndex] - // delete the row by index - rows.splice(moveFromIndex, 1) - // insert row copyOfMovingRow back in - rows.splice(moveToIndex, 0, copyOfMovingRow) + // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text` + const { remainingFields, rows: topLevelRows } = separateRows(path, state) + const copyOfMovingRow = topLevelRows[moveFromIndex] + topLevelRows.splice(moveFromIndex, 1) + topLevelRows.splice(moveToIndex, 0, copyOfMovingRow) // modify array/block internal row state (i.e. collapsed, blockType) - const rowStateCopy = [...(state[path]?.rows || [])] - const movingRowState = { ...rowStateCopy[moveFromIndex] } - rowStateCopy.splice(moveFromIndex, 1) - rowStateCopy.splice(moveToIndex, 0, movingRowState) + const rowsWithinField = [...(state[path]?.rows || [])] + const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] } + rowsWithinField.splice(moveFromIndex, 1) + rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2) const newState = { ...remainingFields, - ...flattenRows(path, rows), + ...flattenRows(path, topLevelRows), [path]: { ...state[path], requiresRender: true, - rows: rowStateCopy, + rows: rowsWithinField, }, } + // Do the same for custom components, i.e. `array.customComponents.RowLabels[0]` -> `array.customComponents.RowLabels[1]` + // Do this _after_ initializing `newState` to avoid adding the `customComponents` key to the state if it doesn't exist + if (newState[path]?.customComponents?.RowLabels) { + const customComponents = { + ...newState[path].customComponents, + RowLabels: [...newState[path].customComponents.RowLabels], + } + + // Ensure the array grows if necessary + if (moveToIndex >= customComponents.RowLabels.length) { + customComponents.RowLabels.length = moveToIndex + 1 + } + + const copyOfMovingLabel = customComponents.RowLabels[moveFromIndex] + + // eslint-disable-next-line @typescript-eslint/no-floating-promises + customComponents.RowLabels.splice(moveFromIndex, 1) + // eslint-disable-next-line @typescript-eslint/no-floating-promises + customComponents.RowLabels.splice(moveToIndex, 0, copyOfMovingLabel) + + newState[path].customComponents = customComponents + } + return newState } diff --git a/test/fields/collections/Blocks/e2e.spec.ts b/test/fields/collections/Blocks/e2e.spec.ts index ef4a63cf4b..e6a8c8216c 100644 --- a/test/fields/collections/Blocks/e2e.spec.ts +++ b/test/fields/collections/Blocks/e2e.spec.ts @@ -3,6 +3,7 @@ import type { BrowserContext, Page } from '@playwright/test' import { expect, test } from '@playwright/test' import { addBlock } from 'helpers/e2e/addBlock.js' import { openBlocksDrawer } from 'helpers/e2e/openBlocksDrawer.js' +import { reorderBlocks } from 'helpers/e2e/reorderBlocks.js' import path from 'path' import { fileURLToPath } from 'url' @@ -289,6 +290,39 @@ describe('Block fields', () => { }) describe('row manipulation', () => { + test('moving rows should immediately move custom row labels', async () => { + await page.goto(url.create) + + // first ensure that the first block has the custom header, and that the second block doesn't + + await expect( + page.locator('#field-blocks #blocks-row-0 .blocks-field__block-header'), + ).toHaveText('Custom Block Label: Content 01') + + const secondBlockHeader = page.locator( + '#field-blocks #blocks-row-1 .blocks-field__block-header', + ) + + await expect(secondBlockHeader.locator('.blocks-field__block-pill')).toHaveText('Number') + + await expect(secondBlockHeader.locator('input[id="blocks.1.blockName"]')).toHaveValue( + 'Second block', + ) + + await reorderBlocks({ + page, + fieldName: 'blocks', + fromBlockIndex: 0, + toBlockIndex: 1, + }) + + // Important: do _not_ poll here, use `textContent()` instead of `toHaveText()` + // This will prevent Playwright from polling for the change to the DOM + expect( + await page.locator('#field-blocks #blocks-row-1 .blocks-field__block-header').textContent(), + ).toMatch(/^Custom Block Label: Content/) + }) + describe('react hooks', () => { test('should add 2 new block rows', async () => { await page.goto(url.create) From dc9e8fa6551b4792ce00974e09a8df30226a535c Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 24 Feb 2025 11:37:33 -0700 Subject: [PATCH 20/33] refactor: simplify running field hooks (#11372) Previously, we were quite frequently using `.reduce()` to sequentially run field hooks. This PR replaces them with simple `for` loops, which is less overhead, less code, less confusing and simpler to understand. Additionally, it refactors `mergeLocaleActions` which previously was unnecessarily complex. They no longer entail async code, thus we no longer have to juggle with promises --- packages/payload/src/admin/RichText.ts | 2 +- .../src/fields/hooks/afterChange/promise.ts | 20 +++--- .../src/fields/hooks/afterRead/promise.ts | 41 +++++------ .../src/fields/hooks/beforeChange/index.ts | 5 +- .../src/fields/hooks/beforeChange/promise.ts | 50 ++++++-------- .../hooks/beforeChange/traverseFields.ts | 2 +- .../fields/hooks/beforeDuplicate/promise.ts | 68 +++++++++---------- .../fields/hooks/beforeDuplicate/runHook.ts | 8 --- .../fields/hooks/beforeValidate/promise.ts | 16 ++--- .../src/features/typesServer.ts | 2 +- 10 files changed, 89 insertions(+), 125 deletions(-) delete mode 100644 packages/payload/src/fields/hooks/beforeDuplicate/runHook.ts diff --git a/packages/payload/src/admin/RichText.ts b/packages/payload/src/admin/RichText.ts index 6812ba569b..f5cacf4c10 100644 --- a/packages/payload/src/admin/RichText.ts +++ b/packages/payload/src/admin/RichText.ts @@ -88,7 +88,7 @@ export type BeforeChangeRichTextHookArgs< errors?: ValidationFieldError[] /** Only available in `beforeChange` field hooks */ - mergeLocaleActions?: (() => Promise)[] + mergeLocaleActions?: (() => Promise | void)[] /** A string relating to which operation the field type is currently executing within. */ operation?: 'create' | 'delete' | 'read' | 'update' /** The sibling data of the document before changes being applied. */ diff --git a/packages/payload/src/fields/hooks/afterChange/promise.ts b/packages/payload/src/fields/hooks/afterChange/promise.ts index 23b1959e65..dc18f307d0 100644 --- a/packages/payload/src/fields/hooks/afterChange/promise.ts +++ b/packages/payload/src/fields/hooks/afterChange/promise.ts @@ -75,10 +75,8 @@ export const promise = async ({ if (fieldAffectsData(field)) { // Execute hooks if (field.hooks?.afterChange) { - await field.hooks.afterChange.reduce(async (priorHook, currentHook) => { - await priorHook - - const hookedValue = await currentHook({ + for (const hook of field.hooks.afterChange) { + const hookedValue = await hook({ blockData, collection, context, @@ -102,7 +100,7 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingDoc[field.name] = hookedValue } - }, Promise.resolve()) + } } } @@ -242,17 +240,15 @@ export const promise = async ({ throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor } - if (typeof field?.editor === 'function') { + if (typeof field.editor === 'function') { throw new Error('Attempted to access unsanitized rich text editor.') } - const editor: RichTextAdapter = field?.editor + const editor: RichTextAdapter = field.editor if (editor?.hooks?.afterChange?.length) { - await editor.hooks.afterChange.reduce(async (priorHook, currentHook) => { - await priorHook - - const hookedValue = await currentHook({ + for (const hook of editor.hooks.afterChange) { + const hookedValue = await hook({ collection, context, data, @@ -275,7 +271,7 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingDoc[field.name] = hookedValue } - }, Promise.resolve()) + } } break } diff --git a/packages/payload/src/fields/hooks/afterRead/promise.ts b/packages/payload/src/fields/hooks/afterRead/promise.ts index df3da5dabc..bbc2787ee0 100644 --- a/packages/payload/src/fields/hooks/afterRead/promise.ts +++ b/packages/payload/src/fields/hooks/afterRead/promise.ts @@ -237,18 +237,17 @@ export const promise = async ({ if (fieldAffectsData(field)) { // Execute hooks if (triggerHooks && field.hooks?.afterRead) { - await field.hooks.afterRead.reduce(async (priorHook, currentHook) => { - await priorHook - + for (const hook of field.hooks.afterRead) { const shouldRunHookOnAllLocales = fieldShouldBeLocalized({ field, parentIsLocalized }) && (locale === 'all' || !flattenLocales) && typeof siblingDoc[field.name] === 'object' if (shouldRunHookOnAllLocales) { - const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value]) => - (async () => { - const hookedValue = await currentHook({ + const localesAndValues = Object.entries(siblingDoc[field.name]) + await Promise.all( + localesAndValues.map(async ([localeKey, value]) => { + const hookedValue = await hook({ blockData, collection, context, @@ -273,14 +272,12 @@ export const promise = async ({ }) if (hookedValue !== undefined) { - siblingDoc[field.name][locale] = hookedValue + siblingDoc[field.name][localeKey] = hookedValue } - })(), + }), ) - - await Promise.all(hookPromises) } else { - const hookedValue = await currentHook({ + const hookedValue = await hook({ blockData, collection, context, @@ -308,7 +305,7 @@ export const promise = async ({ siblingDoc[field.name] = hookedValue } } - }, Promise.resolve()) + } } // Execute access control @@ -677,18 +674,18 @@ export const promise = async ({ const editor: RichTextAdapter = field?.editor if (editor?.hooks?.afterRead?.length) { - await editor.hooks.afterRead.reduce(async (priorHook, currentHook) => { - await priorHook - + for (const hook of editor.hooks.afterRead) { const shouldRunHookOnAllLocales = fieldShouldBeLocalized({ field, parentIsLocalized }) && (locale === 'all' || !flattenLocales) && typeof siblingDoc[field.name] === 'object' if (shouldRunHookOnAllLocales) { - const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value]) => - (async () => { - const hookedValue = await currentHook({ + const localesAndValues = Object.entries(siblingDoc[field.name]) + + await Promise.all( + localesAndValues.map(async ([locale, value]) => { + const hookedValue = await hook({ collection, context, currentDepth, @@ -722,12 +719,10 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingDoc[field.name][locale] = hookedValue } - })(), + }), ) - - await Promise.all(hookPromises) } else { - const hookedValue = await currentHook({ + const hookedValue = await hook({ collection, context, currentDepth, @@ -762,7 +757,7 @@ export const promise = async ({ siblingDoc[field.name] = hookedValue } } - }, Promise.resolve()) + } } break } diff --git a/packages/payload/src/fields/hooks/beforeChange/index.ts b/packages/payload/src/fields/hooks/beforeChange/index.ts index 3738984f14..4631d2b4e1 100644 --- a/packages/payload/src/fields/hooks/beforeChange/index.ts +++ b/packages/payload/src/fields/hooks/beforeChange/index.ts @@ -81,10 +81,9 @@ export const beforeChange = async ({ ) } - await mergeLocaleActions.reduce(async (priorAction, action) => { - await priorAction + for (const action of mergeLocaleActions) { await action() - }, Promise.resolve()) + } return data } diff --git a/packages/payload/src/fields/hooks/beforeChange/promise.ts b/packages/payload/src/fields/hooks/beforeChange/promise.ts index cf284c2319..6dafbd0141 100644 --- a/packages/payload/src/fields/hooks/beforeChange/promise.ts +++ b/packages/payload/src/fields/hooks/beforeChange/promise.ts @@ -31,7 +31,7 @@ type Args = { fieldIndex: number global: null | SanitizedGlobalConfig id?: number | string - mergeLocaleActions: (() => Promise)[] + mergeLocaleActions: (() => Promise | void)[] operation: Operation parentIndexPath: string parentIsLocalized: boolean @@ -108,10 +108,8 @@ export const promise = async ({ // Execute hooks if (field.hooks?.beforeChange) { - await field.hooks.beforeChange.reduce(async (priorHook, currentHook) => { - await priorHook - - const hookedValue = await currentHook({ + for (const hook of field.hooks.beforeChange) { + const hookedValue = await hook({ blockData, collection, context, @@ -135,7 +133,7 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingData[field.name] = hookedValue } - }, Promise.resolve()) + } } // Validate @@ -192,28 +190,20 @@ export const promise = async ({ // Push merge locale action if applicable if (localization && fieldShouldBeLocalized({ field, parentIsLocalized })) { - mergeLocaleActions.push(async () => { - const localeData = await localization.localeCodes.reduce( - async (localizedValuesPromise: Promise, locale) => { - const localizedValues = await localizedValuesPromise - const fieldValue = - locale === req.locale - ? siblingData[field.name] - : siblingDocWithLocales?.[field.name]?.[locale] + mergeLocaleActions.push(() => { + const localeData = {} - // const result = await localizedValues - // update locale value if it's not undefined - if (typeof fieldValue !== 'undefined') { - return { - ...localizedValues, - [locale]: fieldValue, - } - } + for (const locale of localization.localeCodes) { + const fieldValue = + locale === req.locale + ? siblingData[field.name] + : siblingDocWithLocales?.[field.name]?.[locale] - return localizedValuesPromise - }, - Promise.resolve({}), - ) + // update locale value if it's not undefined + if (typeof fieldValue !== 'undefined') { + localeData[locale] = fieldValue + } + } // If there are locales with data, set the data if (Object.keys(localeData).length > 0) { @@ -423,10 +413,8 @@ export const promise = async ({ const editor: RichTextAdapter = field?.editor if (editor?.hooks?.beforeChange?.length) { - await editor.hooks.beforeChange.reduce(async (priorHook, currentHook) => { - await priorHook - - const hookedValue = await currentHook({ + for (const hook of editor.hooks.beforeChange) { + const hookedValue = await hook({ collection, context, data, @@ -453,7 +441,7 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingData[field.name] = hookedValue } - }, Promise.resolve()) + } } break diff --git a/packages/payload/src/fields/hooks/beforeChange/traverseFields.ts b/packages/payload/src/fields/hooks/beforeChange/traverseFields.ts index abde171bd6..84c9eabf9a 100644 --- a/packages/payload/src/fields/hooks/beforeChange/traverseFields.ts +++ b/packages/payload/src/fields/hooks/beforeChange/traverseFields.ts @@ -28,7 +28,7 @@ type Args = { fields: (Field | TabAsField)[] global: null | SanitizedGlobalConfig id?: number | string - mergeLocaleActions: (() => Promise)[] + mergeLocaleActions: (() => Promise | void)[] operation: Operation parentIndexPath: string /** diff --git a/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts b/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts index b289167bc4..2daa2a91b4 100644 --- a/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts +++ b/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts @@ -6,7 +6,6 @@ import type { Block, Field, FieldHookArgs, TabAsField } from '../../config/types import { fieldAffectsData, fieldShouldBeLocalized } from '../../config/types.js' import { getFieldPathsModified as getFieldPaths } from '../../getFieldPaths.js' -import { runBeforeDuplicateHooks } from './runHook.js' import { traverseFields } from './traverseFields.js' type Args = { @@ -68,42 +67,37 @@ export const promise = async ({ // Run field beforeDuplicate hooks if (Array.isArray(field.hooks?.beforeDuplicate)) { if (fieldIsLocalized) { - const localeData = await localization.localeCodes.reduce( - async (localizedValuesPromise: Promise, locale) => { - const localizedValues = await localizedValuesPromise + const localeData: JsonObject = {} - const beforeDuplicateArgs: FieldHookArgs = { - blockData, - collection, - context, - data: doc, - field, - global: undefined, - indexPath: indexPathSegments, - path: pathSegments, - previousSiblingDoc: siblingDoc, - previousValue: siblingDoc[field.name]?.[locale], - req, - schemaPath: schemaPathSegments, - siblingData: siblingDoc, - siblingDocWithLocales: siblingDoc, - siblingFields, - value: siblingDoc[field.name]?.[locale], - } + for (const locale of localization.localeCodes) { + const beforeDuplicateArgs: FieldHookArgs = { + blockData, + collection, + context, + data: doc, + field, + global: undefined, + indexPath: indexPathSegments, + path: pathSegments, + previousSiblingDoc: siblingDoc, + previousValue: siblingDoc[field.name]?.[locale], + req, + schemaPath: schemaPathSegments, + siblingData: siblingDoc, + siblingDocWithLocales: siblingDoc, + siblingFields, + value: siblingDoc[field.name]?.[locale], + } - const hookResult = await runBeforeDuplicateHooks(beforeDuplicateArgs) + let hookResult + for (const hook of field.hooks.beforeDuplicate) { + hookResult = await hook(beforeDuplicateArgs) + } - if (typeof hookResult !== 'undefined') { - return { - ...localizedValues, - [locale]: hookResult, - } - } - - return localizedValuesPromise - }, - Promise.resolve({}), - ) + if (typeof hookResult !== 'undefined') { + localeData[locale] = hookResult + } + } siblingDoc[field.name] = localeData } else { @@ -126,7 +120,11 @@ export const promise = async ({ value: siblingDoc[field.name], } - const hookResult = await runBeforeDuplicateHooks(beforeDuplicateArgs) + let hookResult + for (const hook of field.hooks.beforeDuplicate) { + hookResult = await hook(beforeDuplicateArgs) + } + if (typeof hookResult !== 'undefined') { siblingDoc[field.name] = hookResult } diff --git a/packages/payload/src/fields/hooks/beforeDuplicate/runHook.ts b/packages/payload/src/fields/hooks/beforeDuplicate/runHook.ts deleted file mode 100644 index e6232ec4ce..0000000000 --- a/packages/payload/src/fields/hooks/beforeDuplicate/runHook.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @ts-strict-ignore -import type { FieldHookArgs } from '../../config/types.js' - -export const runBeforeDuplicateHooks = async (args: FieldHookArgs) => - await args.field.hooks.beforeDuplicate.reduce(async (priorHook, currentHook) => { - await priorHook - return await currentHook(args) - }, Promise.resolve()) diff --git a/packages/payload/src/fields/hooks/beforeValidate/promise.ts b/packages/payload/src/fields/hooks/beforeValidate/promise.ts index 5917f6db85..59ba4a8a70 100644 --- a/packages/payload/src/fields/hooks/beforeValidate/promise.ts +++ b/packages/payload/src/fields/hooks/beforeValidate/promise.ts @@ -276,10 +276,8 @@ export const promise = async ({ // Execute hooks if (field.hooks?.beforeValidate) { - await field.hooks.beforeValidate.reduce(async (priorHook, currentHook) => { - await priorHook - - const hookedValue = await currentHook({ + for (const hook of field.hooks.beforeValidate) { + const hookedValue = await hook({ blockData, collection, context, @@ -303,7 +301,7 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingData[field.name] = hookedValue } - }, Promise.resolve()) + } } // Execute access control @@ -493,10 +491,8 @@ export const promise = async ({ const editor: RichTextAdapter = field?.editor if (editor?.hooks?.beforeValidate?.length) { - await editor.hooks.beforeValidate.reduce(async (priorHook, currentHook) => { - await priorHook - - const hookedValue = await currentHook({ + for (const hook of editor.hooks.beforeValidate) { + const hookedValue = await hook({ collection, context, data, @@ -519,7 +515,7 @@ export const promise = async ({ if (hookedValue !== undefined) { siblingData[field.name] = hookedValue } - }, Promise.resolve()) + } } break } diff --git a/packages/richtext-lexical/src/features/typesServer.ts b/packages/richtext-lexical/src/features/typesServer.ts index 35ee04c646..96505597f8 100644 --- a/packages/richtext-lexical/src/features/typesServer.ts +++ b/packages/richtext-lexical/src/features/typesServer.ts @@ -176,7 +176,7 @@ export type BeforeChangeNodeHookArgs = { * Only available in `beforeChange` hooks. */ errors: ValidationFieldError[] - mergeLocaleActions: (() => Promise)[] + mergeLocaleActions: (() => Promise | void)[] /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */ operation: 'create' | 'delete' | 'read' | 'update' /** The value of the node before any changes. Not available in afterRead hooks */ From f1b005c4f5c94918d574ddc003b85f148192433b Mon Sep 17 00:00:00 2001 From: Patrik Date: Mon, 24 Feb 2025 13:38:21 -0500 Subject: [PATCH 21/33] fix(ui): object type field labels not displaying in search filter (#11366) This PR ensures that when `titleField.label` is provided as an object, it is correctly translated and displayed in the search filter's placeholder. Previously, the implementation only supported string values, which could lead to issues with object type labels. With these changes, object type labels will now properly show as intended in the search filter. Fixes #11348 --- .../ui/src/elements/ListControls/index.tsx | 3 +- test/localization/config.ts | 9 +++++ test/localization/e2e.spec.ts | 36 +++++++++++-------- test/localization/payload-types.ts | 3 +- 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/packages/ui/src/elements/ListControls/index.tsx b/packages/ui/src/elements/ListControls/index.tsx index 24310d5d97..2deb787076 100644 --- a/packages/ui/src/elements/ListControls/index.tsx +++ b/packages/ui/src/elements/ListControls/index.tsx @@ -73,7 +73,8 @@ export const ListControls: React.FC = (props) => { const searchLabel = (titleField && getTranslation( - 'label' in titleField && typeof titleField.label === 'string' + 'label' in titleField && + (typeof titleField.label === 'string' || typeof titleField.label === 'object') ? titleField.label : 'name' in titleField ? titleField.name diff --git a/test/localization/config.ts b/test/localization/config.ts index bed2f48948..b91b0eb0ae 100644 --- a/test/localization/config.ts +++ b/test/localization/config.ts @@ -64,8 +64,16 @@ export default buildConfigWithDefaults({ NestedArray, NestedFields, { + admin: { + listSearchableFields: 'name', + }, auth: true, fields: [ + { + name: 'name', + label: { en: 'Full name' }, + type: 'text', + }, { name: 'relation', relationTo: localizedPostsSlug, @@ -83,6 +91,7 @@ export default buildConfigWithDefaults({ fields: [ { name: 'title', + label: { en: 'Full title' }, index: true, localized: true, type: 'text', diff --git a/test/localization/e2e.spec.ts b/test/localization/e2e.spec.ts index cbe9c14b6c..c2403318b2 100644 --- a/test/localization/e2e.spec.ts +++ b/test/localization/e2e.spec.ts @@ -1,7 +1,11 @@ import type { BrowserContext, Page } from '@playwright/test' +import type { GeneratedTypes } from 'helpers/sdk/types.js' import { expect, test } from '@playwright/test' +import { navigateToDoc } from 'helpers/e2e/navigateToDoc.js' import { openDocControls } from 'helpers/e2e/openDocControls.js' +import { upsertPrefs } from 'helpers/e2e/upsertPrefs.js' +import { RESTClient } from 'helpers/rest.js' import path from 'path' import { fileURLToPath } from 'url' @@ -31,11 +35,6 @@ import { spanishLocale, withRequiredLocalizedFields, } from './shared.js' -import { navigateToDoc } from 'helpers/e2e/navigateToDoc.js' - -import { upsertPrefs } from 'helpers/e2e/upsertPrefs.js' -import { RESTClient } from 'helpers/rest.js' -import { GeneratedTypes } from 'helpers/sdk/types.js' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) @@ -119,16 +118,16 @@ describe('Localization', () => { await expect(page.locator('.localizer .popup')).toHaveClass(/popup--active/) - const activeOption = await page.locator( + const activeOption = page.locator( `.localizer .popup.popup--active .popup-button-list__button--selected`, ) await expect(activeOption).toBeVisible() const tagName = await activeOption.evaluate((node) => node.tagName) - await expect(tagName).not.toBe('A') + expect(tagName).not.toBe('A') await expect(activeOption).not.toHaveAttribute('href') - await expect(tagName).not.toBe('BUTTON') - await expect(tagName).toBe('DIV') + expect(tagName).not.toBe('BUTTON') + expect(tagName).toBe('DIV') }) }) @@ -140,7 +139,7 @@ describe('Localization', () => { const createNewButtonLocator = '.collection-list a[href="/admin/collections/cannot-create-default-locale/create"]' - await expect(page.locator(createNewButtonLocator)).not.toBeVisible() + await expect(page.locator(createNewButtonLocator)).toBeHidden() await changeLocale(page, spanishLocale) await expect(page.locator(createNewButtonLocator).first()).toBeVisible() await page.goto(urlCannotCreateDefaultLocale.create) @@ -330,11 +329,11 @@ describe('Localization', () => { await page.goto(url.list) - const localeLabel = await page + const localeLabel = page .locator('.localizer.app-header__localizer .localizer-button__current-label') - .innerText() + - expect(localeLabel).not.toEqual('English') + await expect(localeLabel).not.toHaveText('English') }) }) @@ -351,7 +350,7 @@ describe('Localization', () => { await navigateToDoc(page, urlRelationshipLocalized) const drawerToggler = '#field-relationMultiRelationTo .relationship--single-value__drawer-toggler' - expect(page.locator(drawerToggler)).toBeEnabled() + await expect(page.locator(drawerToggler)).toBeEnabled() await openDocDrawer(page, drawerToggler) await expect(page.locator('.doc-drawer__header-text')).toContainText('spanish-relation2') await page.locator('.doc-drawer__header-close').click() @@ -518,7 +517,7 @@ describe('Localization', () => { // only throttle test after initial load to avoid timeouts const cdpSession = await throttleTest({ - page: page, + page, context, delay: 'Fast 4G', }) @@ -541,6 +540,13 @@ describe('Localization', () => { await cdpSession.detach() }) }) + + test('should use label in search filter when string or object', async () => { + await page.goto(url.list) + const searchInput = page.locator('.search-filter__input') + await expect(searchInput).toBeVisible() + await expect(searchInput).toHaveAttribute('placeholder', 'Search by Full title') + }) }) async function fillValues(data: Partial) { diff --git a/test/localization/payload-types.ts b/test/localization/payload-types.ts index 320471a4a4..cfc3e07d4c 100644 --- a/test/localization/payload-types.ts +++ b/test/localization/payload-types.ts @@ -64,7 +64,6 @@ export interface Config { auth: { users: UserAuthOperations; }; - blocks: {}; collections: { richText: RichText; 'blocks-fields': BlocksField; @@ -322,6 +321,7 @@ export interface NestedFieldTable { */ export interface User { id: string; + name?: string | null; relation?: (string | null) | LocalizedPost; updatedAt: string; createdAt: string; @@ -928,6 +928,7 @@ export interface NestedFieldTablesSelect { * via the `definition` "users_select". */ export interface UsersSelect { + name?: T; relation?: T; updatedAt?: T; createdAt?: T; From 09ca5143eb1d831ab4ca73743bf61076c3122afc Mon Sep 17 00:00:00 2001 From: Patrik Date: Mon, 24 Feb 2025 14:00:41 -0500 Subject: [PATCH 22/33] fix(plugin-nested-docs): fallback to empty string if `useAsTitle` field is undefined (#11338) Updated `formatBreadcrumb` to fall back to an empty string if the `useAsTitle` field for the document is undefined. This handles cases where the field is optional or not filled out, ensuring the label is never `undefined`. Fixes #10377 --- .../plugin-nested-docs/src/utilities/formatBreadcrumb.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts b/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts index b7ee116e9f..92acac71ea 100644 --- a/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts +++ b/packages/plugin-nested-docs/src/utilities/formatBreadcrumb.ts @@ -19,8 +19,9 @@ export const formatBreadcrumb = ( if (typeof pluginConfig?.generateLabel === 'function') { label = pluginConfig.generateLabel(docs, lastDoc) } else { - const useAsTitle = collection?.admin?.useAsTitle || 'id' - label = lastDoc[useAsTitle] as string + const title = lastDoc[collection.admin.useAsTitle] + + label = typeof title === 'string' || typeof title === 'number' ? String(title) : '' } return { From 0a1af45549c2dc639e28fc7e2a1d29cfe39fdc2d Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Mon, 24 Feb 2025 15:24:25 -0500 Subject: [PATCH 23/33] fix(next): nested relationship filter options (#11375) Continuation of #11008. When `filterOptions` are set on a relationship field that is _nested within another field_, those filter options are not applied to `Filter` component in the list view. This is because we were only shallowly resolving filter options on top-level fields, as opposed to recursively traversing fields to resolve them even when deeply nested. --- packages/next/src/views/List/index.tsx | 2 +- .../src/views/List/resolveAllFilterOptions.ts | 35 +++++++++++++++---- .../collections/Relationship/index.ts | 22 ++++++++++++ test/fields-relationship/e2e.spec.ts | 35 +++++++++++++++++++ test/fields-relationship/payload-types.ts | 5 +++ tsconfig.base.json | 2 +- 6 files changed, 93 insertions(+), 8 deletions(-) diff --git a/packages/next/src/views/List/index.tsx b/packages/next/src/views/List/index.tsx index 585035bd9c..177fbde7fb 100644 --- a/packages/next/src/views/List/index.tsx +++ b/packages/next/src/views/List/index.tsx @@ -153,7 +153,7 @@ export const renderListView = async ( const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap) const resolvedFilterOptions = await resolveAllFilterOptions({ - collectionConfig, + fields: collectionConfig.fields, req, }) diff --git a/packages/next/src/views/List/resolveAllFilterOptions.ts b/packages/next/src/views/List/resolveAllFilterOptions.ts index 743f913973..64c9fb9c0f 100644 --- a/packages/next/src/views/List/resolveAllFilterOptions.ts +++ b/packages/next/src/views/List/resolveAllFilterOptions.ts @@ -1,19 +1,21 @@ -import type { CollectionConfig, PayloadRequest, ResolvedFilterOptions } from 'payload' +import type { Field, PayloadRequest, ResolvedFilterOptions } from 'payload' import { resolveFilterOptions } from '@payloadcms/ui/rsc' -import { fieldIsHiddenOrDisabled } from 'payload/shared' +import { fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared' export const resolveAllFilterOptions = async ({ - collectionConfig, + fields, req, + result, }: { - collectionConfig: CollectionConfig + fields: Field[] req: PayloadRequest + result?: Map }): Promise> => { - const resolvedFilterOptions = new Map() + const resolvedFilterOptions = !result ? new Map() : result await Promise.all( - collectionConfig.fields.map(async (field) => { + fields.map(async (field) => { if (fieldIsHiddenOrDisabled(field)) { return } @@ -28,8 +30,29 @@ export const resolveAllFilterOptions = async ({ siblingData: {}, // use empty object to prevent breaking queries when accessing properties of data user: req.user, }) + resolvedFilterOptions.set(field.name, options) } + + if (fieldHasSubFields(field)) { + await resolveAllFilterOptions({ + fields: field.fields, + req, + result: resolvedFilterOptions, + }) + } + + if (field.type === 'tabs') { + await Promise.all( + field.tabs.map((tab) => + resolveAllFilterOptions({ + fields: tab.fields, + req, + result: resolvedFilterOptions, + }), + ), + ) + } }), ) diff --git a/test/fields-relationship/collections/Relationship/index.ts b/test/fields-relationship/collections/Relationship/index.ts index c4c5f6c43d..c07374b9af 100644 --- a/test/fields-relationship/collections/Relationship/index.ts +++ b/test/fields-relationship/collections/Relationship/index.ts @@ -88,6 +88,28 @@ export const Relationship: CollectionConfig = { relationTo: slug, type: 'relationship', }, + { + type: 'collapsible', + label: 'Collapsible', + fields: [ + { + name: 'nestedRelationshipFilteredByField', + filterOptions: () => { + return { + filter: { + equals: 'Include me', + }, + } + }, + admin: { + description: + 'This will filter the relationship options if the filter field in this document is set to "Include me"', + }, + relationTo: slug, + type: 'relationship', + }, + ], + }, { name: 'relationshipFilteredAsync', filterOptions: (args: FilterOptionsProps) => { diff --git a/test/fields-relationship/e2e.spec.ts b/test/fields-relationship/e2e.spec.ts index 15e46ace31..56f1802a6b 100644 --- a/test/fields-relationship/e2e.spec.ts +++ b/test/fields-relationship/e2e.spec.ts @@ -351,6 +351,41 @@ describe('Relationship Field', () => { await expect(valueOptions.locator(`text=${idToInclude}`)).toBeVisible() }) + test('should apply filter options of nested fields to list view filter controls', async () => { + const { id: idToInclude } = await payload.create({ + collection: slug, + data: { + filter: 'Include me', + }, + }) + + // first ensure that filter options are applied in the edit view + await page.goto(url.edit(idToInclude)) + const field = page.locator('#field-nestedRelationshipFilteredByField') + await field.click({ delay: 100 }) + const options = field.locator('.rs__option') + await expect(options).toHaveCount(1) + await expect(options).toContainText(idToInclude) + + // now ensure that the same filter options are applied in the list view + await page.goto(url.list) + + const whereBuilder = await addListFilter({ + page, + fieldLabel: 'Collapsible > Nested Relationship Filtered By Field', + operatorLabel: 'equals', + skipValueInput: true, + }) + + const valueInput = page.locator('.condition__value input') + await valueInput.click() + const valueOptions = whereBuilder.locator('.condition__value .rs__option') + + await expect(valueOptions).toHaveCount(2) + await expect(valueOptions.locator(`text=None`)).toBeVisible() + await expect(valueOptions.locator(`text=${idToInclude}`)).toBeVisible() + }) + test('should allow usage of relationTo in filterOptions', async () => { const { id: include } = (await payload.create({ collection: relationOneSlug, diff --git a/test/fields-relationship/payload-types.ts b/test/fields-relationship/payload-types.ts index b6be2560d2..be922eacb3 100644 --- a/test/fields-relationship/payload-types.ts +++ b/test/fields-relationship/payload-types.ts @@ -177,6 +177,10 @@ export interface FieldsRelationship { * This will filter the relationship options if the filter field in this document is set to "Include me" */ relationshipFilteredByField?: (string | null) | FieldsRelationship; + /** + * This will filter the relationship options if the filter field in this document is set to "Include me" + */ + nestedRelationshipFilteredByField?: (string | null) | FieldsRelationship; relationshipFilteredAsync?: (string | null) | RelationOne; relationshipManyFiltered?: | ( @@ -506,6 +510,7 @@ export interface FieldsRelationshipSelect { relationshipWithTitle?: T; relationshipFilteredByID?: T; relationshipFilteredByField?: T; + nestedRelationshipFilteredByField?: T; relationshipFilteredAsync?: T; relationshipManyFiltered?: T; filter?: T; diff --git a/tsconfig.base.json b/tsconfig.base.json index c461af5dcb..16ab52137f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -31,7 +31,7 @@ } ], "paths": { - "@payload-config": ["./test/admin/config.ts"], + "@payload-config": ["./test/fields-relationship/config.ts"], "@payloadcms/live-preview": ["./packages/live-preview/src"], "@payloadcms/live-preview-react": ["./packages/live-preview-react/src/index.ts"], "@payloadcms/live-preview-vue": ["./packages/live-preview-vue/src/index.ts"], From 820a6ec55d887ebc2d2371b2b364fd297969865c Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 24 Feb 2025 13:33:22 -0700 Subject: [PATCH 24/33] fix: ensure generated types for config.blocks are not undefined if no blocks defined (#11377) Previously, if no `config.blocks` were defined, `blocks: undefined` would incorrectly be added to the generated types. --- .../payload/src/utilities/configToJSONSchema.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/payload/src/utilities/configToJSONSchema.ts b/packages/payload/src/utilities/configToJSONSchema.ts index 81fab58601..d17d39a869 100644 --- a/packages/payload/src/utilities/configToJSONSchema.ts +++ b/packages/payload/src/utilities/configToJSONSchema.ts @@ -1156,14 +1156,13 @@ export function configToJSONSchema( ) : {} - let blocksDefinition: JSONSchema4 | undefined = undefined + const blocksDefinition: JSONSchema4 | undefined = { + type: 'object', + additionalProperties: false, + properties: {}, + required: [], + } if (config?.blocks?.length) { - blocksDefinition = { - type: 'object', - additionalProperties: false, - properties: {}, - required: [], - } for (const block of config.blocks) { const blockFieldSchemas = fieldsToJSONSchema( collectionIDFieldTypes, From 4410a49132834f7e0c82354ce348d98a96ba617f Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 24 Feb 2025 13:50:25 -0700 Subject: [PATCH 25/33] refactor: simplify collection, global and auth operations (#11374) Continuation of https://github.com/payloadcms/payload/pull/11372 but for our collection, global and auth operations Previously, we were quite frequently using `.reduce()` to run hooks. This PR replaces them with simple `for` loops, which is less overhead, less code, less confusing and simpler to understand. --- .../payload/src/auth/executeAuthStrategies.ts | 25 +++-- .../src/auth/operations/forgotPassword.ts | 33 +++--- packages/payload/src/auth/operations/login.ts | 92 ++++++++-------- .../payload/src/auth/operations/logout.ts | 20 ++-- packages/payload/src/auth/operations/me.ts | 22 ++-- .../payload/src/auth/operations/refresh.ts | 35 +++--- .../src/auth/operations/resetPassword.ts | 22 ++-- .../payload/src/collections/dataloader.ts | 30 ++---- .../src/collections/operations/count.ts | 24 ++--- .../collections/operations/countVersions.ts | 24 ++--- .../src/collections/operations/create.ts | 81 +++++++------- .../src/collections/operations/delete.ts | 77 +++++++------- .../src/collections/operations/deleteByID.ts | 77 +++++++------- .../src/collections/operations/find.ts | 36 +++---- .../src/collections/operations/findByID.ts | 72 ++++++------- .../collections/operations/findVersionByID.ts | 48 ++++----- .../collections/operations/findVersions.ts | 29 +++-- .../collections/operations/restoreVersion.ts | 48 ++++----- .../src/collections/operations/update.ts | 24 ++--- .../src/collections/operations/updateByID.ts | 24 ++--- .../operations/utilities/update.ts | 100 +++++++++--------- .../src/collections/operations/utils.ts | 11 +- packages/payload/src/config/build.ts | 9 +- packages/payload/src/config/sanitize.ts | 5 +- .../payload/src/globals/operations/findOne.ts | 44 ++++---- .../src/globals/operations/findVersionByID.ts | 46 ++++---- .../src/globals/operations/findVersions.ts | 13 +-- .../src/globals/operations/restoreVersion.ts | 46 ++++---- .../payload/src/globals/operations/update.ts | 94 ++++++++-------- 29 files changed, 584 insertions(+), 627 deletions(-) diff --git a/packages/payload/src/auth/executeAuthStrategies.ts b/packages/payload/src/auth/executeAuthStrategies.ts index bb07cad1d6..3eb41d9fa2 100644 --- a/packages/payload/src/auth/executeAuthStrategies.ts +++ b/packages/payload/src/auth/executeAuthStrategies.ts @@ -1,20 +1,19 @@ -// @ts-strict-ignore import type { AuthStrategyFunctionArgs, AuthStrategyResult } from './index.js' - export const executeAuthStrategies = async ( args: AuthStrategyFunctionArgs, ): Promise => { - return args.payload.authStrategies.reduce( - async (accumulatorPromise, strategy) => { - const result: AuthStrategyResult = await accumulatorPromise - if (!result.user) { - // add the configured AuthStrategy `name` to the strategy function args - args.strategyName = strategy.name + if (!args.payload.authStrategies?.length) { + return { user: null } + } - return strategy.authenticate(args) - } + for (const strategy of args.payload.authStrategies) { + // add the configured AuthStrategy `name` to the strategy function args + args.strategyName = strategy.name + + const result = await strategy.authenticate(args) + if (result.user) { return result - }, - Promise.resolve({ user: null }), - ) + } + } + return { user: null } } diff --git a/packages/payload/src/auth/operations/forgotPassword.ts b/packages/payload/src/auth/operations/forgotPassword.ts index 394f2e1998..f0ce36af7c 100644 --- a/packages/payload/src/auth/operations/forgotPassword.ts +++ b/packages/payload/src/auth/operations/forgotPassword.ts @@ -64,18 +64,18 @@ export const forgotPasswordOperation = async ( // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection?.config, - context: args.req.context, - operation: 'forgotPassword', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection?.config, + context: args.req.context, + operation: 'forgotPassword', + req: args.req, + })) || args + } + } const { collection: { config: collectionConfig }, @@ -190,10 +190,11 @@ export const forgotPasswordOperation = async ( // afterForgotPassword - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterForgotPassword.reduce(async (priorHook, hook) => { - await priorHook - await hook({ args, collection: args.collection?.config, context: req.context }) - }, Promise.resolve()) + if (collectionConfig.hooks?.afterForgotPassword?.length) { + for (const hook of collectionConfig.hooks.afterForgotPassword) { + await hook({ args, collection: args.collection?.config, context: req.context }) + } + } // ///////////////////////////////////// // afterOperation - Collection diff --git a/packages/payload/src/auth/operations/login.ts b/packages/payload/src/auth/operations/login.ts index 04954ad01f..039a4e46a1 100644 --- a/packages/payload/src/auth/operations/login.ts +++ b/packages/payload/src/auth/operations/login.ts @@ -51,18 +51,18 @@ export const loginOperation = async ( // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection?.config, - context: args.req.context, - operation: 'login', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection?.config, + context: args.req.context, + operation: 'login', + req: args.req, + })) || args + } + } const { collection: { config: collectionConfig }, @@ -227,17 +227,17 @@ export const loginOperation = async ( // beforeLogin - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeLogin.reduce(async (priorHook, hook) => { - await priorHook - - user = - (await hook({ - collection: args.collection?.config, - context: args.req.context, - req: args.req, - user, - })) || user - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeLogin?.length) { + for (const hook of collectionConfig.hooks.beforeLogin) { + user = + (await hook({ + collection: args.collection?.config, + context: args.req.context, + req: args.req, + user, + })) || user + } + } const { exp, token } = await jwtSign({ fieldsToSign, @@ -251,18 +251,18 @@ export const loginOperation = async ( // afterLogin - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterLogin.reduce(async (priorHook, hook) => { - await priorHook - - user = - (await hook({ - collection: args.collection?.config, - context: args.req.context, - req: args.req, - token, - user, - })) || user - }, Promise.resolve()) + if (collectionConfig.hooks?.afterLogin?.length) { + for (const hook of collectionConfig.hooks.afterLogin) { + user = + (await hook({ + collection: args.collection?.config, + context: args.req.context, + req: args.req, + token, + user, + })) || user + } + } // ///////////////////////////////////// // afterRead - Fields @@ -286,17 +286,17 @@ export const loginOperation = async ( // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - user = - (await hook({ - collection: args.collection?.config, - context: req.context, - doc: user, - req, - })) || user - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + user = + (await hook({ + collection: args.collection?.config, + context: req.context, + doc: user, + req, + })) || user + } + } let result: { user: DataFromCollectionSlug } & Result = { exp, diff --git a/packages/payload/src/auth/operations/logout.ts b/packages/payload/src/auth/operations/logout.ts index d5a640928d..57d5679b5b 100644 --- a/packages/payload/src/auth/operations/logout.ts +++ b/packages/payload/src/auth/operations/logout.ts @@ -25,16 +25,16 @@ export const logoutOperation = async (incomingArgs: Arguments): Promise throw new APIError('Incorrect collection', httpStatus.FORBIDDEN) } - await collectionConfig.hooks.afterLogout.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - collection: args.collection?.config, - context: req.context, - req, - })) || args - }, Promise.resolve()) + if (collectionConfig.hooks?.afterLogout?.length) { + for (const hook of collectionConfig.hooks.afterLogout) { + args = + (await hook({ + collection: args.collection?.config, + context: req.context, + req, + })) || args + } + } return true } diff --git a/packages/payload/src/auth/operations/me.ts b/packages/payload/src/auth/operations/me.ts index f8c21b5655..550bd05bbf 100644 --- a/packages/payload/src/auth/operations/me.ts +++ b/packages/payload/src/auth/operations/me.ts @@ -86,17 +86,17 @@ export const meOperation = async (args: Arguments): Promise = // After Me - Collection // ///////////////////////////////////// - await collection.config.hooks.afterMe.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collection?.config, - context: req.context, - req, - response: result, - })) || result - }, Promise.resolve()) + if (collection.config.hooks?.afterMe?.length) { + for (const hook of collection.config.hooks.afterMe) { + result = + (await hook({ + collection: collection?.config, + context: req.context, + req, + response: result, + })) || result + } + } return result } diff --git a/packages/payload/src/auth/operations/refresh.ts b/packages/payload/src/auth/operations/refresh.ts index ee8fed1bae..b250d505da 100644 --- a/packages/payload/src/auth/operations/refresh.ts +++ b/packages/payload/src/auth/operations/refresh.ts @@ -35,10 +35,8 @@ export const refreshOperation = async (incomingArgs: Arguments): Promise // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce( - async (priorHook: BeforeOperationHook | Promise, hook: BeforeOperationHook) => { - await priorHook - + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { args = (await hook({ args, @@ -47,9 +45,8 @@ export const refreshOperation = async (incomingArgs: Arguments): Promise operation: 'refresh', req: args.req, })) || args - }, - Promise.resolve(), - ) + } + } // ///////////////////////////////////// // Refresh @@ -122,18 +119,18 @@ export const refreshOperation = async (incomingArgs: Arguments): Promise // After Refresh - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRefresh.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: args.collection?.config, - context: args.req.context, - exp: result.exp, - req: args.req, - token: result.refreshedToken, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRefresh?.length) { + for (const hook of collectionConfig.hooks.afterRefresh) { + result = + (await hook({ + collection: args.collection?.config, + context: args.req.context, + exp: result.exp, + req: args.req, + token: result.refreshedToken, + })) || result + } + } // ///////////////////////////////////// // afterOperation - Collection diff --git a/packages/payload/src/auth/operations/resetPassword.ts b/packages/payload/src/auth/operations/resetPassword.ts index 1b876a845e..237b68d23e 100644 --- a/packages/payload/src/auth/operations/resetPassword.ts +++ b/packages/payload/src/auth/operations/resetPassword.ts @@ -91,17 +91,17 @@ export const resetPasswordOperation = async (args: Arguments): Promise = // beforeValidate - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => { - await priorHook - - await hook({ - collection: args.collection?.config, - context: req.context, - data: user, - operation: 'update', - req, - }) - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeValidate?.length) { + for (const hook of collectionConfig.hooks.beforeValidate) { + await hook({ + collection: args.collection?.config, + context: req.context, + data: user, + operation: 'update', + req, + }) + } + } // ///////////////////////////////////// // Update new password diff --git a/packages/payload/src/collections/dataloader.ts b/packages/payload/src/collections/dataloader.ts index cf41086485..3893487694 100644 --- a/packages/payload/src/collections/dataloader.ts +++ b/packages/payload/src/collections/dataloader.ts @@ -44,7 +44,9 @@ const batchAndLoadDocs = * **/ - const batchByFindArgs = keys.reduce((batches, key) => { + const batchByFindArgs = {} + + for (const key of keys) { const [ transactionID, collection, @@ -77,27 +79,16 @@ const batchAndLoadDocs = const batchKey = JSON.stringify(batchKeyArray) const idType = payload.collections?.[collection].customIDType || payload.db.defaultIDType - - let sanitizedID: number | string = id - - if (idType === 'number') { - sanitizedID = parseFloat(id) - } + const sanitizedID = idType === 'number' ? parseFloat(id) : id if (isValidID(sanitizedID, idType)) { - return { - ...batches, - [batchKey]: [...(batches[batchKey] || []), sanitizedID], - } + batchByFindArgs[batchKey] = [...(batchByFindArgs[batchKey] || []), sanitizedID] } - return batches - }, {}) + } // Run find requests one after another, so as to not hang transactions - await Object.entries(batchByFindArgs).reduce(async (priorFind, [batchKey, ids]) => { - await priorFind - + for (const [batchKey, ids] of Object.entries(batchByFindArgs)) { const [ transactionID, collection, @@ -137,8 +128,7 @@ const batchAndLoadDocs = // For each returned doc, find index in original keys // Inject doc within docs array if index exists - - result.docs.forEach((doc) => { + for (const doc of result.docs) { const docKey = createDataloaderCacheKey({ collectionSlug: collection, currentDepth, @@ -158,8 +148,8 @@ const batchAndLoadDocs = if (docsIndex > -1) { docs[docsIndex] = doc } - }) - }, Promise.resolve()) + } + } // Return docs array, // which has now been injected with all fetched docs diff --git a/packages/payload/src/collections/operations/count.ts b/packages/payload/src/collections/operations/count.ts index bcb2b9fd7c..d03faf5c43 100644 --- a/packages/payload/src/collections/operations/count.ts +++ b/packages/payload/src/collections/operations/count.ts @@ -28,18 +28,18 @@ export const countOperation = async ( // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection.config, - context: args.req.context, - operation: 'count', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection.config, + context: args.req.context, + operation: 'count', + req: args.req, + })) || args + } + } const { collection: { config: collectionConfig }, diff --git a/packages/payload/src/collections/operations/countVersions.ts b/packages/payload/src/collections/operations/countVersions.ts index 70ddbe2962..4d0e0f3e1a 100644 --- a/packages/payload/src/collections/operations/countVersions.ts +++ b/packages/payload/src/collections/operations/countVersions.ts @@ -28,18 +28,18 @@ export const countVersionsOperation = async ( // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection.config, - context: args.req.context, - operation: 'countVersions', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection.config, + context: args.req.context, + operation: 'countVersions', + req: args.req, + })) || args + } + } const { collection: { config: collectionConfig }, diff --git a/packages/payload/src/collections/operations/create.ts b/packages/payload/src/collections/operations/create.ts index 940052429f..d3d0da6594 100644 --- a/packages/payload/src/collections/operations/create.ts +++ b/packages/payload/src/collections/operations/create.ts @@ -78,10 +78,8 @@ export const createOperation = async < // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce( - async (priorHook: BeforeOperationHook | Promise, hook: BeforeOperationHook) => { - await priorHook - + if (args.collection.config.hooks.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { args = (await hook({ args, @@ -90,9 +88,8 @@ export const createOperation = async < operation: 'create', req: args.req, })) || args - }, - Promise.resolve(), - ) + } + } const { autosave = false, @@ -183,10 +180,8 @@ export const createOperation = async < // beforeValidate - Collections // ///////////////////////////////////// - await collectionConfig.hooks.beforeValidate.reduce( - async (priorHook: BeforeValidateHook | Promise, hook: BeforeValidateHook) => { - await priorHook - + if (collectionConfig.hooks.beforeValidate?.length) { + for (const hook of collectionConfig.hooks.beforeValidate) { data = (await hook({ collection: collectionConfig, @@ -196,27 +191,26 @@ export const createOperation = async < originalDoc: duplicatedFromDoc, req, })) || data - }, - Promise.resolve(), - ) + } + } // ///////////////////////////////////// // beforeChange - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => { - await priorHook - - data = - (await hook({ - collection: collectionConfig, - context: req.context, - data, - operation: 'create', - originalDoc: duplicatedFromDoc, - req, - })) || data - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeChange?.length) { + for (const hook of collectionConfig.hooks.beforeChange) { + data = + (await hook({ + collection: collectionConfig, + context: req.context, + data, + operation: 'create', + originalDoc: duplicatedFromDoc, + req, + })) || data + } + } // ///////////////////////////////////// // beforeChange - Fields @@ -332,17 +326,17 @@ export const createOperation = async < // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + req, + })) || result + } + } // ///////////////////////////////////// // afterChange - Fields @@ -363,10 +357,8 @@ export const createOperation = async < // afterChange - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterChange.reduce( - async (priorHook: AfterChangeHook | Promise, hook: AfterChangeHook) => { - await priorHook - + if (collectionConfig.hooks?.afterChange?.length) { + for (const hook of collectionConfig.hooks.afterChange) { result = (await hook({ collection: collectionConfig, @@ -376,9 +368,8 @@ export const createOperation = async < previousDoc: {}, req: args.req, })) || result - }, - Promise.resolve(), - ) + } + } // ///////////////////////////////////// // afterOperation - Collection diff --git a/packages/payload/src/collections/operations/delete.ts b/packages/payload/src/collections/operations/delete.ts index 20f333590d..ff88fbf29f 100644 --- a/packages/payload/src/collections/operations/delete.ts +++ b/packages/payload/src/collections/operations/delete.ts @@ -54,10 +54,8 @@ export const deleteOperation = async < // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce( - async (priorHook: BeforeOperationHook | Promise, hook: BeforeOperationHook) => { - await priorHook - + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { args = (await hook({ args, @@ -66,9 +64,8 @@ export const deleteOperation = async < operation: 'delete', req: args.req, })) || args - }, - Promise.resolve(), - ) + } + } const { collection: { config: collectionConfig }, @@ -147,16 +144,16 @@ export const deleteOperation = async < // beforeDelete - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeDelete.reduce(async (priorHook, hook) => { - await priorHook - - return hook({ - id, - collection: collectionConfig, - context: req.context, - req, - }) - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeDelete?.length) { + for (const hook of collectionConfig.hooks.beforeDelete) { + await hook({ + id, + collection: collectionConfig, + context: req.context, + req, + }) + } + } await deleteAssociatedFiles({ collectionConfig, @@ -229,34 +226,34 @@ export const deleteOperation = async < // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result || doc, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result || doc, + req, + })) || result + } + } // ///////////////////////////////////// // afterDelete - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterDelete.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - id, - collection: collectionConfig, - context: req.context, - doc: result, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterDelete?.length) { + for (const hook of collectionConfig.hooks.afterDelete) { + result = + (await hook({ + id, + collection: collectionConfig, + context: req.context, + doc: result, + req, + })) || result + } + } // ///////////////////////////////////// // 8. Return results diff --git a/packages/payload/src/collections/operations/deleteByID.ts b/packages/payload/src/collections/operations/deleteByID.ts index 73de48188c..fc72780d4b 100644 --- a/packages/payload/src/collections/operations/deleteByID.ts +++ b/packages/payload/src/collections/operations/deleteByID.ts @@ -48,10 +48,8 @@ export const deleteByIDOperation = async , hook: BeforeOperationHook) => { - await priorHook - + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { args = (await hook({ args, @@ -60,9 +58,8 @@ export const deleteByIDOperation = async { - await priorHook - - return hook({ - id, - collection: collectionConfig, - context: req.context, - req, - }) - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeDelete?.length) { + for (const hook of collectionConfig.hooks.beforeDelete) { + await hook({ + id, + collection: collectionConfig, + context: req.context, + req, + }) + } + } // ///////////////////////////////////// // Retrieve document @@ -215,34 +212,34 @@ export const deleteByIDOperation = async { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + req, + })) || result + } + } // ///////////////////////////////////// // afterDelete - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterDelete.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - id, - collection: collectionConfig, - context: req.context, - doc: result, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterDelete?.length) { + for (const hook of collectionConfig.hooks.afterDelete) { + result = + (await hook({ + id, + collection: collectionConfig, + context: req.context, + doc: result, + req, + })) || result + } + } // ///////////////////////////////////// // afterOperation - Collection diff --git a/packages/payload/src/collections/operations/find.ts b/packages/payload/src/collections/operations/find.ts index b7d5167ce3..0de5ba87a8 100644 --- a/packages/payload/src/collections/operations/find.ts +++ b/packages/payload/src/collections/operations/find.ts @@ -63,18 +63,18 @@ export const findOperation = async < // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection.config, - context: args.req.context, - operation: 'read', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection.config, + context: args.req.context, + operation: 'read', + req: args.req, + })) || args + } + } const { collection: { config: collectionConfig }, @@ -257,9 +257,7 @@ export const findOperation = async < result.docs.map(async (doc) => { let docRef = doc - await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => { - await priorHook - + for (const hook of collectionConfig.hooks.beforeRead) { docRef = (await hook({ collection: collectionConfig, @@ -268,7 +266,7 @@ export const findOperation = async < query: fullWhere, req, })) || docRef - }, Promise.resolve()) + } return docRef }), @@ -310,9 +308,7 @@ export const findOperation = async < result.docs.map(async (doc) => { let docRef = doc - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - + for (const hook of collectionConfig.hooks.afterRead) { docRef = (await hook({ collection: collectionConfig, @@ -322,7 +318,7 @@ export const findOperation = async < query: fullWhere, req, })) || doc - }, Promise.resolve()) + } return docRef }), diff --git a/packages/payload/src/collections/operations/findByID.ts b/packages/payload/src/collections/operations/findByID.ts index c1d9d5e469..135b23d3dd 100644 --- a/packages/payload/src/collections/operations/findByID.ts +++ b/packages/payload/src/collections/operations/findByID.ts @@ -54,18 +54,18 @@ export const findByIDOperation = async < // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection.config, - context: args.req.context, - operation: 'read', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection.config, + context: args.req.context, + operation: 'read', + req: args.req, + })) || args + } + } const { id, @@ -221,18 +221,18 @@ export const findByIDOperation = async < // beforeRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - query: findOneArgs.where, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeRead?.length) { + for (const hook of collectionConfig.hooks.beforeRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + query: findOneArgs.where, + req, + })) || result + } + } // ///////////////////////////////////// // afterRead - Fields @@ -259,18 +259,18 @@ export const findByIDOperation = async < // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - query: findOneArgs.where, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + query: findOneArgs.where, + req, + })) || result + } + } // ///////////////////////////////////// // afterOperation - Collection diff --git a/packages/payload/src/collections/operations/findVersionByID.ts b/packages/payload/src/collections/operations/findVersionByID.ts index 82d9ccaf25..e22abe1985 100644 --- a/packages/payload/src/collections/operations/findVersionByID.ts +++ b/packages/payload/src/collections/operations/findVersionByID.ts @@ -101,18 +101,18 @@ export const findVersionByIDOperation = async ( // beforeRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => { - await priorHook - - result.version = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result.version, - query: fullWhere, - req, - })) || result.version - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeRead?.length) { + for (const hook of collectionConfig.hooks.beforeRead) { + result.version = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result.version, + query: fullWhere, + req, + })) || result.version + } + } // ///////////////////////////////////// // afterRead - Fields @@ -139,18 +139,18 @@ export const findVersionByIDOperation = async ( // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result.version = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result.version, - query: fullWhere, - req, - })) || result.version - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result.version = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result.version, + query: fullWhere, + req, + })) || result.version + } + } // ///////////////////////////////////// // Return results diff --git a/packages/payload/src/collections/operations/findVersions.ts b/packages/payload/src/collections/operations/findVersions.ts index bdb2d4e62f..e536c48cf3 100644 --- a/packages/payload/src/collections/operations/findVersions.ts +++ b/packages/payload/src/collections/operations/findVersions.ts @@ -96,18 +96,19 @@ export const findVersionsOperation = async if (!docRef.version) { ;(docRef as any).version = {} } - await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => { - await priorHook - docRef.version = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: docRef.version, - query: fullWhere, - req, - })) || docRef.version - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeRead?.length) { + for (const hook of collectionConfig.hooks.beforeRead) { + docRef.version = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: docRef.version, + query: fullWhere, + req, + })) || docRef.version + } + } return docRef }), @@ -147,9 +148,7 @@ export const findVersionsOperation = async result.docs.map(async (doc) => { const docRef = doc - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - + for (const hook of collectionConfig.hooks.afterRead) { docRef.version = (await hook({ collection: collectionConfig, @@ -159,7 +158,7 @@ export const findVersionsOperation = async query: fullWhere, req, })) || doc.version - }, Promise.resolve()) + } return docRef }), diff --git a/packages/payload/src/collections/operations/restoreVersion.ts b/packages/payload/src/collections/operations/restoreVersion.ts index c763e6bd9f..2d61de8f15 100644 --- a/packages/payload/src/collections/operations/restoreVersion.ts +++ b/packages/payload/src/collections/operations/restoreVersion.ts @@ -165,17 +165,17 @@ export const restoreVersionOperation = async ( // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + req, + })) || result + } + } // ///////////////////////////////////// // afterChange - Fields @@ -196,19 +196,19 @@ export const restoreVersionOperation = async ( // afterChange - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - operation: 'update', - previousDoc: prevDocWithLocales, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterChange?.length) { + for (const hook of collectionConfig.hooks.afterChange) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + operation: 'update', + previousDoc: prevDocWithLocales, + req, + })) || result + } + } return result } catch (error: unknown) { diff --git a/packages/payload/src/collections/operations/update.ts b/packages/payload/src/collections/operations/update.ts index 3d8d75cc35..7e8cb6ec84 100644 --- a/packages/payload/src/collections/operations/update.ts +++ b/packages/payload/src/collections/operations/update.ts @@ -62,18 +62,18 @@ export const updateOperation = async < // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection.config, - context: args.req.context, - operation: 'update', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection.config, + context: args.req.context, + operation: 'update', + req: args.req, + })) || args + } + } const { collection: { config: collectionConfig }, diff --git a/packages/payload/src/collections/operations/updateByID.ts b/packages/payload/src/collections/operations/updateByID.ts index 13463ca8a6..f019d3d20a 100644 --- a/packages/payload/src/collections/operations/updateByID.ts +++ b/packages/payload/src/collections/operations/updateByID.ts @@ -64,18 +64,18 @@ export const updateByIDOperation = async < // beforeOperation - Collection // ///////////////////////////////////// - await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => { - await priorHook - - args = - (await hook({ - args, - collection: args.collection.config, - context: args.req.context, - operation: 'update', - req: args.req, - })) || args - }, Promise.resolve()) + if (args.collection.config.hooks?.beforeOperation?.length) { + for (const hook of args.collection.config.hooks.beforeOperation) { + args = + (await hook({ + args, + collection: args.collection.config, + context: args.req.context, + operation: 'update', + req: args.req, + })) || args + } + } if (args.publishSpecificLocale) { args.req.locale = args.publishSpecificLocale diff --git a/packages/payload/src/collections/operations/utilities/update.ts b/packages/payload/src/collections/operations/utilities/update.ts index 32b56cc39a..d554e81baf 100644 --- a/packages/payload/src/collections/operations/utilities/update.ts +++ b/packages/payload/src/collections/operations/utilities/update.ts @@ -171,19 +171,19 @@ export const updateDocument = async < // beforeValidate - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => { - await priorHook - - data = - (await hook({ - collection: collectionConfig, - context: req.context, - data, - operation: 'update', - originalDoc, - req, - })) || data - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeValidate?.length) { + for (const hook of collectionConfig.hooks.beforeValidate) { + data = + (await hook({ + collection: collectionConfig, + context: req.context, + data, + operation: 'update', + originalDoc, + req, + })) || data + } + } // ///////////////////////////////////// // Write files to local storage @@ -197,19 +197,19 @@ export const updateDocument = async < // beforeChange - Collection // ///////////////////////////////////// - await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => { - await priorHook - - data = - (await hook({ - collection: collectionConfig, - context: req.context, - data, - operation: 'update', - originalDoc, - req, - })) || data - }, Promise.resolve()) + if (collectionConfig.hooks?.beforeChange?.length) { + for (const hook of collectionConfig.hooks.beforeChange) { + data = + (await hook({ + collection: collectionConfig, + context: req.context, + data, + operation: 'update', + originalDoc, + req, + })) || data + } + } // ///////////////////////////////////// // beforeChange - Fields @@ -338,17 +338,17 @@ export const updateDocument = async < // afterRead - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterRead?.length) { + for (const hook of collectionConfig.hooks.afterRead) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + req, + })) || result + } + } // ///////////////////////////////////// // afterChange - Fields @@ -369,19 +369,19 @@ export const updateDocument = async < // afterChange - Collection // ///////////////////////////////////// - await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - collection: collectionConfig, - context: req.context, - doc: result, - operation: 'update', - previousDoc: originalDoc, - req, - })) || result - }, Promise.resolve()) + if (collectionConfig.hooks?.afterChange?.length) { + for (const hook of collectionConfig.hooks.afterChange) { + result = + (await hook({ + collection: collectionConfig, + context: req.context, + doc: result, + operation: 'update', + previousDoc: originalDoc, + req, + })) || result + } + } return result as TransformCollectionWithSelect } diff --git a/packages/payload/src/collections/operations/utils.ts b/packages/payload/src/collections/operations/utils.ts index 8b0d6dd9b5..f3e8c2c420 100644 --- a/packages/payload/src/collections/operations/utils.ts +++ b/packages/payload/src/collections/operations/utils.ts @@ -125,10 +125,8 @@ export const buildAfterOperation = async < let newResult = result as OperationResult - await args.collection.config.hooks.afterOperation.reduce( - async (priorHook, hook: AfterOperationHook) => { - await priorHook - + if (args.collection.config.hooks?.afterOperation?.length) { + for (const hook of args.collection.config.hooks.afterOperation) { const hookResult = await hook({ args, collection, @@ -140,9 +138,8 @@ export const buildAfterOperation = async < if (hookResult !== undefined) { newResult = hookResult as OperationResult } - }, - Promise.resolve(), - ) + } + } return newResult } diff --git a/packages/payload/src/config/build.ts b/packages/payload/src/config/build.ts index cfd1ee5d71..9ae99a98b2 100644 --- a/packages/payload/src/config/build.ts +++ b/packages/payload/src/config/build.ts @@ -9,11 +9,10 @@ import { sanitizeConfig } from './sanitize.js' */ export async function buildConfig(config: Config): Promise { if (Array.isArray(config.plugins)) { - const configAfterPlugins = await config.plugins.reduce(async (acc, plugin) => { - const configAfterPlugin = await acc - return plugin(configAfterPlugin) - }, Promise.resolve(config)) - + let configAfterPlugins = config + for (const plugin of config.plugins) { + configAfterPlugins = await plugin(configAfterPlugins) + } return await sanitizeConfig(configAfterPlugins) } diff --git a/packages/payload/src/config/sanitize.ts b/packages/payload/src/config/sanitize.ts index a2554e5e24..8168f3c073 100644 --- a/packages/payload/src/config/sanitize.ts +++ b/packages/payload/src/config/sanitize.ts @@ -179,10 +179,7 @@ export const sanitizeConfig = async (incomingConfig: Config): Promise { - locales.push(locale.code) - return locales - }, [] as string[]) + config.localization.localeCodes = config.localization.locales.map((locale) => locale.code) config.localization.locales = ( config.localization as LocalizationConfigWithLabels diff --git a/packages/payload/src/globals/operations/findOne.ts b/packages/payload/src/globals/operations/findOne.ts index 3a5517d7ef..48c989e977 100644 --- a/packages/payload/src/globals/operations/findOne.ts +++ b/packages/payload/src/globals/operations/findOne.ts @@ -133,17 +133,17 @@ export const findOneOperation = async >( // Execute before global hook // ///////////////////////////////////// - await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook) => { - await priorHook - - doc = - (await hook({ - context: req.context, - doc, - global: globalConfig, - req, - })) || doc - }, Promise.resolve()) + if (globalConfig.hooks?.beforeRead?.length) { + for (const hook of globalConfig.hooks.beforeRead) { + doc = + (await hook({ + context: req.context, + doc, + global: globalConfig, + req, + })) || doc + } + } // ///////////////////////////////////// // Execute globalType field if not selected @@ -182,17 +182,17 @@ export const findOneOperation = async >( // Execute after global hook // ///////////////////////////////////// - await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - doc = - (await hook({ - context: req.context, - doc, - global: globalConfig, - req, - })) || doc - }, Promise.resolve()) + if (globalConfig.hooks?.afterRead?.length) { + for (const hook of globalConfig.hooks.afterRead) { + doc = + (await hook({ + context: req.context, + doc, + global: globalConfig, + req, + })) || doc + } + } // ///////////////////////////////////// // Return results diff --git a/packages/payload/src/globals/operations/findVersionByID.ts b/packages/payload/src/globals/operations/findVersionByID.ts index 5e490421bb..47ddca86cb 100644 --- a/packages/payload/src/globals/operations/findVersionByID.ts +++ b/packages/payload/src/globals/operations/findVersionByID.ts @@ -102,17 +102,17 @@ export const findVersionByIDOperation = async = an // beforeRead - Collection // ///////////////////////////////////// - await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - context: req.context, - doc: result.version, - global: globalConfig, - req, - })) || result.version - }, Promise.resolve()) + if (globalConfig.hooks?.beforeRead?.length) { + for (const hook of globalConfig.hooks.beforeRead) { + result = + (await hook({ + context: req.context, + doc: result.version, + global: globalConfig, + req, + })) || result.version + } + } // ///////////////////////////////////// // afterRead - Fields @@ -139,18 +139,18 @@ export const findVersionByIDOperation = async = an // afterRead - Global // ///////////////////////////////////// - await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result.version = - (await hook({ - context: req.context, - doc: result.version, - global: globalConfig, - query: findGlobalVersionsArgs.where, - req, - })) || result.version - }, Promise.resolve()) + if (globalConfig.hooks?.afterRead?.length) { + for (const hook of globalConfig.hooks.afterRead) { + result.version = + (await hook({ + context: req.context, + doc: result.version, + global: globalConfig, + query: findGlobalVersionsArgs.where, + req, + })) || result.version + } + } return result } catch (error: unknown) { diff --git a/packages/payload/src/globals/operations/findVersions.ts b/packages/payload/src/globals/operations/findVersions.ts index 42b6365e39..426b4f7a24 100644 --- a/packages/payload/src/globals/operations/findVersions.ts +++ b/packages/payload/src/globals/operations/findVersions.ts @@ -126,15 +126,12 @@ export const findVersionsOperation = async >( // afterRead - Global // ///////////////////////////////////// - result = { - ...result, - docs: await Promise.all( + if (globalConfig.hooks?.afterRead?.length) { + result.docs = await Promise.all( result.docs.map(async (doc) => { const docRef = doc - await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - + for (const hook of globalConfig.hooks.afterRead) { docRef.version = (await hook({ context: req.context, @@ -144,11 +141,11 @@ export const findVersionsOperation = async >( query: fullWhere, req, })) || doc.version - }, Promise.resolve()) + } return docRef }), - ), + ) } // ///////////////////////////////////// diff --git a/packages/payload/src/globals/operations/restoreVersion.ts b/packages/payload/src/globals/operations/restoreVersion.ts index 0d46d43ccd..aa99ae7f02 100644 --- a/packages/payload/src/globals/operations/restoreVersion.ts +++ b/packages/payload/src/globals/operations/restoreVersion.ts @@ -143,17 +143,17 @@ export const restoreVersionOperation = async = any // afterRead - Global // ///////////////////////////////////// - await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - context: req.context, - doc: result, - global: globalConfig, - req, - })) || result - }, Promise.resolve()) + if (globalConfig.hooks?.afterRead?.length) { + for (const hook of globalConfig.hooks.afterRead) { + result = + (await hook({ + context: req.context, + doc: result, + global: globalConfig, + req, + })) || result + } + } // ///////////////////////////////////// // afterChange - Fields @@ -174,18 +174,18 @@ export const restoreVersionOperation = async = any // afterChange - Global // ///////////////////////////////////// - await globalConfig.hooks.afterChange.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - context: req.context, - doc: result, - global: globalConfig, - previousDoc, - req, - })) || result - }, Promise.resolve()) + if (globalConfig.hooks?.afterChange?.length) { + for (const hook of globalConfig.hooks.afterChange) { + result = + (await hook({ + context: req.context, + doc: result, + global: globalConfig, + previousDoc, + req, + })) || result + } + } if (shouldCommit) { await commitTransaction(req) diff --git a/packages/payload/src/globals/operations/update.ts b/packages/payload/src/globals/operations/update.ts index cb6969aee8..7736129c96 100644 --- a/packages/payload/src/globals/operations/update.ts +++ b/packages/payload/src/globals/operations/update.ts @@ -168,35 +168,35 @@ export const updateOperation = async < // beforeValidate - Global // ///////////////////////////////////// - await globalConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => { - await priorHook - - data = - (await hook({ - context: req.context, - data, - global: globalConfig, - originalDoc, - req, - })) || data - }, Promise.resolve()) + if (globalConfig.hooks?.beforeValidate?.length) { + for (const hook of globalConfig.hooks.beforeValidate) { + data = + (await hook({ + context: req.context, + data, + global: globalConfig, + originalDoc, + req, + })) || data + } + } // ///////////////////////////////////// // beforeChange - Global // ///////////////////////////////////// - await globalConfig.hooks.beforeChange.reduce(async (priorHook, hook) => { - await priorHook - - data = - (await hook({ - context: req.context, - data, - global: globalConfig, - originalDoc, - req, - })) || data - }, Promise.resolve()) + if (globalConfig.hooks?.beforeChange?.length) { + for (const hook of globalConfig.hooks.beforeChange) { + data = + (await hook({ + context: req.context, + data, + global: globalConfig, + originalDoc, + req, + })) || data + } + } // ///////////////////////////////////// // beforeChange - Fields @@ -326,17 +326,17 @@ export const updateOperation = async < // afterRead - Global // ///////////////////////////////////// - await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - context: req.context, - doc: result, - global: globalConfig, - req, - })) || result - }, Promise.resolve()) + if (globalConfig.hooks?.afterRead?.length) { + for (const hook of globalConfig.hooks.afterRead) { + result = + (await hook({ + context: req.context, + doc: result, + global: globalConfig, + req, + })) || result + } + } // ///////////////////////////////////// // afterChange - Fields @@ -357,18 +357,18 @@ export const updateOperation = async < // afterChange - Global // ///////////////////////////////////// - await globalConfig.hooks.afterChange.reduce(async (priorHook, hook) => { - await priorHook - - result = - (await hook({ - context: req.context, - doc: result, - global: globalConfig, - previousDoc: originalDoc, - req, - })) || result - }, Promise.resolve()) + if (globalConfig.hooks?.afterChange?.length) { + for (const hook of globalConfig.hooks.afterChange) { + result = + (await hook({ + context: req.context, + doc: result, + global: globalConfig, + previousDoc: originalDoc, + req, + })) || result + } + } // ///////////////////////////////////// // Return results From 7bb1c9d3c6443f05e78257a04c15dbb3742c39e1 Mon Sep 17 00:00:00 2001 From: Patrik Date: Tue, 25 Feb 2025 08:56:42 -0500 Subject: [PATCH 26/33] fix(ui): bulk upload `DiscardWithoutSaving` modal styles (#11381) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR fixes an issue where the `DiscardWithoutSaving` modal in the bulk upload process was missing its styles. The modal now displays correctly with the intended styling. ### Before: ![Screenshot 2025-02-24 at 8 20 52 PM](https://github.com/user-attachments/assets/c83a3119-28ce-4701-bc64-1219adeb2505) ### After: ![Screenshot 2025-02-24 at 8 20 07 PM](https://github.com/user-attachments/assets/62d364c2-b64c-4bd9-bf05-7481d609c6e4) Fixes #11380 --- .../BulkUpload/DiscardWithoutSaving/index.tsx | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/packages/ui/src/elements/BulkUpload/DiscardWithoutSaving/index.tsx b/packages/ui/src/elements/BulkUpload/DiscardWithoutSaving/index.tsx index 3ecee89e65..4c74ae4ba7 100644 --- a/packages/ui/src/elements/BulkUpload/DiscardWithoutSaving/index.tsx +++ b/packages/ui/src/elements/BulkUpload/DiscardWithoutSaving/index.tsx @@ -4,12 +4,9 @@ import { useModal } from '@faceless-ui/modal' import React from 'react' import { useTranslation } from '../../../providers/Translation/index.js' -import { Button } from '../../Button/index.js' -import { FullscreenModal } from '../../FullscreenModal/index.js' +import { ConfirmationModal } from '../../ConfirmationModal/index.js' import { useBulkUpload } from '../index.js' - export const discardBulkUploadModalSlug = 'bulk-upload--discard-without-saving' -const baseClass = 'leave-without-saving' export function DiscardWithoutSaving() { const { t } = useTranslation() @@ -26,21 +23,14 @@ export function DiscardWithoutSaving() { }, [closeModal, drawerSlug]) return ( - -
-
-

{t('general:leaveWithoutSaving')}

-

{t('general:changesNotSaved')}

-
-
- - -
-
-
+ ) } From 1e698c2bdfc99ca17986b95c5d92a02d9b0031cd Mon Sep 17 00:00:00 2001 From: Kendell Joseph <1900724+kendelljoseph@users.noreply.github.com> Date: Tue, 25 Feb 2025 09:17:30 -0500 Subject: [PATCH 27/33] chore(plugin-cloud): refresh session on ExpiredToken error code (#8904) Fixes https://github.com/payloadcms/payload/issues/8404 This code will refresh the session token upon receiving an `ExpiredToken` error when `storageClient.getObject()` receives that error. - The `Error Code` detected is determined by the error reported in the issue, and is an actual code from [AWS documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) for Error Responses. - If the request fails again, the error is thrown. --- .../src/utilities/getStorageClient.ts | 48 ++++--------------- .../src/utilities/refreshSession.ts | 46 ++++++++++++++++++ 2 files changed, 54 insertions(+), 40 deletions(-) create mode 100644 packages/payload-cloud/src/utilities/refreshSession.ts diff --git a/packages/payload-cloud/src/utilities/getStorageClient.ts b/packages/payload-cloud/src/utilities/getStorageClient.ts index 0aa70331e4..7f02c559ad 100644 --- a/packages/payload-cloud/src/utilities/getStorageClient.ts +++ b/packages/payload-cloud/src/utilities/getStorageClient.ts @@ -1,19 +1,13 @@ +import type * as AWS from '@aws-sdk/client-s3' import type { CognitoUserSession } from 'amazon-cognito-identity-js' -import { CognitoIdentityClient } from '@aws-sdk/client-cognito-identity' -import * as AWS from '@aws-sdk/client-s3' -import { fromCognitoIdentityPool } from '@aws-sdk/credential-providers' +import type { GetStorageClient } from './refreshSession.js' -import { authAsCognitoUser } from './authAsCognitoUser.js' +import { refreshSession } from './refreshSession.js' -export type GetStorageClient = () => Promise<{ - identityID: string - storageClient: AWS.S3 -}> - -let storageClient: AWS.S3 | null = null -let session: CognitoUserSession | null = null -let identityID: string +export let storageClient: AWS.S3 | null = null +export let session: CognitoUserSession | null = null +export let identityID: string export const getStorageClient: GetStorageClient = async () => { if (storageClient && session?.isValid()) { @@ -23,6 +17,8 @@ export const getStorageClient: GetStorageClient = async () => { } } + ;({ identityID, session, storageClient } = await refreshSession()) + if (!process.env.PAYLOAD_CLOUD_PROJECT_ID) { throw new Error('PAYLOAD_CLOUD_PROJECT_ID is required') } @@ -33,34 +29,6 @@ export const getStorageClient: GetStorageClient = async () => { throw new Error('PAYLOAD_CLOUD_COGNITO_IDENTITY_POOL_ID is required') } - session = await authAsCognitoUser( - process.env.PAYLOAD_CLOUD_PROJECT_ID, - process.env.PAYLOAD_CLOUD_COGNITO_PASSWORD, - ) - - const cognitoIdentity = new CognitoIdentityClient({ - credentials: fromCognitoIdentityPool({ - clientConfig: { - region: 'us-east-1', - }, - identityPoolId: process.env.PAYLOAD_CLOUD_COGNITO_IDENTITY_POOL_ID, - logins: { - [`cognito-idp.us-east-1.amazonaws.com/${process.env.PAYLOAD_CLOUD_COGNITO_USER_POOL_ID}`]: - session.getIdToken().getJwtToken(), - }, - }), - }) - - const credentials = await cognitoIdentity.config.credentials() - - // @ts-expect-error - Incorrect AWS types - identityID = credentials.identityId - - storageClient = new AWS.S3({ - credentials, - region: process.env.PAYLOAD_CLOUD_BUCKET_REGION, - }) - return { identityID, storageClient, diff --git a/packages/payload-cloud/src/utilities/refreshSession.ts b/packages/payload-cloud/src/utilities/refreshSession.ts new file mode 100644 index 0000000000..a12ad42e21 --- /dev/null +++ b/packages/payload-cloud/src/utilities/refreshSession.ts @@ -0,0 +1,46 @@ +import { CognitoIdentityClient } from '@aws-sdk/client-cognito-identity' +import * as AWS from '@aws-sdk/client-s3' +import { fromCognitoIdentityPool } from '@aws-sdk/credential-providers' + +import { authAsCognitoUser } from './authAsCognitoUser.js' + +export type GetStorageClient = () => Promise<{ + identityID: string + storageClient: AWS.S3 +}> + +export const refreshSession = async () => { + const session = await authAsCognitoUser( + process.env.PAYLOAD_CLOUD_PROJECT_ID || '', + process.env.PAYLOAD_CLOUD_COGNITO_PASSWORD || '', + ) + + const cognitoIdentity = new CognitoIdentityClient({ + credentials: fromCognitoIdentityPool({ + clientConfig: { + region: 'us-east-1', + }, + identityPoolId: process.env.PAYLOAD_CLOUD_COGNITO_IDENTITY_POOL_ID || '', + logins: { + [`cognito-idp.us-east-1.amazonaws.com/${process.env.PAYLOAD_CLOUD_COGNITO_USER_POOL_ID}`]: + session.getIdToken().getJwtToken(), + }, + }), + }) + + const credentials = await cognitoIdentity.config.credentials() + + // @ts-expect-error - Incorrect AWS types + const identityID = credentials.identityId + + const storageClient = new AWS.S3({ + credentials, + region: process.env.PAYLOAD_CLOUD_BUCKET_REGION, + }) + + return { + identityID, + session, + storageClient, + } +} From 36e152d69d784c45a60ef925186c15637f7939e6 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Tue, 25 Feb 2025 09:44:06 -0500 Subject: [PATCH 28/33] fix(ui): allow json fields to be updated externally (#11371) ### What? Unable to update json fields externally. For example, calling `setValue` on a json field would not be reflected in the admin panel UI. ### Why? JSON fields use the monaco editor to manage state internally, so programmatically updating the value in state does not change the internal value. ### How? Set a ref when the user updates the value and then unset the ref after the change is complete. Inside the hook that watches `value`, if the value changed and the change came from the system (i.e. a programmatic change) refresh the editor by adjusting its key prop. If the change was made by the user, there is no need to refresh the editor. Fixes https://github.com/payloadcms/payload/issues/10819 --- packages/ui/src/fields/JSON/index.tsx | 40 +++++++++++++-------- test/fields/collections/JSON/AfterField.tsx | 38 ++++++++++++++++++++ test/fields/collections/JSON/e2e.spec.ts | 20 +++++++++++ test/fields/collections/JSON/index.tsx | 10 ++++++ test/fields/payload-types.ts | 10 ++++++ 5 files changed, 103 insertions(+), 15 deletions(-) create mode 100644 test/fields/collections/JSON/AfterField.tsx diff --git a/packages/ui/src/fields/JSON/index.tsx b/packages/ui/src/fields/JSON/index.tsx index b50bf2ffa7..87cf7f32c6 100644 --- a/packages/ui/src/fields/JSON/index.tsx +++ b/packages/ui/src/fields/JSON/index.tsx @@ -10,10 +10,10 @@ import { useField } from '../../forms/useField/index.js' import { withCondition } from '../../forms/withCondition/index.js' import { FieldDescription } from '../FieldDescription/index.js' import { FieldError } from '../FieldError/index.js' -import './index.scss' import { FieldLabel } from '../FieldLabel/index.js' import { mergeFieldStyles } from '../mergeFieldStyles.js' import { fieldBaseClass } from '../shared/index.js' +import './index.scss' const baseClass = 'json-field' @@ -31,10 +31,9 @@ const JSONFieldComponent: JSONFieldClientComponent = (props) => { readOnly, validate, } = props - - const [stringValue, setStringValue] = useState() const [jsonError, setJsonError] = useState() - const [hasLoadedValue, setHasLoadedValue] = useState(false) + const inputChangeFromRef = React.useRef<'system' | 'user'>('system') + const [editorKey, setEditorKey] = useState('') const memoizedValidate = useCallback( (value, options) => { @@ -56,6 +55,12 @@ const JSONFieldComponent: JSONFieldClientComponent = (props) => { validate: memoizedValidate, }) + const [initialStringValue, setInitialStringValue] = useState(() => + (value || initialValue) !== undefined + ? JSON.stringify(value ?? initialValue, null, 2) + : undefined, + ) + const handleMount = useCallback( (editor, monaco) => { if (!jsonSchema) { @@ -88,7 +93,7 @@ const JSONFieldComponent: JSONFieldClientComponent = (props) => { if (readOnly) { return } - setStringValue(val) + inputChangeFromRef.current = 'user' try { setValue(val ? JSON.parse(val) : null) @@ -98,20 +103,21 @@ const JSONFieldComponent: JSONFieldClientComponent = (props) => { setJsonError(e) } }, - [readOnly, setValue, setStringValue], + [readOnly, setValue], ) useEffect(() => { - if (hasLoadedValue || value === undefined) { - return + if (inputChangeFromRef.current === 'system') { + setInitialStringValue( + (value || initialValue) !== undefined + ? JSON.stringify(value ?? initialValue, null, 2) + : undefined, + ) + setEditorKey(new Date().toString()) } - setStringValue( - value || initialValue ? JSON.stringify(value ? value : initialValue, null, 2) : '', - ) - - setHasLoadedValue(true) - }, [initialValue, value, hasLoadedValue]) + inputChangeFromRef.current = 'system' + }, [initialValue, value]) const styles = useMemo(() => mergeFieldStyles(field), [field]) @@ -142,12 +148,16 @@ const JSONFieldComponent: JSONFieldClientComponent = (props) => { {BeforeInput} {AfterInput}
diff --git a/test/fields/collections/JSON/AfterField.tsx b/test/fields/collections/JSON/AfterField.tsx new file mode 100644 index 0000000000..be7bfd8db0 --- /dev/null +++ b/test/fields/collections/JSON/AfterField.tsx @@ -0,0 +1,38 @@ +'use client' + +import { useField } from '@payloadcms/ui' + +export function AfterField() { + const { setValue } = useField({ path: 'customJSON' }) + + return ( + + ) +} diff --git a/test/fields/collections/JSON/e2e.spec.ts b/test/fields/collections/JSON/e2e.spec.ts index 8cee112ae6..feafa0e053 100644 --- a/test/fields/collections/JSON/e2e.spec.ts +++ b/test/fields/collections/JSON/e2e.spec.ts @@ -103,4 +103,24 @@ describe('JSON', () => { '"foo.with.periods": "bar"', ) }) + + test('should update', async () => { + const createdDoc = await payload.create({ + collection: 'json-fields', + data: { + customJSON: { + default: 'value', + }, + }, + }) + + await page.goto(url.edit(createdDoc.id)) + const jsonField = page.locator('.json-field #field-customJSON') + await expect(jsonField).toContainText('"default": "value"') + + const originalHeight = (await page.locator('#field-customJSON').boundingBox())?.height || 0 + await page.locator('#set-custom-json').click() + const newHeight = (await page.locator('#field-customJSON').boundingBox())?.height || 0 + expect(newHeight).toBeGreaterThan(originalHeight) + }) }) diff --git a/test/fields/collections/JSON/index.tsx b/test/fields/collections/JSON/index.tsx index 8a05ee77e3..5952f4f4c4 100644 --- a/test/fields/collections/JSON/index.tsx +++ b/test/fields/collections/JSON/index.tsx @@ -67,6 +67,16 @@ const JSON: CollectionConfig = { }, ], }, + { + name: 'customJSON', + type: 'json', + admin: { + components: { + afterInput: ['./collections/JSON/AfterField#AfterField'], + }, + }, + label: 'Custom Json', + }, ], versions: { maxPerDoc: 1, diff --git a/test/fields/payload-types.ts b/test/fields/payload-types.ts index 61d47b8f75..5023784986 100644 --- a/test/fields/payload-types.ts +++ b/test/fields/payload-types.ts @@ -1474,6 +1474,15 @@ export interface JsonField { | boolean | null; }; + customJSON?: + | { + [k: string]: unknown; + } + | unknown[] + | string + | number + | boolean + | null; updatedAt: string; createdAt: string; } @@ -3165,6 +3174,7 @@ export interface JsonFieldsSelect { | { jsonWithinGroup?: T; }; + customJSON?: T; updatedAt?: T; createdAt?: T; } From 48f183bd42031fe9fdfdba65bdb20ca395f6881f Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Tue, 25 Feb 2025 10:06:14 -0500 Subject: [PATCH 29/33] ci: remove codeowners file (#11385) Since codeowner approvals are not currently required, the codeowners file is only serving to add reviewers to PRs. Removing the codeowners file for now as this is not desired. Can be re-introduced at a later date if required approvers are implemented. --- .github/CODEOWNERS | 37 ------------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index b3b3e4d608..0000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,37 +0,0 @@ -# Order matters. The last matching pattern takes precedence. - -### Package Exports - -**/exports/ @denolfe @jmikrut @DanRibbens - -### Packages - -/packages/plugin-cloud*/src/ @denolfe @jmikrut @DanRibbens -/packages/email-*/src/ @denolfe @jmikrut @DanRibbens -/packages/live-preview*/src/ @jacobsfletch -/packages/plugin-stripe/src/ @jacobsfletch -/packages/plugin-multi-tenant/src/ @JarrodMFlesch -/packages/richtext-*/src/ @AlessioGr -/packages/next/src/ @jmikrut @jacobsfletch @AlessioGr @JarrodMFlesch -/packages/ui/src/ @jmikrut @jacobsfletch @AlessioGr @JarrodMFlesch -/packages/storage-*/src/ @denolfe @jmikrut @DanRibbens -/packages/create-payload-app/src/ @denolfe @jmikrut @DanRibbens -/packages/eslint-*/ @denolfe @jmikrut @DanRibbens @AlessioGr - -### Templates - -/templates/_data/ @denolfe @jmikrut @DanRibbens -/templates/_template/ @denolfe @jmikrut @DanRibbens - -### Build Files - -**/tsconfig*.json @denolfe @jmikrut @DanRibbens @AlessioGr -**/jest.config.js @denolfe @jmikrut @DanRibbens @AlessioGr - -### Root - -/package.json @denolfe @jmikrut @DanRibbens -/tools/ @denolfe @jmikrut @DanRibbens -/.husky/ @denolfe @jmikrut @DanRibbens -/.vscode/ @denolfe @jmikrut @DanRibbens @AlessioGr -/.github/ @denolfe @jmikrut @DanRibbens From 69c0d094371225ed803d686cab2c39dde48350d2 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Tue, 25 Feb 2025 15:18:14 -0500 Subject: [PATCH 30/33] feat: simplify column prefs (#11390) Transforms how column prefs are stored in the database. This change reduces the complexity of the `columns` property by removing the unnecessary `accessor` and `active` keys. This change is necessary in order to [maintain column state in the URL](https://github.com/payloadcms/payload/pull/11387), where the state itself needs to be as concise as possible. Does so in a non-breaking way, where the old column shape is transformed as needed. Here's an example: Before: ```ts [ { accessor: "title", active: true } ] ``` After: ```ts [ { title: true } ] ``` --- packages/payload/src/admin/functions/index.ts | 4 +-- packages/payload/src/index.ts | 1 + .../payload/src/preferences/migrateColumns.ts | 19 ++++++++++ .../src/preferences/preferencesCollection.ts | 9 +++++ packages/payload/src/preferences/types.ts | 6 +++- .../src/elements/RelationshipTable/index.tsx | 10 +++--- .../TableColumns/buildColumnState.tsx | 24 +++++-------- .../buildPolymorphicColumnState.tsx | 22 +++++------- .../TableColumns/getInitialColumns.ts | 9 +++-- .../ui/src/elements/TableColumns/index.tsx | 35 +++++++------------ packages/ui/src/utilities/renderTable.tsx | 14 ++++---- packages/ui/src/views/List/index.tsx | 1 + test/fields/collections/Text/e2e.spec.ts | 7 +--- tsconfig.base.json | 2 +- 14 files changed, 84 insertions(+), 79 deletions(-) create mode 100644 packages/payload/src/preferences/migrateColumns.ts diff --git a/packages/payload/src/admin/functions/index.ts b/packages/payload/src/admin/functions/index.ts index 6a127de063..94f930d466 100644 --- a/packages/payload/src/admin/functions/index.ts +++ b/packages/payload/src/admin/functions/index.ts @@ -1,7 +1,7 @@ import type { ImportMap } from '../../bin/generateImportMap/index.js' import type { SanitizedConfig } from '../../config/types.js' import type { PaginatedDocs } from '../../database/types.js' -import type { CollectionSlug } from '../../index.js' +import type { CollectionSlug, ColumnPreference } from '../../index.js' import type { PayloadRequest, Sort, Where } from '../../types/index.js' export type DefaultServerFunctionArgs = { @@ -50,7 +50,7 @@ export type ListQuery = { export type BuildTableStateArgs = { collectionSlug: string | string[] - columns?: { accessor: string; active: boolean }[] + columns?: ColumnPreference[] docs?: PaginatedDocs['docs'] enableRowSelections?: boolean parent?: { diff --git a/packages/payload/src/index.ts b/packages/payload/src/index.ts index d955eab676..b2581d18d2 100644 --- a/packages/payload/src/index.ts +++ b/packages/payload/src/index.ts @@ -1374,6 +1374,7 @@ export { restoreVersionOperation as restoreVersionOperationGlobal } from './glob export { updateOperation as updateOperationGlobal } from './globals/operations/update.js' export type { CollapsedPreferences, + ColumnPreference, DocumentPreferences, FieldsPreferences, InsideFieldsPreferences, diff --git a/packages/payload/src/preferences/migrateColumns.ts b/packages/payload/src/preferences/migrateColumns.ts new file mode 100644 index 0000000000..bcf6727cd9 --- /dev/null +++ b/packages/payload/src/preferences/migrateColumns.ts @@ -0,0 +1,19 @@ +/** + * @todo remove this function and subsequent hooks in v4 + * They are used to transform the old shape of `columnPreferences` to new shape + * i.e. ({ accessor: string, active: boolean })[] to ({ [accessor: string]: boolean })[] + * In v4 can we use the new shape directly + */ +export const migrateColumns = (value: Record) => { + if (value && typeof value === 'object' && 'columns' in value && Array.isArray(value.columns)) { + value.columns = value.columns.map((col) => { + if ('accessor' in col) { + return { [col.accessor]: col.active } + } + + return col + }) + } + + return value +} diff --git a/packages/payload/src/preferences/preferencesCollection.ts b/packages/payload/src/preferences/preferencesCollection.ts index c6b0d4d5c0..a72389be46 100644 --- a/packages/payload/src/preferences/preferencesCollection.ts +++ b/packages/payload/src/preferences/preferencesCollection.ts @@ -2,6 +2,7 @@ import type { CollectionConfig } from '../collections/config/types.js' import type { Access, Config } from '../config/types.js' +import { migrateColumns } from './migrateColumns.js' import { deleteHandler } from './requestHandlers/delete.js' import { findByIDHandler } from './requestHandlers/findOne.js' import { updateHandler } from './requestHandlers/update.js' @@ -76,6 +77,14 @@ const getPreferencesCollection = (config: Config): CollectionConfig => ({ { name: 'value', type: 'json', + /** + * @todo remove these hooks in v4 + * See `migrateColumns` for more information + */ + hooks: { + afterRead: [({ value }) => migrateColumns(value)], + beforeValidate: [({ value }) => migrateColumns(value)], + }, validate: (value) => { if (value) { try { diff --git a/packages/payload/src/preferences/types.ts b/packages/payload/src/preferences/types.ts index 1405841675..c3686006bd 100644 --- a/packages/payload/src/preferences/types.ts +++ b/packages/payload/src/preferences/types.ts @@ -28,8 +28,12 @@ export type DocumentPreferences = { fields: FieldsPreferences } +export type ColumnPreference = { + [key: string]: boolean +} + export type ListPreferences = { - columns?: { accessor: string; active: boolean }[] + columns?: ColumnPreference[] limit?: number sort?: string } diff --git a/packages/ui/src/elements/RelationshipTable/index.tsx b/packages/ui/src/elements/RelationshipTable/index.tsx index e45d2ecfeb..0e4111d474 100644 --- a/packages/ui/src/elements/RelationshipTable/index.tsx +++ b/packages/ui/src/elements/RelationshipTable/index.tsx @@ -2,6 +2,7 @@ import type { CollectionSlug, Column, + ColumnPreference, JoinFieldClient, ListQuery, PaginatedDocs, @@ -25,7 +26,6 @@ import { useServerFunctions } from '../../providers/ServerFunctions/index.js' import { useTranslation } from '../../providers/Translation/index.js' import { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js' import { AnimateHeight } from '../AnimateHeight/index.js' -import './index.scss' import { ColumnSelector } from '../ColumnSelector/index.js' import { useDocumentDrawer } from '../DocumentDrawer/index.js' import { Popup, PopupList } from '../Popup/index.js' @@ -33,6 +33,7 @@ import { RelationshipProvider } from '../Table/RelationshipProvider/index.js' import { TableColumnsProvider } from '../TableColumns/index.js' import { DrawerLink } from './cells/DrawerLink/index.js' import { RelationshipTablePagination } from './Pagination.js' +import './index.scss' const baseClass = 'relationship-table' @@ -123,11 +124,10 @@ export const RelationshipTable: React.FC = (pro newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions) } - // map columns from string[] to ListPreferences['columns'] - const defaultColumns = field.admin.defaultColumns + // map columns from string[] to ColumnPreference[] + const defaultColumns: ColumnPreference[] = field.admin.defaultColumns ? field.admin.defaultColumns.map((accessor) => ({ - accessor, - active: true, + [accessor]: true, })) : undefined diff --git a/packages/ui/src/elements/TableColumns/buildColumnState.tsx b/packages/ui/src/elements/TableColumns/buildColumnState.tsx index 8eaacb507d..909490fdc5 100644 --- a/packages/ui/src/elements/TableColumns/buildColumnState.tsx +++ b/packages/ui/src/elements/TableColumns/buildColumnState.tsx @@ -4,10 +4,10 @@ import type { ClientComponentProps, ClientField, Column, + ColumnPreference, DefaultCellComponentProps, DefaultServerCellComponentProps, Field, - ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig, @@ -39,8 +39,8 @@ type Args = { beforeRows?: Column[] clientCollectionConfig: ClientCollectionConfig collectionConfig: SanitizedCollectionConfig - columnPreferences: ListPreferences['columns'] - columns?: ListPreferences['columns'] + columnPreferences: ColumnPreference[] + columns?: ColumnPreference[] customCellProps: DefaultCellComponentProps['customCellProps'] docs: PaginatedDocs['docs'] enableRowSelections: boolean @@ -99,10 +99,10 @@ export const buildColumnState = (args: Args): Column[] => { const sortTo = columnPreferences || columns - const sortFieldMap = (fieldMap, sortTo) => + const sortFieldMap = (fieldMap, sortTo: ColumnPreference[]) => fieldMap?.sort((a, b) => { - const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name) - const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name) + const aIndex = sortTo.findIndex((column) => 'name' in a && a.name in column) + const bIndex = sortTo.findIndex((column) => 'name' in b && b.name in column) if (aIndex === -1 && bIndex === -1) { return 0 @@ -136,18 +136,12 @@ export const buildColumnState = (args: Args): Column[] => { (f) => 'name' in field && 'name' in f && f.name === field.name, ) - const columnPreference = columnPreferences?.find( - (preference) => field && 'name' in field && preference.accessor === field.name, - ) - let active = false - if (columnPreference) { - active = columnPreference.active + if (columnPreferences) { + active = 'name' in field && columnPreferences?.some((col) => col?.[field.name]) } else if (columns && Array.isArray(columns) && columns.length > 0) { - active = columns.find( - (column) => field && 'name' in field && column.accessor === field.name, - )?.active + active = 'name' in field && columns.some((col) => col?.[field.name]) } else if (activeColumnsIndices.length < 4) { active = true } diff --git a/packages/ui/src/elements/TableColumns/buildPolymorphicColumnState.tsx b/packages/ui/src/elements/TableColumns/buildPolymorphicColumnState.tsx index 916ce7836f..471549b96a 100644 --- a/packages/ui/src/elements/TableColumns/buildPolymorphicColumnState.tsx +++ b/packages/ui/src/elements/TableColumns/buildPolymorphicColumnState.tsx @@ -4,10 +4,10 @@ import type { I18nClient } from '@payloadcms/translations' import type { ClientField, Column, + ColumnPreference, DefaultCellComponentProps, DefaultServerCellComponentProps, Field, - ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig, @@ -36,8 +36,8 @@ import { filterFields } from './filterFields.js' type Args = { beforeRows?: Column[] - columnPreferences: ListPreferences['columns'] - columns?: ListPreferences['columns'] + columnPreferences: ColumnPreference[] + columns?: ColumnPreference[] customCellProps: DefaultCellComponentProps['customCellProps'] docs: PaginatedDocs['docs'] enableRowSelections: boolean @@ -92,8 +92,8 @@ export const buildPolymorphicColumnState = (args: Args): Column[] => { const sortFieldMap = (fieldMap, sortTo) => fieldMap?.sort((a, b) => { - const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name) - const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name) + const aIndex = sortTo.findIndex((column) => 'name' in a && a.name in column) + const bIndex = sortTo.findIndex((column) => 'name' in b && b.name in column) if (aIndex === -1 && bIndex === -1) { return 0 @@ -127,18 +127,12 @@ export const buildPolymorphicColumnState = (args: Args): Column[] => { (f) => 'name' in field && 'name' in f && f.name === field.name, ) - const columnPreference = columnPreferences?.find( - (preference) => field && 'name' in field && preference.accessor === field.name, - ) - let active = false - if (columnPreference) { - active = columnPreference.active + if (columnPreferences) { + active = 'name' in field && columnPreferences?.some((col) => col?.[field.name]) } else if (columns && Array.isArray(columns) && columns.length > 0) { - active = columns.find( - (column) => field && 'name' in field && column.accessor === field.name, - )?.active + active = 'name' in field && columns.some((col) => col?.[field.name]) } else if (activeColumnsIndices.length < 4) { active = true } diff --git a/packages/ui/src/elements/TableColumns/getInitialColumns.ts b/packages/ui/src/elements/TableColumns/getInitialColumns.ts index 02e797ec38..304a11cba3 100644 --- a/packages/ui/src/elements/TableColumns/getInitialColumns.ts +++ b/packages/ui/src/elements/TableColumns/getInitialColumns.ts @@ -1,11 +1,11 @@ -import type { ClientField, CollectionConfig, Field, ListPreferences } from 'payload' +import type { ClientField, CollectionConfig, ColumnPreference, Field } from 'payload' import { fieldAffectsData } from 'payload/shared' const getRemainingColumns = ( fields: T, useAsTitle: string, -): ListPreferences['columns'] => +): ColumnPreference[] => fields?.reduce((remaining, field) => { if (fieldAffectsData(field) && field.name === useAsTitle) { return remaining @@ -40,7 +40,7 @@ export const getInitialColumns = ( fields: T, useAsTitle: CollectionConfig['admin']['useAsTitle'], defaultColumns: CollectionConfig['admin']['defaultColumns'], -): ListPreferences['columns'] => { +): ColumnPreference[] => { let initialColumns = [] if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) { @@ -57,7 +57,6 @@ export const getInitialColumns = ( } return initialColumns.map((column) => ({ - accessor: column, - active: true, + [column]: true, })) } diff --git a/packages/ui/src/elements/TableColumns/index.tsx b/packages/ui/src/elements/TableColumns/index.tsx index 5d7120e7a0..9dcab9db9e 100644 --- a/packages/ui/src/elements/TableColumns/index.tsx +++ b/packages/ui/src/elements/TableColumns/index.tsx @@ -1,5 +1,5 @@ 'use client' -import type { Column, ListPreferences, SanitizedCollectionConfig } from 'payload' +import type { Column, ColumnPreference, ListPreferences, SanitizedCollectionConfig } from 'payload' import React, { createContext, useCallback, useContext, useEffect } from 'react' @@ -39,12 +39,10 @@ type Props = { } // strip out Heading, Label, and renderedCells properties, they cannot be sent to the server -const sanitizeColumns = (columns: Column[]) => { - return columns.map(({ accessor, active }) => ({ - accessor, - active, +const formatColumnPreferences = (columns: Column[]): ColumnPreference[] => + columns.map(({ accessor, active }) => ({ + [accessor]: active, })) -} export const TableColumnsProvider: React.FC = ({ children, @@ -90,7 +88,7 @@ export const TableColumnsProvider: React.FC = ({ const result = await getTableState({ collectionSlug, - columns: sanitizeColumns(withMovedColumn), + columns: formatColumnPreferences(withMovedColumn), docs, enableRowSelections, renderRowTypes, @@ -123,7 +121,7 @@ export const TableColumnsProvider: React.FC = ({ const { newColumnState, toggledColumns } = tableColumns.reduce<{ newColumnState: Column[] - toggledColumns: Pick[] + toggledColumns: ColumnPreference[] }>( (acc, col) => { if (col.accessor === column) { @@ -133,14 +131,12 @@ export const TableColumnsProvider: React.FC = ({ active: !col.active, }) acc.toggledColumns.push({ - accessor: col.accessor, - active: !col.active, + [col.accessor]: !col.active, }) } else { acc.newColumnState.push(col) acc.toggledColumns.push({ - accessor: col.accessor, - active: col.active, + [col.accessor]: col.active, }) } @@ -182,14 +178,8 @@ export const TableColumnsProvider: React.FC = ({ const setActiveColumns = React.useCallback( async (activeColumnAccessors: string[]) => { - const activeColumns: Pick[] = tableColumns - .map((col) => { - return { - accessor: col.accessor, - active: activeColumnAccessors.includes(col.accessor), - } - }) - .sort((first, second) => { + const activeColumns: ColumnPreference[] = formatColumnPreferences( + tableColumns.sort((first, second) => { const indexOfFirst = activeColumnAccessors.indexOf(first.accessor) const indexOfSecond = activeColumnAccessors.indexOf(second.accessor) @@ -198,7 +188,8 @@ export const TableColumnsProvider: React.FC = ({ } return indexOfFirst > indexOfSecond ? 1 : -1 - }) + }), + ) const { state: columnState, Table } = await getTableState({ collectionSlug, @@ -239,7 +230,7 @@ export const TableColumnsProvider: React.FC = ({ if (collectionHasChanged || !listPreferences) { const currentPreferences = await getPreference<{ - columns: ListPreferences['columns'] + columns: ColumnPreference[] }>(preferenceKey) prevCollection.current = defaultCollection diff --git a/packages/ui/src/utilities/renderTable.tsx b/packages/ui/src/utilities/renderTable.tsx index 912b9dfeb6..637ede7ed2 100644 --- a/packages/ui/src/utilities/renderTable.tsx +++ b/packages/ui/src/utilities/renderTable.tsx @@ -3,9 +3,10 @@ import type { ClientConfig, ClientField, CollectionConfig, + Column, + ColumnPreference, Field, ImportMap, - ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig, @@ -14,9 +15,6 @@ import type { import { getTranslation, type I18nClient } from '@payloadcms/translations' import { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared' -// eslint-disable-next-line payload/no-imports-from-exports-dir -import type { Column } from '../exports/client/index.js' - import { RenderServerComponent } from '../elements/RenderServerComponent/index.js' import { buildColumnState } from '../elements/TableColumns/buildColumnState.js' import { buildPolymorphicColumnState } from '../elements/TableColumns/buildPolymorphicColumnState.js' @@ -71,8 +69,8 @@ export const renderTable = ({ clientConfig?: ClientConfig collectionConfig?: SanitizedCollectionConfig collections?: string[] - columnPreferences: ListPreferences['columns'] - columns?: ListPreferences['columns'] + columnPreferences: ColumnPreference[] + columns?: ColumnPreference[] customCellProps?: Record docs: PaginatedDocs['docs'] drawerSlug?: string @@ -109,7 +107,7 @@ export const renderTable = ({ const columns = columnsFromArgs ? columnsFromArgs?.filter((column) => flattenTopLevelFields(fields, true)?.some( - (field) => 'name' in field && field.name === column.accessor, + (field) => 'name' in field && column[field.name], ), ) : getInitialColumns(fields, useAsTitle, []) @@ -130,7 +128,7 @@ export const renderTable = ({ const columns = columnsFromArgs ? columnsFromArgs?.filter((column) => flattenTopLevelFields(clientCollectionConfig.fields, true)?.some( - (field) => 'name' in field && field.name === column.accessor, + (field) => 'name' in field && field.name in column, ), ) : getInitialColumns( diff --git a/packages/ui/src/views/List/index.tsx b/packages/ui/src/views/List/index.tsx index 9a5c862541..bd9be45dbb 100644 --- a/packages/ui/src/views/List/index.tsx +++ b/packages/ui/src/views/List/index.tsx @@ -151,6 +151,7 @@ export function DefaultListView(props: ListViewClientProps) { ]) } }, [setStepNav, labels, drawerDepth]) + return ( { user: client.user, key: 'text-fields-list', value: { - columns: [ - { - accessor: 'disableListColumnText', - active: true, - }, - ], + columns: [{ disableListColumnText: true }], }, }) diff --git a/tsconfig.base.json b/tsconfig.base.json index 16ab52137f..ffd7ec771c 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -31,7 +31,7 @@ } ], "paths": { - "@payload-config": ["./test/fields-relationship/config.ts"], + "@payload-config": ["./test/_community/config.ts"], "@payloadcms/live-preview": ["./packages/live-preview/src"], "@payloadcms/live-preview-react": ["./packages/live-preview-react/src/index.ts"], "@payloadcms/live-preview-vue": ["./packages/live-preview-vue/src/index.ts"], From 6b6c289d79d62cedb5c44f31ddb990d23b96b68a Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Tue, 25 Feb 2025 23:22:47 +0200 Subject: [PATCH 31/33] fix(db-mongodb): `hasNextPage` with polymorphic joins (#11394) Previously, `hasNextPage` was working incorrectly with polymorphic joins (that have an array of `collection`) in MongoDB. This PR fixes it and adds extra assertions to the polymorphic joins test. --------- Co-authored-by: Jarrod Flesch --- .../src/utilities/buildJoinAggregation.ts | 12 +++---- test/joins/int.spec.ts | 31 +++++++++++++++++++ 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/packages/db-mongodb/src/utilities/buildJoinAggregation.ts b/packages/db-mongodb/src/utilities/buildJoinAggregation.ts index 4af139b5a7..0ffe07e6e1 100644 --- a/packages/db-mongodb/src/utilities/buildJoinAggregation.ts +++ b/packages/db-mongodb/src/utilities/buildJoinAggregation.ts @@ -195,17 +195,17 @@ export const buildJoinAggregation = async ({ const sliceValue = page ? [(page - 1) * limitJoin, limitJoin] : [limitJoin] aggregate.push({ - $set: { - [`${as}.docs`]: { - $slice: [`$${as}.docs`, ...sliceValue], + $addFields: { + [`${as}.hasNextPage`]: { + $gt: [{ $size: `$${as}.docs` }, limitJoin || Number.MAX_VALUE], }, }, }) aggregate.push({ - $addFields: { - [`${as}.hasNextPage`]: { - $gt: [{ $size: `$${as}.docs` }, limitJoin || Number.MAX_VALUE], + $set: { + [`${as}.docs`]: { + $slice: [`$${as}.docs`, ...sliceValue], }, }, }) diff --git a/test/joins/int.spec.ts b/test/joins/int.spec.ts index a83c3b3f92..f3a8812d67 100644 --- a/test/joins/int.spec.ts +++ b/test/joins/int.spec.ts @@ -1205,6 +1205,37 @@ describe('Joins Field', () => { expect(parent.children.docs[1]?.value.id).toBe(child_1.id) expect(parent.children.docs[1]?.relationTo).toBe('multiple-collections-1') + // Pagination across collections + parent = await payload.findByID({ + collection: 'multiple-collections-parents', + id: parent.id, + depth: 1, + joins: { + children: { + limit: 1, + sort: 'title', + }, + }, + }) + + expect(parent.children.docs).toHaveLength(1) + expect(parent.children?.hasNextPage).toBe(true) + + parent = await payload.findByID({ + collection: 'multiple-collections-parents', + id: parent.id, + depth: 1, + joins: { + children: { + limit: 2, + sort: 'title', + }, + }, + }) + + expect(parent.children.docs).toHaveLength(2) + expect(parent.children?.hasNextPage).toBe(false) + // Sorting across collections parent = await payload.findByID({ collection: 'multiple-collections-parents', From 81fd42ef69b2a4110c3317b5e675a3596900b8ed Mon Sep 17 00:00:00 2001 From: Patrik Date: Tue, 25 Feb 2025 16:55:44 -0500 Subject: [PATCH 32/33] fix(ui): skip bulk upload thumbnail generation on non-image files (#11378) This PR fixes an issue where bulk upload attempts to generate thumbnails for non-image files, causing errors on the page. The fix ensures that thumbnail generation is skipped for non-image files, preventing unnecessary errors. Fixes #10428 --- .../src/utilities/addDataAndFileToRequest.ts | 3 +- .../BulkUpload/FormsManager/index.tsx | 3 +- test/helpers.ts | 19 ++++++ test/uploads/collections/Upload1/index.ts | 2 +- test/uploads/e2e.spec.ts | 61 +++++++++++++++++- test/uploads/payload-types.ts | 1 - test/uploads/test-pdf.pdf | Bin 0 -> 1844900 bytes 7 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 test/uploads/test-pdf.pdf diff --git a/packages/payload/src/utilities/addDataAndFileToRequest.ts b/packages/payload/src/utilities/addDataAndFileToRequest.ts index 3fff110a57..c07656953e 100644 --- a/packages/payload/src/utilities/addDataAndFileToRequest.ts +++ b/packages/payload/src/utilities/addDataAndFileToRequest.ts @@ -19,7 +19,8 @@ export const addDataAndFileToRequest: AddDataAndFileToRequest = async (req) => { if (contentType === 'application/json') { let data = {} try { - data = await req.json() + const text = await req.text() + data = text ? JSON.parse(text) : {} } catch (error) { req.payload.logger.error(error) } finally { diff --git a/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx b/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx index 762b49493e..965d90478a 100644 --- a/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx +++ b/packages/ui/src/elements/BulkUpload/FormsManager/index.tsx @@ -3,6 +3,7 @@ import type { Data, DocumentSlots, FormState, SanitizedDocumentPermissions } from 'payload' import { useModal } from '@faceless-ui/modal' +import { isImage } from 'payload/shared' import * as qs from 'qs-esm' import React from 'react' import { toast } from 'sonner' @@ -122,7 +123,7 @@ export function FormsManagerProvider({ children }: FormsManagerProps) { const file = formsRef.current[i].formState.file.value as File // Skip if already processed - if (processedFiles.current.has(file) || !file) { + if (processedFiles.current.has(file) || !file || !isImage(file.type)) { continue } processedFiles.current.add(file) diff --git a/test/helpers.ts b/test/helpers.ts index 53b9b09c1c..11e4967404 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -391,9 +391,13 @@ export async function switchTab(page: Page, selector: string) { * * Useful to prevent the e2e test from passing when, for example, there are react missing key prop errors * @param page + * @param options */ export function initPageConsoleErrorCatch(page: Page, options?: { ignoreCORS?: boolean }) { const { ignoreCORS = false } = options || {} // Default to not ignoring CORS errors + const consoleErrors: string[] = [] + + let shouldCollectErrors = false page.on('console', (msg) => { if ( @@ -435,6 +439,21 @@ export function initPageConsoleErrorCatch(page: Page, options?: { ignoreCORS?: b console.log(`Ignoring expected network error: ${msg.text()}`) } }) + + // Capture uncaught errors that do not appear in the console + page.on('pageerror', (error) => { + if (shouldCollectErrors) { + consoleErrors.push(`Page error: ${error.message}`) + } else { + throw new Error(`Page error: ${error.message}`) + } + }) + + return { + consoleErrors, + collectErrors: () => (shouldCollectErrors = true), // Enable collection of errors for specific tests + stopCollectingErrors: () => (shouldCollectErrors = false), // Disable collection of errors after the test + } } export function describeIfInCIOrHasLocalstack(): jest.Describe { diff --git a/test/uploads/collections/Upload1/index.ts b/test/uploads/collections/Upload1/index.ts index 6cf7ebf1c3..bc6580611e 100644 --- a/test/uploads/collections/Upload1/index.ts +++ b/test/uploads/collections/Upload1/index.ts @@ -26,7 +26,7 @@ export const Uploads1: CollectionConfig = { relationTo: 'uploads-2', filterOptions: { mimeType: { - equals: 'image/png', + in: ['image/png', 'application/pdf'], }, }, hasMany: true, diff --git a/test/uploads/e2e.spec.ts b/test/uploads/e2e.spec.ts index 191e3cbd3e..66e54f0e90 100644 --- a/test/uploads/e2e.spec.ts +++ b/test/uploads/e2e.spec.ts @@ -65,6 +65,9 @@ let uploadsOne: AdminUrlUtil let uploadsTwo: AdminUrlUtil let customUploadFieldURL: AdminUrlUtil let hideFileInputOnCreateURL: AdminUrlUtil +let consoleErrorsFromPage: string[] = [] +let collectErrorsFromPage: () => boolean +let stopCollectingErrorsFromPage: () => boolean describe('Uploads', () => { let page: Page @@ -99,7 +102,14 @@ describe('Uploads', () => { const context = await browser.newContext() page = await context.newPage() - initPageConsoleErrorCatch(page, { ignoreCORS: true }) + const { consoleErrors, collectErrors, stopCollectingErrors } = initPageConsoleErrorCatch(page, { + ignoreCORS: true, + }) + + consoleErrorsFromPage = consoleErrors + collectErrorsFromPage = collectErrors + stopCollectingErrorsFromPage = stopCollectingErrors + await ensureCompilationIsDone({ page, serverURL }) }) @@ -744,6 +754,55 @@ describe('Uploads', () => { await saveDocAndAssert(page) }) + test('should bulk upload non-image files without page errors', async () => { + // Enable collection ONLY for this test + collectErrorsFromPage() + + // Navigate to the upload creation page + await page.goto(uploadsOne.create) + await page.waitForURL(uploadsOne.create) + + // Upload single file + await page.setInputFiles( + '.file-field input[type="file"]', + path.resolve(dirname, './image.png'), + ) + const filename = page.locator('.file-field__filename') + await expect(filename).toHaveValue('image.png') + + const bulkUploadButton = page.locator('#field-hasManyUpload button', { + hasText: exactText('Create New'), + }) + await bulkUploadButton.click() + + const bulkUploadModal = page.locator('#bulk-upload-drawer-slug-1') + await expect(bulkUploadModal).toBeVisible() + + await page.setInputFiles('#bulk-upload-drawer-slug-1 .dropzone input[type="file"]', [ + path.resolve(dirname, './test-pdf.pdf'), + ]) + + await page + .locator('.bulk-upload--file-manager .render-fields #field-prefix') + .fill('prefix-one') + const saveButton = page.locator('.bulk-upload--actions-bar__saveButtons button') + await saveButton.click() + + await page.waitForSelector('#field-hasManyUpload .upload--has-many__dragItem') + const itemCount = await page + .locator('#field-hasManyUpload .upload--has-many__dragItem') + .count() + expect(itemCount).toEqual(1) + + await saveDocAndAssert(page) + + // Assert no console errors occurred for this test only + expect(consoleErrorsFromPage).toEqual([]) + + // Reset global behavior for other tests + stopCollectingErrorsFromPage() + }) + test('should apply field value to all bulk upload files after edit many', async () => { // Navigate to the upload creation page await page.goto(uploadsOne.create) diff --git a/test/uploads/payload-types.ts b/test/uploads/payload-types.ts index f75bd6fcd4..038b568d30 100644 --- a/test/uploads/payload-types.ts +++ b/test/uploads/payload-types.ts @@ -64,7 +64,6 @@ export interface Config { auth: { users: UserAuthOperations; }; - blocks: {}; collections: { relation: Relation; audio: Audio; diff --git a/test/uploads/test-pdf.pdf b/test/uploads/test-pdf.pdf new file mode 100644 index 0000000000000000000000000000000000000000..845e38c540abeb767043607734089e738d1c808a GIT binary patch literal 1844900 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∼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

D=Y@-Ns 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�*)adf`$!0s}@x%bp@MY^~Qi4y~5ca^O?p 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

Scdj0$us(idf-MH4j0{UlKn@T^2WgkRnS7}=P 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°IK*~dm!PTOu{YJ?TO|cFjJc8qgKfH7piY; zDyh=H_wZ)asmPk!{^(F1{{^}^spD}>% z_ilx9G4n-1grnf3nWDV+#pxfAwNG_6UZ9{ z$j8P%O#fdU{ng964CxAiDy4(zCQfrPpfijSn zTWp{hjF2MX)EKBTU`9vd20dxFpL@Wz`g;iX{dNkqyTvI`y&Xz<5mnN)fk0$lP(ez? zd=T+Pf%-8$o5B;(QwEVL+&6gXwROksj?N0?*R$oDf}4-MR|%8O($Mq*0t>8tvU<>h z2m?oAOYyii=aN_9QhRc0uR12TV3qhz2TyVz0(f8m_svBD%{An71lN&Dic=chNYs;#GS0^(NBPMXrzRBShLVu-N$C!$u1 z(-aTeEluVs;6nia@(g&~UQOVJUC5u*OWS6z#fXNttj7F#rKolrTB%t;bQihjnfAgj zU8aO=jx-)O*YkrOe+q^2DOAQbXABK6mkBAFVad3YTng`@u6o-dP_?#GWkT&kXFb-RC9Sw#Ij72 zWC#3)nh;9Fja=3z0*Y{c*AcNVkEHSZs3xGTU&Ule9Wl{f%Z63Twa-|0LdKnTk=kr7 zG#O(EKmyjWqAZbVwfo$2UW`y76=)!_yvE4&gE<1k59b5Y2(8sr+S3ZBxF&NucMl`m zKrm%1d6Tq@mYUpGe@%z$7D{kX|9qg~pGrgb)qHa3NlEt_7K;Ra81*vSKt}f^{-0|f z!mHO+`zsBqbgYTaZ5}v;eC%eeD?Dhz4xft-fF-j@0==LPtDyiESnDmNGLxo8C}VsCKr#qp!T1xXfT}&tSQ(a^ z79RcU8!vvztp2YXZ_j5RumPHU>_3zVp(8S-Q7#a7TUwpIRyn#&WSFHwa|D=O9Fu-pMOv5@ zQY28d_EuDF0PZs%+D*Bf=Ns9l3sn`LMP_)6$F^otoZ^kB%?n$Uku~P2z;U1KkX>T~l~Fl?@yTK{JZrU-MI%^AXIzVl#wNk&KC@HU548L* zrKS6Ne&v?*R*0PuP$lixf`Nt3z)R}%?)WRs@%;rA`K{RHFRbfR80=GZL)dY`9nz0& zv_z%$?~RO@M8#G$A`2G2ZWtMdk8h3MSt`@S<>Y>HpW ze%1aN#5pRb=t#y@=$3&je2k~kU8j#_U5hNY;sE?y(N9-cw_`<(870hAzY2DuBc4d#FF_N`~d{+sftYo7_DV3Dl5H?WT74(?ZmK{wDH@{n>&QW!!2R9I1 zEkZ{9O?jW!OL42tbK8`CI@~H(tn<|kCEfq$UQ6XxZGF!#RA4iGQM@cW}a3k38;7%X) zM1Fd+Kn?SlUQU~3WR8(COMn*VA~bnnwv3T-<=#cd)0f{j;>&HZu2W)qfar5AF6@;4 z?Sw-dlW9-3xyMxPun4J3Tz7j|NVOlQ$Tcf3aCA=E?J^BYm3*J0kq^|DycF!(g-ib9WGc zz7G)v8m~1toy4xfvE--tHDB6i2BFmz_>^=ep*c36O~kjZj|xtbuOB*NQASJ8snr8V z*T?z+Piuj>847&4lqaFmdIxHR;CG26EM$Xqx7e2>f@X|2NpAEXI)8xWpRbmq_l39b zr59PLZgwbV!gilyp)Rm?^ z&vIL}PRm-%DkpjUB}d9jQ%O)RTTA|#BAqrrk=1+oQl5gwxR+&<%AyzF`w+2_6EOEI zUqvLSSlip=m@fypTn$K4&7<4NVNVc26ejed)Nxba1`IKqzYt^CT&>5%6u{%;Zirk& z{L*i*D+ zG1?22?+n(yF4tUsubrsHJU4BstvsiuxNw5Eli=XGZdb{#gLB*Q5Xb`~en7-%t?eX=e48dj846w6n9k-DdY_Z|nGiOI{78^{DMJ*>K zBvl3@jo#*odxz+WX91(Kv|})*ale}k8+_>7E*OO=2irxeBAVI%@vDOu*qMF;MFQYW zpu{KFdvh%AmJ0YJ^3`zKL-!Bh{8uRF_SE8zi-=m-?e2-2z)}630mb8k-zP$MAe7B| zBRh2L5_7?v?kFm|XP<3m5d-O+=$Cr=@#&`m)atf-7RZ?|jeCPxlSBI@74$%vbOO+z zdB~lPAGX3aj-d+8Y%O?xk zLLViWxl<m|;{Bgmg#H;f;74XsuORAyH?{(YEliyn>w`nOr~IF!39YmC~Z=c~*-| zfpSi)-+@}x2tRc?hZygxXq8Zd1M0Do6;E9JOznq>|BE7ix4Uw8vvNyCZ?|qV8m?s# zgZbyeoVoSFpX0WR1@xt1w;BHY5X$@}IE#Ci| zAYrQrfP^x((`w#9``0>|x*y$PV)$r>%5+@-zK0BJ00xJ^ocQbNp6Y(0{c#s&XD=YP z2wq@+)fDV(kUwWnZk+-l-8a3+?2!ITxYhxIfg{}C-7vy1hT}{2N42?iR#Q*fqiFp? z#UBX{0*jCVVMONd%(8FR6+01%SD9+2wf2|m5bJRaJNfIg;e*<3t1=td)lvydBvXz} zm~kG+Y9G|WeuD`CNOHYTjEalDw40%rQ`H4HnDc8Vlz8?=j8GUnCvN2_n6V`xSV7OK z$wmGVPjZMF1%BBeC*Sq#4WLuZ^l-A%9!9LR21ZI1uDRlLwvZ?potawllvFdv}61DN*# zuums{upjJt4vHV=#Fc`mrGqK+EOBW*lQ3J#hrx0gLb_Ok7rQ4cb}RTZVdJu@;`rVRV}eszF*EsHx%) zr9s;|c3{zmns4$kAh0%fAs}Jc|nWXSoDJ<`g5Ur zYTv5l5S%AEBvJ?T2k3c`Z#V3N*ANs_PJ7kcu)N1$*JZoGZ zf;gAs8%Q5l9jj=Gemy#I)`t{N`#s`$<^IU`M4TU(`+R+*c1nD)Kn6qYU)p@x)c_Q@ z;P)d10z>?S9=wb6-2Z~GNvO4ujdAy$JXbRJ@Nu*VNX8#x6_1xKC2fyiN{$~j)n}Ed zHGavG))sGs9Nkm6?8+ligx*BG@bW6D^UL=1+XHF_sJ0(4Qkl=2=zqYSbo-)tfDFE^ zWCPDBRbbal@$)rF5NXLCD{89s2D`H~JM%OB;zzCaW(CUY?AG|Ch+*E%UH?}TaYqqq zPv>;GIHdubF@4G?S?jGM@aJ{z`|jy$brO1{csi{v%e9+`amw08OymTvpKQLbu!UV& z_wgup#B+G$-lY#jIJBlz)QA`iqSi?im1fG>%J3mqk#KfOr(~B1`bAha4oa3yzFLdM z-lVc-c&>D;=opwLa!^BjltDCHwa}A^meHaUi^Uo(a|(u>qdk7sGQ^F?`KqmAZc%8t zp}14twRGR{EjpJb0b0SlTtU;i5fMe(QFxjGAQfQ{4{qLYa4Tb<^kD%7JV<<=A@(Vn zLMX#OHt~dNf~0s;Wxc1_WJK41vf3KSkXmb2mF{s7DdIdP@fVtr@fq?rG7Sss1v(C& zJo}@Ma2iwJmR!=eNT^T-7+?mD#oOq+u8tw8ny@LL0_BT>di#DMWs92Fkf0MkUDn-o zrEp)+`a&l(>n~st^@1f1Y08;S)7Yyf9@{ifMuh`15^jyI$72)_M$50{vWM7foe->= z@79k^F(y6$x=Q+%Fnz@6wQ9_@!N!rK-x$Gx%j#5yN2Y}pv5SJak8AtQG0}|H$kj`; zve~W8NhGZNJXoySZf7-o9W>X-={?m`mD*)B`Tgk>j%!SM+lL7Xjg+lqA|p~~nY>IOS=Jm|-@X}N zJ`tbKmxQ>)_6RCcZ=y<0EJN@nnw?R$sGo#b(?JlhQ9-IN2b_qk<7@MBa~(E$emqS6 zUmbb-%kG0`CI^Lg%W1o4%Z(LdF6%V!R|Kx@P;bGN@i(JCJ$GS*cM0G$+k~HY0R>EC z#g8$>?)>AFhx_vDCDG{Zbe(#+$PKl;X z=kn#!Gg=*?OyXsjRjYg2_}qO4WcD+bH~p0f8aIkeqr{(AjyXrsGgY+i2Fn>*%8d$Da1ZZ|6dDzz0K}blDpFc z3rnQzG>b=|ECXXQ7kJ|BN1opw^ND)yP$x7bGYrO$z@sOfqr1Vn!9-`fiy8bsCF4q7 zX+u?$L3)4-g+BNu#-5tCx2uDd63m_Qk}xu&4mr&QaM-VIu#&q}-C#IXp69i%LfLws z(IH3xrqjbh0OHcLbcj#05yuoK@clYcNQ&jdlwztIOXJ>j^<~Z+(iJ4M2@TdfIHge>yJ=5pU%g@;N=9}3ZmV*hD+)79@ zsT1MAgSaT|cZ3Vsu#JVuz9fauB1bH!e@3$&lUwsvxYf|AzCc~{>z8y9XNp1iiK9YU zxF#diq@ZUK$TaLn?8mq}lq$_fx~)pvUXCZdYO*#!tbbsZx+FBs7N#0n}?VqixJ zp|_elLiQ_X6@As*z@ROhbRE|#V~98^2)S5euHIMwp}$b=pgY-i&X}}xpU*>*T$^o` z5ToP;O9Q{+Xk$KvDz3w8LlXF3eV@5xuJ=$Ei`Se`y!OsatSUmG zGHI(sL_V8p(htr(<+((LFl*lFOc`%=y3n=(49>b6cEyLzFd;GD>n8o=nhD6H`V@*Hr^W{DJ^ z=^)FPXmQz^l++r11y$VDZo)`irRPY}; z$+o5hDxynS#Ln@0;1w?5^6P(>m?AcOv?If#;LJo$@S2V|VmR=dC6Af50E^5r9vJwWgpS@>+!5dB^zObPQq>7VA*EH&cG{gsAEHRO-#izu@jT-zBbr?pBx~E4 zCo|)$@$ad`Uu6fN3qB6`;mYyBXWLEjbHW}MB4|~)t7_$h>0L+GEWl}R9n17+7s^fi zL40)%-IE9!h#aJp*Y!Kqz}J?NB`hNro2ZH-BEP3RKM@*=}kp==O(|?F75qgyxr-y%%WvZTVHMOC#z@cc->^@X2W9TOd zP9K47^xB(IjBlF0vC#aS3hJ-nO5$rjy?5J(Zk$%btRk?Zb}O)%30tA&pXIb$<_7*mYd zJ7*ZwCsC$r+0)g6V3?RhG(u9Zki`L446kRhtfw4>E*ESNZC`1-@HQH7i`jP5u+??Q z0E+Dj!R%_&vj8X;bdF^~dzz*_aR?X;Y91Y?CZugnG>MFB^`4>ob))PxkD`Ol^$VzH z1%6>*>1y@o%tzb=$`|-^)TPd{9%Z}Dk*n2YCg3dYE5%oHr^q=jRulmUTUropFd0rU z{D3D)?j?MK1v9Qkjl;+zt|cEVt!qtvMna`^OnoDOa_^*2^s|b}h)AE3R%$ks6iIti zB(j}B?bDMbnPu!LT2TpIHevE-zf#w$FiY`F&e-66$XvBO3w_GZ!Bi+Wsh=Fx8XW|3 zL-zO(9)E%hW*KpiP&KV20}ah+A=6EovP8^|PAEgfpk2Z}*6rlw2gv_1$P;h74{!x6 z=k8*<%)-Ebe2&255f zV3$fXZC7!`T8c19G`N<>sHNg=P*Dww^t<~wJ60tr!KNyMI`H!hC(AjjbdlJS zIXiX%^rRXXxSY8=bh;Zzfl9-ClMNL4M*2)GvPix&1+Q7$j&T4t#g1dP+&^3m{-qkVWZ*0}c&TZmmpB&)`lQif+ z{DS%7HR{@_%7>;;DN3Aht67se$&4++b9P+#$u9Yd-NWSnrIF{kyT}bQ4Lwfo-tqkI z^%H(FK^E5khrnN7Vq4r!pq*tnUcc|i-f^2QeI@w z@kIAD_@`#4m1f*4Y3HnmUp}DppHfKS+l|7Vu&au&Ql-1>W?SvL3(ddIK`x)Z<`@ni zkd*ZVOmiXY1qWE)x?SX$Z&1(|Cza!Ib_}_9r$@cD>?O`@Oa5wzYtBo5Z#%M)Suda! zLD?ootdf+Np}E8E8WC2Iqf)0c@=5$0%7XE{7tF=(MKfGa-D#404FHqAr3gy( zh>a4X* zKrCkj{eI;$o}gg9f)6~W><&5rFPcc&{_>L&1K|2^2kEc7rsfjRjo;p#u``jH`Jv9460mgq^CTq>D~$X7hSQMb4tZGC_5D z_^=v{hZG+eIl@QlrHPk^=!1zcPhGH`d>8#dz&}ht_w{Mvrp5LF4~wMuElVHEEz=u` zIP~AU#C{95u*&-GRjQKYN1>l*Zkx59jW%p zA94why3Z(Pn1_=zB9q5=g}(ZcYQo>ODCHTA?p~Q@=_E%o(Fbh30ShAF7oDgzg-A*A z-T>?=B_E2-`1if{DJ}RxGzixnC6`IqK<}S6@m(izbAg+UeH{_;7uDdtr}4abjtxo- zr1fi;vF;_NUScBjNM1wR4B;030xOLXa+A;18edAKiq%UP7zu0Phv{ntJi(79#6ELG z{wgRzGvk)Qp@F7kOFK#W9QojT(l>D-t-lYa9suxQ>+^*5QYTt=MsG26Bzh0-tj1yu zko^fk$S^8E^qgG4ES*MWB(#~ zhlc#t`O<;zKKZ^?O=mO(&&5^=0*0b23GgmQ`0a;1@rW3izTSyOsoG+OEO42i{7k1N+eAIcXQ4HF0+u^goI*+0 zd)AnW3cYs)iKxb%39KNd7GJ){#?+fq2Q)ry0W7mfJ|4sVZ*xj0z+|rcX3c<2DhSi@ z%pmyT^cIC){VcNbT=vra@UFd4AWng+DX-Rf3y;aINQp|DqwM9%BvzsLgCZ{$Ik?pWH@RbbK#NY zNPljSIbANrd!tz0^L&<}WcktCW8_j76)nfN+wGQV&fG$?;oA51DJ8a~{69}$ERApFK9#>6)-j9G{4mj_<-w32;^0c`t(;r}2p{;z z|G=G&(=NE%O2oQ*RGJvsOv5(tF{9G7Z|tKf+(4PQ;G8~D*zBAlbCeP*C{RJTcqze^ zy)wb|jqaXsh{eOtACURqK?I?f=XVE2Oc8fHMYCxLL*dx+78tktcfG%ljW1s25enQ! z3r0FMbwz^844)ju4?5@#BE>ObUb}ePy>!^H5j7CY3GOlJ^$*UQWz(!?aSTbd=T(2@ zKMg-|Rxxk9fK~<2Hrhsnsn_itK|?r)Rh6FM8gX2>C+muBI-MdX^2}nDkDlR>XPR@3 zau6446X7zx;5?`w%`_`WP2M!xar}wkg0k|%OSM9xwxH-xF{f8x@r!K9Y&BEh;5vWR zdc;5)%B^5~(>wm7MoJE<2}#S^)i;tFI~f)8gaU7s`Lmcmi96~AwKCQlg@E)WQjD5< zx|t3A0zpzQY|2X7(Q1f7UJtY7AGHL5he(`I-`fVGC92lH*dR)ng2$r~JR!dLxG}~( zH8Sj7<0Eh$-U{A76DiXzFwmU7pr5eJaosP{-kDG9v_2%$Ka{Z^MZC)~UECzQG)l@$ z`bOPgaPXPB!e{LLE(WpKEOaeFKx8wZIJt#LUsB4o^#2{rd;6n9XnqBi7;-fp!o zZ@m2c``16dYeULYjvrkMl0G$^VLj`SBSW7Xlsr74Hp?(CQdQ0&i+-KEvT^dHdwOFU6}d}4?n5uBoI7tC}$8A%Tz}cleojtM%n@5ru1gL z_T!<%m_v$uDZtJLin=A>hTBj`0O9~@6jrC4s5ZEYe^Q?hQn1}G#yV&a$uy3+=l#?{<(!+72@2;^HwH^lf6RtbKg9zzY zcNc|WEy@u!Mhr9;41b*wC~P2G6@jd835&wR0BnR=@NfsHCl1ToSGj^ui;LnZ_7eDo z^q7*7B4`xy$18D%u<%7?N#UuaE9D3@YS}#sC=xbN&qNMeKi4b*Q1q8AE%F+R*#jxj zuW5H}HJdZLw+NlRkmzh@^VTyE(QX|Ao*yWX+ERpa6iGwR#l^P9EI#w)Omj+5k z?+xbFV&HqLjwF@!I3f-ZFoeG4x$g4DxS0r0)z=Uzk6RU2Nk2a)h}(bL{6I(im#Bte3&p9EGTAE5uwK#zARjeNv% zl~yKSIN(^7r}gLYuhiz%JIQhBsCrAyID3l_Qrx{u(A!o#P8~&Ygb)>c5ll=}=Z+=0 zS^YNzK{wx)@&XVKtEYhX=9{y@n8Tg|kBz68z4ZDmggq~T5zP&jMdj68jApGI#UDND zCgND|y06sk?Kck{KS1#hsA6cMaE!)@l;VO0Bd??8_>LsS+WGj8`&Hj7k|3|-%L>t$ z_z_2S=EPc?%jvaA{)6!K3}3mk@OPx*VH|XS7)nsK6v)c$BuG+ogZE;B;jz#UwzCUj zFL0@TN+98~Y8bQF;k6#n~>7Vh`$gnaQdWPTLJ{;Qi(D?%_|8%u1CrIDybhGx9 z029RG46+F`6h8Up>~!D$@q9G9Tklo_ci_86m_k{lPo@;Et}?l^vzRphctUxjCN!Ibv(}m(l7C7+(?S zA{1G{=z^+{ls+^m-Fdwfje*h*7!pI z*7jabu^OaQ!5nIBCw8;4seWKubWTo^(TJSd=4=Cokd*|j!ge+|nN^{6#Wry>*7;ea zv5yfNy^DY(Y*w#BwJ?T_5nE7@sxbwUHCARt=-L+`6Fbe1LZcn)+&xPE4uAd|YV&pj zj=~4Wpa&xU$wXZ9Ji2H;bcqs7{`BSZE}-ibjqz4> zkOAOhql!`NuENl)^-Mm*Bn1j~Hv2vcP3;*_E8}3D#D)%_HrED4BX3cTvE?JM-P?Dz zUEz@l)Un!5#x!Ez<_{)6Ok64=K1}>y4RNHq^wlXH6vVry;WF{hH;k{sD>&iOe=JmP zk=FOcOgsTb&!Pj@m}9Pa<)PvyeKXwYlUtXC^7g9M_}oiRZ1hWzkLO94jJ_0MWyGCj z{H#K$2p4q7B60T~!Q~%lljouQ@pvbsz+zTSg|kmF*r~=j!}9GF4EY^JM#STpf?2cH zRbaz6tm8g)oJ*@{QvYp8i5YYL)bW!Xwm8K$N1jCeM1pZciww)a$j4gDOS&D^#CeDx z@~q6;M(L!-@xJ18dA7VOJq`?2;b&?@C;3si(UWnIc4WH);$(OsIIW)zihHfuD` z+8c7Ji19+070C`JS@y=cm(6m5>>DJP@~9t+@8>k8(i=6g!mXDAx&#THGv?&gxJ&^E^k^s3wIXGCkQ?CHE zP^X`>7R|N9|0((|lM15SF)m01YE9-(ed~hF!lh}w!S(^mJ;F{A*S(mwVo#Gz0Xcag zg%*))CqJNyQ;C4A)>yd)heQJqmAt{A!!R!J?0Cw9Q(Zsr3D%HQZ$kf2Xe4{Ylf=gL&W|qVKnby$k!(jijFy3s|-`&Jr-y!bu zT=O6f#a~1E@Ay0qNroW!mzQA#7ZjP7@4D7JOjFtOEMa(p;2ESl`^{sLZ2E}cD1)z| z3RQy~_PcB3-r2-mxnh+oPK4jB-XCJ)25QI>Y4B>tlJ{;$6y{D@*v2FO#5YO&goOX)4H6x zj_#$?%$v&et9+qGY9XqXgOn|x-WoC?1db1-zG%O^RxDRur7oUtqe*o>jL!~gi#9D+ z+%MPI^YALnPC&-Dv#Jmv}#_SNZr&-|gk{3`|Z zQ6BieiAY+wuzLiEvCPmye$Jr7WzMII`!VHR%l79vl^cy*Bi!61kARV9fGSULoZK8b z2={t9mqmO~ssOKA zp^g&3{lTldVb3|{O6+v_&Gj)M+rRt(4QpWt*SKb>gr$*J(szW_oVU19NWb?BUsoi5 zNI%wTN(6vFzT~_;zg-&N_*K~p;Q_RKDdLg#7M`2Nr1<1Jqw$CtfMvYOqSw_sKyYzO zH!9mA2!)|U44c&Qx1Hjcj44x7Pa=hMBwx0fr|pOnik^64tB9bA;vTCv{b}9@(5tm% z5t-py0#4P=N5$g(?R&U{rj4=O8y~PXCW{tHOaqBQQJ|nE*rPH;VFmW>AI@SBOV%It zvZ}ANdq?0JNT{U0T_GVLl}*BXTL`MR!}K0zodhO>9D}5>cDPOi1wGM;pJ2WmZ^qe2 zTBc8MOIy7P1SIIaeZy9&r1U86-oJs=&hL1JVpssdFHS9}VU?-u!A=DPy~)v_BUSz7 zl9J}8$NRYIeK^8zbIapGZJkSndv{C3GMT_HFvnD1?6k6`0kBAKHCh>^%S^oj53B4( zPEElf@3KQ2SAJ6Q@#}ZrLJ5TJ$m+* zywsM02nyX5unhlg7a4cR(38@>_lwZ_qfWeC9c$*L7nn^aLSZFpqtlV~FnrI3EbkPC z{r5E8C3ii0(zLnYyK%j>d~Wmx$=24E+fCi_T_kc(fNkdPNwV$7noK=&J=4Ev5%K1_ zr^UxE;hxL9|A5PTgcS!-{)(I7n&+b~@p zeNL_vr(KLu5$2XbFo6mcqq-*YtE%)%a?MD3g~&qeM5_~iU#t1~=nDt*U13vogZnH| zsbU+uDZsc_+NysJVYpCPz9ibDEw%*6Gb)WxM!2t4e9H8+fDXRmDQFCl;ZoR5sg~Da zTmrGpxc0!`_gYw0JOuH;#NW&5mgcUj=zs=AszDz6x&qvn06M)Bg$dm~zA^k-*qnIKP0Cc2 zN?zB(cZZ3V|E>M8S`TZ73++V?xi?6?L{Bt=B~XE;ZC9-XlH%<)!%8LQXW$y;rmDvv zXzFAW>N)LHz|oHkg}p%q*H_Xx%n7Jw5(cCxokUbm3Yeg?eI!ntEw*tO1TB;+2G7%9ON##VVLi|9$Yu9_e1;qrDxhBHNa%y>rGWVp*w3F@(f_??&u~3fX~&Yi#4TCfK!juY!UYmzykySCL!tz8iWhL-49E{c(UXrQ+g~$ z4sq&Y^55V8ev6EC9#telfDs4u*{&Uc6pwraSsV`@u#oE8_VwF4wuSUll3(pgZY`+D zp;r6tMF!ZSzD*GrC^bYwqNk5hu+Xt>!Bpsa5_=pQ`90vSS$o{!}aAg z@?9vevD8Ws)*3#$j#1G*;JbRKPb5(Q|8bZ9q z;jMil73SsP2*nX<4M-93F;vDe;_h$rz>>ycjfKH;AQzcclCuI#=lK*}7K$vb9uuoP zT^`+@@M#(5g$S9!{-m0IDq#za-h!I$g(*qr5<%Jn%-|`MR_Bq*bZj+N%Ua&a%9m`G zGLE!_doo4qR!Se%l5%+}EHyt^>}^rE&XD6>K)SZTCW0Gtqo~Zl1_RQqxpzQbT7eV{ zKU%HB28QpR!xJxc8(6;coIOika>Pcz?)&mgwwBy`*Y*Mae;)h?g@_l)kCw?|1Fg~X zac=g}kWvW}e=qdc>M^eED!ma8ViZo#kO-M_o*$A$1`A{o-}%cK6Z^<3$8R@NO<2wp zEmeJ~lVjY_4GSl%%6oK^@+H&~rqIkIW#gG#KHJBmK$+@}u7dykRS6jDXXXegct-kVC0(aA68a=%;i%GBsZTRl#Mo7}yFb_!S0P=qbGVUI?KWgDwH$IlyD)TiBL!8O)HA&93 zj_6$Qa(xA%HGma~g(h_KGf69;hiD-Yf?+CS-vZ!dSfomnW3iEtX2E6vAC3Rsol0nbO=giXV z=lFCZAUgOx$U5d+@4|_oxy*dfR9EQEac^3_kDuI_HI-?*auBn?CW<|AlDg(yKAD(7 zucyb7^4>uKKw91U)m(L!%h)%XM5-X=01yKvQxmdeYe4Tas8-p`Vx(_7zx*&e=}&cv zII1tYYZWTvFM^1ksV`oaG|J;*OgY*XE4(PGAm#~3!mkn#3vS@{x8F8G>F;u4XzUMW zzZQsF)Ty_wW6KQ_@Y|+aBTMAW7$G=$0RNu@{ss`5yQZQkVYNNZ^6R4eE^U>Dz6Oae zi~;(Ww`K6&+hRh*ya6CuE2)yYW`<%$p-)7;NGI46UL0ytXuYpU@=gp-RPir+PWx|r zPIX_DX)%3>-h9kTlve~^arU&g4)})olhF(KePsJ4TzZqLdemjixvr;(pqLQnw z4sv<9@#qBzO*B*+R%|KW5zOBg@8J3_vjO~@H^=(kn^OxQ^oGPAXzSC25)PrrMcK=} zQ^7dPb+s{uE#21#v7?I3gZ*VMGW~5Y(zlYU)54dk+U@t~Yr8kvs5y$V^@gUqaX!(z zFG13B@8r?_n=vQh-k8(Mt~Nr%-lwGh{6d|S1RXyIgNub}!J{eBF3$PB%E=2~TJQM3 zyhYFW?!83@5R7&?#S3^9Za2nPL^?VC;>}XzU+S+KIkkTmQfb0b(D<7@iu<=cs*0D+ z5ROixf4U}YWlF2y$lQ{bVc9(@^n$7CzE+FLy%UM;Z^ohr@c(n*`@Af36u5J;v>G20 z$i!aiCqLkMA0~LMh;!MjrEF3>OJKN{l7e=tF8}-tuV2W{|EX0xLNg})Jo;)L!wCrv zr%oHaCn9=xf|&d++L_M3wFs4*bHL?u)%AN#R8GqKhE^x>(WIzc*jf)ggaeT!{NN3o zzckd62U1GJ&gC_TgAus;@nMJup#G~B<-BT%3jL@@Ov}uFvq#3?0GRf4K9j$mvZ8X z$CUOWFYpjP*DZN|`N~4LlRu-f7Ei|dsVN)Ab+KP4-HoPL@?xUqLxiXEVt^TctK*9` z-u}iY^liWS=woW>Y~_8Z2EcG!X7R-Y(5*M@?)p-amAuu}z7;1*_ubIj#YdY+(cb?(ww~DsGz@Pq6 zg}o&i`Z)CqSw65XE24=jmu(4rcYApptR>*QIPOe^UhyLFqo8hrJsA!^<&)TOcSARk z{loOQlgaH;&q1sVw?(xX;_LIN!j(vv_B(rn?=m8-uAOz+|1qws-C?)a)WAd&p=J}b zzDm2Vz7umW<7gzL-`oFmX*qcHC)oQ8%WD(|ZNO7LXRpq0&?cPDQ2?JuetZi(Fb|DM z{&wX_8XhS|*$%7SYeWr5M+cXfI>yjcjv|}uAbjvJhks1$fSF^U)0cfVUdxj@1MBYQ zxH*>*86@WjtZ?H9~F&d(TtmKQ57bSM8(xT@au9PzVHgb$B zuQtqd)5+UbiJ+gbUN;d)4SgHQm($2G{tg24x3PgQATW@bym0Sr({=Ian~8X}=A*ve zT2>L)b}mS(e6ML1jLfVoq;><4=IqHvbWa2WlM0(!D28!1(%th0?<|YF!0t;}h_Sxc zy1QknQ&Mm@H(YdaT&ht&4fEH11I`;RSXf2`Mj1bn&7^>!-;A3)BA}UCG^CG>$2~hk zjLXyr0oI6k3ZzW!;c{B7Gc9JPmhkXusA|#IyaO~(u)ov?Y`sDYjR`Tmte1nvY+P=I^izCwH0ArN(cs z%0`oyXxe*)2467Xz2&zJ)`-|1vGiTj9ArbSeE?@8(0}FACTW{iyhPhu-i}Ugu>N?Y zl0w%Y=N{q_4Wq(%?=%Ttf;pNreA!tRZHQ;|JBk-gsnxNP*R>#HpK!8i6rav=-0RCb zdPR$bZNxo1=mg%)axMylJeelpz(*DT17q7Yu027f(-$rKbr8o4N3LxO3uGw$N3Do* z`T)f!#v~J>V8LmV5N@h4tsKSNMIN(@y6X>ySys;F+KSnpFq1-4!6|y()L6E!#;>zk zqr{R)b2ZUjK^wLn^o+0M<3&sN#I#on*H=`F_01ZMHA{lfK7qSk^OS2Di49vnp7849 z_|XaomJzLo_D$_7sU0Sg`6x~KRkq3Ww!D{b>aqG*3V|c^je5Hwnq#ES-RkuEn|&kg zwY-a~3Re$G*!#~}`SU=b^US-yy9PnQee}!lw1UCBpAv_Yr}`R7ELl$Q;O`Sno{96C!-ac!A9hN=_DPoNNL|I7~(Bje#b z%o?YLSvY$ROXjnmjDFCQS6c$pMJ00qHNI%JhcoaOd?Hmh48lF!M2AO>dV9b=25R8% zu%uEW{IzY!O3Ua}m<%4x#I881FzUz6nO=)4ujxT~<%S3w2JZGGv@Xyi{lmaq4!P5DVObbf&^PcAe%D_ra*95| zYM9AR6r@4_zR@Av$v=5^LllIIN*xnoT;a~AvOm-}fyiBRxES-3^;n%>=2yg$ow9r` zApEDRF}Vrpp0|H&4+=ukU~jEfI|+lQrMV4Umd>lA!Pf-Wj5&qBrJb7TX(y5UU$@m_ z*2Q^bR)hD2~kke zxPqjt-0E4hYll$2>18fUmTG_VJ$n}>Hdea-h)r6962;SZN?u#l@3=*lkN^-YplXEv zi_EOM73#t|;Y2l8>GJ7jvX8=A(=#A4ZZUL#*!%|b%fd#BTm0}aa;_S-KG`uOt;!7~ zKw!h4Xs`Xj#NXCDp^>RWVnEgrv>D6kA8~Yex*|BdWeKms7|Dw1RWi09SU`%#Lpsu2 zX~@ylR4=!T_l?q`h!5x{OVri>>Xr91?*DV#PY>T|PvyKbC1Pxlq#sR^a^7trwQzt^hcLIKNhLoNGw|xSH*d&?%Boj3ha1=8w(xU#I@ndIHN%xvB)^>f?MQ zKQQyh0-;Z3ek74WGaO>V2t0c}A&-L>=cUNl=SjCv1NvR0=F)}P&^u!Xa1Qpw^0MzyWvVxY6ns~A@rtLJ=jM{g z=c`GlpZ}>rvl437s%yGk5ln4iH-kweN{!nVXfjd0+&le~Q9xuE;E>6ML|oY zc30s-gg?}G1%Wf>zc=#e9Yr?~qF}idH|N*!%frE;kQf)1u2UK=`7sxe`EgI(jHHuh zvu}TH%r&D&ZsLCZgR5!^U*2gj7$%F(&EXVPOPU%~BJ%;?^d^aj)>@zdy1D3!9aSrn z!6)-c8NXB^6?xC4w{2ykB&yz0g@F^vf_&Zxl|VqjY~j~vj(d6Zd6037oaSWYQ>XJ4Jxg?#i3yG0x_A}0dgl}mP6_%A5W65v$NFtr1 zbzWwA%urazhA{6*Fb4Q# zsstw5?Gm_$QKB%vV*TRP-$LP#$4k`5DMPH2}*FwA+l|Z30W` zrOVnGEL;Sf zUy=b5`1F$US2TCHFmYvup3 zRGoS+hLTac!v_GL=`CH(6ySr(WY$B^K>Hwe1CoX6G&g08=(dU;)~6gX!^2w$WeI-u zHwAm{Y~KLzXWh4>yB-5IDIPWwoNg{$;Nzer+~$d4YOHqLMd_b5Q|Z24vvT$bj;}Sc zV@ua4)i2Ua8*jMqp{dRN}1(ic_y zlAHJ6$#4>vTNM_vh1#oo1kwW(kz!Kg{;cPT&$sZL!vA9-ot*v6^uj-Xou5y_FCHLu z0bPF2I?(IWo3CBT-w8k#e#^xpeDL{X;g)Hw@WrcX8OI_#Ekz!P6ra;Xf6#oPu>cRb zB2f(V#ahh|+FOJ?MJa2?Chy*FvZ1OW88`Doq*{2P9r}kv$>iBqUh&K|gf^5Lw@7_8 z<$J#HGm8H}RRladDF+8&8Xg|*7Hz58)eE2p8_4gl4ERt5-? zCn5wc7UMXkBzr#naS52Fjy=53oiu0?;erM{QB-k~(kZu!iZ zfyvXBp0t!ld6U&Nc+Sw{bmFcK>uy)+b)_RVqNjS|{y0b|-ENzJ_~yZ&O2HQpP{K@- zf3=@*6I6vd*dXCwtm@wN$T7ko4`&gF6Ci;KMYQ)rQF4N_1W1*eFBnn8WaZ8qP7Wr7 zK{KThj!SxVkJ(es?tGp^wKwRic2G?#`IMC5dGOEV|C9~>-<}D((E_jz6(5!OwXkCG z;;u<>p^MtkX>Aoyxi!rsSM(fat-xQ8_K|<563e^-Vw%!itJz2#5gs0R~(f% z>A}pg9wI0O>2ZR?j4C2j*=VUz^%P`IVJw|YR+s5wByd0L72k|nlU5?hM$7uep+FbU z!`xgLfb)%jJ)%K-B(O&iH()U&q{cN&AS`yRQOyBd9;uWLPi?P+P^jN!E%dS^fT6~$4Z%Yf>H7pfq+mNN zM|#9=Hp3OROJ*S-_4ewt_2qzMUoIDMonn5R&oF8&@HH#8YyOgHrWC0~wC9BbVk32n zSI_m5|OpbnO;%%Bv%$q%j z!5OUYDI~QU(6S8EQ0A4UY!)*fLpftA}ObVPpEh9C9Z`yYco*=Y+ z$!fH$C?%2+CckWC4#;Qru}2wN9I5<0FPT5vEBQ0*mvxp@k?)ewG_! zCa5dztl+U-)R-6Aql${0t+G1b$`E1GFcEz@IyuJCNj@JS67{lnE|a3^UTaKG zS_3usb@kxOAtnaF4SbD<;(XZUo}ANu8*lV&rtMS&dXQ~qcHpx(CfD@Z8Z&~u*wK<2 z+xw^`wa;g9Vr!DLe^oq3@K223=IH4q&W-eGS^giPN8)K_J4)F<{G%20IJM-IekD|8 zplFvMTraMPUARQg*{h-X8MR*M>y_&}i~h71C;uY=J-2`6^PjmMo__x+@^iWUC#7a7 zOMKBVG9P9dJQ{YjY+zX>_N(yR6-RWb%PGKI~r&|ml4YFHSm1@zeFpIXzDnOz)VcMa=T z3|6u%lx>ud!yXgy!N%AHX!AfV)7<)RZ^q5P)AAAIft0EGe4SZxv{o14Cq9_9v^4V! zW=~{dqdovxB0H!+gyquZU4rHxf2a3%DLAl-hGk2JUajcxSG3ij{DJ6bZyU{*#RbH> zlh(n0B^Ao97NPdWt-K*-?q z`n&s*fI?hYnHp|ny~)=xdi)Q3Fc)lk&TK!F8t8fGLqP!}sDlB04KeQn&DeNZ88E%!_s2+umiY==H==GCHKR?=H4F+mNj?_lvuHBS zS=s1C^z28#&d%H%_W06+@j$V`p;oeB?00HLb~mD*hzU6P+4yPRGVx6IG=E0$6nTDr zU>|9H{K#&h!S;$-fo$j{053x@_H~FHirVLBNGJ7hYI9N{Ur1>H*yr|=cYxa~fRL*q zT{w*vbL#_gv?AHi$KE3NavK>slO#*Xiu_Er)SN_Nr@t?W1@Xu3m`p9jcMzP2Geh`6 zI?Sza>*}ytO@%mhBV2UO#de?b4=B}5#KkZgV!wTtQK~Fap^NIjVGG`bc5pdmgsIe5 zkJ8=Fgl^<%wwb<6VEhZ#$xmwf1&y-g0rPtTDYvM8ZvpSr7Yo(p11#=J&`m-HJa%_- zsTr!O(yW%hUIU)7{;yz#9yI#i=JAyph$yz76riS*k6lvg0HpS3pnGR9+DV4H-znnA zipti^mE_JgUarN|E-)iWrz9&q6o}JjMz$6iXaO6>$fu14*breln1}4{WJ>OR)3;Q& zD~O9qb<~$FfsB5NLS#1QCgDa*#YWsZm4(N{Wdv7L7(^m}S5PR^;pP~I7yda(5(7eW zRw_0c=VsQ1oGA0Ep`^?ta^;6|5=975=VwX+A<7FN@Qn&YxFy*~h<@7V^`ai0ft@Aw zjzPM5g@*gf!XQXyY+WVJ*@q z*rc~-JZ^3>H(Y>?8K+N@E56)h2Bav|I2+&yPw`N!!QPc&oT{!*!yK?tmF$rK^t!( z^@bubzA8}{asl2)lx?tmHB?jk9OR=Q6G=w^Tn~79(1KNijoRdDaW@K&D;!M(qlESS z#%_oOkhW%l!IsqGSgQSotsnC9v*9k1qp=lPK|N28zboML;c*5n9d_E#No7)iQ8=h! zzkn9RH2h9HQISJne~P^D4^A(or1+3_>F|N+dZB?&55F`~BvELihv&!Ki20-GrE%!+ zP=87faLYO^+28=;qHaV*FiSR0UGo__x^d1%ygnv{Wa4yk4D` zIGM3P?eW*sE4U|QtH-zsBqtg*F{&3oeA-W1+zlUJO!b$+EW)eW$LXlSRwjR!ME^3F zjf{o4!<9@Z96T{x{@nhV&wq(}&>w!vd{ph1fH_r-G6-RN((yzY;5NIDD28_+vDxR) zNBDq3+bp|WG6b{|lx@6=56`-V^Dg}j$C6P^Lz{r;TF$rBSg1&q4l~!SRc@bI&~1gk zN}o7QVx2(}k+?xLdMH9-vx~K!b%IrG)EJ*AO43uXXf__r9;An;^rTTxY99WWtnHd3 z335y|b|3?VThdnjw9Cwr2(;~xsCOR~2A$izh=2}^r32oAnDap~EIXX|PEn`V85X5R z-K)Y4nK(YFx~s_C=J7?|!DG)D-4XI=5e%6FMr-vxPNa3uB?tcVjXWpvzgAki5>EjP zy#XQje);#mk-OO4&Ev-wr@u}p*?-o()8Gan3X1}OF0vyKzfn@km8$!ikFD8+!oT2^ z2k@As3Xc&?3EMg4tR45AZAzPWS>7-a1L4T?BC!Q%tV%v@$6@`@eq1y*{EYU_FPPo} zHH}LBI=C*zD6^=M?~XJT2vZdtnFDB?H8~%OxMmJGs;$`#n-r76)UhqY)Sj2b-((ea{=1R%a6(g(aEQN zT0f#D+%0#)`1E-qbw*O!H&9A4F$)VJ5DJ`T?llj|%;`_Cbb^J>!eIO+1}F93qi7f_%%DFa zbi6@tIDJCboQODh6#9I6J667v)yHKn9ODy~!N}0XX_nBwBy_|hRmsAX-P5#6w85%_+z956j4~C;#YM&TkTB#NwvJ zEuxx&^h&l|b*DHx1B8gjT!bRFZ|LP;(aG@K5bj@d4fF+w5Bg`Gyq`mVUl(hT$3%u( z+LWp59p%1>26vqq^R7u8x40v@koX?W^EZ*jhQxadaiw2V_Tf{yvTRd${~t`=t8!76 z{@&y5-(x9Cw?!QeJz(9%Hz~}$=?fIwwb-kkg0HA8wnKb^{U#o+cQaL%i8c4&k-c$| zrasOSX4&USaDmF9uHtXrL*dcjv1l8trK`ak5)kAlciPkM?@u}K zPsHh8-iHS)t(51XsGJA9#n#r-Prt+bZ0n`Gh--G?# z5wOxWIAto~x#csZe@un^8a|gOeVV(eTknQ@VjSDrVR75)Z+ z445k0=)mmJZui+;=Ywm4d6AO1l8B6VuO+pQ$PDGsMc-sm5=;QB2|gLjTNpXylBDYF zF(Y<^rrZU#Rm&yD6s$QFfXQj5{F=&T#93$kg`HK;`#@a;xj@q%0LY%Us+2n;W|7tQ z71}Q%{^w!;H>d6L*R)8t)RVPRHhmI03Af++NC2gt z`;*yJC@uxMR!9oCORBnBSin9T%xyPv95lBz&P$N&y}o!v?!x9p4+5INR53lgF&ljd z5yMsS=2XK_!MR0jXgpjkw#OOG2R0$8Byh~>$!`W3*1c|PS;|5V^G2vHz5EqK_Y3P< zNpPcAl21@!n{;5T(j%o*fi@(3fwoDPUL^Hw3;^pl%C2q-b?Pjw}JHF&`94Smjvaf?3>@G_CDb% zo=>0kTq9o-%1yF~28_mrAmwb6?-^TIHBT(02GYrf-vA(RQVcWwH%uWCjHA-Sa9?Sb zOv!{koZi#%U{W|Gzs`Lfl{CYxs|lM4xEz1nw? zF(K$(udwE}MkgyfZlsK&XJHjdS-^|!i6a*Kp8F;wS=3XsUM%=wFv$aL%9ML+y_eo+ z*e8RCn9YNa&MYbk_%?J_a$4b%^X=F=7UX%*|4m3=N<2ON48PYro!XQ@OgjZ8N-9%r zlDnDnyy=#r8%O6vq3t+jM&(g?nHc0NYK2w79+?PpaQwY({nw9PyqP;2mJMmDplrzj zk{eK-0!PmoDlpZg?MNEPb5_6>*3YCm-X`-hQW00@S>0#Sw?cftoU%H0(~L zKLyIIvS8?gz=S3;=0gV<+-eCC$G`;y05{dU2U5cOF0o8%gYQms{>ZdYS;kw=Xi4e& zOSMsMI3?I9_Ri?O*f~8bX?hOkUmT46)So4vlmLWB zKI}&sbl)Ch?zns4Yt%YJ&J>B$yZ81;hf^m9^{gmTq%xM3^N)cB6TuAOM}gsLj9t#t za3{(3+gR3;sK^56G0XI3k*hqn*Y~)q*c1P5lZ*6(+&ilTe!NX zEU)~><2=mqWb9^j-cra9tnxutZ;LieJLIs{+spi6UWN*fK{cy&tBU;jV0d zdFrKy=EoIsX*&c+vf1?F_P>&pX2ko>zYp_zl=nPhm8sLESLw0mD4>+QT;gL{e8QN4;atL|AEMFzdyYTy@z{8^?>gVD7bgrQeBFM;1=#c?}*vm(^g@g`qMag_kt{h z14|6&9*e@`I_`2ukB;Xbr7+Cs;!W%>DVF?bR|i$^EOev zsV>0KQ%cpOBun5D{O}c?p0Ujiw}cMUa}55L-5Ibj_F|J9lGFe7aH6MA0B0o3hM+is zuNfvL%Kb28iwkkjE2jq@fzY|Ic_2t7i|Ts`TcH85WT&*fhqvK7V!az#*!Jm(;LC<^ zelsq0l{c=UL+h(9xS9Fuh03Yvg40a6+aH@{v{>LGUo$#mzO3SbL;EgIMVPIhD84w2 z$Vxv}ffYYYl>5~g78lQ`IcgRMN!U8rKch9$!TQA+X36Ib=T|mn8>A@PARe^YVUm@= zL9ozO?-@~u$46ze;NTd3b%RaGGNr_yvjplj=u~S3%|e|uljyAeG(kpoHd1$b(xmm7 zjAi126qc?oA5fIkTxaMZie&q#DCfp2&!POQLIFGuUj~poqTHzlo!14YTUwBYv3N%A zJo#T(Y@4?6yNU+mjH+pVqwciEQDOSODM#xZ`Z<9`{^V@K1N^AE``F`h&mEpA{mn-E zFHsskNq>yfp@8sGb`yjKWp)#e_n>T*akZc7FpAHHemS7auK23Ac5~ zzw5CtQ&Mv9vBwThXxc});I<$p`4E3ED@8Iv<6w(7!jcOdDlb04LO`8G?-Y0I{}9F% z6d3&wG=u1#e~}HkkS3&CV437$2%;#N9kzc4{|^VB{`3&=jq^$HVoC_I0rZ5&F;KUN z9Dia;MEs%XyBk;vawzuIWdaDv3I>m0@r+MNCIxJKHyagB?(E=OI$;V5)k!7VJdaQa zxuz5Ikkkb7X?&_mjU=NXliH5R+Of?a={|i~Z$++P@{PplSE?k41%mE&+g~j8J2_7% zzao*OVoe(Yjt9h3o%c_i^Qdi`-U#S5#?#ihV6^%{s0#4u!rSi6XY=1EOp#4%$;WB^ zWTvAYMwY|AHMhAXW<2M(CuP-_OV<5>_*IN9aXK1D+USwfe!8pJ7SoQoShn(Y8cvdB zC{5%&XVX18-YwxHMtU{PXq92ek31ZCJDDgTdq5_yo#`wO5-+|6&B8}W)CgA}0Q@#n z|1DzlJ=znZ;$qVFLQSuiDpXP{9KgOvHt_GUtnGQSs^;DGrN&Q8M{rtM6% zlu^C&k_X1ujtq3#2P6%=VTY+2Meau}m{7r){3%hLc73<H<@V?9QSiIn-?yegqcD_k7l_qsh{MtjdX&BwB)$=`BYyu8US{ z-lb}lI1bF>Rcb=w#%jI@L$zklduiFEz?>=*Iqs6wwghhoa5ywuX(*ZFhg`d%2vY^* zOJoU?R#_@Znql25sL_0I6A?=dBcS^!-U`CxMtPPBibvtgilsAMNpSz*rJ<2l3sBT7 zS7G8~{$O$hm6_+xu!v<~U21*FM^iO6#W$J4$Z#FFi50t=DR*3c6c;la)1;TGz0+{e za{06fgnG@$S_a3zrU{h15oc|t-cBG3d%S}OtJ>v(j>SqVN7TZf24g(jLx6s8GHF2rJ6 zQK-@MB&|jJhG@>XLz#C_d!lks3t5d=6S?UTDR_91u@g zMh-q<<10`Od1koaD!bt~IdI{_Y7OCmPK7;MCM;%h)cN;Ap!!i^c4D6>zNMt^&;^mj znFLs7HiGM0$yczZ(O|WKQrL?$t}yJ*Nh7uV$IoVoudTqQty2(Qv(c zEcK*IbEVe@{4;pETvgAv@|?_(U`dNc$C;Zn<1DhlXC!mmZ@anh3S z@GK`IL}j;}Wq5u>)$1A>kgF`4^bYN_$N6sit%Tw#9yu4AOT)OM0YrN$I}i*!V0=HC z&MH4&9oJp_RlDb$k6v6u?9~tro=VD%_!0Y6`D^fcXk^miY#csykN`CSx`N!TQmd6z zp^fuB-M3oU^g6Dyq{9jxiUQZ{fnWNsE95@Wz%qbiwK80)u~9k!4QBGfW44WSXgGY1 zTO0>o`1SsAQ3+bA@6M3J=4iX7IuykY$pL~ui{cJX%P{%%xJU%)S#|LgHvPnMebNAh z4^@FXj!OQ;zK5}LjJfn@Zx)RY)qh6zpa5tVN=RA2urI-^M9J~zSx%$D;Lj^JiXFxX ztfrQmGz*%xqM!}lsGm(I8VSB~@G6l+73|;ifH>YX7QKm{sZ&;p1hfu|L#DGon9XiU za49SDgtq{wWeWc9UuF2ti%`3Q2IOBI4523VkOI)ci;Mi}4I8P{oA@7-U36i_zhvIX zU(FLIs0k`>{;vKwU$pid#XmWU@UcI?1Y6zxx5IW!XIWsYBRf~WpY^&GB&`a7p;u&PRNU*TJyq^xrt4gxv+_F1 z8!nG}g8aMHE*lim&i~iwALwC{!k!2JO#b%$Q$R{$0DLeKbwrs+y5V^qu3Aa0&j??T zcBIuzmXRJmi`i#H!3w`u%MxmIx-im`3+|IJC61~lc_(@NUZr9GVzk zV`+_Q_h75FK}TZ^J; zhLq?Ddc!TEoEyt$iy0G>gM_7EA8|Onx4fu~TpBXSD)NVRv<{VI*t8(vxSM0%SPfRV zT=kX#MdsRH6!Mcm~>6yf}Q?n8-K@xSGkPX05TRIZG zsL0w~@^br4Un=92?ThgQSr|ImO5|P?1@btsavEGPn9)ke<+En{Rqtu!E2D8Z+&uD^ zZ$^)e{LLY$dpvPf>5U7KXh4n zv3GIOja?A;oEND}MkO(WTtOOgH0qi=fm8rg{dmI*EtfZ(q88*|&U->_hYd}+MF>qZ zadvLe&2DEH^9SVdfr7w_qNMT)cgaNLFxKH3ALb9@L=+A2jy`66OG)4%2m&9}c7HtT3AU6QTiW>k-S+HfqNc){a_7)0@Ry$I`% zUKHH>7~IWii?YQ8;`2{YF{omq_r*MoQqqRSFKON;R6*cdv6y==XU?t6_XE zPFZw_j>?1c-%Q4D7x2eOBQ~R-q?#`JyO0$G6|(d>mrPFycUjFvWy-@}&MG+a4T7g& z#N9@tS4q3V$Iv-(ZL#rK$&aCBT&_-k@{D7T>&@T!~ik8 z@81TpBF%Q;T)D?Jzp zp-n_qF0wLUlrDSo1M+vcI9ScVw9Rl_Gn;_(Alyqu1_x6y(Z9)1TZHV1Msb4}dKQ8z z(l~WScE15#NF)fQFIWaK70aPa{h1U!He<^5hH(*B>^i~7u!nb&7&&I-9DL4G`)t|vb1-gG6_#4W(C;MH~kN}i< z`L`pO1$h1>n$F~FvM&)&E@{s|M?>r3d#)rg71w}N#@nF3tf{a0P-}|)4b3f3Bvj+n zUa94kH|Zzhwz-r6v>MV7(!73q*3uO@wZd(rmA?s4P9abMs^c zzJ+_&8U(eljsv+hkV+?NE@O_ds}p&a9Nx4cHIcX3mR69;3J|>Z#mZIw?Ilw66UmaDKWK*Fbm7=)j8@H%ly$J#-sd=v!kJ{-$O9Ors@rR3FJ|-%y}K^ zl8NNU&Id7husl$Uz_VKGCUw$2I>KA>lf}^v1~+Kr<61WVqI8IPRS{_8QRc>Q>t{|$Yxi-L!$&+Vtf0*TH{O=lp z@RQ};AEArjsb$wxrUmJ-q4uCxI)_h}cLlU&C0*o6eI-3f9bmIZ(m+J+evsp--fiD{i)PjPRO*VB__k9QNL|9D z3l!cP*%YG9`W`YxY}?BGybuNriEY-#8*5e8LK#R2A@|@KDXoKj_2#k9V~?(F(Fz=g z(OgIbzhkXkb6DqSxa&e67XoIB)6Nx}qP#hD((+pmbM!r( zw)u=7*P1A>Jk9t{{vokxWHUpoA(DV8&13}6?`2|nNkeqg-YuNzyEq4|PFH0tik0g2 z!Wn{ddQy@S+zLu}0{#0&27(#tl3BDYi=P-cExbBz*P;RIRZZ$Yf(V~O_-BRi=lqEt z3AiV0Q5_O)4)mKo-&51ys)D7faI#kS1!(WX=B3*S*Dbipu(M62k~8U| zAkw>GK-^hZqZV_OLx4Wkbvzt0wUrFMeQrZ>S9x~rQ= zYoky&o9JUc63R=a>ztY53tkNAzGEQMJb|I%ew+@Q0v#5tqPaF?Y9fEGqf(ei2A2RY z`Vvv>1#4G08LlF$kpixsf&YhruZKdFLmAxgMF1slHBRoH%*ufD2#JuN*W1NIbB@sMh zx?3$k9l+Hcq(pt$=%G>EW>F}cAFm;u{92jlj+$rBTAEd3M^vSd#T|BAj`MCj_eyq~ zV^<(iA=Jc6B^pmxX&!lA-9i4m7Dd|BYPZuVQl>I@Siw_9CGZ|uHXy5ME%JWw9+5k0 zdVEqLX)`*CBuE&7p|Hkhz8^D@n}N|FpLQV_RXc)`NZGs3;ju`X)SdZVk{;l@EX1T? z#HCK7CRYI*{Ya1gCMoNp5lB$sPQfsPF9dT=L-b%h=}U7?ctJWs3*r!Aka>pw4~2g4 z^qBBhRU_Y)t$&ZD1|LVfYm+>?@A0Y7wI)~?X81IKHEg#N4womk^Awte?ztcr4&01kKak^v6IB)!+# zu@J0UqKatal8Ro%J)5J%ShZ*!jPO{t-tsi4>qSo{0s6M8$qkCrqFL&SRzK*)r_pYx z;^p%`Sal*#20&&idlMVzh*}yCafd>;SUWqvUgFX8N?w*xrV3Gd zDBWy+tWuQ-H=eS<<%Eg2K(-R#WI9-WxgMQVxul&<(&_2aiaCm0Vz*#6vV;?B09DQ` z`_5?QKa0`P%**oy|EMBLqcGyq!2bx*49S@Mya*&Nz^fraCpHXLXQ>i5R}y?1+R0rIU5Q{RLpeFDuHCByg0lBr# zLd(~6P+t3(SsBAbSimsCDpaG{fz!(A8S?)jWPGT=0zDEQw>WXGYC3T3X&8lgR$?{6 z=Hr+mo;hc05poNy7o6o8g$_%IsiY6;8cnPwNo6m%>~GEQT8C(#n?IBJ&sGFT|5nte zb;%Hsol!7`66UpC@v4X&)Mt{dzn6&T5L5rEzC+(s##D@*d!ERJCMz@)jw^P>g(8&Z zHI@=Zl1X+vBj5gd8Y&ybnLYgap73TrY9*doAWKXc7`C1o5v$KR#>JnzUy-0NQqioL zr!?QQZI&QA_9+B$Ez%DD2zt8qv9#*Emsb1eu{|mie3_`#M6h~%!vCZ((cEn6izkraVw^2WUwU>mG~2;CpC^wKJ zQ)sCu$^Bz&=_EL#Ntu$UXU)61bpeBe zNad>4HE$SRuqFk!O)ul{l51g^I6bgzR>g-~9WEtAjD%_V&$>j}#`mBAM9TH|N7T~s z)Qv9rpw*|Bp}`}4k|;-?)Jh1?ncB3I@w$2}F=&~Mzlp8AXOi`!vtgv5{r;14Ml5=y zBM8+kApW`iGoSyw_3$?S&r^`{V-nsIm!;Zh>>MHS@+)L|t3nTfGEclYy zTsC2bqCL==v)t~eX+8#=Hkn^b=caT`sK=sJ@TTNz88p7OtHO8ll4l_@ZftxZ zaQ4D-PzW(?Lhwye(l?2lWzOHgNd?ng#-T8+Yy~xDwq=p#g=j&MV*FTkef_{3@4$vl zvJi+(Zr8}j3FW<0<^%R#F^31<7Kr&XEn`~xG5LyvOfLB>s%%CzYmc&MkDgn+6djL> zsg>0)thf9VZzDZsGlZhufN3^3sSw3$Oy?HrNlbf$B1Ij7b$SZ3YQf?BWa2Uo?#ACp z5~MZ~140MmWP@#q5FQjr37ua=s{z0^qB(emjs?vX7mHIT_Zj;?7<~zW5oe z0hMevQR5P13tPt!qGdTdE{Q5RRDsO~-!H?aZqOP0vm{>NIQ24}(ZtF5AR(lZR8ZsT z+WGV1v}m)d@dnS746D8IK`mIgE9LMXvK8DIzlTXQLsN;Ov=|3pILAa~a4iCOQ|*J_d#P(jEoYzQg{8ScQ!&=48>qAz5WVH?!E zyz8^|56A7ApnQSSx}JKIG*r|X0t<=L0z|X$ijzdGFcUJ8^zP4EmUoGUO*_1qBNX4_ z$vw4xd?8mQ+9hX@Wiu$GuXdP1b&hhnPKn=dgmPRU zNd~hC(!DJ{WBi#P_>BIagZ>nH6cj!5|B@%B^OsUjn^|#Pzd8dC>#NQTta#-N#ig16 z7$wL9BteB4aqYvw+}cF=6`15&kEFaj)|&joO?T_hJ)T+p7q60@=)dM}Q3-E#0dUGv zkDsyA(i;+U18jbpg>#D|8gF^pgZ37{)f$m_0(M58BG?)xku&g0x||N2%V{|tX8BB+ zUoM0UhCt`{dJ}3x!}*T6?8^I{*^%0)Nt=jqF)m1;F*L61zynlS4Em4m9+>F72p7KM za^rgPd6Y54V>d*eadRao?{sk+AV7`Pe7Bh&lJY)4SzJ!z-tt~6U6;wApi(oFsXaSl zw9yMoE@@)QkXpA6-hvAUY8@tUG$}882RSkm$ABGdDGL!_=JD8PAl?-}M6XgNsFnPC-A(;|h_U_eIvMv{MO# z=+^$|9YY7Rp_5fndL`IQF4JxMUR1@M*hMIrwPy2XjVuCtJ(8N7b$cGov0>Y{4VeY8 z2~uAKjkBkH_yARS)Poo#gx@ejQwc42Vdn5-NtC>HcFBnBP*y`gK*eoRTZLbP63;=g^kyBw>LH`GtGRG+%DtU=Q#0HI$$P^V&td#?!nptb z6o7O7bG=*0y7cYn|6uPd!|H0X1sx=~yX(Q--43q7Ex20<9^4PE2X}V~76Jr!cL)$d za0>~pLFVM^o@bu9b4Tv&uX}o?`Cq4Y)w>q8H?`lr3aw`p4dTR*IBcwqz{*O0GTC;j zo^mR*qBaj!M-E6y5*fFInP`5qgD|r@uk-*W4Nf727%Tisy&Xx2aZw&U!yCGJ8&VT8 zgRmudkBoFa>0@x2Z@!FT7EV-T+|fXk8zG3&<5UOop~EJ@{SlnlS1;NZnHd{{sK9cs zrEB=F`Cj843v}0I@y0i=1%OQgJQ`gP9mx_N zqC25AI~`jD7Zn<^yYMes^Q$!`a!6Ewx<*IHb{m4MzBIdp+PK<1ga5O^FWf?mxw(^9 z2?61l$=(}EPqpdyeEp#!h_TKmlv!)0>KR5BzEUWyi`wz3Y*xE%Q_(S)lua^~xc{{= zjnY!mGyyz$!vQI6%7OHtY=46Nn@faCGppKP?ZX6^K>K2Si3QU)Rt4S&1ChgdMkiKj4KyS5;_sbL)U{BSOecGx|c@yI<3 zCe#d=$-qNwC!!e#eqxAZLmBYh7~&GKNe!akXO`jW3sY-!2a-*SpI~JZbI|1`)o@#& z@xxTU>b8|?+;F&vs1Coc3FvvA#B(J6Z93f?KhZ+n>}}*p_N=?;G-;BHIniv2L=W5A zM#*R%27RdmN=zQPl-);ckhkpOO^G>eln`5~;GnR+lUBSuh0&o}YmCTFEwzyOg&6rr%&ICZ=45oJ zl_7n3D$jP>$Dz-lOmf4VWG3>lb)Z9vw4@}?#epNimQK~voi|Zz1A5>bX0OC3MNgAF z?*dDVq$p*!KWK`RVbL|~^{V2$n*JgE5FSj12Q)~>8v7Rex%+20|FF#I3wR1J*#6cX z5PmRfQ}g6_MN<&jAu;l#HjU5KPo?W9Wpp9@G1EzZ0*P3_Z-06R90}fbqp=HVHYBX^ zGmZ_Vy@DGMo9j%c#OraPJ}ca7T?n1C(_R`rkPK%{Q%VMuF{u$Z{TQ|R@yiatUC&4V zm~l0LQjd^IoQN+nRYRMt-PkLmLN4gmYEcLfFpONuf1@K~|4oPb_b5)Mn%Jx&r0Z5A z+V{O2c{Z9dad}mo}^q5?^X#7CYa|0I_{SHuG$a$1$Q!S~0z5&R6YvZF!g+wl4}K(-dhHz;h|( zs4E_pO;>(ASeZ-2I8REy%))eG$6|-0bN95dRjTw%smstw+YC6>z}dA@Z>F1>ias1y zB~JIR<=fx~V!%hka)^k-4tGRyv;abV z?U$ZkKaHS$oTBW$Km&5ZrdHA^^arBb&1OR93Mvgk}+#wqadjds9GM9O^_^#GH71=TgNd)SrS;PLMCp$W0x>5 zz^q8+ot{}ve!X6CF3F&C7Gp$0$=EfuHIqYbt zsBJ68a5M{r+;m>;2mMy1A|{<;e)Niv8EkQU{_RRVhv@%Ch;EOclz~t3H)ZQkkJ8id zrPK_$i=ADQI-DtUBC!J$L~owm|^kv`IJ~bJxv^ z_vinp=V`gqF5&V7#h}hRUyU~$Rz)}@LydfCpf@?ml`OiyoO=`%NpmIKgpvoMha^E4 z;5uEir8B55-z7i)=o!S{J0lFXF9fE3MI&?z6jR~^fq7=$rv9SxmOiPJ`g&QiJT3=E>4c%>jLiu!A z%W22f(HMuWmkJr@U2m4iZwrfXQod`Oz0g@PWO$!Qr7(;xQc>kBl2WbUmGhR*&~lo2 z-C4G<#RZ7Z=eOd;m7U~2Vk)(j3YR#;lP!h%3M(yp8(Xpvn72829oNV?8?E+1sWpVryUiZNBAgWM3$vQ4@XS zj)MA5lVV+s0@E`p#6FNb9Fl$2Ms)TI2uN`o1D4#w9Qb<3ciS7ne1k z+^R%v2ko=sn#2Kn7QqLsj$u*5id`IulB-z`eX^-MqT%PRpMm_X8It()_zi&bi2j1z z^^h{WhY4S3-`ZWcM!W8muG;{yIC(1BWbb>OZCoX~!Gzj`|4AQ-hH(pOy1->Z-+D?k z=|!Vpt~S%s4Yo-wtoo?6LfyIh61VIEeC=+zmDr7GTm{=I+<3P4u<6O@0NR}%>8mPS zhkHbJ9cYFfE}ErVL5IwuLl_-b%|`Nj_Mv%vM;I#=k!^O*9W(fc>bSB6B;H5Zbf%!> zvka^wUsB!)wacI?fy!lc|8(<1gOfJvz~{ zcFXU&7f2S4;Kjx{EfoaB*dz=Y(E6Yib3rvP?Y$V!U`FOE4ym?t=q-f zU4@YErr-6x=^n2LCxLr!aFn07aN4BbGnn_nl_o)5R3kX&eP5|SrKl5+EYGhVbXO(6 z4PKMoc}cVo9afL&sY6fw8k4P8fvs3_40#Malb=oJNVLdXGK(@F*24u#JDrH1G5_tD zpCH>W>*P@PA6ukoV-6m|n=P5SKb@jk(SKL|*%D|~eWo&xy0MWN!TKiI4(ZqpkKaAL z{kv`ep;`QJC`Zm0Mi%pe<=A)Zl6r4lhF)@;r@Sk4L_q&6@LZ8&r{ zhT-$O`&DgQLgWd@_7K8R?<67Ce8Q@BYp`4d0q_oF^i^gF~)SRYD zd(8@Cx;7qLq~ofKS*y-a6S_M&<;1;xJeY|USiA36KU5)sV>KWafF zu0~>r_SLYq9fxc)$apOE6@#oca(`B)qVzrVJA+?Qfa&jJfL@i$k~EQYwp!uDD|=yz3G#0AX?e<(V$RzK{a3N z7IbF)sE`_8Xt+I9Ta#KPL;IZG`n>5`t@(pxga{S(pqpbAM6I&oTkAow>=+@%pN`R5 zi)^D5Ho%@KiB(tL$eDyLLrZ!``khVk2s4Ad)b(}AGx|Rhy~STYueyovdm8DMiX#*B zN~eW~)AraiIF=SL;@KyXVoHQ=*kOLE>O!$f3?ER2FJ;Jv?Xnn{A7$*}|vFLV*D z>4n;tfp||yuL2{(BGWnKdP?R&G}K-@6D6|*jo$Y>{Ac?AUh>?33wYu~eB=_I4N&Q= zOt;Z_%fD_cikw2b1X*|?b&)y?NwKKHRp_;DNR3J!smdId=PY_EvcAsF)39P`4@iCT z?hE?nTrdkOZ_VJ-cDxm$z69>;}tMNiWMBJrp(4TI6(bv40$*!ut<_6tIuxOG zk&I{15ECWok{R#O-m3>BYBV3&HmuK2INBa!;UiX=6&iMIbRV~<+6LzcDosLaA~CH{ zQo8Jis)N35XdSY-jHZex<7KxkvnU&GQkiNgHC6GE+>qikD%U|4c1TGiKWQO=6k3jI z<%v+c!h^KRazoijum<0!k_trwKy_54$7L8y*A}n@(c_R^08$a@y-j%NZ~?Xgu79{r zMb|LH>nmwQEl6?+nVhdmy(ZYssPu+#d-T0&c*H-s2O-OMC&# zv0PeYm9IysrL4}0b&Rwt3&d#manJDoO!)WLkitn_P)}$H0SSKMiV3lmsOG)V4J#bb z-)V$=aA{Ad>;>a5k?rwB(Yd783}pS&2`TLay6K7dOLn1HBzP-%V-VR!?S>Gl(~gd` z(z~Op4}=%ls`YM!$8o$|Ng*eCg_iHUD6&~k&V+A*T`pf?r){UNBBib~YG~9kg=T9g zJ=g83v)VXk*VvwLha4}4S(pkFQy8RSM>dURQDoPbeo|QN5!3BGGHC=tY#+{?G=J#L z1WolRCGvfS9J(bFp^wHM1*cNs^`990qnOXzWWeiMYWbf5b2KG(a0zbLa$d;8n$U1C z-F+>XZ~YrAt@L?JqfQE{n`65d!8xr+<~IpE8RqwpG3;>~ZYNo9_gx??f}ubZK@1%5 z%p48c&&~gzAwzirabWFku*Dy7%4PM7`WrkBHSRu+`{`+lr1whk^ zF`ojneVHien&R40S!+{})-?wpQ#r1&1vmcY1hJgVCNe>ms*4@qn}~&2bM-kEYiy8RIjT?gNmY-s|92E^LJ$bNg@>>$$8n%5+Q z`3@-WSq%%uIgA|Lo&CkW)9$;pmUT+4As10`kBE;j$>;yNnQV3Sm3~o#Pys+#8(JRe zQp(cxz%Sj!NYvqY;wF&+(69LziVV9)+{N-5-SH<~jaq+>Di#@25CG&|*wA_*swBWh z-h6F!Ka7KA#u(81GWb09TWSqF-*wU={iX^%Vtk4?7$~B)Y~W2^nw^IJ#fQt^0_hp+ ze;n&Xz|%Xvz<^Zc5=w@LPZ^K6m}jF_9=CbH22P>HQp^H#q#jbzJI(}TGGiQqRNHN) zjxh$ayN88eHHpBppRA0?WMz08&y8(Z`GM+Gso4i;LWPBA{3z%}I|QVdE??RCWLRxo z-DeybQRNQ|x!B^Vsk4@E*|_mZC>bynC*8tH)zrL5!op`!WBn#g#Z6Yb62G$bq4i3}2sbyXHJ=YHV-5qBO3ofB2 z&~7j_fW~Yj<7XW;BV&Bu3A=vW3?}7gR9EwDFs}~&kJ8zMuPBV!LSHTHX->wHOW}V!xe}`rXk+Z2; zt2`$NTu4Wzo^RbNAw`yc2#LYGKJPF~<>wPw@iB_$!9SD#@6tx^CjKCR=lC1d z^cme@4;UuI0|(_4N+Uupwl6Hh^AR4zov6{yb=Jc*qTIOe@jAtz(8>RRS!ffK%H~tI z-JMVRQqs2@he~~`&Xo4?*8@ZNbNj!U&&ju^pP+A@?+3fx##{vXyo_N`SFOA^C|Ii6ZnNVGV(RKGt8^YcMB$}@PKDLG~^c>7sYA`Q=S?Hx|<`get* zpOL6R(%Jy*3;G~P62lLoOxlO_x34Ni`K!)u~WqwcJ zw770K$|6{O#v-o1Ff*L@y*|Ro=j46(d%0BDNBlC{P10(4J{zTt0{xV+{eiW}I|HT| z96Y^5B~`}EaSm zVBMR*^H+707@aYQ&PehR-&bU1`L~MoFC1{av~)2!ELc=gl8Sh7X<6}V1i-lR%)Z^X zbW0cr#)F~!AV9zSk0R=9XLT0u=BReY>Ii}cJo>N^wJaoT{OCoJkthJ3==wdj141a9 zIWQZDwb^zxgE`4xfhY1>+6Y%$3PleYr*FGl859{UZ69YLjfG6^^oYm{+ndHgsX~e9 zZ1`&*!8%(rI=6=EJrWaDSoO;&Q^%W_pWm)2^I0p#B7EFV94h!j}+x69=Zw!QQYt6_Rgo<7S%GZhN6yfIEC_&&{97 z{8J`DJ1V3g()%zm3C}0ml7OarOG?t9ahuT~;9xsrV)ZfTBz(RU6Fee@U%@rDGL zFswl*XcC+I3I^M+{P}Kk-(kqfQgCIutcMjb5UDc=Vk@gD)t`}O9kC-xjhf@j^am z;%fV)AGhBn9ecqCxxsQ4F~B?WXBJYX6mrer4B#+*s~HA*tXrOkN(|YA)+AY<}YoO%}Ha!Yh71f-@ zU@{l**!xi19F?oZpMp&?4R}$3sf=%Ni40$>ACSRT*g>O-Clb_4fw;iF*t>Hizsa_G zY*)3f2htGefl`J}AewQLc<%Zc$e*7fkdK~z!ac%mr`)4X(5sm>6e;07>97diCySYw zR%VO)bYsE9y?C2$yY~rqGh|iql-W6NmRL~Oi$;=5AvyhsK54-Cf_#gl)0Y?6^^!{avAeu+9yy7yz>#5RiJ_H| zg&y;!%5~ZC9KN{~$GX)`p{_t2B|PqhFcQncW{Jrq*@s3(U9K{v4)zSp!&LRS9B|ca zFji22K-v%90Fx|5=TyZqSYo7pr+tL(qG@#&BP8u(HKD3t9@o)-dzrN7%REE-XUjCZ z+uv_8?h*T+oGGZ9K4S+W6U~__X?(yU3I3Vbo6UPRO&ewLsxtgb-3ji5Sa&dSt}&-Z z%jwwz?T<^?_25A_f;r6^*zkOxV)n9F;igEc<)p(6US?nEbM!jM>9J|!IF9YUUGhF6 zP%Zf!q=VdAOg)tQWDMiB)aY*t<*tgoTTqdWXYOH`TQ+WKxIn~g-`>s|y?ViFqZH1e zyrAHO&?bxIx-u-8MGqFKAam^N)!}}6f$Zq%KcciTICh=&Jmh~t$`enIU5+mvsbB&y zx>e;5L2=^ZGzUiM98`>ef^0TzbPp@(7Iy!r7!f7`ZS&eYscKvr8ZCJb{8u5c{x3|* z0hd5oihQse+c*IxE?9LEzY1Qck;;HTOnNXkg`|o@$B$|;3Jk6Ue2OlUfEIhft_k)o zpvF*@Z^O5Wi9nL4--})d$vx)6vpdTVxRVyzvDyj3>5)Ce}`*{yuludk-Ao?`Ltlv{2c{zaIAI-46TG^6}= zZw#gyCE|{6y>}fKQ!nUL!{SJ9q@KuifzGUko}oga;gcs3-~{G{BuxdrAT(4;v5)Cs zM0rA}OQ){LQU>lu?+pXzRrNOHZTKN}y>@c4Ce5;;Fe=s!RA2#k9+@;KP+_)%-CRmj z4k%z;O?EUMol(Eh>g2{5-$X>P-`PfU z^)Kh`=<$R#gwOJVJFOD0wkS$%lx)0sO!gjAT=F=Xb{x2kErKobd|Oz)`;**KaTW9R zx`S1`9H-~_BN&LV^^H)MS_4W}%f=N1h$rwfD3ovNImcWQA^ zMH!(LEOFmY4DQICD6b=NdAOoad%lL&biY!>ZyivWd?)U{6In-fcr`Y8SmF zD4g~PZ!qj8x54bgH0k{||tkP!w+CJBVfNsz#o%Z}V^C0{? z>}F^&7Q<~kCV_8I&qMx~qKvQqmuU2<$vcT^oUnm1m#>Kk=f zntVn-$;i><#nDgw^fQM9VEe9o11pNbXBU%`6-V#Bzmis)d{- zAI?}gkU+P?w8aVi8>`Kl>SvCXInR@Lj>P{yo&NeENAkUh41Is$1oN%5%vbea;e!ba z@<4U(gQ#j-E&0va_kp8R1vEfKcVxIB(#f$OOBm^t9-%F*H|yoN9!0mfl%(Ok2sBg^d~=qWnP#Q$wj1 zO{8KMG^1E}Dgw&_3jxVHezuS1k|tqGm`L?DT#EjQY9BRoQCJQE5KGuidaz$rQ}H}hNd3kp~MMgr+ulX zWS2Zb0O>Ym&~y!#zh-yt+&noIzC|4<9rTM?q^haaC)USNa&i~WN$Z;sF8>OBa$85$b z^`5H8u|k+ofBqT%p90@<3{twK>U2u{Os6K2Ce?ikVWqus2s)mfqE~y!4p*v?gvLREZF~{-`FAULK|W zoO>JeUXM6jmu8EIL>0>;f;LrmQH0v&e3A@VxHk~tHE9)M1}ClA@@r}}FoEZu?J%-& zBQILL!XOWSKHvyLnYq5&M`n6AM+DC^6biFhP#c@mQmMb;qf8-y<79F!0l(Ag4T)Jw zjJ=b%{1RoRu9@C-O#XzB5Az8E43&d>HLb;HdW7ZMSSfk4^_((FHs6UA{(eTn&+CEU zI!W&O{)V4~5?SxAbk{NAq?QhKm4}l#Fvr%2BEkLLLa!u^ZZbbOM`&@@_CV2?hTE7$ zT7KmU<~=^D@1{nHs9UJdOkgmlO6}mmqKOQ8mmAi8!ehUMQDtEe0;AB2Hq(za)@BX+ zW^LI#NR|M@w91@^Qe#kx*~cEBfCY0bjOw*vzc@&#J<JU|i)YXDvED@-v|bMR8}@m=4n6NO0a=}Sdv%dE4JYE3R1rJY;)G?@*D zf2VzP*ElzcT)e$+kGk4&sV^tf0t%6am*{AT8b7g;K{1gnhb%Qznm98#`mnRTch4pp z7b^Vh7LjqCre-rk-nar!$e?C!yo)W)Bpfz=g^d3Aj9fPj#@G;y%W9@k-OZR%U(iL% zAU-p0%9~NTM)iq&j+DJ310qmkPrr0!BAzQZmJ?$C*=Zoj$5MReN6xwDq5lg~$Gji9 z=puT=Kn{?M!=wa<^WLLJQof*}LSsthNkVUe#bOyUyL+VyISosES$3l(eHg!k-xvY3D%ED4nI6}zxFW@j3v=lcY)X+OO0pkLTy&)G%ot{u-@4vj zUf+5G#~;^dk9oetGpK)pj5-T=8v6aDvT=M85}^9Xp9z2x(ojyv+QfXngSO6(94F_} zXO`OW*{i$)uKKh3=pw!qY`&-r%Fx1%`d7ZmMm0HTkJ3zbntp1dG16{lJd(uiumNVD z_vfk_sJibSke-tim>93|sAE!6na89f zRlT{Bo%+QkhZ%qEVA^4)b8ajUtBz|Sl!21$RR8CTxW@Ge03Wl}vQJKUrd_u;ONoP@ zsmzN*^L{6TShfYfEn#91z{I)|Q3EKv`C%1`#JUGl-cfhF;aU)#XCd%XUt#&KH|E9s zP{c+Hk#Xg(K`&k;`R++g?9x!re*0D!{>fl!@M>MU<*_@NT_x1_56KOeAVR3}c+5U$ zo=(l{*mDOQa9~aatrFsC#Ag?Hr|g%qfL2qEv9<5Q^O`V=_6(Nak-4B%$*IG(?0hSJ z67Mb3KL_CN6M(0OJb>@L!0hcu1&U~8{j}*xxbRVJ(@{uD*;tPJ@ctA&jybQ%q)5z5 z029tB$jz2HfKhV&=6q1PT$8Fun#cK(eGDh34b;A7q@esv0%SZL!?HKbGBd`mWtgGe>gamJK&Z=0w1cKx?20uXP87n`9njKX$XfC zeGyF2CVJ3t&o3nuEE+bqIP77wq(z#h#-4%(t#lVW5=?zPmrrXyDP3WC7Di{oPzSpU zV$fou#9*o5kGVMHlG~>RRGugEzl_X%o}C&YDFJQ(f)v`CwOInaSAlD`I9^s0Ye5bw zT1riCGGvXI9tD57^gz#`F0ar|<#k|(L$h=<(Y&X`5b(^4lqlQ=O*%vCIn1_&dhqgV zHX~_3{_KHFijJSZh*-qsm+I@S)b$YXC(i__ora5Vulv!$MS}4KhY&65<-cRCEU&9B zGb#xn$05`(w;H~^P7nyrw6nDBgEL=Om4TNTAcsy2xy~Q}C>ZUN&?OAe)+pLohe%ph zvF|`u$EJpDkB+aBy9jobDJ7`HF+q}l>SS>K`YPw%zJ2?6id;@eZ-V(tcv)Y=Wh$$) z?o`}xL63QYVkR!Mnrk$@NA^J(bCc+}L_iDm;+zs8=dS$^3!X*?@?5mB#n)~9rXoUA z;c)R1thU++QWGqNOU|Wv4byk*@DCety05q_htuDGNLm5%_mg$n7tW`LMm;LSB3bU_OTrmltm%lMNW@s8X=0LVeIAh_%D)(>j9cC-wlRbXd*L0E?(!TL;7F9@8tI zU<<*p6>CVD#n7KB(cV-hbLi$PzF%VHhn{C0CnuqWTHry<*nIR9JPRRhx?&9~2S`+Y z45qEMvi;&0r`2@|H`x>l}SGZiS@!imOM~1Fwl0o(P~)dr*kgE ze#2x#(NeI3?53&kyx_s%3UULclSE_#cf^nIQFIwGyqxBy%JHy`1(PbcRFyIg2ahB0 z!x(9J>iap%hysbCGQXna3F%9f+_&EKBTJ@$ zA-jPY8mQu^14&jf9FYHH24~)(Q1Y+(SbY7 z4N^~m`z*-V2d(wncJZ%XOnLg%llyLxguI$8LaP3#Xyn+B^i~svuc(%7SP!VmJZ-mO zx~@oEx<=%$LDXPXh+P;YKq2;;k4q{77ayPKt=f2|be>ehjKQq5%IWMdy#Eh@ZU3aC zpUAR+0;j%n7*}!sW=E?C3?^1q?zO^no@miXi=x)z= zik=cJbbiZ*6<7F)$>;Ae`5j=z$Gpo8#_prh*iMH~xM_w^_#&L)?;d(>PXAh$J}0MwlBSes4oSH6FQSlyJGZ#&!Bu8hJ-O|Mm>H%OS9%D&?oLQnrJ!P5!rau?e=Vy z-UG!{-pqH`E67KLR#bV|_=c)TPg6o(KIeNBWP{y}3p>=Zg_D6U!FfxB?<-ypza?<+&Hx*=@FltGQIDs}9Vv077BzeAGMLZ8n13+|q5o5`ySkGE0_RZU<%lL7Z0O-?NlN=laRk;h(xTS07IvHWrc_-lT zw!Og#)Bst`Uh%j3L|q=}txOg#$t#e#NaXVro}=);OeF4;_=6|zbNB+>%I&w(MN{NV z)aV9Y`wP^(QK#w?KtT$LcQ9I%&MJ; zlJCjt)nd}@@MfV9+lb4NB8m6MxORtG0iBhcBv$K^`{+ht`$$@MGHyR#nt2dOk$GQ6 z#G18hHYT9SO@9^Fl3Nuw&gGExpgh$|*7sHQD$%}FJkvsk^7IhBZMywF^LB}E37C<6Y@U= zRVK6qbqbru9RWA182e1&L_;6fEhB1GOWsQD8Bti3No*JB#4phgD)Jy71j2qr)dcmU zUhELMTHs?DYZ0PxolsuDvq`#v82zXPuc0}FP^r*6y!&N1j4Jiy-~s!N`HTR^e731{ z>Q4zbm7`ASLFffyo`i)=ng_%)t@shkwiwSL_|rpx4EbX1RbSrv`L)w#{6JoO9flqS zN2Z_>$(+a=S1$CJNS_5%+yV!WuacLWh}*i6@|)qSO*1P>inOBTU+`%=hoDR;8^q1H z-P8F?eO7j@$Oy2nD~TC_%SUbDhXdHd^;k*$=&iOzA2L#vd{sZPDf!03^a3q{`fU!` zot3VeCMJa0X@6?*X@)i|yQ42e(ll@c#4FNgvC00>IUq8p! zIbOc=?(`O&ud0}%R-Z*Q*>c6>Qqlqb!^*@p6HOMIA#Hx9n?58McvQ#$8IABr^R}`# zj=Mn|&hOg_sFEjYeael5gGiV-qpJjNh+TjT;plt@eq2znh#5)I$L_fR&MIJkg>qamq5Ga$<#vSA~w`RaU zl25JwM}ITe-*FfgrONy1XMy)AtV?x2;8fCa#pX>Z4L14w4`l3bTY=9({7(e&iTsa0 zg>U)W=)t;ky9k%etVchsW@{_)t)7lUsMBxLs$GDX$=nJhAZav2tXP~lwSyY2$?7E= zWiW>Q3Q0lk0O;#ir4_Bq-fUy<$)tc0Mmih``65ky-R%U58MzIDlr_Pv@u=8E0AhXV z1m>Zh!P3`>VnZ#q@!OI;;pgt3;ru-_=Z{C4d&EajSArDvI(e)wl4hztyEPC+hJrmg zp8A-O;720KGCrNrsClp)rFwT3s>|F6kxr9Xx*s?6>Tc^xMn#r%E=o9R41&?2#A}q8 zE4jF%Xl%9}4vAt6hV==!)&q-JrWNvWQ6ebE^Hu1S61?#Yj1Wu&l%1_%A2=Bwfb7*k zWZGFeg?a?eiB-s|Tf-pk4|FT?*cTtY9D_#Hk$06MdJtg4&YZVJV2VV*)W0_S6}^-& z7^ILq8zmeC^|qp};2Yy*0>21<6t}E+=}Oyg0t+p9%YT*|G($F$=;ypyB1{{BL-n$K znSw8;+FANn$g(VT_nX|;`3>{I0@!Bk&_M;hBwkb9Hu2lTo&2ZjWY|(jiO_2f30W$O zErky~M@5+Hyi+WydUie8h#Uk#-KwH-?baquvMv_J*`5sXh*TgssJFbs%5?SyGmj=$ zGYC#udwAu{A511g31Y-e=*eZ*xY$>y1sd2?+LMQ16M@Bne8k(ONj$YS0qnnQU|S|! zk)N^uS=f2jA?E|w-e9BLOVB^DX97j|msh8c#PdfH4S+JA;^rNud=V-}8zsa)^dZK2 zxUnf>eUsT&$asBwX?p>~<*tHp*fX*lW(7GENo5_2bH%;b%4b(nPAeA`x{_4Irm4tB z4}8N5)EQkJegCS6JiWp-SQTA`mycTrqud2LEn%jXn&%4_Ik57~0YmkN6R?Q%>lnEI zBW9cWuC~7)(L=XV4tA)wQ$uUPa*%imc1viC2WiD}?k$FTigie!T{t$;kA0(5Kxgc9 z3g^eO?{oX`R)^UX^C3wSs1s3u3NZDHo^ok(m5d#{t#4e6gj6XW}Je9T0o=YUYY4&miHwtV6t@F`CK-G zK0YrXQ4UX+MVv{BpeYcfIBfGdG4n?TI;EBuFG9Hof5A-LPfPjDF9?PVu1sB`vHm8d zlZelu_6&Z>I!TLxb^kUN$Tq0ewwT-w{iAo3HA52WQ*%<6x;~35;lIGt5HFPNLpDdzlUpi_@|U4(oEPdQfz`?1T_! zQU1u{h>}>)sIvmzzk6ujBR{iVm@}Gu_d-DqSb8)sUg)2(uoQleBO1~x7?~3zVj(#+ z#&_9`ev`g}rpc8mYjxU}ZGH_z5c^eZ8+*IHGVu0E+g++pAIwv_A!id^GM zklorcT1`C+idn2%{PxE9;|mP|=o1}6B;xNyM8q?PbL8w)B5 zzihy+qcMI5J-pk1dx?J2(KH~Z(KK~t^n8hDQ2!Je<@DEQlN;+grj5sn&uquEdi79S z6F3vyjvRBEfIVAQChnM&<8>Y+IVG!1?{(OhF--eUfk~}ZODRsq23_r076WiGd>Y&^ zp9YjP60^%%tEbtuJ3~IxQ*dP19tL6Ku-E24!Km!kn(6fVIX|2^f^mu2*OX>Zj_|mY zrCoA&8-RVfw`fL1f&CVx74Rym-7Ue7==>R z9794i-x2bRg~m$CC?(^UfZ9U36I-|V$>>3|ivK);=Lr0JDP;4=@sI~8wn?cv(ESYz zwqv(C&J&!V%GQ;vKo{CFkg@bjk7R=hlG^Ip_7n}FjO@b}+urRt=#`Cts zV|{M^Oy-|03GTa|?w`Qjv%G}caSA4Yrw+^kuO=Oy;@x2qiYfP+~+4@+67ef9~>aUPaYMudI{Zuo6AS#b;DuiG1Jh@3bfDZ{mFH>VQcgIv%W1 zSXst!Iv4xhSoHNzxEgq^r6MP;yz3}r+_Kbu9W$|(b84}=mTQ4#1Qc?s9tO3Ax#XLJ z!ArJ0mUkhGA&f_AEg4fj1E44k#Z9Jq^3~f!a^2NmB(Gt^&>Pp2%MWc8?%lTT(xy^B zNqm>Uy`o>ee+r!WKW{z0*Rcs4sGvDbSwjDLKa9@&(=Uz%x-VSMNkQ|Ho5sJ*`C-g@ z>}&pIK9UcPcFoyHxV1K z2om49*ZUS#XFGXcnyU~Yu``%xpFH#E?h{kIY%DDi<;XlogMYc;{2$^DJpKJ16H;C-{hn?_XDt4&wohh%q!4QhOt=SBQ3im}n+)tWAdX}5j-oWk`BQ|Z4 zo9N8+usB$A$e#>jhn8G|6J*84tzy5Y7qBWb6ZJ-hu4%&5@^BwmGTrG4+k14 z@&NR;cF^2GKw`Lv+^TWVeOxt-77ukpO7fM%x=~@=Z15Bd3Ia+(OsNpyu{#(jPRY?x z_hrE|hJ_Bn>!QzLu_cc1aJIjYGTUZ95_MH^UQPd`6$BLo1)gyW?f1DpDWh6Dg>GEc%h1f?b^RIT-(lVD$dQw;Cp=R{udR zSAf1;oT4JOiaV5-wlj{n)*VI%q}}Q0m0A|Y2s&M{>lk+{A@H%#soV=EKznZbOyKWF zfc$3YB7o=-_BQLJ>=fO)XbzprEcvq;?ALi2y|a6ms-JKESdbXW>Th|G7EIwLT*+{L zZKA0;w~fES(F5=G%aoB@_0zu}KxnIoZP>nr*Z%tDk9Ac`*zEibPGuiT=AJP9)c|SX zrd!4r`Ub#MWUPwVc!Zi!G^U#dvE|4)dUe~!KUSnF&;H#n^qS#>+*4kvN6|u30|%TR z)hy(5v59m1(=m(M@u>Gpc}Kx}EE)z2 z)A0&Euv5!;vB*p-ze%Q<60190`{Vvlvx%AYwn&xKYFc~0czfFG6jO;`CgMDX2z?Oj4ElZu~dp@*-QHueK7<( z9|$D)KB%P%KXq67{N)A_CF{@`3v^GHIM0S3=xmYH%w}~ZmQLLksGm6qC*&Bl=LmMR zD`NI~4AQ#(%Y6LXemb65oyd^vPU|!(mb2~rc ze0Ndebg25OR2U!n?MnT0dx!Ud4i#fc>P_}F7e@38`;!=q88o`9VKllMsIaGB$Fl1) zayCE)N2B)_isT!3v ze6mYvEQFW&QHSk8L8@dHEAQMN&J5E8H5Zd=Wuu>Lc>`9g`y}A$0YR7uQJH=~*~0TY z;XNtx#Fwfxf0{yd+sG*|F_?OUI=CqW%pXo>@kdU<t#Lod(heMzXgav$IAe*6`ZjN*Mzt2hk)l- zhb6|5<(m4Nu4_}`%+S?6TtF$I>?LZU>~(m8$AG8n^S?YZvfj&|>BOjo_AG%=>xXq= z&jO$r4RcBXyCn+Nw)?MUzOc1Vr;MVTarfx9!bA!QM~@gqlBQdM{@X9^YdDt{Y!%Fm zD&11U9&tJzdXWt)?kQxjV^V|?TKXE(k5ZO`Y_$ob31SSFFrs6myT37pJYV7&)c?JV zT6)_0w+-o7F9f))&^Z_l?|bm-S7C)b zgI=R^)fIc(F^vmA7k!`%=^9MTE%uKWGCWOVT7184a`XiZ@ ziTsZXoxhGIAeQnSZp;H_lz&UoyPTHkz3Ft3{&Kfd_}Bd|*hlLx9Yw~w!7B&v+4m4) z7Q;{;i6nnA68xgZd2pgT7IZF{D&X*mP&?Q}Z;sfZUFtzz^-d3>`7mc}I*Cb8gGzYM z6Sk_wekDtPx1qA;z6s2eG{3?qnjIi_z#LPq3&C%>WQS3-E9>gbre@bC=De{-X{|Cj zidVhp%W41K4-yR@Jff5-i56R;O3gBXXLI^)3YR*s5&#mAHEH6tIQdNAqSLcPUa%i7 z^K+vd&i`g@LN@P9k_i>Jr5P>|U0 z;~VxTP0ti<`mA7^$sZu$9n3t_k62v38-Y|f*k9X(LlXJOe$6gCLMI^hcvkniHDH4f zC~cFU+duR9=g)^X8^2fYN%F#*aO)7Nii-l6k3@mfI_h$oZ&iONP~_;xG=q<4>}V2p zvrNrBkS=?^s@-)*g;VLEJuW(^0#ZcX*0o_U?i7$B4^b-(5sNjV{|kF>9Tn%YuKP~h z-JQnWrE$_U?iw^`ph*ZclHk%n<8Hx%dji3N1Okmia7YLw1R4tx2pWR-C37CVW8A&Z zIBTuF_P&dMd(`(;)$@DCSJhSZzBO%jq+nT#ITIxAHl|ms*e0jNVt#0_{=R29mng1m zCYpHh(H|gNO@QIMdvEw*K958{Yjvr=%v8?xh)P_zR*Jkp{@@9=8&FB*#|eEb#gnGR zA`5+qh8xTY2mi$WScf@NJpkc9XRb9vckQB+a;`LBS!60FdF99BwSn{)$5u7kR>5(X z{G<4FSxVJX(dSHM**COLIG0O5YO#(>_YLk+?nHEyp1`O`RO=Y8Y8Q$$_=2|(wb-mD znUv%o8B99JH7cn~Yu5vtE%D0Eo#(S(fP$gE8H)9*#lx8q-I5HHn&l)+Z6E)L>`DWb z1VlW#kG}oEp*b@s*^D11u}sL&WL!n^BWVW5OrEmc>!8*7KY^;eA8>rtw=wvcMq^q8BrsxT(S&jUHydl>(9RbHuN;GO@>RQgk^H5@M>dv%-%Vs8kpgj#k|Py z^ITPaTp_H(T%MvmH&j1NAZ7MWQO!0k3 zWVrwgSAZTbbZouE_{lBFB5DJM*ot2fzao|6JzVXF&FR=?%WDCiCml22VfY7OSpDW%Q5Cpruclu$q`rr9-Gg-GV(&Imxc4w= zj5_Jn%IiVap1YCae^@L*f4yN}F+;FGo;hBuVtS*M7Ta2S*XVymrPE?>GeK77C}Es^ z@<%=Us07u#-25QBkdd%~t~Gk0a=-N4oVA6wWnQWN(xp%a{rd{t*^4udWJ67?O&QJm zC!}E`?QV65L zzM~X4(zl=6N$@%;lRMuSZ{euZQkeo9t!sgjy)LYk4@NWQ!~ZVDyMQHaC1uOqe-+6^ zG{2D(!&uU%3zymO&Kb*VR>x!?KjwbLdtksRr|b$ZYKiXu>~4BTA*DVqPr~lG3!7IAu{71U zjLC;$9y82j2@;cq^%V%KOay`R+sp^UGLs}DPz|3}c~59M_U@4mn0R`nqBsAjUFVzb zXZG;aZ|4+qlzuPC{d#m-X9#3A&jEDAu|Kl7iQQ+yYzktB0kVrG*~W^`M>;hF!6GyA zp}o229;WER+1q9TfK7QNjy}Nj*Q5R(-PEw%0qi<~ruuBfAs*?{eBozp!foXivQmE_Q|Y66K3fiq^>6k6pl5B!OP zVuD{L7f1yE*5NSZ9nNiF0DzE64&AC!X3tYiJA*-97%oLj<;a9aKM zoAyYn+0M5bR^z4Q3OJ6nEATfl_ny0ZF&6Yc**&Z~<@ZiMf)E0f{d9rlrCI_z3Pz-o= zRx+N%J#v*+-79nNvOJG5n%gt)B6>28pG?>ioDnfFW@fO1l-dt&VPZ4AP5xvSH0?Z; z?i4a&vXWnPJ)@h{m)@p(-RClp8ABt;_P)o#nV;t=H1C(<7vfaDv}9)fE=bdwrdYRA z4ODL`WSeVfMRT#@W~FIWt3RHaY{O2pi7G?3Z9K5>N%WtYsP5$dyULI8*CG0z0VR8s zgf7kyK}4&FYrX1ZRLy*fK3MTK7>*=lzy$~pF~o(O>_DSJ`pg9K)N4i+TxEd|XglGW z5rP3yCIeAHY)8|#L3RiHihX#nSden*{b=zMh8Bkfc_W)2nzKEJw<*nZ=-sB9iut70 zDN>VfgZCnA59#!9btuv4-^u0|FV|CzeoNi)($6JMqQUmCpRtQCATn(L6vhNeq*Sq7 z#Z5v%b|s`!TOU^lucKu)_!M7lbA1YQ89HJ=4NBLjkCk)UKP(L&E~9*(3 z8fX8wQ6Ry@C``E2Th>FZz)<6$qDXcQVKr1bqbgj9M1TQB(=YqzE{Loe+?cC{ewA$_ z{p=5@xrkb}77VBuj$((^Z{q@cUY`+iV{+l6B|c!9nDUs9dw8tzw4M7-;=f5^)Gw58 zL@35%Cy4{@_qJ1AK>u*gB9^yR%(55lTnUS6uFqhdPVq$-UgR+20uioYcIaX;eF0Cx zhhfNpjr!&4I$l;-$W}?f*4AdOh!;co0@hKQVEE3cCZ?W$Z}v$d!ZZ4jUx|njdufj^ z(_VZ!w>kPnar{nkY2oAE;U^i+G{f30xHZDuWWWtP#~Eq#A*Py@*j|mq1nlLf&BA&G zc6eLSLN(DzA$54{t%kWatilUyRbBaDWCnMF<}xm$Z&egGKD(qCebA@re@f#~EOI|` z1wYR)er)H*1`r&FXtA#0^g931n|<>O%YPzftj6-v8k?xiw{CcN_?6}3{U)XB_Fm}a zUxMmhs3F@_6yyzQr|11{1^s?2s300@O7(hbdQx(FSTNt=w?ee;wt8&P_Y@U>bvgRB z%k&H+UEd)#`SQh_$Xi}4zj@KO!;N>*{YR+#_WlAOvCRNmBmQ{+wg)?|-2$k+1<;In zr9$&lMP2C=n7tJm_ghhiwqTi91h0PfUwoNw`9j>}&+1B_dLBh)g@taFg#6|US*O-( zAXw+LB5eH&*ld{xW|G{8J_1G~D_S zyt8Pbo!|b6RdZjV>`;EtIPhO7yyeD>U*UO8$^g zl%c=hZlE33EmCr@788pC1Vx;rv%E}dpZ{)hk@6Zi6f(mu1Q5ty5(gCZEhW0dEUN;1@W!CHUp&Cb_Q`t<#b^eKl!jl+nT!PA9I=EZ)zH4+2QZcbTao!lA z_TZHvG76+z1?7N5rM@rSqz=S&wuNg5^4@R|6VCs zxgcP}FEW^rQ?NR#bIeB<@oe57M9jxvJv)bQ)!Agc3bFVUKj!$#hAYqFEmOia@V;#A z9<1~)sbjuP`N;&!2ACC&+f}ql`;Ae^z+!VM9n{KBIQVqhtX`(D6|M?Dx`&>{?N-{< zcYCUzg=`Bn=ZonOWgaXQk+Zsl6xCnH>Eqf4DhuM$~tuLZ>g#dTNRb>@!D|8BDt zkL%j*pGwAksH@fn6rjrvj+yv-faojCQsPIyI%gnh(m1Asxx*=Rmhi5Z2`WtiO2QHr zEL{X#m_K{-=p2VS#9@v!qFjlV!y2Ukg!f*bz>K_Vk<|)jx-TeHUhgF+5nF^EP7 zcLy#lKA7a|f<7eVphN#AB~?u&Z1Z!pMVWt`a%(Rh*M8)UU%naqs&mRI_)I99^aFv1 za{|-;1ZI*=f40OU0DEH8ACqtXw+0;oYw^$hi$^XFY(xN6G)rT&a!W7p7&~G_T|a=- z=!wt@9|iqD>p|1kF-vu^9;Nf%THNz9cj%@5O{ADXy&g9po)IS^_Ce(#%WU`KGlEN;fu5zBU^{VX zH?eW30}|a*ql#4iUUt&7!}@j%x)f128h3$(ii6H3?E*nx|F%Fqa6q4}$Yc*AuiZY~ zHHrd*W(ov?Bk_8D5~$hr)hX*;&xnABWAx;XvO~iUXu0%UU<14%f%i0A0#qL#xbCSL(WE4&kS;r6RO)aLoC+++qdr?BzG`Von~SQr5WPz*Z2 zw3k(jPpxFfpO?78&i8XBiWPm~=p;-?QQ3r8rBsRyGkQbf_AN@cf=-XnTA2WkDx4d4 zR@5>!f)g{0*46CKv91O3kSQu!6RxQ3c-I5+iRYzI3G zOr!NM2WO<-6^2VY!P9olHW&+S3OwpMGGz+7w1LjcB}LG*BJmL%qt&Z$5X~t@iow8| z!iGaBj^Vq?0vxre8rAJ3x@=fI_dY^Lz&&k-Y{ zWTxAF7Y^s9B+*$kyVuEIum92N`|Lr%<6#iB7Mg7Y?Kn+62E_v_#w$+TmfJjN4y8U7 z2;2r5>H-6K5l<_u!#aebsYk7TUtk@8z=8)Wh{!?07D24z_r&wyIqN(*rAS=jOb$AG z{{wSB&>^D#2~~dw`lZRcH;P32?NI_w#gqq^0=nzS z9g%;}T08qU3(KZQE}^F`YT$l|$zskb_Pq7XleYu6hc4?@JY)}^>kgbVU_`yTO15W! zDL(ED{?ZvbvWu#S;4LR?MnsNtJ+ZU&P1MU|Gz@@L&2o|IUm)k=ei28#@@IOfTqwEJ z^<=5r>4y@3w$XcK0-brc8SILupSDa!$jYOmWS^iPmXWyE`t92d=YDFyKe1Tb`||Bt z``b-Z_}%O8#QFO=Cmcm}!;BR=>Egu&M$CkddkeVv%_P} zXNRx?uW725L?EU4+J~Riq}zRkX%~-LPX&%hn5{m%ah^MSG5OF^vP~xaHZ4f2r|eVg z*+`46IUH(@&mnKAaBFN^4~S1O2`Y<0c7xj={6fVaUrlU^)zUBKkBG1jegVFajd1N1 z@cE8G!0|-sD?aAO*H(Twf#L931Axey&!f)n9LbPP?;JBC_X($Lvb87qdM|n;?5W@W zgkhz%6uM)D?|c&Mj8N$5b*&=J_LP-eS{|eCK5o}}i7o9SHWqUzrB^v&mn%Z>^#Xye z`9;4K{oc>-)Jr`Db}JGlxMRQ<^!pypiOc8K6{Zn+;&jgaehihyE+V?waQ9$4SlM2s z6|CsuDZ##-em#_)57RkcFY%Xj)8KxP&}>c5cn+bsLucY_wRkqy7^qdTUU}wpwpQ8T z`YqhIp4%KqM1?M{S2=i@XR+q1_}uj)@|#W+o#@i74s<#c&c#+N=B%!l+h(j)Azypt z<|zd7qwryLmBwq=aN+WX$%xPab{_?y?IXo|4@;Qp^(EP-cQL`csmT=BfmXFn`B_YIxQhqMdNQ)*BXbxb;)efvq|5PPF2!iq42gm$4#p7i&cGj$}-Mkh=P|Ex&oUetZ7 zR%}AF2`CZ$g1M^c^eEU)IjnT*CJ3WoI~Lv``;4WMgs#wbN0(c_Ezc(rR82pj0(NY{ z>rWs4aDfQ>L%sO=99w>tg23_VuA&}`m}2*bJiP*_^fo=*NHRYJ-9O;oUiB<6jCkyLVm@4=1$oEb77@W2P`)cp=S}HV0b8^R4bz39nr)_ z=!73}``{9X59x8Rw9~6(ISl+mmmBI_BHT7Mas|VaP z>&`kZc?8_mgnwyW)1MLLrxDUDT?x(OCK-8Bt|=Bf9~+LU$y%P#y*SBG%d;HIT951Q zNbX&AKJj|};Wca-!8-!ItKd$e{}2}uqJ~g0>cRFfR%WZ4X{GmP`aIBK?iOXU+WZyFgIW`(Lr&(*nW_1+p8Jm_9_3^nNM?v|)Dt#?f3Su}A=0if;y=TFy?xN+#= zPL?u#cu1@2;Z<#UzVhOR!-&^&kPl+~E01~XHSFjhv5WUGiD2Hdqpul!HV>+rAlqPYRF5Jn8*_JMy)i<0?$?jPX&EcS$mzB4T77W_aNkJ+u8_B4Ul6t0YyJE z<7+%4Pu6mUxLqM%O47d>(>kNqq9r%Swq)}qy+iPKMR3WDS}(kr4ZYC6;T>l^2~}(8 zou&?uDfI}*{Bw(nh2r35;IVep)dH{6DV{V(F{Q{dlXFvC?3$0r>NJM!a6GP$dg1%% zBny~b|C5IfL5;LzHkJHirzwE@JaW7)JyLu=3}LL~nWC(1VKRL59Rf{`2&=a(%aXM+9WXQ64n z_~P%LS9wtY&F$-kd^q$=+ah;i_CT~@9%wt;5V<3DnmEgt*%SK%s~DHFwPk%U$zAz> zM<4%f+ne~%b75YEYg>s_BC7~Ff=;c7C%^wa(ccu@*a(VP$$3obwGg0Gz_!`GtuOi` z-nL=yDTF<<-XrMenU_J*5gNCDd>L@j+u5eK$0S+ z` z?i9;`a+mRdFsjI^G}ID@D-pfv&GG53Q^$eazbn`*3+kqsSce|V`SIr7 z!pO4~-$#^698|3w2i~Q7rlZ^kL@+~Y+yk#de;y;knb8V z5S>Vgx}6dzvj3Qd_$bK#o3}=`Q-6dUrjTZKeVA)x`tZx1lLD8ju>C{aB(2ci0_DDB zRUs_mvCGf!2zlFrb4K#J=HIFR+dRYFA?Noqu3pM3YvZsnFRD7Cv~DE-a(czd)LQoKWK#1B z-stI`weAD2e%h6#KyxAyTNG|{Q}0YQOaVnE36n;L@}sZ%-^|i-`rPhUWii-Cyinj4 zp}VW%PN;v9qZZGWyRJ5D9YE@Dy4PXdCn9w4P;c^s-&?v@5xumbmR8zlwmgQ9$I-W9 zYHWu!CcavHD7I~IlH+YCyh1vB{}~dKE!BCB6nkF%pmlKQRGu?P@viipCjT^_-27s> zVxhcZcwhVi5pvW_^5ZOdds*^E;X3}2Mw20A>%HRJ{8A}&csU&<5(4nTN`1VhG)!)6 zM?Cb(NL`XT8I#`oku_8MoIs+F|b9jc4j50fyy8MU(^sJgRQDbX4XMyMcM`J+vfhw)>>*Qa2F-qFB$0izx#I#+4}; z@K1Jn!?L=n0pn`L#r&6BUP+&EDYKjn!b;)8RN%Tq6sxul%m%_Uz^pAk)gOia?yX2s zxyN18|Fuu1c^Da(t(k)Rl5xV4LLR zAmY2rb2Qk5J%E-sO%U$!n8rxR(J!Ib^{|Fc1(tx%LgCl+Rs>9sC8d3Vp>Tz~ zSa_&hT;(kmgtR5jRm+Kn=aQd`I~ zI?^ph>hM&y1*5Z;XMhc{sJm|5(fGGbh1z?4v)6sizf-^94kwyL#kpi3+(-Pm(DR!2 zoZU)!Et&cL39oDNW`devXV{l$0n&k|18ZgIO!hK_Pkxfr2?#m%#o`6^Gc(YihxCns zKxyIxki|s)i;U(WZ?#hD2Z%it>X_BHtDZ)%qNn|6s6X+EYg&c zvOb1R@4FVK$hmizKV1c+wyIW%W&&p^)!a#ia7H5$d}Q#i{$!V*(r; zGEHHFU)xIbH3Q{cBp$6`Eh;*}cxv92rN9`dmL!l2n=@|5MknE@PQ^UU)oTE9fnyR$SZQ+}dKPRI9&+z@I0sMOZjmO#YKbwC#A23fx(5+}gZ zoDeATl&;${o?)J(OSJSuYbCK@jr$%qq=_Zl>qYx{hsD~$dN7KD;w(l%O5*4`DhD3P z;X*yt#&Cz{ACG5y`MLvTb@PIW%gl*OVJSa+!{nv_Hc33z5-sZl3*&|t0I_Ful za9&FxvV26ssn|p_*Q!Cdj)&5H(qq9n7`kNHWFdKN3PG(cFB9X526wN_cDa2H34hKt zdwW`v)7Aa<(w!26Hihnoc|UvnACEhKJh@+deY-{_$I*Xs9i@NS=z59wAXi6)S}U`x zo$7Km4zzN5mGxu}XR}r^&ve!netNsqw3k9U`-?$wZ?s~M+s{>u$b!c-?VH(dJU>4C z%du691xtSGoST_$DAi}w*{@a=kj}Elf00JdEni)tHka97kxoUk948<4{f#?|eX{51~Yb+5->FY}c;^NYWBC5_KmxKS?wG2*kHVpI9|DrE=CdN%Nz ztb1PHtaNyNrjNlLjZW3!CoJ&1w}~f(9~1cck>`GJoG%Co>q}N~{sQmMDlG0({2xUL=auEsL&)&cf`AM>z zIXkBeHdjn=va~-)AduCsH`I{ln8m%yJ5=6@lb_HT8d3Jfez8NDj{Tf}%nPggB6|P5 z>tj|n0Twl}S`oiNtQXw#JRHnvu9!FDeymSbnO!Q@oQh;3^q$6PMvPK9w};za_xWx# zOOldhk+A2O(aNudPf)l~l9P-`prf4SQ{J*A-(mTOV!55UqArwr-k?rCDfhFgO@OD_ z9azt%Zh!kL#x4SVg5}d`&sWaSU`zSz#TJY~(XL%^p&hI?7yWBYR9+ZbCearUTs^a` z*LDMRWHJ&+fhR1BHs5MpT)n;!(+-_AQUr%%wLHT2VW)RT$2O62>jnTVio3(9T)^v7 zVNK1qmq6sS7L<=Xk+Wl58`V3(qn@wfol1nX;n5l_)L%y-o!~e4X8B~PDi{+pw+(r? z6p+Q$x)I+`C5q zD=6KEB0%MYqZ;kcCQ%!5!e4J(n5$>ce=nk&IqzYFJokH*fM*8CziDKhFoLEp38b8-vlT}SSS{9D%QKF>pWoWCaf zY5SyHv(<;?(nJjt_2*HnbS3Tsbu$jH$Lb{XqGDQj!4%0zo{zI-z?{S_O7uBDfT@Tt z4L5&anJ)i!_9jqrz0$~U2N4!N6a#kO+q%cDrp8lLDlFn1}O3S3Vqt+HLhn_W0^$GvFc-hXF)E zBk$eAlS*QgY0Uh?6TPLLHA~mQG4w+qo#RB!n@=}SmB{xe={g=wSiG5A`WpNr_}E~( zfJ=464P4G^mq=|y@VizQeO^b-B)_B?l@Pwf3KBw-gKW0cFLD7>F)7u}$UHyH@)-r) zxU_{BEn@_|U>Wt;*MX6V0;54K#zV&P=qnR?T^8CZq^K%etM5q>8Nk@JNBR&~t2{85 zlCy~{vm#8=QbRDiBR>6wLU}?aa8*W&%_d`hU*=dHD*=o!tkHUK84CDf#jFrqw-u|u>ClNPCi=Zo3-GJ}wY#C2Z zVwD8et7*`qo<*Dd-Cf>?ulmU*4FiVt%coCZFnnfX4zIvl!enBZ)Ik)^*uNDq|3Dbt@TneSAyYhGX{3rASd-wS-RyNF?{cA4JF|GL@htlOW z4UWPW9=GAuN)lI&)TkHd%Q&WfXf+V;FZL)EYT?CouP@nl z03XwmxNBs_<4%Qa^J08`a+_G^=tInelHm8A7}xnh@N_c{>Cl_&n3a?P0_pZeDK2wd zo6IT)CEy0V2ML#1Rc|`@e#wHpJX$HF&}&gyiQ9IijA~@OFjUC_=ycetE7Y2ZM-95q zSu;}}09bSd!S-Ue(2t?Lt znKZEEdnLBwQ1F|qXqNC#?}`+J88++7xEB?szlP4lt$&;BW)Wp<^jqP2{$&u8p!g-Z z=`K#C_1a!fKmPxhUdQ|DgwX;I+D0~7M0-G6HDIdC9^OxWfg%kcssfI;SC?dcfOr~rul6T8^`vk43@88&7-#@aQJ^JO^W3zz3{CM!o z-)REpHZU?eDs%>cVx>7}@rfhGeqT^Ra%cp{AO{zv}5fmt_vhPUQ zF*~4DzPE_FWwS=fM3|wV%5t_V@63-h8Kw&-)_rw^c=`;;kDgf&kDEy?AK0({;R!;% zA6+lAiSQQ9Ag?SfPhgzl!Giyo8KOEx9Fr;6d;|7<7ixydr$9r-C+K$?lU(&B%s&Pz zpU;IZYzvMbu`JD|r({0aVVu zH~pE2;*B*8y}$aJ45<}+`Qe;r)K&h5}ek>lTnT?Yy#PR+c7^X2+@)I{RsagH8w9W@F8^}6S z;-<1&V#c7=5ZQy|UR?3ekSGznW8^d(ypYdB8f($aTs)I{3fYT_wX7pZ>?}QGjHykX z@%s+!{ccEW|7~)Tl*^u3{%s0R9t9SgX#5?N<@Q(Wk|!z7ho(4U$Im9!%eyE+lc3H0aIRqNcT0yN3H(-99o$ zNl7I;(*Ix!RN|&b8PhLdnQXAF5!n2!4=nfzuC_GoN8CTB;oA9>apfmZg2?fv3vRjy z3A2qx#&|4xYPRZkGCn5P~3s*Sf(!*cYKuz7mk#MUJCPG&fn^Uc+r=zpW=TS}3k z;O=wvItbrYL^|^g8j<5|nBbp7$T`lt;YfpUe*lW4l#)5!2IdwfZZcPB=XCH0KeYk6 znU*-Stc)h8+l6^#kyORNRpZb%FD=cUVfSE|q~h*@JC**^TSMu52z6GN@iX*jnZ7#j z`&^kh<_T&QrxI0Ui27NLbAvOYa{h2Ini^7#sa4r6-7DptV?N-bi$xpJ7%H8dP^MB*OiP!p+mr50 z_=c!*oTW0IvjCXaaJ1>0nqW1N@n!o?LE_%vbZV+OD2vS;ZZ(M;45TEluO~jfBoZ!_ z5!spdQO$g6hMUEQ_rsX#t}Ay`{tpax?K`?ZwY6`4ASa1#GcRJ0*6DZd`+Lq$eU(&~<1l@189M<*g{Lj972F#~o)7>mo>%tuJ9e zzx==6u7tYTm7R7<>WS z-dsjqVdmqlpb6ac{8(kr75v$0S-c_^NZGJeYWkfO19R z)SuyW#3w^qJ{&)SM~&_p_LoF-5t((6U6X7Rrt z^4sbP=;8qLC3wqjx7AZOb1tYlEh@RfTe6|(9J*z+qKxN=^aTp3v{xH(N21JcUl$1D zrQ)yU>&gC)ck5dg3v%WEp-I83MyRfM;B*?9$nm(nBq$;J$IDG^P+2dqGChgl@ja_F z8}Q(Dx)~%Mk6U>L97oodN+O@5V9!2cS;xb&R(!d0o<>?NGO=B@)@wPHbQXG)hYsI{ZA8M^W^vv>1Yw?SkoeM($slkZUh@^dQDHO}YV34*ycY4Y!*2i16- z#vcSPq+Vq^)B~ano_&WU8_S0ol#G+N!44#-(&h34whTTB*fyy)X{V{5PtD`PUoE^8 zmP=zXCY0(YeebSt;2DQQs?}_PE=^ic;ouc*Ou|%?yYaXM@=WuHhlQS@I7Kq>=R@@) z$GDy-TF^o*j-uY-AD~z%Z6tQ@tclJK=+5o6&`m+()Z;>$%o{3>?39hpue)|NLUcsu zNmY0{ejT)W4TL2SW`|s@+o$ zDRbo7zdT|$L7cPTe&owuNvWF3fJm6q*EG7yXR$Qijv>N*08Y_JzVp1Ung6A9ykTwl z?Jc+Xy0L1;<;8q?gO2Bb+wt;RjM0c(r7Ep^o8Lw)wLQI~Rtkib-%We>>N`RH?;Vo1 zeEn|u`s?zwLX7;?;0g*{`ONOA6+Um?lACnMY45KO4nN@#7cfIX*${f<)%`#Fj} zYg5h(CJXdUz0YRu({{8#K~DBq9g)K-rgIwhc9;?^->9uEne!C~zs?In&wg7>d5trW zkO9u7(2*8qJn?Ldn_hYEqOSpd#f0V(J}k0;vBPHkyGg5xS@mhJM4pQElZBEUu&xlaD>LPH4D*u- z$XcK8;>E_iVMpqa(s2bU+c?Gjp~q{zI7DuiMpdB~1zZ(IXXXe3&{Rcu)A)0St48w| zDgekDp50C<+4`JFs^WFX5WMjCOY>f>#@-Jjr0Q3yh=@qxb@ZpuA8fC|^;^)5rrXS}fqCHLJMF*BcJz2EPHO;bR=~iR9as5&b;MPUN6E^FaxYSH_L8p=6{?BAk zt{B2}g(4v_)jujJg?>2V@sHpebE_~O(x8!$ccl<~=xLAdB=0Hd%bYAoi7}T$pTJDD zZ^ZeaT7iqq=pFc<5N_Cz_j+mWAp8vwm~S4Q1=EM1ehD%`$tNkTI7vkI*t=1}w@15J zayLW6^xt+%l<2Y^DJ7_6Bmhk7g4aq8jfD!gms*o0up{xs9-dj3W29Zf0VnV8GYvBeZP9@O70U z^mYyf?}$hIn@6-95B2Z;9PC?2ik+sYMyKKJ_4NsL1?MT}e=2n%B#Q`qF zcZbjxM~4$|4MH{Ufa$9({WKTp=1(3vmHy(CAY2pH=VdPL22VDunIp<}d8?NEfL}yK z1K3QFY^rBTKZFw@6fwsEcXIz<$UUHRc0cq0C-mTToIATbhc@>?yWkZgR!e=#(n-_l z+}=#ZWhQ?#(_nH~V*<0AKBPZTz&PECtHtk$>9p_55)-6o+8}*sDY&cTC+s)w<;t(~ z%5S~gv3k|C8oj4vO%fT1y*o{1MHNow-xnqL(2~n}6!5;;az6Cn!9niEj9Iq%;js3Q z(ZEY1tZ>z#$B18q^QHVPe3a`Zt?I-v( z+OoJ^a@~9lX~HmrlpF7?n5Y%8Va3PZn}}cGp9G$_^!CT8KakDhdyvUTDj@p+qss-s zY|~&0piPx_n>VU>=+MGgqVp1djkAyS+Cu0FJeDfC(?`Ixlh2gZ+@}*eXfjOUt;0)@ z2%E=zeYwtPzncs=$Bf{TWQpKGllA92;s18wyD$1e1w+qXqYg-BO{HT-j$F@`lMDp+ z3VzR24wv&cuP7MY>}|IxaCv9@Mr86(B;ZH88B&mip0_DgoT+QTC~<&pm{T8q>eH2Pw*l$wpZ5kH-3rZB)*uz7L+rmA%DZ+#W)1zD#J^0GY2#he^odN zC-N`~rj75RKFw5wrHCoy=Qmx2d@E`&{#^7B=R2q*3!Jn@I}s^?mPW)6o-6K9e^9@o zTSMX~I^Wwh!%b>b5uNUxwLHlv@l1=MdDqTH<3rl8Cu3hu3YT)DJ$zW!=hrZSRHx=o zdjV{#`TG}`p!X+GuZg3}oQOd^*N7~pR|K(^?^*S~yAZKVotIWXdkH04`^f#g`XRWI7?a7>Di6Pdc7rv=PkyYJa!L%=$>E%8`>vs`d2=j-C1IlpJnzJv>OZGZn+ncB} zOhfR+i~tz&A?Z&PooHbJRC=V?e1bu2EXqOD>9=Qfq$ofEcHp}z?u7bhItrzB8yv5C zLj*!|?CW!5gAA?YBjlnDA(6ptqu`k*Qn}>iE3VjbKTO zh1QZC1}^6>9ndkJy<&_jTNE)Cp<$L)WiQS3ZK&t1aZ|4*S)At-{u16ggA+BU!D_hu z9wIvXK|(2-jaPb%att1=H$7bS%|^g2j_-@%4uab4YGZ=Sm*|4XRc zePK(2B6xRk&^`TfdFs32UneGYZxpsuP~#=8jgOK@HDi$|h1@Vg3vk(7I$VXOHjT9B z8);kY&KDjkpZy(7&T>090X4D2AGmm_D^BjPT&|bja8omIH#Z6B8e=qSxe20$EI9$; z;{Yhd$5unWt)-86T3S8x<_S*pU&+YX`bHMfC3Vfl$=G{TZ_#j~+sUA}X1}fPOr>KG-DOdn~rup#5 z+=yX$Rb7cj_kPvs85rRY4mxnmZY8CV(&>GpuKI5(KtsAx0P!&&0ve%PC8p$T^Ni@y zhQSQw;XiC%6qQjXBo1g)OfvxhV)75TpH3@NsxLXf^)i_5 zB^Od!SYJD2?`iVVGQ_9ql*)lXPQVN`TGi`$%tbyqRWJ5fBJ7!N;Lgp|)IwxcIXv*~?%wrfvyucWu|uqV3e%L{@}O-B`wQ!HO2 ziSTKHcJ2I-o~IfHevvQ(fc7GhluoYc#DETg9#vgV;JqXY9?OrmZ3UUqs!hUe=_O;QTS9C8ANJldEUvZ777gyfp@Lg*4TVE+cbDK0 z+}%Rq?vmgxg#;&fa19rHPiLA>du#1Fi36Blwk0tz!Ktr0x$P^?s|ba$@L zA)4X#yT(c15My+%h-<8OlxL1Gew5fC78AR@<9`VGo>Xv(icl!=ww2T&16Y+4n@NmHgp5J0sj}NegvB|=%EX01nikNN)G=^CY#50cE(<_?q~f1J#r++~1QHs*bWX_| za1OeUT-`zTRufGALoAT*zTeF{*v%E_lA}MhO)D53KVais@5GrWVYdyM3}Xe;A!w5j z_-ACi`z(x?E6#O@>wlUXq{){6JW<~sbhQ#mP28vB#VcMLZ143!uSo8uqQ+nz6-!4R zq@ds30VYaWtHt>ZPy{e+%*E4A_!IcL{?BnZJR>Nks7F~x zPRq4oR81OJo9?rZ{dRdgZBp2sJ{2lolQ;7^D*86$b5~wmOmpB};g?@0ch{7;d56Z{=!n2PF-mKA$(WW@XuG2S7 zk0kspBwU$5^H29c33CpBhYPHx4TASEkUjU`6Wj|&yKSJOiW+o4?bkIjGR^m*Q4MXg zX!@}lAKHlX*w?-j;PR<=>?cpebu-Rwb)DLbiaqg4Fiv zW4u56K9~CE(rnSA&#a`26^)@KRo@UAp}q+V-qtipp((6jcISCfIbo8stH5B%rm(zg z?9=X1t0}cAMQzXl+Y}4Hr4V)(VH75ECIuY+%O%~$el|P^tCnW^vWlVl?uTbgR5qiO zy)Jw-GlN*emaYf&B`$J`>Kpl(u(HbW`4KQL$Tf>4H>sKNb+-TJ!EBcbt}A}H&9MTN z`VOL;&V3Af*vme#^9m06e4$HQymCKiTjL?IP?YBQBfMPkr=awJGC@%@OR!WrK9&9% zOFPaTD#B>_M>=TJfORel~{)u#z5redbiLO(R1LN|j)@X?)ujff%H+VXhKxtwL zN;9h4xpyUUHkD(Bu=f!c#O049{0$@==t38XAf2%~7)r4WE zCr?I<+rDz1V@YPth*68TRC)QZKk4V;BFZ5VpqDxv95;AbW*CkMQ;CX_#>m1>j*>64 zERxE6G-Ko@VWivlntwWlWZFtU6rxEx946P5q5o+(ttzP(rV_Q5Jd@L^@22(N@#`Pq z!+b4+5RSN3v$EOt1aomf&&6E+$R+x|Agjqt^9m8b(F1?()Vw`HxNGvGF&aNMRK zso;yYkT7x3W)=WLC7ukQ=E~fPjZ(8l0{JuS5G2+ht@3*C#zG&u%BA(>F1IeTZPJJr#laFGPP)gZhEF2w z%~|<*+?1l`Vl$fqlzw9gJN?K@kO(^{D%7A`!xtCOuVw{Qlbb%SB+tX>aZ!##Dwjz> zOZK~o?Y@bH%7t2i&X1J7^bbIzE`F18fnBxq9QunBw$+D9;50f=k_l~-6_HiRa^`I> z3}&KgfpsqyiVe2OK675X5Z%t;N#30P_fx{1EInnUO6Ug13swd3T0#x0;Zz&-%&sF(;S7&oe zum$+@$KKmSQ@>f$s>je}>e_!u=J|BpTQ50DJy!3B_)Xr)C?{Gh+>gguq*8j43(ErA zI+>Dzt@O>lz>j6sqpCgSZ-XfTJ7$8+2#>}GP9#i*7M@$ z5tp8tgY1T-mqkBi7g)cb3_lf!WE?)kjbmu@bft$UJe=>m0uu=g1LH(;qyw7~Kk+ zjr~fg{|NrS7yM4hJJ8iTkS$a@zdOsSB8mEC>`E0a>{q{A?eWm8`{G&b`)tiODXeBm zjQ%pQ;#+dOF;k(M)?aCPBe#M6gfnT0Z~4pl(~&2LCi#bF=lT}#(bLKXA`LSbM)8oN z8?2iEbP1NlH^Tg$yCUZ9aw?6wxXQOS(e5#tw$l!qaqg_jYz`uYVzvqaBjLV}VID#I z&sb?D59P2CRZvZRD4oBvItPT(?=RncMyZ%_Qr-)3+Vp&i{K(lAT{(}w23of@* zycstkWgJ5&Y}i2M5~wU=&PRzc?D#bn*9QFB_oL-wfJcb_gR1Cee*J!8{oWHDa##Be zG=V>8pb*!yz>pLjHSzmx^=YlZ_BvoQpK?$;3%WCtooV4E?Jh0CsrGr1Y286%FHA;r zqk#n;e&v$jVVauc*$8aIbOX09NgpN>Qw8is^5b?Nud%5CqafSe3GQSoALdNkpc{Hg zi-~3D6;TRG(IR9rGdvM}@@6EgPS!Pjw?)j^Dq)#$g7B(GOxdJ7piw>-pF}zMQw=Jr z&1cO^$w(VZD$O0l4U_`xOq^@Rn%R4z{fTj|j-s|A3IO=vdzv$Eg}X#Clglz89Gs(H zOyE9FJf3XM8ecHmujV>E? zSgR8WDHe#>jC2v7nX<~Mm1img?q0YXr!g2B`IRgUQuci7Gmb_|WHcQ7{PM2=U})mQ zi&q_v0x?zV(C0_kpR+#V55Xf!01)jae#ueL(llC4cwV2KJuHC7qeiN;zQ5yLl}o_w zEJy;Vl-sCCW)*4QUcTN9U{q~wzf`D?1qJ;PqxN@U}1+Z*mbap3Lz%I>pvivu$9wnV$T0Ko`b!Eru)vA$?FW;#c+wGeuFT)%4em~WwQ>e z^A8d@{v_dZQkjkR%Qu+|Gj1Ta+8Eb-L!gEaeATERrELSupjkoI>$D(2ANB|6V?C9Hpd@_-8nl(qyBED%zfk}6^| z6I{oEp5IoG)2xxh@V4mA=VAU(D7u_?DX*QVYoF=jet|lvi8Eykcp?uW)7esM5_6M( z%dkBhYQ|!m!bE*OAirG&Gp@p}F}-~LX;s3QyN2cibgdvngERU&W*nB>tV9{RmEaIe z`4VqWs+RW*MED3hQhFSU-4~Qc&C-2v;(w59I4b4Z}Ay`G^r$9$!Odo&Z4Y> zbdk3}n42mMhatHZIj%^gHDu-;t2>78L~G0v#5)vSp_i_Po0FGH9wW0o;{Y(Mq{&y~ zDCTP=#`wQX{REjXEkxeX+SEZTh3JJR*JrMT%rYm#FG1(yL242?QXffRHeVa)GA0e< zY}-8Fn9YB!V=*%#rM6D?ECtcASst2~S&(rnueE-F+sTA04C9Xu;DI@b^%BN?w9I@p zVn3ukaNSL+rG`%Lnj2gXCvPw^H>fnsZV>WDDLjUa*Mig#-Vv+N3G0lXP~(UP^b(BC^HSRVj-MkWfIe? z<|yWOy||SttI~d-tXAaQIkO$EKSi_NBR(!Bij|DEl9`w#e1HD~8>*6hG zR_Fqr1XihpNaeQdltIfMh?sJ5rbalz*9EmPOfPzAJ&kq``17wq&3zF-%nT* z;`V5T5gLUQ+ULc4w09xREoK2qlj#oE_|;10k#Fh00``%GiNswYFS61?oZjws?nLYs zG>554R;VR1-_Bg%zUf{0!ugVZPl5Lrnht%vq$0jErUwE=Yym&$nX-a7pQ8I$H%a$t z0|{`U7Fag@e*ZS=qv^3DfHKwndG-S$OX^Z#X*3^lJ6xi)T26NyeQ7~T(LsnWq_1P-8FAq;%HmSL|{m|{L%F604c&+&@c_-q=`(b#`MH&PRr^vS<_n_ zJ4V7o_2;5~FN-+z{7Hv~w+%~R{xxD8#qv!1R<@I`oNS&ND5CPDpzFD}{ST^RHzQz-30-g+GKnbjpA)@Qa zIxfz7xKb$0R`{}PonZfUJ=Lk`~xCkOp|825pH4zOjncWCq1$M zkZAXz&lERfu=}0TG_3=txi>~At#XFA3v)HTNM$Adbue*(K9~A4JHqS)8F8T6zpQHxVZ|ex`X$yC>|rVce(Ujdqse@YTyN zE0@tjrA>*T#xKMZ>w2Ts*f0}-X2`u2bt?R4SnJf6J;Ivf>qa%G)*GQ#^CKaMdW~ltX}wxF`DeqPA(r#;a^@Ij99FzD@IObV=k1fHDak~O#c!1UPOQS~UBAi0dIavZ#8AOX%`=f30fmJwVo{#iD=ZVwZ7wFChV;B^!70nX@Q0 zLR+Aslf||nYm9eELAAB&+Zu3~xeHI7Fmmw0!Vt3KTn^FfFWDo;JEz<<_3AICU^!N( zL#7t+6Z@9o7?vs}$Bj?KU=_Q-k>l{gyx(4LNj-G*Hzy+9Nl8%DM@s&FN)EBRN1z3; zQ-QEwlQimGfbtfjgoOs$;=>M zam|7x^)3(NhmBjzYf+qkEcpz0|JF({cuX}j7=G{`YXfnt;KxF1nAJcw{hGAiPh{W)^hI9;Z93u-pJnpdc;t*xZ zx(*u5XxSu_`bE}pAb-fF8Tc7Z%eW}5iVTlvsAmpCWz3K-4K0Hhh=l%ZUU6?8J8#Mq zil9DX6HnigxDq8AKVxTGh7azPV$v0$V~q>0AkIl^b7I8j_pj&3nD3=pH*T|^NrT1ag);nAZT*%Gr6y+(VH4i6EIq8apdZX`n(K%z?Pye z=E+)pX-5kI%2btRsuY~#l^X6O)o~)18M|ogwihb(bQUnFjev~>YXeUMkbhA|Nyyj( z+uqE{+}l19@;4Lm>xvROO4)rwOH>VsLM`Dl8b3}rX8?`EdTy1Ql$t+4=P)TuPfR() zr0=DNb8SL(&Y-sBs+-kI8lNy3+;Gwt&LDHOz?rABRui$ zvXB(s=8Xlql#CA&=KRsDI$WFr3lW>3_KRso2Am+Vxr!i7TY_SEN-3DjIc43J?Z*=A zH5{?;q?%MO`dCcCR__wfO|=Z_ZDuM`f@K7PpCA^gAmu0&0|;-ZU|!;oAVSrP=Wq5S zo*1lWz$fDx!%6aVcxXK-o{f=?RY}JLj-eq^;dnA{Xpszpdr;J2vKW+VpDd08Nj}8s zyCH(8xKngM<#K5;JRn_%)xe|DvOryh>PawI6Rv!gQ3mN{6wF9n)O7H3fIMY8bO8$OI9uB7@LY_uBJJ@B>jI0Bqaj>1|T*46q` zQ+~N`u&5m~E60zJgF}4-sp)9gM%D}8uHXN(mV8|DPe5#E3VJ^U-Qrl`$bg1?L#o7Q zoHV0VIs5%}eh$L6BPnJ6(8}`*#APoM=|+)q{zP#m4l5itTD{k>m!BBs-MUmbMJNQ+ zN{koE&tGsDuuv}68YF750*x6=73M^i2={0JEhNpP%(XamIVX`|&aGbi?t@RU<}JQW z?v?Y9p6PvN)UF?VzntH&;Lf;5&4gV?FtMZtNCps&6UMpsiV=pA-x=0RN?t9sUfkMF z$Otb06|@~(?XSzLugJ!H<;DyQ+a;goQM!wWNnpP9x{Sgpo(1@GJ z6R$z|YBlSD=`n>z7XGD>AcwV(hO2i354z!Ux~nNGQdu~v)RXs#2en!Eq30ZSrQx7J z^cHzPGeG;^lVS$|cMku!@VeAoCiM?FF_z4)mceR#LR+=i!z3Tx;OSO0wepoee)tiM z|G?TfUtCW;v|tE0sTIdA;ZCNTyy-gmTOz1I z7TPP4*P`(SO-@UX_~m{vYBi~w1+4{TPPkbhlaip-h$k&TIPxjui5$9&sY)g7AQxcu zn=eaqZje;C=Vs{3n4WfOKHeACz50ONcYTim9wGXVt)f9_TK6sKwlwj4^QJTG4DJR< z2{eD|e2B&sCJk{8rtalDp7pPOV+s6%zCoZHguCO4uUsnoCg)oi`MlY+r=(Evd$sl8 zsRw-}b5smxRCO+;j!O!A%4ZWF;Q0p$O{IKSr8E!JDfjrzWIZ$9tW8hau*`XHxPypN z0eyX>5?Yv_*}H~UWMvxPKT&Z-0;p5)&1m_}4GX9&sgqlo@HKI-pkI;StmY5WMbw=} z;1KpVDW23{C(k&r1Zf(=$)pV{1Jfz4TodrUv?7-mv5w2^aKz zx*#a-M|`=jyiHA;BGHtlDcY<4W+^RL^VUki5xWXr!k2H!J)mgk{&mu`i1~u9GD!0Xv-So{Ep9i6HOlihF#lI=wOOA|_ zL!Z%5c|erCG9xx`nD_h`TP9P|OX>J{`TxJ8A88US!{I9y{%(&+CK4@RI(tM?hA!NO zsXQ>G_^u9vYxz)cU0RcNb|aCOt(NIsGJ*;JiXw&D=8kX7j2S%TCH;94t~|BDSVjH@ z_~ns=(uej*@0qzM;7zgeC;PG2+daey*C{AkKE8S89vM9-UD3jpQW{Zj-3}S}E3rFn zI!>UuS0g`d$<^qY^OC^<`Oh$}PN3v}wNoJaziLUMv;;OchM=@_;;!3J)1HltkFnPT zxzStusP8R93n5v9xLp;i0{w=voIR*b`@At-l-A8S6>fdK@sx|OB`0v97I*9`njZ8q z#k5T+SP^&jM6#Db-hU9p(#rCnaQ+6RkZ)u(^ zm|@I>VWh+?W*k%C6MJTp+V6g)oQg@F`ie`c}HV%^j&x~FLywSl2ejtFWd-^Jh z-Y`k4bI9RmMl1Ns+(^r}W+U}qn%K9}UXW3#ba>s!fsy@{t?!Ll1@)z(LFOa_lXF2Y)JuEjskvUXf4I4;rnhlmf;T1qfTP?>RpArA{DaF? zy`>`AdDyTLBNb-aB<6eo;vF*z7 z0Yb)K2%AN(l1wc3@|CohTs-CC;%eAFzN|tcc@^_SFOp3PpIwgG*y4k~lHr`A-S(HW zl^XCvMdUq=5Y)0rA-GD?+|tAG>`GsGdPxJZN6>*f%SBw{jHGeRVynnWlXg8}(M$SR zRb-oZ`IZ4+8~u@je>Vjaq91R2u>*r3-y&JL@2OCdi0*^_6k^dsKh7~s#Xv)kTvFb8 zrHU0ln*+pPXS*zDaVL?=eUK$??zRZ2?+Y)`0t_>%IqLJB`rGtWsOAx3d-KaHcE}gZ zVA^30Mk@2$S3VoTqWe-DyRy#JtG6kk#vErs0RB)-dLshd_#GlrD5s=!jc(conI~ea zpFW3Y9&;Nx<#(v6*Jq3x&VXF0DKe@{6tP`FMFqA~{%nW}r z%MRHMVf1>x=-OL}Q>PUt4gDJcsgmtGav(Mq|J7*Y*5*?NTU$OfV3v4%;Y}TywK5Mv zTd<|Shx#uedH{;|u*R~i;8n2( zk#_I{Ier`=J7Q@czf7>*r}p4=Nd%QQ=hZ%~{qhDY%JA`4Y8H$y9s2Y&C&ZknmMM(p zAPHzg=)@r!W@N=;&9B#bP72}5U;63@uWr(@9n%NPaD%xBD0w%lE3Byak{lA*?Lfnb z7U3A;6`Tp`1uG3s8$YLmH1ma7D1JQB@VC;?4Y|Sw-SmUDFd2k#K@_V@18JZ;>c1X; z_PZ-TLi?D*3xJiI9|e>Kz#j8~-DImdo}qo3aSB4Sh_o+om^KXxlic9dIg6IX#M5(; zaQ92{Nz)|MNakJE$>`0s+U>eco;ppoi*GW?l#<(q;695=b9t{OClJgCm~kj57@G`1 z^_ZQ)QlMsxw`+BNiqFMt)V$7t!e_l!a7s`-n*i*M!jw{I)nP2j5hIAR;Z;+6Z7q%{ zc(8|DijyY8v&t744M?w9Ie8bF-RPv|6Qgb`n`J76O!M53g+N1v3S9~q=L`A zbPv@)RVXI;k=-v9r=WZM^HcAHJ|Cm-Ah?NEnUe+~8Lx&AorwVli8c$1KxO?7{kMA z0YS(tIO5kXCvNeq_OAyw7xx7$bX6|qV>$e|5wVgm`*4XdG^ySwD+DBMFCwXe)IcXS zba7j){x|L!QR)Yk4}k)$0^gCt%K_Ti+mHcYjHNxs8}f~qBR|XXk15$RpanQ#nWN$OUZBQ zKm1rnC8TWtEKhm2v1Am7QRg1muE{CxtM-9gG`LaHE!ryPQrS2yx|>&c_h*l(JhJlt zP+;A6>!%!KU=i{M;`9u$UPj(Qw!T0AFXljVk&x_PpzvakuxPvSiYn~29=%l=t{U|< z8SdF<@RJ30{7ll`bb7o<;Ph7%Oav0e?_-6@!aWb%0xK0{Gr&VR?J&tj+@K@DH>~sgqRju8M z(v5Ch&1~a2Gyga)-=9rgcLm6(ZCd&mfL>T;c`ld(p#CC7oLW<0+IRo{wVSl&3*^9U zYEC40p5rX^VWS^mXEBZ2cPWD%H=e6eQPM;t**mtk#P!mt%>r{RBBWXIb3N+Y_IU*-6)~*DBvbJvWEb5 zuF0O6%)1SLh-ETGai4um;WZ{cMX|$S4{;phv(bX23bK7+56FwQBBo~uqUSgn@WEML z%HiMGz59Fy_1)0cr1dM}%=#?Sl*w;GaG%pYBY2UHkQ+H^Laz&aZm}Ut0k27=_PM6Q zWpzgdP|L5#Uf99NlFp^%6W36IV8U5sNf#HIA8F)@tD35;2-;g)v8XX~`SRd|)9t zxtAm+SNkMWACB9_AG?$pqPfSs8tgZtzr%5-%M^u*LBPo@K`1FyN%!973t_xBq%ig= z_;vA8UzBl<^pR3;g*)L7v9A5foxm*5vf?HEEf=(3gkZPK_<^&C*cw+z z)8)`GTu6;Wu?k^$6!n;aYjz-b1(=C#jLK!=_pIq7 z2NUONLyAD@kFftcVc%g8y-kGHsSDnv3KT&HegSagR&nf9h<@*&>7ic<@OU(Fc}1k| zww`7C=pV+V^+UShF@QL%>~*2b$n5mdnen!MuHWAu;Q#c{qD@2N0qXuwOF}_LdIiCz zuEFHvye?ew;|@xnV_!Kd=eL#@lN2g}3)_m4z?m_12h^}$-O|7(4eJuJ`|o}5SctJ0 zN2VWwW97}QEV7JO{p{}sM9Ak+UrS(35Qa-lXoV?bCx7%AqBnjkNV~IPLQG^srDtf0 z(uifKgvU+#`EqOF)n|qu2VfaSd^?*OMmoDP8VA3q%Rz45vxd26OeoOyIx&RaEqI{} z#|`t8jOC0n;+C&jFI`n-c_cE`B;BQ{)wv1HK1-HxJjb;;jbJN=@LquO23TG3L(`4#$Laei~ zc!Uo&h2@h1ZTwmF`yIuYz(c!-AxO`&uq}_;C6bE8PoN01Vk75dPu--jv7Q zlMlI+{9-Xm;)I|e&cmxq%*r_9pm!m_18hsJ4{vb*HxjllxLd0EX?7D0hlPo=kUB7!9E(j|{hPP9qnZS^K^0fClD3V7berD znB5z4M53{Q(e9~>f0np3(oVkKYgDXaW1g&TG@-HG_TdtwbE#RWrci4dsl2lc!z&O8o8wmXoWA=B7RH6}ldHk8DdC@q&Ll$n*C_@XJqs~Yt zg~E4OKXKHbX-7igX4e%v)c7kIP^r=>O9}bVOKd+&93>tX7Em3pspN-lWwqXB+J*#MWwkdMne~>^9b#H>El>y z;Bxo?2R!|Edhw1e=}x%9jpx5MJGpB!!Gr3p8)Dm7RWL(M;whU3jA#=? zr3K{>ufbR!1c_cny~4t;ZAM7O% zn1x69?RgRUc(!ik`c6o(CG;Vo&^YT|>Cb)ikx4a@yQeX2aKdY1F&-erK{xJ0$GVz4 zW0N_gJpc+30pg@lg?Uh7pn+=6=!MnBR=? z-sQn>=0_(cgALG}w^skP^-S4|`YbkRv|WC>#s}9~jL`>;1vn?vQq@z{Pk1tJPjBZ+ zz|N2J2>AbJz^|bC5cfN)y*toQpgaiouS&jUXr?4gZL3rZGH7I1rGq&up<)I@TR6X9 zU^9kPqgY~tt~Mzu&IAEeTVGn77-9ki@rCMZ~_{)8`YD9s8lxgpxNZ0sY3 zYbjF4aYgRiHByq_h$++%^|6l> z-^dy}d)S!xB;pP+3dM+*0NP?!5@SXUwHd|U>%U`2X^qiCjOYQmHFli_(Tw<+nj8w9 z`xQ(6>hq7|lv!5Cq!}F1o(t4c+O3p;vzuraP9D%6py5P>q-Gz7qY#KMApFu;PhKP? zUm^Z#5ymx^V2;BiQ&V(ZZ2m%*5M9lFVJDidhK4AZ`ZRylfkU_ewSi*k9rRPe7dC?s zGHLG&ARtrXZ`UXOgQ~T_WHl%aF@{eb$>eW zl!7)+-HRYpj?0a(x%MBplK#atAK$+zj{jOIKvC{F6bn5=+_62Bg7ajE@nHf8&3>4B zw+&=Ad?d&mRf|&32Smj!YkvgaYaZ*bkn7lwK{_ThAaj?n8$0cm%70o-be={yT)EVf zj*`}-5rxSZA$AoU{uAYed(#j*4(o^3^0{T+&bq=*Nr#dXn~$h$e9;I~cGRl+uGKME zhQ4C*ERTU6q5I#V7$Encz|C3+Iule;c>^>NkhDCq92!pVSwGj6hqexYdNtHK;Q=@yX~m)vHp-AAJ!g*gD2=2U%odH5_N6 z(GF>kLNUOcIvfrQSw`XAfGweU%=?_|cOB;p$6DUk1U1y~Qv_{eSbkY;7}QzT^XQWz zZ*K-9&=E*5opKQj*yyb|E!@ZM2fsrYfkWGIQ4$K;kydI@wVmHK%@bfHZ?8rkk8Sf zE?XLF^KD}R&8m1>t8S9eoGK+(trnDLcHk8G>b&1rwTM<_E#WNa?U6f3;eRioRG;pC z;id~Ic?AA%0A3%$al>M8+I`2OSZT76Afo+}9_HFw9wBPAfvu!{RD1NaoI>!-nIMhs zl?Qak_pN2v7~TH;)N>kg4DXNEWKn6#rARF{dhfI8xOre+zA+E!YnyYDCFuSiYo+&lbq*ad;|tmS3EN+EZN zsJI7utryLEVkHjDY^~D$c58H*6)-pA|1*Ot24?vW`w-!&lsL6a#4Ac%n%R1nJ^QI( zxn(T_m)MB;cKH{YFiYjiC6i@x6%mg^Rjm|^IFrkmyJZ{ zJN>BAZ$D*o&}(o0tLX|+b@>MApL>4-3Wi4EBqxLmnfO1I8Y`O(c?GOqP)^DGZ3;aI z8T;XKSf~jqO0kUnF?GQ@ikdF32F0a*B;fx&0oo9fz^ldXJ3`(hrdvYOFx&L>`iPZ% z6KD)f%}}wK=zGfXshgW~I$g|7nHuuRrs3}EoN;(pd$!w97lZ2@Z;blEOq2p#z8s)g zI5?L{A>o+yNNz5cwwnvEuRzsSh9kOadDT_Xh3@akw-e{Dx&?NGiQ0;B)8StxbK3dB z3u&g2ebHY^1{2E$TKp9zuyyp%U(=uP`p{|Y+0VQI^)HMvrLwflNC7lvbLWU&WsCwJ z8tZ7)ITG%NObb|ox3eVfT~gtek0Wf-a$K3Qg?H( zHj^zfCcBOA71MR_^7^~aNSEC!@g#DfV=qr=oc;V)$tZ7)ss zB}jGgpOc0L*C3|Yqo4IF>#S$5RMqKvYfiTQq)S+VIc12Ds55QgqZPkpsNay?YgYTCEXVako~#*WEaC?&(&%BplVMXewT?-#5W*0` zyV@FY#zbz%ldEAGz~<9`<7`*kXS}8?@a=0Vza8ly_|itIG)R>$&LFR6lHmEU7m*j; z;b8JQ0Mp}nlA&f4rPCuZ|0H7g-kCh02m7TZKquB`kzWm2ygB3h^I=CBk{2#|5-f*x zfqWMICbPm|&-X(syc~)jwFb*fQY%(Hs^MN{XqSidOb!8D5|I{0rf%5AMfl_AAMyE5 zSr4D`q3129uql$qwdyH%_B~IiV-z$g<4rs3Ve=#NNgx@qOz)Fm1E+eP*G}%6n{^?m z#6Qth7Xv5v+FQS>FOzg;IW)F(#^r>UJ=A_E<B_QB^}+O)n0DgjSBP;v$$r|P1I4$VT&0AwOa0GUx96W3u~vKcRN!tfqoeY?@Huv1 zS@76*lwONHVuP32kn5`KhPivUXUwA89&KV8o*%}s6D-73SXfJsA zq3DP7H4z-GONsHk3Cus-NXa%Fc!Gnl!hymL9Wep9L##!^&ae>+$G(E zN>-tJ_3opkKCz|&b-YMUu%dD9%wV4%N)8EJO;L~!b!BY)|`7AEh`VE_h_sQo&ptTgOck&l#OIj+&D3#+f!4gr+N<*rYgscfq5c zuwI%na#^b6iFl*p2VA|+wjV?G>u0xKgo=z6w+1(UmQmm=56V9ht7`v8CZoUc1-wT{aPvyrAhmv)D>Gm<2W~Rjz@> zKJffJaDmjy(KT+g%EV#BV#C6QbNYR%}qfQ%!z&$G30V%-^Dj~D%4A88GU^R55g=}(oBB?coc*91GL$nTr^#eJKoY01Z6 za-@fr#`qxuf0@S7VG4Yz#(0C!=;rfj>R%6XuJcG5sBFIow9G=@>XensQiF#`NCC!HZj8lA_Rl)_c zRrUez2#2b+isr4Z0a5fT7Nsm3U8cVFIL7&wY#ms>10f{z?{`)teLrp*?ZBlQ8-44j z<}@ZGe$U%DEC!sRU@?L_LHhJ6^z@F-e%Wz^mS~RCmTi$@>;mhA85?|gNV5Jq{H(Io zra4mtxhVQt?*QG0L+>j|*dl}eCnrgY`ho~~`?hPfJZB$WU$Ii%#T#~(INd?%s)-{m z9Ob5A1>GM1-tz^j&X=PGUZm$yNIXggpPD1j1NuA05SY8#hrIR8I+@uaId3h@|b2e$}Q>JDBJB_zC@+w(HE_4!tP!n=`}}R_u_n{;J`&;#m&s zd#pe9oF*420Y5n?mo$scoWH*=Qw^nWKCUN-ubp|)_~dGX-c-#%j@rXcmXLo}KdVx7 z_hEqHh-v0p7K{5039!O3vD79Y9ytREjKT*OIxB%*s3}z0!!2LPH9#%1tRy05wkp^n+iaJt)@7uD&L|@S}G=GJr2lalXd}L+2FBVKB zCdF`8aEHChJq1lk68m!r%r4`NKyA?YuV_`+l^!ROSlt0_G`>(M&fJh-abl=pJHaED zh7(AXduat*vrTC@q$5At)t=VW9n!4YgOMkl*q zRi3B32;9QIPP6${9Fh4FD{Jn48l14TxfQXxGi<~bOpKgMuxR*B_!h~etuoK z)E7#g@k`t3k`E$pi_UmROo<98RuM53Fqpzrj=}K5!it(#!=3pzVIt30AYijcNdNC3 z{p@{feU}e8pgfoX?Xv2pF+l#h^#Vbj9d4L%tN4iJPu3*Fnj=Xsx+6|L#|B8!&CL*m zNG~oOd#6le>(xm=|MBhSb0~2fYK-_cAgPrBRRyj+Jjf24@9rB&jN=?DSxr_GmB`4V zWnErE)U=ll)#ck|0;6*7Jy83uHih z2tsPVRK%w@ssJFB02l2avO!Sr3Ke|qQY;EVxujXgLGuKLo6hif{mP}gL?Cid zkN(9Ex!gda4Kc?NK&JbF7NQyCL|w4b9}l^qoPJE;zb^x4d)@bq_ZZ}mosy1kP^p^; z&?vhqO&@GZ@!ToHPU77e%2zHwq|?2G>-F#ziODxg_3vIL3)Twj=<%uHLR+4oJ2UmU z6!lWTUXDln!d;VT+wyRcLf(p-VF?oT2Cml!|JyYnZ8aZ7+z5QEYa7IGJgbTOykmsr zp)mgt>o{Y$`?liS1S|r#9~LoPm(g>+JN13-!7(>gA$_l6ICE_3WN87ln}Jd->NWi2 zWXZw&7MJK7Q{)rg4h2c>l$uASswI;wiG&MSS_3A81Yb46Hl;#ENP2y+e$uwbyA2*} zL}3m*E7pAi`eF0Y0wFx-SB5#q8yZhz-|9N20vbqV!RcEXOa_vp8Pp;BR>~R2G!_*U zSxc%(Ko|UtyX*xyDdYC)FoFL8e#OO@MYtyd;h8Q{cng6U|BPv(45xAbLzGjop{pQ2 z4T9^?K4DM3P}a$k81>%EvL(fQxm;ZemTFRPR5vqYXDMobG_pT1)<`k!!^E6>Z zEay*dc7=G=M%ogYu4frE_R@#Zzaukm)uKOA^LJ3wfBFS<*5f?04&MixvMO=9>9TK>(S$=(jY9qh@tlYw+z? zGC?gKW+UF)LaV@4$w+44_5labF$tE|!H4s9j&m7x`2> zUg4c`AUKoq=X4=DmhassQBiX>;ZNDZ{fK-yI#$^hI5fYdTac|WEM;wngNZ^(?c&+j zsg!oR!y+DF3CTRj`BWl+VCtNHinAB1Jbif=5Ek`YO4i-#CaFpI%FliOk2JO;vu<6n z|Hz{I{(=^H@PD^7ZjPOyS1nLGrh7`XWJ~O$LAy`yP2aCWSpImX%zq1lxlR$14vh_; zZXrPffmDTZ%FR{09)=g(ZHjhcoShe)2^MT{fLV0_CWrAU!efX>p#H-v ziWYk93>|xh2O%t_nH#D9MtS=DPmP9BRNQ$aa=;#%++s?>^u2vMv69BbpbQD8omA-t z(@1-~^MX9s(9kD{*D&ZScFk$A06aw+E@^nj zyzB7Eg}2$HMBuz^0`nFd!dBJx7h_l(LaJizZxO?HV}Br}YPtU(?7ekVT-&zpi%a3| zQn&_pFA8_J5ZnnNSRlB&7hbrNK=1@ef)m_HfRNxC2t{yzm9^GcXTR3YmG;iw_uY05 z|4$~pe_vZ&5h z2rGp+zP%)k!5&*)s+T=oD#Pzkc-0j+ouT7~u<(oHw!TZzGn^zJa5NXVfi;;tznaW2n;4gVAyKI|^v9o(B=$e?KF zXxH9fcQQtyD|Hl*mXxrVb{KPh&J_x2D9pNUw6`D7blM@*2+qfh3Jqhug<~| zB_au~yQN3|+u4?J(HdO6^F$%)p)aM)UnNbv)sOFt7KoZuvM)8HFTm=miaUfe5Ov3~ zG^D|9Ssy&rdHZ`=GOhM8Wh-Q*3hN9$ZJX8fFZWW&?=Uv$aNm${?MOy{F>_W}H?LDyM8pC=-@!4ZvSVwbmcL+{$eLF0=g z%nIN6KK=wL#6jY!?U|OnivYEj3x81?j6hpqXVkSegoK(4+)Bk2@xpnlqivrBiBBkc zlCIVi0|f}SfZ5|+Q}2L}<)$}MP`(IheySFvqsIt}1_9A}jPChb`}G%|9sBthsfmtM8v(#yKsceLZ=AiA7H(@@_>2&Eh!d#efFjkEd~-?W*Zjq`OAR|%eWS&+kr zmTy>Kg*{?zl%z;w+z|(dY)4BL^+{>0QtLSF0f~ATiAyC*^0W`aT{)_wT|4ylwJttl zv_l7f*(xU${lG^op!*dw%zPWTn$25P};tS+N%JkV^AS-oc1@n9H9 z2a1K&$)orN4I-;9%@B_hWK_`d10_Lx!;I~ibJBwqX)gy`CHn6o4&#ePV!5=UHZa<8 z305wFcx=zL^hA~Pb6*Zdz%csRl6P42uj%tt_kdr25?>R2awBLOR12P_(lNVSnXfw9{=!vRtGB-%#C#vGm3Drn1&WAG0e-3`~ zc58;aCMryy}`W^K9kz<*$Zmu_mAHCSH5i=Ce_3tw6e&G+DX4iVf z>KKq}&#Te;VzTPQS>;K?MM8})eS>XiaN*;H&7=UXPpV3uc*dL;ZpnJ$n@*=Fi9FNT z6+>sZlo?OBhd46{%)smYthyN*8*T~L<~o~u?$))o{UDdctwE_|0O zoqoma*S{uEvliNyhI$w1VV5QGtAU!6W=zVmcBMl~a~D!MMeDUY^yXMex3w{-yCy&TMXJ2G0$9XX4X%$Fs&=28`GJ(6! zk+`E?8x83crYRYyL{?5#MVN*adc}9{k#2F;qnvU5^-C#01GtTN;lkVcu0&_Q2SkA} z+beN&LSqhjQlzT<2xafn(uhXT0v4me&u13N9D8t6U`=`ld}I27bH|x>OGOx@|40ZYE8rjs3>Uk z!_r392VULHyR(O&|BEYqx5?9aeR~*u-?4oAT^@LHhyav}ti~LPv@=^m`g1L2mZ$)s z&F>N#LRK8r%FtF?z4lgYo*)-zE}`lvMBFzW)QrU$BfvdWr;_^tu%1hI7Qrg(_C%U> zMWL#=R{5u6&Baq(p9p(-Ax3Aaa@_A__y;|JHFdQ{mo)n~J@2-nrB*Rh^0Fo{eF>Z$ zInyL^IfC-SX^I!L$6^*0tHVXu!5#HsqBCjxxn&Elc z0>&xRlaxiX`M&tUok^PvjmJsfIsxO>{9RFIEMJ7`n_;DrsJl@wCZ)`tVR=!oyOd%phk31(Q9hva`l6o__T!wW?S~fM#f_+Ldr}H7htM%C#!g zD-M0oa@4GYED2?=XNCEHmIw^KGA%DWD=XfQY|Fb<`wdG8$=eE+rpP=HGr1gz<(xw< zUv*Lwz~sC$p|0fN#gT{Nb+K7k2&8hR&tF62CqMrDGmCOJQ|El40{H&Ln0!9B@m3S_9Y+Kj~TL6t)X47Cg2zh zt;?>U>#%z6h4aaSHSy7$nFiiEb)oCA@aiB=kgrl}-pspwc8v_qpV!Wi#6=0h z_vWvZCKmv2pjZ_tS_kBz1@J!H{z067QRN_~-pj0X-do-x4r+L%$E%K7zVhujyzBa- z%FiL&$^O~Fn9Jc(%(=HPJIVTOs>{!ydS#LW6d1F@3Kti7)vhy^iqV1U&ME7}Rv%H! z^0hjgps|+;pupR|RQ%Y2&!wv%ff%4dAc}>B=G?vrnl|Vle0e+6BzA&-gqDtNYG zhSkkr&`i{oMI72xZ&_6Fikr#2g|qlep=2JB7Jbm6K;%Qn|K(L)+e!|;Sf{&(p&MYR zyu!<$dWX2G4EduSdt#UFWR>RlnI|qu>Qt^erP-%n#l3kBD~SEJ#+ED+waZVDTHzlUUshG#LFbw;3G*z$ zp5ZTu9~_Z5>y^?6E4uJIxzdb8<31}0MJKL&P1K0~cwqk04D(M8$6XU*Wjf$V;OF-# z=v{Q&prZy$Vy(^P=9J9M0pNYZFk^ z4wW@{bJ2;v_d}!AhBj&r(z;XFY(HcE6WZw((}{ATm{8c*q`6+D0tp^nuR}0XwiQ3SZgh z!{R{yF1v*M&Ww~l5GB-YFhzx(Bw1?Ki~VT-s+fe&w$t9wm>L7N6lny<3U6WU7@fgIP^x5Fzg@L3nw<$pNQkB(B{F-s+=|Gx$5%FHQUH}sC&oEAO(>JG zW(>!E%8DlD_0&m>s@^U~AZ67T5MY_aR6nK^?q*3qkHC=9gAqhlow1tOh?OiZS(4Ix z4jrV_cu3;GiT|LSPAg?@@$PxL?r-qUWJ-hk&WV}~cnPUSTlXjkp`L7&UT9_bQ@PGB!FRi=f)qI3p}E^7909Xm$GOn|_W?Y7=_j^l#eIy*c$*0*{Q6%fDYJQDJ za87$HDzW{?iiW_l0&b3npGZ zyA2JKRI<^5XY zqU=6i0-dHv0fECq$8o*gOR=mUB>x{sjtBoQ^j?9T!;RcT{^*|6l@rJF!UDe7OP6>r zdsA16S{d^6Gq1?f5QEGp{yO#t_vVqZW65A@em%l?_sJ)euPB+b-v+UDd!XADsW-p! zdSmJin77CA?9J!;)r-wHK8dB&p)Njg%sd9^W1w!%8mLjk+^VHhtzVL(U?V!<`1Xnv ziqvY-yX4Lqf5R)EAaK$%^(cM(I6y^!xd8+HpuC|*C(Q3hG$GduZM0!mRD(EhoAokPNT@N=ZV+4ck7ZncA4(dGH)#& zPCVn%Fo4Qq4}4r1u(F|Bi|BF6n8UzX0G9L*sW&O5LWEU`P|98RntM>ytcnm_%KahP zE}b%+4gVz)yZv#0i+96$I@D?W`Tj;NmZDxzKk|eJz8RYwwOlpIa~`$)j=?~*8w_+t zDMi2I;heCrjYAnHFipIU(T`Ueo$VFc;N^b#Vz2Du49n-k1LA+tl4bfM9Y(|?XAmr_0%pg z(5vTksm@0+IWONuQCBD&YUaKtAT*W`G0>7|V^! z))lmMz-Xtb4n5Y>eBlOKVVY%F$`4}wRTQGgDuM*sizUh6RCYp9B}bv3jJn*ke0q3a zQhJ+rzE!7RY33Q@Yt6YkU%s+z?0oTYqVh2l@Xq^50#3>AXiJxOls|{JMf{A+tfYA|?3#j(OGL zqUHFj;&4O*vPfNR;!mAO*+lSL&XwCp5e7laOBocvtgtFgW3kQ?vN1z*tNk^9ha-h; zIU8~b_w~ia9a;m7S!J&dr0*8Kj38wAgNTS-`zxFGV3eYtxuBVMWJCO6em_}0dZN{S zSE7qcslPr@n{ny@;2XS}h=DVIIH6T0`?PcxNJY8nJ>@z_GVti*3sMU&TEVFQFrH2s znN*~fMBQjtN5~h2CIch#j*IUm0aJdHMqPwz{`$YO(41IwUF|VFb6rsoKqLVZ#E;x0is_}^^Tq| zMIzkZ!hOS(oPct7m=u+bL=>ni_snR99Yx-$6ODaA5tXr29EaTUH=%KykTy(2LdJyV z;V`+6mGl^k5yWV|P=Zj7#0uuvIdB$_v}8N@LeKoQ%FDtcCT- z{>07=>`ryD0y~y*nh_W2uS6)LelXXl#K$hbr7W|hB1uTt6SNHZjmV4&sB&oOKTaVZ z%$IB85%u6sz)1A6i${V0p!n5AZ(r>ahZQ$lghO0Q!%}tf(Xe@cgED@KDx0x!ScJ%J z0*+^>N_CM0#i@0!Iw88DL<}S+K0^5*UdWkC%7aP&$4pwYAiSUo)tF-2T*iuFidV-3 zj)2?P!0;_g8Oq>txhBL?P4xTcJ~h=oNv@EjRwPzZCwkow_{ikIH0}xf*%$9}UxSKB z8N3JQfb4`%;as$^X;TUb@*I&Tju?mBY1Tc@Hipu#5^&$2H3!j=n+el^5_;tbS{eoT|b zFeR)SYmcm$j~f)3?_875NL5~1+ZC%o8AA*ou&i5XJ0gH`N>j)33co5+na0CgIS%}l z4L*Ws$9I$poIhlwC`-yavUxxi~otkM{HRc62F zlzB$9%LTNFyY zcIHhQ2wK_y%4MZ!MzRi@h&S#hC5E&Hj#z1hP7Sn+(Jw~YeJ)243%I#hq9g9L|9T$d zE2K)%`Q7wDfcvBqtx*&vxxxz^l){QAsLl+Vf#yo8B$)2qo_c9yipSF_HX3msL)VC> zs``vVkDY9!MRx>~IeSqON;=TOwDjc1tDGPltT1KT61>OW6;mMPwpK?7E{z1IaE~x^ zO)6zwGantbSMH|_DdQ72bZha!F_0 zC^6W!LhMsnvACI0MNkXeQ=8d{6P7#2S886- zM}+ya9;N(`Z=j%3;!YFFZ0#;nE2tiiURTJZEX#bTY=3Xk>s}fW3(f9=*PZiUq?}8I z=wXo`w!=(?HfD#=ScvNl$+u@mhn`L8}FyV zs;b>3R>yeBE643L(TrJ66)o0$uLCh{7z87;>Wd*>F?{&Pi?J+XL>a!}r!ic)DhU`1 zR<+i=eT9$dH@Dn{X`mVMQTdq+uTIGV8J&%La>aBH8AFn?NJLqT^w%kDQkipn>vh=b_vY03RVfl_4eQp~SJ^JZTS_+3w1fpygP>S0IW6ud zFlt79C$BS0^Pi)W4S*>B8Aa>pbNvg!*ah7;)^+T8bcr-Cm3Mtgo9wCHiO#aL-7CIm5;pvb}`=%En^H4 z!v`X8;Jm#ei(c+zf_>c(;rJoD@g=bW-U6v=wCl+iSypTqiP;8H@U5=FTgF^R0)hmJ zH_K42HCh|EbbgN!X~YF<{u|8m=r_z$!wWR3!r(DDU6rtUOb>QsX@){9JBNfbnQP!< zH%#GV4tp-GjuVG@`9wc)T9hdX%LagCwY)|;fHeUt0%I&9Go5f>WMQBY+yb8;G9r#I zrtlZ~)Ak$vdDRo~xR~L+{#^87#Pd-6;+#nj-LPAhuf~~G@Ifd}Cg=>6jxXW;phffS?evO=}_it=eJe-Yc;ZPqW;pkB_2)xiFC&M7f#pGsX zo`2SuXcy}YAAOSPP45x+ApSo^{Q1pi2>qRaQSkda8MBy+dkXN*GF4yxy<{@{5Z7SA z8&$l^IbCJb;%P#o{gf2+n-`d;3-Z`sA>W=xvZIYYiqU5b@l2X5bhk|HAqgdty?C^T zUClGE26T#4ReRhZ52A$~6ifTZSmiZ#)bjR+ETE=3qqvU~ToK`N>AqudN5WWE$OoRH z`m;0DYCFYp`X~<~f0UYaz~gh(^La~BLC)JjubYT4E(Qwj2~_|Xp=ctkc2o(JeYE6> zEFDTo(`f48-^>p}WYY#E9JsG%$pi4|?M@zI`c{Q#JlRkjVJ8G6}zdWTG zRL)#C4+P>}oM{(I_0?-Ed^60p?%EGi7D5u;#<;~qCuM(3Ac`1qSTde+750HR&9JJu zk3@oL196#luPK_mmA&IDKo2|H9KTu-VVk;GX0?kUk`swF1ZF-+B!24e+m;ptYW_ z*mvVp=d<*YE2Bh&dPdwuAjcEeVL%ajUg$U|2X;RJsBr3=uEo(1{t9`9_h809%?u8h zQV7+ZxUAeMx@0}w-MR%?(0y7LPrAikwcYydA;@`(tJf;Z29sd&pay5#@5YwlgMc{u zV?Ja%Ghw}E)VpQe*bvBv5N8GbljX@}09nQUev@$u$hY6Yhqfyy~ z%rWAp-G>u}hjLR@b^@=w>7k~=Prj&g=h}&mx^n@M+Ra;5C6f!)%U&q5MsnI0xsKS! zwXU3RPn;Jy&Nk-EiQ{W>Q@wGiARXhUwinIBNBmZ|=w9$ii)C7(G`)vJK)cmWK*0=l zeZ1|jE$F;3>P&-CnVI-SNH5-=0#|@qEhfax=&9($IxEp`{*=mU90l9g#+(xFi`&a% zDK^R$SNj&+2)&VkAGy^EP1w;CNz7o`x37eu+ehiKC*wP1?)})1rwi&+q&Igrm$bx* zrov68=sj?eyvJrsOrm(9qoA=UBu7o3Qu@KgG&EVusHJj~B*Z|4@*z#Nbn z;8L~XROC+j0@e8(>d*)pHLGN(#X#K-O#|Mar!k=@f}F%v7ivTFitF6sHTA-dOq$pt zYsp(gpLi;opcf1Q_@3p*H8T)H(N&|C3k$z70eJ~kXLN?$P@w>CZ!@o4!i0%j1$Ni| zs{W%~fnjl&x?zmp5B)Nd;uT44ez+3*ESRCG+PO)(KAbE1Rj=2xJsH`(g|%=nz2zu!t|#Fb1ZvHmVj;-tVPiU+}lZwz;+ zfGn9H6{V1G08x^?z1AH;X7WOzc-{Fpo%nSj2Z;Ad&TIVR&(+GDpl-h+TezbO8iYuU z#ey{D`-WZB+D2~`D%ra)UYkIA3=>SL--wmIMxL;Z%zmq>U`hZOM`rFloS1M+!zafq z-(|CVi=-L(m%a{TCB&`PvunO%6m~SeES!Dsy*Z}iwB2dhD1w56e9|Mjl-V?t*gHt> zhUpL=LHB=U-Ft?+2tQ?f&C~;5wZF+&%&!WU!AmgbQH+cXB zA|eC{QX++OG$_**NPNU60h+4ALhoqY@7f$-TVO!#qWT@u%`i4wny{`1PI8rNsZ00D2nI$GeDCVODMslI z@n>mF@&ZAekGbePJc&mlibJIA7a0`VOi#-;C~0*T6u*RZXA$7bvdgkB&fq8CATKEq z&^0j431g6*ixvCu3OWf95|${n@jC4b?$(8**FqV;(La`Hs~!t_(hqr=>7AYMJi^-0v=%wEedrW^C}trRK@P7W zxv$v64?L*!e{*SEj@*yQ-3z+kE$g35AT^s(+*!-nwvGR}EtPXq;}o&HpLp!*p)fSx z_|3a=C~cmxty`=gft6S~Pe86(-eZGLYC^A{8&G!(&P8SUDr7+UZc^<8YkOfMF0H|? z28Lzr&##-Pp1g335E;>Xvqf>`RUE;WMg#aTOK<4r>(%r+xF zU-DVhtdlp;wuzCU+83_lDCM|Ash>_HwMgEwy*ndvBF%RFqVKc<;+f)sI;3-|4rCtG zNoZvD(GKB^v!jU?!xo^Jsx)bg$-9099Bw-92dvXvybE>J(_N8IN-RVtSd1VE++WRK zBBGV#D-k^oo-AzM%1M$H+kQ3g6uMgqm7BV3J1SI>$zH|=txD!S*5Pk;eeuny zk?Bm?&0UkP3o~+JOI>>}h1ySj;#mKAe3*+&s(t8?k46UCqZ7j09zWr>5?j}WpY1cY zD*LHRD^TkYB0%9-PSGq->{oWdcJ&%5>X#sfF{Jc^Tn?PaJIq&+561jUjUkc0C$GOh z4&$*Gh|(6eyZ(Y!$n{76K&PhaK!ozqVF-2IYOIFiq2jFJN<_OTaww>z(2LBj*qG`Y zAAVK5|1T3RCN|fSH1JS1e)SKXwkTHN;ty0hW}!rTYuG4&*q~{1NTl^suTQc?kA4n0 zG^7;O$Ep%C+kndIlr|{~<|EGBz)w*%tKtRl*_f_WUg(gqmS@ti)ha^bXxk zXXs>NWDbt4>0B*YVN<=*0`WJzhN;{XQAX^-UT<&ThpQhn`Twa-V5}jX(K7hjGOLAn zeVszsf9|o4Mqi@3`0#Fs(6udyC25akwV#KjaVNLa#R z)K`#R@|D`7%P*HM?Nckk4`z`r5~|H)nLXEKT#T@6HL}>yK~?CRETQ4`1+%y#e#q8o z3NJp?aq~%Hgr6-#H<@dwMzrT&P4E=N`}Gyiuc|NxYsV>Ea!CfFcOg$ks}{N^&)GyI zJ`p(QWaBw%yeh{${V*FN49q^5BlFXjBj9UxM8~F0#e6KwV?VoZx#JJX%U{Q6Q6EKb zu9%ySxO(CY&ch!)+l!a1DT*OCZAL~*9z=OmL?+uL)2^7d9 zRHA`l?|-U5YoHCr=3Yb$SF%MSn~bLrk|4jL-L&5p1#uG{Bi1^#2o`_LqMTwuY5H)* zkj%lx5Jh?r(#^;pinY_9kV}IdnC#KyNnM;7dl~Y%*)&&sSuN3#C~VXg8^%;KJ@f+9jDa!QjXX-6EGL{k@saRWZ z1m@9sL&?{g>v>)QTHZLHz?qH^Jp#a)?XAN3uVF*VT0V-K0sXv7V+E>Q4$hxaJSc9MDWDQ z>G}`>Y|!DOni@2w_HaBOEtZZx2bJ`~PZH7i>>I(VOq^muSc&#VR)~o~-_*nyeEP(Cf(Bt3WB=Bh976Xgf_k?Pm>8 z!A@(;(hmF48>ehN9qe&Y}7#_re1rV+Iga&e3ADpaD#3j+9Iu^(>0J74luc^@`2 zt5vtq_|aFHor`d|aoQ?;y!wlmAiill*?1eWs#10RUB9$3YB+a$Vjr%I#_dKf_mB8! zNDo6X7blJI4)mqQ!;K%L`2SuN^7nw1IElD*XP{pBs^NX^?-S0ZU?a8}D$4hWY-C`! z_Eq+3YX=ptD5Xj9A^hsaUJ@)Vx%?@7=lv4=`1dOm!qv^~ZtQ&75ioTwEC!KpFo=Fb z6O(u^qhr2pjQ+uDTx4a@xFd#;k4}uj6Bu@$zNz_J2)R1Qmn9Q5HP6jgwPxOgFn^Vx zS(6`JbLQUPqo?g47(v;=*2lo(8>PWfTW6+<%>tAp8VMWJ5Rqgy*yoBJhhdnqQZN|! zzq4LtuM(gHC7Kgkr;`mmJGsa^4XE1^%}H7iCSD4homT*o`gIGq>NCwspI;@KO-i@P@jHx|GUXCpTs8`|f8JdJOjjvwaYUK;i8#4lm~ zD1Oo8peFTfSKbNL<%Mo;LdADFo#V`BjhEEVe{4V(@YJDZ*aZIcXDHmqjf3((BTgqf z7MjWn-kuaUhqXwsYbfd+CRh25h%5voz4P`M-$!Q|=Z=bz!uJo$^fTE2zUXepBTD{F3 z$X084psAWZHG9qI{QZ}Pa3P~xK2+d3G}bd7XpPrbP-ORn)Ne4qp7y1Pf9vdVrZmK` z-iNh($Z_wMKeOWp**Tg~yD+pfO0e*6Y>YpqFso_NU(O=G+dc~WM3erj~8oW>pL z)3$=AcQLtd1JcK~W6W5$M}sWamaJpuksDYYbFvg@Jy>5ye;+I0K7C(~S5ET!n~D>E z?#p2CnAyjnEziE%bWeL3-sf(7;Qi2fqUO;N2D~<+&+>=%6PYi+Pe)G!KL0Eeq|o>v zQ?kXqY^`RHmR)M}gAM;o8+r;6uA&j{Uv@2{&=Y;G&UU!R z(ZU@5^PxVpWGLmy^Vtpa5rPDDU56C@haAXufRn_m=L5cQWI)J3fVk zIXfw`S4AcIxzo2eei>8$L^x35Gl%xH)A`2Q-fKGV+pA;t?9D5cif%md0ypkqvcjIzd+(hw6Cc{}u9L(A-7;=uVkP zhtam)dj-V3qWI77U^DIEQO{?iqwB`|d>i%Rvf^?!dOCUbYJkUHk@dsE2l2u+c)L2f zd9$#pT#Fz)>fQlK(G=6>ANCbCm^L~c&f%>VLP2~2;=5x%=Prq#>4b>yl(fKuEvG0i zq7>fh4xKGA7ZIRQBadG+plZIYIf~DjQhDa{X1vlj9%)vNtTs_sn|ll%bv+**ZW-x8 zd(N(LkMV5XV$p$7qQ!&6{}YM(JMlLT5#$~G&Yo1G&TYru|G_!lnLe$4HKQL{0UqfD zd<$++hSM=T)sPLP*c|PF1LXlad9|^~i;O|=6D1Nt)C#Wf5ZRRyK%DdYR#e9~INk1hc&xoW^~N~pL?shtgsp;GEa z-&}N+av8(z?VVdQ32_Xt6e5j;iLE3N!&R=p~+r4G5BeUyRwdQr@&(Z zv%Nh*gJSlni!Ns_!cx*t@d90NE=HY;9#wMvOY(K(SN|yZ$$is# zlvCZe_O$(*?SSQ7vQ*3zh(2v74c4G~$YYL!gS+*s04=@0;(c>c{C5P*{}AtA5#Yfi z_`XW;w~6I=f7`0S=~yU;;@N!JUP?uGB)Vp#0T|DB%N zKZx;HdUWu5df&_VcZI0Z{q6aaf2feZJil;KnUJ*6+dh-y9Z{l@Sng73w;KCv(o%h5D3GW6Fy7`*VUU8Udqc`|o11UJ~21jrCq>u||4w+G*^uquO zd~du*^ldu6^FoYg!df$O$z=#X!RPSsTKC8o0E$4nnGyDi|%UePW8w7ZIldWOFcnbaxxR>yd~|_}HjqvqIB4E7ImFf7+!y<@koL8@^f3 zJAS|vVJf^vT`GDI;wW9D9&x&2$@zFSAEaopP|63xHQUR3+*Uok5)JIm3PMf9YrF%U|9ZVBg`euKM+&7y0RO8WCZ7E(|!9^E!UKTJ%f~N## zab}|ECpJw9`dmCVA}cA;d4Q2`Wy+M%nIrc5-pnhOtfy79mXZ?Mv825fTeGOR zpM$;lvCJccU**L+>A!m1I9fCXbqgUFEg8Y&FBI))fZ6h(9y}&xu=9+JMlcx4%d~v0 zX!uPJIaC!L`2(3W&j>c<*e)7*H&;89{y4UY3QOxucXHegs4Hybi=mzI-U)NS*>+Cq z;TJqe^nbdFN^WSomQl5{M1pY>ECi@1?@oU|^IzR0>cT-K=ezbShj$IJ$*YfYI8bUf zHh9xPdKf%1(9jjkXO2<9A?w=-)uqK@Hdd>L_F!YCptXLu|@Sg;UB6kygpTxdL_%uPG zrzDT6X5iZOi}p7sb~d+4;pVz#^G>Y-5XvDYHd;1G+%tmbK=0c_mAgu}av^53=U8P~ z9fxE5z0_7cX7;1FWN)HI0QQR^_%V0PtkF5dxgg)mRcsV3UwMHWWNH})bs8KJE`tWd z5&z$8*`iVOg9-mM6Yj5rZxy<3mN}W|pf~+;Nl3jGzN?-0`4KnXXLLkQCw&10posNE zZ_Tx`Q{qvFZs!kPjS5;0@D7=PK?1N;5eQE^OFQs+?{2{t+-sJH>mT&_zqTG!gD@wT z;U6tOdg?_!Zv+ovFyG&bU;=~Rrdl_L1B0(qvyyW{O<8_T7&XAzr?Tl;t6#ZAWwTa| zthNxOxw@)ZP7lx!IlCepW|D{edF{{hl7~wl6!<47fYgZ`awAON^9IAQ6emgGf{yJ* z;AZ5cGxx@GaG8slizT%dgH6~{->J%3KVl-*PM32biwG(Ge4LLUk`n&fT^h8~uQC4l z)v=2`Z!Sfs2vVO7Ze=K%578+vuF)ZoX3bQowYAX1Q2#FR2~6w^e~)@FM(b2tw>>LG ztaLS${~V&*V@j(*RWajLY&ntQaL5fPYbZ%pJ*{(QRnImfx;EhR(ZR(7+4$@t9^@Gunb*RU?!)#% zwm57Li99&+zb>u&yk*=Xh~+HsUJS|L=w4}1W;G=^=gw$-nQMdRqmJfqqXD+bG+Vjl zdpv@tVWRH28enYUwPP6e`%PaQ)H&MuEI4Tzi-CH54@D?XVau6hW3^l0h~jdB=<GMB%5Bf`=j$#n?v-`D|56Az??- z;AYIVE+=6EzWJDmUIAF1*98it2oH*ee zSfYWCuGthD)2$dlTM+t|`b}}sBJwq%QWY~n@d~{8Rug_+st$kg|9(FAx0lZW+JM+J z%tQ~}%v$TgG(~pQ^}rZMqQ1}>R|e~Pg2HHr74AkN|LZeY{RwGzlX}?yfuC;A5(T!FM$4=+>MoPl^x@PCaI*Hj{1;3Zjz{MJs$& zrA+16t5iQC3oSt$86}w@pHwZf*~ICh=wfO^{6mqNzl>-+gGl^B_NA3ZTghHyKXpVc zFXFhwopskMNra_n({ct{mFxtN2hq18{X_*!KH(Ahp!0JOZ^iF|Jj5oha<-HN5>~Sz zq1~$yE8HUw@_T&}8C!B}brCubct^%2>;GZtM6r!gCS-fn1|f;PKsVV?8&H#WD2pS) zyoiB^x!EvH#u7Ikz50;Ag9Cq;&}Q&0ytIuFZ}_`@27AF|7~$voAVI{{@96INZ{I|9 zY7SZm>hsYKgMo{(FggZO820|;GY?`(4PY_tCRahk$%x8T zwA5nOs_?*ev^adxe0D^{00k8(+Q}ZITA&^Gu#Fv0q0w=kE`b?5YQMqf5nFr+m~-Kb zO6u%jDvVnd)QK+KTNb768Dhdco$)ml3>wW8>cG0Fg-cXl`>Rk!Jh7xnNi_Q6m+l)e z?2(Sh#WK|^6!XQ)8*IM0Adu9si6mxmFJ@Zl#2l|gC&GlfjQa-g6G84L1SWmFBx=5L z{HOFMtR#}i5+`}os9Ji;RZ3#PDj_haoCDFT+cdbK|!>>IHh(1ZM7Wieh9QdK*2o8NVqeIFwX*QtlOj zt8U8y`j#}AF`gzOz4Q84)6WJsi)_hCa)#Cw;zW-}8x@0*QXIcQDLD6}wX3#^L6beG zAJI-z%$d*pEMU@P)8U)Vw~xGjntWi_Zg$Ge$AcQFSpNFIAs{$fRXCkBO(4#jT8-f? z0WuO-`+iZ>G(6G%sXfr@7Zi>eh3N?nx25DUkeyZi=8VQOUrLwrlrwr+GUyTP`9#!t zWxhX>bI2(4PWHa;*${)1OsJKP5Ko|p!lQj16FAD0&wU!8YN4vM(*>?zm_5KS-{taK z4Izj~3EHPkehr}K z8w7op`h0+uzD+FOM+z;`8IN2dZmUe zOjYvuj%}cB$rL0ZaK%p6uK`g%w^45pH0p9DulQ(fcFlNm5d4tDgA@N@Il&|lf|Mqg z(bá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

|=SfbtNQ;QvPW}BZ@ywqc;=F1uO1d(IYW%mz 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 PQ)A&wfLf{=}EKqIIEGGm7A4I{V# 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⪙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 literal 0 HcmV?d00001 From e4712a822b26d7a3fa643300f3610412404c0ea8 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Tue, 25 Feb 2025 21:54:38 -0700 Subject: [PATCH 33/33] perf(drizzle): use faster, direct db query for getting id to update in updateOne (#11391) Previously, `updateOne` was using `buildFindManyArgs` and `findFirst` just to retrieve the ID of the document to update, which is a huge function that's not necessary to run just to get the document ID. This PR refactors it to use a simple `db.select` query to retrieve the ID --- packages/drizzle/src/index.ts | 2 +- .../drizzle/src/{update.ts => updateOne.ts} | 25 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-) rename packages/drizzle/src/{update.ts => updateOne.ts} (80%) diff --git a/packages/drizzle/src/index.ts b/packages/drizzle/src/index.ts index f7036cfc0d..fd00c95d8e 100644 --- a/packages/drizzle/src/index.ts +++ b/packages/drizzle/src/index.ts @@ -31,9 +31,9 @@ export { buildRawSchema } from './schema/buildRawSchema.js' export { beginTransaction } from './transactions/beginTransaction.js' export { commitTransaction } from './transactions/commitTransaction.js' export { rollbackTransaction } from './transactions/rollbackTransaction.js' -export { updateOne } from './update.js' export { updateGlobal } from './updateGlobal.js' export { updateGlobalVersion } from './updateGlobalVersion.js' +export { updateOne } from './updateOne.js' export { updateVersion } from './updateVersion.js' export { upsertRow } from './upsertRow/index.js' export { buildCreateMigration } from './utilities/buildCreateMigration.js' diff --git a/packages/drizzle/src/update.ts b/packages/drizzle/src/updateOne.ts similarity index 80% rename from packages/drizzle/src/update.ts rename to packages/drizzle/src/updateOne.ts index 935133fd71..3e682f4c5d 100644 --- a/packages/drizzle/src/update.ts +++ b/packages/drizzle/src/updateOne.ts @@ -1,10 +1,10 @@ +import type { LibSQLDatabase } from 'drizzle-orm/libsql' import type { UpdateOne } from 'payload' import toSnakeCase from 'to-snake-case' import type { DrizzleAdapter } from './types.js' -import { buildFindManyArgs } from './find/buildFindManyArgs.js' import buildQuery from './queries/buildQuery.js' import { selectDistinct } from './queries/selectDistinct.js' import { upsertRow } from './upsertRow/index.js' @@ -28,6 +28,7 @@ export const updateOne: UpdateOne = async function updateOne( where: whereToUse, }) + // selectDistinct will only return if there are joins const selectDistinctResult = await selectDistinct({ adapter: this, chainedMethods: [{ args: [1], method: 'limit' }], @@ -40,22 +41,18 @@ export const updateOne: UpdateOne = async function updateOne( if (selectDistinctResult?.[0]?.id) { idToUpdate = selectDistinctResult?.[0]?.id - // If id wasn't passed but `where` without any joins, retrieve it with findFirst } else if (whereArg && !joins.length) { - const findManyArgs = buildFindManyArgs({ - adapter: this, - depth: 0, - fields: collection.flattenedFields, - joinQuery: false, - select: {}, - tableName, - }) + const table = this.tables[tableName] - findManyArgs.where = where - - const docToUpdate = await db.query[tableName].findFirst(findManyArgs) - idToUpdate = docToUpdate?.id + const docsToUpdate = await (db as LibSQLDatabase) + .select({ + id: table.id, + }) + .from(table) + .where(where) + .limit(1) + idToUpdate = docsToUpdate?.[0]?.id } const result = await upsertRow({

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 (L95~cmQooL#=#dnu7`L`(G0++_-LJ{RlJ(os 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 z