From 00fa546f3c8acea244a5a30248b9122c1391a12f Mon Sep 17 00:00:00 2001 From: Will Schurman Date: Mon, 16 Feb 2026 15:22:29 -0800 Subject: [PATCH] fix: Make non-authorized construction internal and private --- .../entity/src/AuthorizationResultBasedEntityMutator.ts | 6 +++--- packages/entity/src/EntityConstructionUtils.ts | 2 +- packages/entity/src/__tests__/EntityMutator-test.ts | 4 ++-- packages/entity/src/utils/EntityPrivacyUtils.ts | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/entity/src/AuthorizationResultBasedEntityMutator.ts b/packages/entity/src/AuthorizationResultBasedEntityMutator.ts index 9190e056d..38541f16c 100644 --- a/packages/entity/src/AuthorizationResultBasedEntityMutator.ts +++ b/packages/entity/src/AuthorizationResultBasedEntityMutator.ts @@ -334,7 +334,7 @@ export class AuthorizationResultBasedCreateMutator< cascadingDeleteCause: null, }); - const temporaryEntityForPrivacyCheck = entityLoader.constructionUtils.constructEntity({ + const temporaryEntityForPrivacyCheck = entityLoader.constructionUtils['constructEntity']({ [this.entityConfiguration.idField]: '00000000-0000-0000-0000-000000000000', // zero UUID ...this.fieldsForEntity, } as unknown as TFields); @@ -383,7 +383,7 @@ export class AuthorizationResultBasedCreateMutator< entityLoader.invalidationUtils.invalidateFieldsForTransaction(queryContext, insertResult); const unauthorizedEntityAfterInsert = - entityLoader.constructionUtils.constructEntity(insertResult); + entityLoader.constructionUtils['constructEntity'](insertResult); const newEntity = await enforceAsyncResult( entityLoader.loadByIDAsync(unauthorizedEntityAfterInsert.getID()), ); @@ -543,7 +543,7 @@ export class AuthorizationResultBasedUpdateMutator< cascadingDeleteCause: this.cascadingDeleteCause, }); - const entityAboutToBeUpdated = entityLoader.constructionUtils.constructEntity( + const entityAboutToBeUpdated = entityLoader.constructionUtils['constructEntity']( this.fieldsForEntity, ); const authorizeUpdateResult = await asyncResult( diff --git a/packages/entity/src/EntityConstructionUtils.ts b/packages/entity/src/EntityConstructionUtils.ts index 69c931149..fc68ba057 100644 --- a/packages/entity/src/EntityConstructionUtils.ts +++ b/packages/entity/src/EntityConstructionUtils.ts @@ -61,7 +61,7 @@ export class EntityConstructionUtils< * * @param fieldsObject - fields object */ - public constructEntity(fieldsObject: TFields): TEntity { + private constructEntity(fieldsObject: TFields): TEntity { const idField = this.entityConfiguration.idField; const id = nullthrows(fieldsObject[idField], 'must provide ID to create an entity'); const entitySelectedFields = diff --git a/packages/entity/src/__tests__/EntityMutator-test.ts b/packages/entity/src/__tests__/EntityMutator-test.ts index 81c8bc176..07c5f929e 100644 --- a/packages/entity/src/__tests__/EntityMutator-test.ts +++ b/packages/entity/src/__tests__/EntityMutator-test.ts @@ -1510,7 +1510,7 @@ describe(EntityMutatorFactory, () => { keyof SimpleTestFields > >(EntityConstructionUtils); - when(entityConstructionUtilsMock.constructEntity(anything())).thenReturn(fakeEntity); + when(entityConstructionUtilsMock['constructEntity'](anything())).thenReturn(fakeEntity); when(entityLoaderMock.constructionUtils).thenReturn(instance(entityConstructionUtilsMock)); const entityLoader = instance(entityLoaderMock); @@ -1645,7 +1645,7 @@ describe(EntityMutatorFactory, () => { keyof SimpleTestFields > >(EntityConstructionUtils); - when(entityConstructionUtilsMock.constructEntity(anything())).thenReturn(fakeEntity); + when(entityConstructionUtilsMock['constructEntity'](anything())).thenReturn(fakeEntity); when(entityLoaderMock.constructionUtils).thenReturn(instance(entityConstructionUtilsMock)); const entityLoader = instance(entityLoaderMock); diff --git a/packages/entity/src/utils/EntityPrivacyUtils.ts b/packages/entity/src/utils/EntityPrivacyUtils.ts index dfcfde9a5..5996b4342 100644 --- a/packages/entity/src/utils/EntityPrivacyUtils.ts +++ b/packages/entity/src/utils/EntityPrivacyUtils.ts @@ -460,7 +460,7 @@ async function canViewerDeleteInternalAsync< return { previousValue: entity, syntheticallyUpdatedValue: - entityLoader.constructionUtils.constructEntity(syntheticFields), + entityLoader.constructionUtils['constructEntity'](syntheticFields), }; }, );