@punks/backend-entity-manager 0.0.169 → 0.0.171

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/cjs/index.js +55 -7
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/providers/typeorm/mock/index.d.ts +1 -1
  4. package/dist/cjs/types/abstractions/commands.d.ts +5 -4
  5. package/dist/cjs/types/abstractions/manager.d.ts +1 -1
  6. package/dist/cjs/types/abstractions/searchParameters.d.ts +6 -0
  7. package/dist/cjs/types/base/serializer.d.ts +2 -1
  8. package/dist/cjs/types/commands/create.d.ts +3 -2
  9. package/dist/cjs/types/commands/update.d.ts +3 -1
  10. package/dist/cjs/types/commands/upsert.d.ts +3 -1
  11. package/dist/cjs/types/concrete/index.d.ts +1 -1
  12. package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +7 -0
  13. package/dist/cjs/types/integrations/repository/typeorm/traverse.d.ts +3 -0
  14. package/dist/cjs/types/models/create.d.ts +3 -0
  15. package/dist/cjs/types/models/index.d.ts +1 -0
  16. package/dist/cjs/types/models/search.d.ts +5 -0
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +1 -1
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +1 -1
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +1 -1
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +1 -1
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +1 -1
  22. package/dist/cjs/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +1 -1
  23. package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +1 -1
  24. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +1 -1
  25. package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +1 -1
  26. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
  27. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +1 -1
  28. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
  29. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +1 -1
  30. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +1 -1
  31. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +1 -1
  32. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
  33. package/dist/cjs/types/providers/services.d.ts +3 -3
  34. package/dist/esm/index.js +55 -7
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/types/__test__/providers/typeorm/mock/index.d.ts +1 -1
  37. package/dist/esm/types/abstractions/commands.d.ts +5 -4
  38. package/dist/esm/types/abstractions/manager.d.ts +1 -1
  39. package/dist/esm/types/abstractions/searchParameters.d.ts +6 -0
  40. package/dist/esm/types/base/serializer.d.ts +2 -1
  41. package/dist/esm/types/commands/create.d.ts +3 -2
  42. package/dist/esm/types/commands/update.d.ts +3 -1
  43. package/dist/esm/types/commands/upsert.d.ts +3 -1
  44. package/dist/esm/types/concrete/index.d.ts +1 -1
  45. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +7 -0
  46. package/dist/esm/types/integrations/repository/typeorm/traverse.d.ts +3 -0
  47. package/dist/esm/types/models/create.d.ts +3 -0
  48. package/dist/esm/types/models/index.d.ts +1 -0
  49. package/dist/esm/types/models/search.d.ts +5 -0
  50. package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +1 -1
  51. package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +1 -1
  52. package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +1 -1
  53. package/dist/esm/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +1 -1
  54. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +1 -1
  55. package/dist/esm/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +1 -1
  56. package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +1 -1
  57. package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +1 -1
  58. package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +1 -1
  59. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
  60. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +1 -1
  61. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
  62. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +1 -1
  63. package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +1 -1
  64. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +1 -1
  65. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
  66. package/dist/esm/types/providers/services.d.ts +3 -3
  67. package/dist/index.d.ts +35 -10
  68. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -347,9 +347,15 @@ class EntityCreateAction {
347
347
  this.logger.debug("Create action started", { input });
348
348
  const converter = this.services.resolveConverter();
349
349
  const createInput = converter?.createDtoToEntity(input) ?? input;
350
- const entity = await this.services
350
+ const ref = await this.services
351
351
  .resolveCreateCommand()
352
352
  .execute(createInput);
353
+ const entity = await this.services
354
+ .resolveGetQuery()
355
+ .execute(ref.id);
356
+ if (!entity) {
357
+ throw new Error(`Newly created entity not found with id ${ref.id}`);
358
+ }
353
359
  const result = converter?.toEntityDto(entity) ?? entity;
354
360
  this.logger.debug("Create action completed", { input, result });
355
361
  return result;
@@ -469,9 +475,13 @@ class EntityUpdateAction {
469
475
  this.logger.debug("Update action started", { id, input });
470
476
  const converter = this.services.resolveConverter();
471
477
  const updateInput = converter?.updateDtoToEntity(input) ?? input;
472
- const entity = await this.services
478
+ await this.services
473
479
  .resolveUpdateCommand()
474
480
  .execute(id, updateInput);
481
+ const entity = await this.services.resolveGetQuery().execute(id);
482
+ if (!entity) {
483
+ throw new Error(`Newly created entity not found with id ${id}`);
484
+ }
475
485
  const result = converter?.toEntityDto(entity) ?? entity;
476
486
  this.logger.debug("Update action started", { id, input, result });
477
487
  return result;
@@ -487,9 +497,13 @@ class EntityUpsertAction {
487
497
  this.logger.debug("Upsert action started", { id, input });
488
498
  const converter = this.services.resolveConverter();
489
499
  const updateInput = converter?.updateDtoToEntity(input) ?? input;
490
- const entity = await this.services
500
+ await this.services
491
501
  .resolveUpsertCommand()
492
502
  .execute(id, updateInput);
503
+ const entity = await this.services.resolveGetQuery().execute(id);
504
+ if (!entity) {
505
+ throw new Error(`Newly created entity not found with id ${id}`);
506
+ }
493
507
  const result = converter?.toEntityDto(entity) ?? entity;
494
508
  this.logger.debug("Upsert action started", { id, input, result });
495
509
  return result;
@@ -522,11 +536,14 @@ class EntityCreateCommand {
522
536
  await this.authorize(entity);
523
537
  const createdItem = await this.services.resolveRepository().create(entity);
524
538
  // todo: parametrize id field
525
- await this.versionEntity(createdItem.id, createdItem);
539
+ const id = createdItem.id;
540
+ await this.versionEntity(id, createdItem);
526
541
  await this.services
527
542
  .resolveEventsManager()
528
543
  .processEntityCreatedEvent(createdItem);
529
- return createdItem;
544
+ return {
545
+ id,
546
+ };
530
547
  }
531
548
  adaptEntity(input) {
532
549
  const adapter = this.services.resolveAdapter();
@@ -794,7 +811,9 @@ class EntityUpdateCommand {
794
811
  await this.services
795
812
  .resolveEventsManager()
796
813
  .processEntityUpdatedEvent(updatedEntity);
797
- return updatedEntity;
814
+ return {
815
+ id,
816
+ };
798
817
  }
799
818
  adaptEntity(input) {
800
819
  const adapter = this.services.resolveAdapter();
@@ -847,7 +866,9 @@ class EntityUpsertCommand {
847
866
  await this.services
848
867
  .resolveEventsManager()
849
868
  .processEntityUpdatedEvent(updatedEntity);
850
- return updatedEntity;
869
+ return {
870
+ id,
871
+ };
851
872
  }
852
873
  async upsertEntity(id, entity) {
853
874
  return await this.services.resolveRepository().upsert(id, entity);
@@ -22239,6 +22260,9 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22239
22260
  const facets = request.options?.includeFacets
22240
22261
  ? await this.calculateFacets(request, context)
22241
22262
  : undefined;
22263
+ const childrenMap = request.options?.includeChildrenMap
22264
+ ? await this.calculateChildrenMap(results)
22265
+ : undefined;
22242
22266
  return {
22243
22267
  items: results,
22244
22268
  request,
@@ -22248,6 +22272,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22248
22272
  totResults: queryResults,
22249
22273
  }),
22250
22274
  facets,
22275
+ childrenMap,
22251
22276
  };
22252
22277
  }
22253
22278
  async getFieldDistinctValues(field, request, context) {
@@ -22290,6 +22315,29 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
22290
22315
  value: typeorm.ILike(`%${request.query?.term}%`),
22291
22316
  }));
22292
22317
  }
22318
+ calculateChildrenMap(items) {
22319
+ return Promise.resolve({});
22320
+ }
22321
+ async queryChildrenMap({ nodeIds, idField, parentField, }) {
22322
+ const result = await this.getRepository()
22323
+ .getInnerRepository()
22324
+ .createQueryBuilder("entity")
22325
+ .where({
22326
+ [parentField.toString()]: {
22327
+ [idField.toString()]: typeorm.In(nodeIds),
22328
+ },
22329
+ })
22330
+ .select(`entity.${parentField.toString()}.${idField.toString()}`, "parentId")
22331
+ .addSelect(`COUNT(entity.${idField.toString()})`, "count")
22332
+ .groupBy(`entity.${parentField.toString()}.${idField.toString()}`)
22333
+ .getRawMany();
22334
+ return result.reduce((acc, x) => {
22335
+ acc[x.parentId] = {
22336
+ count: parseInt(x.count),
22337
+ };
22338
+ return acc;
22339
+ }, {});
22340
+ }
22293
22341
  async calculateFacet(field, request, context, relations) {
22294
22342
  let query = this.getRepository()
22295
22343
  .getInnerRepository()