@punks/backend-entity-manager 0.0.366 → 0.0.368

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 (36) hide show
  1. package/dist/cjs/index.js +172 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/index.d.ts +1 -0
  4. package/dist/cjs/types/abstractions/tasks.d.ts +13 -0
  5. package/dist/cjs/types/platforms/nest/__test__/tests/tasks/parallel-task.test.d.ts +1 -0
  6. package/dist/cjs/types/platforms/nest/__test__/tests/tasks/single-task.test.d.ts +1 -0
  7. package/dist/cjs/types/platforms/nest/__test__/tests/tasks/tasks.d.ts +12 -0
  8. package/dist/cjs/types/platforms/nest/decorators/index.d.ts +1 -0
  9. package/dist/cjs/types/platforms/nest/decorators/tasks.d.ts +13 -0
  10. package/dist/cjs/types/platforms/nest/extensions/index.d.ts +1 -0
  11. package/dist/cjs/types/platforms/nest/extensions/tasks/index.d.ts +1 -0
  12. package/dist/cjs/types/platforms/nest/extensions/tasks/initializer.d.ts +13 -0
  13. package/dist/cjs/types/platforms/nest/extensions/tasks/module.d.ts +7 -0
  14. package/dist/cjs/types/platforms/nest/extensions/tasks/task-scheduler/index.d.ts +13 -0
  15. package/dist/cjs/types/platforms/nest/extensions/tasks/task-shell/index.d.ts +15 -0
  16. package/dist/cjs/types/utils/cron.d.ts +1 -0
  17. package/dist/cjs/types/utils/dates.d.ts +1 -0
  18. package/dist/esm/index.js +172 -1
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/types/abstractions/index.d.ts +1 -0
  21. package/dist/esm/types/abstractions/tasks.d.ts +13 -0
  22. package/dist/esm/types/platforms/nest/__test__/tests/tasks/parallel-task.test.d.ts +1 -0
  23. package/dist/esm/types/platforms/nest/__test__/tests/tasks/single-task.test.d.ts +1 -0
  24. package/dist/esm/types/platforms/nest/__test__/tests/tasks/tasks.d.ts +12 -0
  25. package/dist/esm/types/platforms/nest/decorators/index.d.ts +1 -0
  26. package/dist/esm/types/platforms/nest/decorators/tasks.d.ts +13 -0
  27. package/dist/esm/types/platforms/nest/extensions/index.d.ts +1 -0
  28. package/dist/esm/types/platforms/nest/extensions/tasks/index.d.ts +1 -0
  29. package/dist/esm/types/platforms/nest/extensions/tasks/initializer.d.ts +13 -0
  30. package/dist/esm/types/platforms/nest/extensions/tasks/module.d.ts +7 -0
  31. package/dist/esm/types/platforms/nest/extensions/tasks/task-scheduler/index.d.ts +13 -0
  32. package/dist/esm/types/platforms/nest/extensions/tasks/task-shell/index.d.ts +15 -0
  33. package/dist/esm/types/utils/cron.d.ts +1 -0
  34. package/dist/esm/types/utils/dates.d.ts +1 -0
  35. package/dist/index.d.ts +58 -2
  36. package/package.json +14 -14
@@ -34,5 +34,6 @@ export { IAppSessionService } from "./session";
34
34
  export { EntityManagerSettings } from "./settings";
35
35
  export { IEntitySnapshotService } from "./snapshot";
36
36
  export { IEntitySearchResults, IEntityFacet, IEntityFacetValue, IEntityFacets, ISearchResultsPaging, } from "./searchResults";
37
+ export { ITask } from "./tasks";
37
38
  export * from "./tracking";
38
39
  export { EntityVersionOperation, EntityVersionInput, IEntityVersioningResults, IEntityVersioningProvider, IEntityVersionsSearchInput, } from "./versioning";
@@ -0,0 +1,13 @@
1
+ export declare enum TaskRunType {
2
+ Scheduled = "Scheduled",
3
+ OnDemand = "OnDemand"
4
+ }
5
+ export type TaskContext = {
6
+ name: string;
7
+ runId: string;
8
+ runType: TaskRunType;
9
+ startedAt: Date;
10
+ };
11
+ export interface ITask {
12
+ execute(context: TaskContext): Promise<void>;
13
+ }
@@ -0,0 +1,12 @@
1
+ import { ITask } from "../../../../../abstractions";
2
+ import { TaskContext } from "../../../../../abstractions/tasks";
3
+ export declare class SingleTask implements ITask {
4
+ private static counter;
5
+ execute(context: TaskContext): Promise<void>;
6
+ static getCounter(): number;
7
+ }
8
+ export declare class ParallelTask implements ITask {
9
+ private static counter;
10
+ execute(context: TaskContext): Promise<void>;
11
+ static getCounter(): number;
12
+ }
@@ -20,5 +20,6 @@ export { WpEntitySeeder, EntitySeederProps } from "./seed";
20
20
  export { WpEntitySerializer, EntitySerializerProps } from "./serializer";
21
21
  export { WpEntitySnapshotService, EntitySnapshotServiceProps } from "./snapshot";
22
22
  export { EntityManagerSymbols } from "./symbols";
23
+ export { WpTask, TaskSettings, TaskConcurrency } from "./tasks";
23
24
  export { WpEventsTracker, EventsTrackerProps } from "./tracking";
24
25
  export { WpEntityVersioningProvider, EntityVersioningProviderProps, } from "./versioning";
@@ -0,0 +1,13 @@
1
+ export declare const TASK_KEY = "wp_task";
2
+ export declare enum TaskConcurrency {
3
+ Single = "single",
4
+ Multiple = "multiple"
5
+ }
6
+ export type TaskSettings = {
7
+ cronExpression: string;
8
+ concurrency: TaskConcurrency;
9
+ };
10
+ export type TaskProps = TaskSettings & {
11
+ name: string;
12
+ };
13
+ export declare function WpTask(name: string, settings: TaskSettings): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -1,3 +1,4 @@
1
1
  export * from "./authentication";
2
2
  export * from "./multi-tenancy";
3
3
  export * from "./jobs";
4
+ export * from "./tasks";
@@ -0,0 +1 @@
1
+ export { TasksModule } from "./module";
@@ -0,0 +1,13 @@
1
+ import { INestApplicationContext } from "@nestjs/common";
2
+ import { IAppInitializer } from "../../../../abstractions";
3
+ import { CustomDiscoveryService } from "../../ioc/discovery";
4
+ import { TaskScheduler } from "./task-scheduler";
5
+ export declare class TasksInitializer implements IAppInitializer {
6
+ private readonly discover;
7
+ private readonly scheduler;
8
+ private readonly logger;
9
+ constructor(discover: CustomDiscoveryService, scheduler: TaskScheduler);
10
+ initialize(app: INestApplicationContext): Promise<void>;
11
+ private registerCronJobs;
12
+ private discoverTasks;
13
+ }
@@ -0,0 +1,7 @@
1
+ import { OnModuleDestroy } from "@nestjs/common";
2
+ import { TaskScheduler } from "./task-scheduler";
3
+ export declare class TasksModule implements OnModuleDestroy {
4
+ private readonly scheduler;
5
+ constructor(scheduler: TaskScheduler);
6
+ onModuleDestroy(): void;
7
+ }
@@ -0,0 +1,13 @@
1
+ import { SchedulerRegistry } from "@nestjs/schedule";
2
+ import { TaskProps } from "../../../decorators/tasks";
3
+ import { ITask } from "../../../../../abstractions";
4
+ import { TaskShell } from "../task-shell";
5
+ export declare class TaskScheduler {
6
+ private schedulerRegistry;
7
+ private readonly jobShell;
8
+ private readonly logger;
9
+ private jobs;
10
+ constructor(schedulerRegistry: SchedulerRegistry, jobShell: TaskShell);
11
+ registerTask(job: TaskProps, instance: ITask): Promise<void>;
12
+ stopAllTasks(): void;
13
+ }
@@ -0,0 +1,15 @@
1
+ import { TaskProps } from "../../../decorators/tasks";
2
+ import { ILockRepository, ITask } from "../../../../../abstractions";
3
+ import { EntityManagerRegistry } from "../../../ioc";
4
+ export declare class TaskShell {
5
+ private readonly registry;
6
+ private readonly operations;
7
+ private readonly logger;
8
+ constructor(registry: EntityManagerRegistry, operations: ILockRepository);
9
+ executeTask(instance: ITask, settings: TaskProps): Promise<void>;
10
+ private executeTaskParallel;
11
+ private executeTaskSequential;
12
+ private getTaskLockKey;
13
+ private invokeTask;
14
+ private get operationsLockService();
15
+ }
@@ -0,0 +1 @@
1
+ export declare const getCronCurrentSchedule: (cronExpression: string, ref: Date) => Date;
@@ -0,0 +1 @@
1
+ export declare function floorDateToSecond(date: Date): Date;
package/dist/esm/index.js CHANGED
@@ -4247,6 +4247,19 @@ const WpEntitySnapshotService = (entityName, props = {}) => applyDecorators(Inje
4247
4247
  ...props,
4248
4248
  }));
4249
4249
 
4250
+ const TASK_KEY = "wp_task";
4251
+ var TaskConcurrency;
4252
+ (function (TaskConcurrency) {
4253
+ TaskConcurrency["Single"] = "single";
4254
+ TaskConcurrency["Multiple"] = "multiple";
4255
+ })(TaskConcurrency || (TaskConcurrency = {}));
4256
+ function WpTask(name, settings) {
4257
+ return applyDecorators(Injectable(), SetMetadata(TASK_KEY, {
4258
+ name,
4259
+ ...settings,
4260
+ }));
4261
+ }
4262
+
4250
4263
  const WpEventsTracker = (props = {}) => applyDecorators(Injectable(), SetMetadata(EntityManagerSymbols.EventsTracker, {
4251
4264
  ...props,
4252
4265
  }));
@@ -34766,6 +34779,164 @@ JobsModule = JobsModule_1 = __decorate([
34766
34779
  JobsProviderFactory])
34767
34780
  ], JobsModule);
34768
34781
 
34782
+ var TaskRunType;
34783
+ (function (TaskRunType) {
34784
+ TaskRunType["Scheduled"] = "Scheduled";
34785
+ TaskRunType["OnDemand"] = "OnDemand";
34786
+ })(TaskRunType || (TaskRunType = {}));
34787
+
34788
+ const getCronCurrentSchedule = (cronExpression, ref) => {
34789
+ const interval = parser$1.parseExpression(cronExpression, {
34790
+ currentDate: ref,
34791
+ });
34792
+ return interval.prev().toDate();
34793
+ };
34794
+
34795
+ function floorDateToSecond(date) {
34796
+ const flooredDate = new Date(date);
34797
+ flooredDate.setMilliseconds(0);
34798
+ return flooredDate;
34799
+ }
34800
+
34801
+ var TaskShell_1;
34802
+ let TaskShell = TaskShell_1 = class TaskShell {
34803
+ constructor(registry, operations) {
34804
+ this.registry = registry;
34805
+ this.operations = operations;
34806
+ this.logger = Log.getLogger(TaskShell_1.name);
34807
+ }
34808
+ async executeTask(instance, settings) {
34809
+ switch (settings.concurrency) {
34810
+ case TaskConcurrency.Single:
34811
+ return await this.executeTaskSequential(instance, settings);
34812
+ case TaskConcurrency.Multiple:
34813
+ return await this.executeTaskParallel(instance, settings);
34814
+ default:
34815
+ throw new Error(`Unknown task concurrency: ${settings.concurrency}`);
34816
+ }
34817
+ }
34818
+ async executeTaskParallel(instance, settings) {
34819
+ await this.invokeTask(instance, settings);
34820
+ }
34821
+ async executeTaskSequential(instance, settings) {
34822
+ const currentSchedule = getCronCurrentSchedule(settings.cronExpression, new Date());
34823
+ const lockKey = this.getTaskLockKey(settings, currentSchedule);
34824
+ const lock = await this.operations.acquireLock({
34825
+ lockUid: lockKey,
34826
+ });
34827
+ if (lock.available) {
34828
+ await this.invokeTask(instance, settings);
34829
+ }
34830
+ }
34831
+ getTaskLockKey(settings, cronSchedule) {
34832
+ return `task:${settings.name}:${floorDateToSecond(cronSchedule).toISOString()}`;
34833
+ }
34834
+ async invokeTask(instance, settings) {
34835
+ try {
34836
+ this.logger.info(`Task ${settings.name} -> starting`);
34837
+ await instance.execute({
34838
+ name: settings.name,
34839
+ startedAt: new Date(),
34840
+ runId: newUuid$1(),
34841
+ runType: TaskRunType.Scheduled,
34842
+ });
34843
+ this.logger.info(`Task ${settings.name} -> completed`);
34844
+ }
34845
+ catch (error) {
34846
+ this.logger.exception(`Task ${settings.name} -> failed`, error);
34847
+ }
34848
+ }
34849
+ get operationsLockService() {
34850
+ return this.registry
34851
+ .getContainer()
34852
+ .getEntitiesServicesLocator()
34853
+ .resolveOperationLockService();
34854
+ }
34855
+ };
34856
+ TaskShell = TaskShell_1 = __decorate([
34857
+ Injectable(),
34858
+ __param(1, Inject(getEntityManagerProviderToken("OperationsLockRepository"))),
34859
+ __metadata("design:paramtypes", [EntityManagerRegistry, Object])
34860
+ ], TaskShell);
34861
+
34862
+ var TaskScheduler_1;
34863
+ let TaskScheduler = TaskScheduler_1 = class TaskScheduler {
34864
+ constructor(schedulerRegistry, jobShell) {
34865
+ this.schedulerRegistry = schedulerRegistry;
34866
+ this.jobShell = jobShell;
34867
+ this.logger = new Logger(TaskScheduler_1.name);
34868
+ this.jobs = [];
34869
+ }
34870
+ async registerTask(job, instance) {
34871
+ const cronJob = new dist.CronJob(job.cronExpression, async (context) => {
34872
+ await this.jobShell.executeTask(instance, job);
34873
+ });
34874
+ this.schedulerRegistry.addCronJob(job.name, cronJob);
34875
+ cronJob.start();
34876
+ this.jobs.push(cronJob);
34877
+ this.logger.log(`Jobs ${job.name} registered`);
34878
+ }
34879
+ stopAllTasks() {
34880
+ this.jobs.forEach((job) => {
34881
+ job.stop();
34882
+ });
34883
+ }
34884
+ };
34885
+ TaskScheduler = TaskScheduler_1 = __decorate([
34886
+ Injectable(),
34887
+ __metadata("design:paramtypes", [SchedulerRegistry,
34888
+ TaskShell])
34889
+ ], TaskScheduler);
34890
+
34891
+ var TasksInitializer_1;
34892
+ let TasksInitializer = TasksInitializer_1 = class TasksInitializer {
34893
+ constructor(discover, scheduler) {
34894
+ this.discover = discover;
34895
+ this.scheduler = scheduler;
34896
+ this.logger = new Logger(TasksInitializer_1.name);
34897
+ }
34898
+ async initialize(app) {
34899
+ await this.registerCronJobs();
34900
+ this.logger.log("Tasks initialized 🎰");
34901
+ }
34902
+ async registerCronJobs() {
34903
+ const tasks = await this.discoverTasks();
34904
+ const duplicatedJobs = tasks.filter((job, index, self) => index !== self.findIndex((t) => t.meta.name === job.meta.name));
34905
+ if (duplicatedJobs.length) {
34906
+ throw new Error(`Duplicated jobs found: ${duplicatedJobs
34907
+ .map((j) => j.meta.name)
34908
+ .join(", ")}`);
34909
+ }
34910
+ for (const task of tasks) {
34911
+ await this.scheduler.registerTask(task.meta, task.discoveredClass.instance);
34912
+ }
34913
+ }
34914
+ async discoverTasks() {
34915
+ return await this.discover.providersWithMetaAtKey(TASK_KEY);
34916
+ }
34917
+ };
34918
+ TasksInitializer = TasksInitializer_1 = __decorate([
34919
+ WpAppInitializer(),
34920
+ __metadata("design:paramtypes", [CustomDiscoveryService,
34921
+ TaskScheduler])
34922
+ ], TasksInitializer);
34923
+
34924
+ let TasksModule = class TasksModule {
34925
+ constructor(scheduler) {
34926
+ this.scheduler = scheduler;
34927
+ }
34928
+ onModuleDestroy() {
34929
+ this.scheduler.stopAllTasks();
34930
+ }
34931
+ };
34932
+ TasksModule = __decorate([
34933
+ Module({
34934
+ imports: [EntityManagerModule],
34935
+ providers: [TasksInitializer, TaskScheduler, TaskShell],
34936
+ }),
34937
+ __metadata("design:paramtypes", [TaskScheduler])
34938
+ ], TasksModule);
34939
+
34769
34940
  const createExpressFileResponse = (res, file) => {
34770
34941
  res.set({
34771
34942
  "Content-Type": file.contentType,
@@ -44447,5 +44618,5 @@ class TestingAppSessionService {
44447
44618
  }
44448
44619
  }
44449
44620
 
44450
- export { AUTHENTICATION_EVENTS_NAMESPACE, ApiKeyAccess, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSession, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsBucketModule, AwsDynamoDbModule, AwsEmailModule, AwsJobsModule, AwsS3BucketError, AwsS3BucketProvider, AwsS3MediaError, AwsS3MediaModule, AwsS3MediaProvider, AwsSecretsModule, AwsSecretsProvider, AwsSesEmailTemplate, BucketItemType, CacheService, ConnectorMode, CurrentUser, CustomDiscoveryModule, CustomDiscoveryService, DynamoDbCacheInstance, DynamoDbCollection, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityParseResult, EntityParseValidationError, EntitySeeder, EntitySerializationFormat, EntitySerializer, EntitySnapshotService, EntityVersionOperation, EventsService, ExclusiveOperationResult, FilesManager, IEntityVersionsCursor, InMemoryBucketProvider, InMemoryEmailProvider, InMemoryFileProvider, InMemoryMediaProvider, InMemorySecretsProvider, InvalidCredentialsError, JobConcurrency, JobInstance, JobProviderState, JobRunType, JobSchedule, JobStatus, JobsModule, JobsService, LockNotFoundError, MediaLibraryService, MemberOf, MissingEntityIdError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestEntitySerializer, NestEntitySnapshotService, NestPipelineTemplate, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationLockService, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, Permissions, PipelineController, PipelineErrorType, PipelineInvocationError, PipelineStatus, PipelineStepErrorType, PipelinesBuilder, PipelinesRunner, PlatformEvents, Public, QueryBuilderBase, QueryBuilderOperation, ReplicationMode, Roles, SanityMediaError, SanityMediaModule, SanityMediaProvider, SecretsService, SendgridEmailModule, SendgridEmailTemplate, SortDirection, TestingAppSessionService, TrackingService, TypeOrmQueryBuilder, TypeOrmRepository, TypeormCacheInstance, TypeormOperationLockRepository, UserCreationError, UserRegistrationError, WpApiKeysService, WpAppInitializer, WpAwsSesEmailTemplate, WpBucketProvider, WpCacheInstance, WpEmailLogger, WpEmailProvider, WpEmailTemplate, WpEmailTemplateMiddleware, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConnectorMapper, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEntitySerializer, WpEntitySnapshotService, WpEntityVersioningProvider, WpEventsTracker, WpFileProvider, WpFileReferenceRepository, WpGlobalAuthenticationMiddleware, WpMediaFolderRepository, WpMediaProvider, WpMediaReferenceRepository, WpPermissionsService, WpPipeline, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, awsBatchSettings, buildPermissionsGuard, buildProviderToken, buildRolesGuard, createContainer, createExpressFileResponse, fieldRequiredValidator, getEntityManagerProviderToken, getLocalizedText, newUuid, renderHandlebarsTemplate, sessionStorage, toEntitiesImportInput };
44621
+ export { AUTHENTICATION_EVENTS_NAMESPACE, ApiKeyAccess, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSession, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsBucketModule, AwsDynamoDbModule, AwsEmailModule, AwsJobsModule, AwsS3BucketError, AwsS3BucketProvider, AwsS3MediaError, AwsS3MediaModule, AwsS3MediaProvider, AwsSecretsModule, AwsSecretsProvider, AwsSesEmailTemplate, BucketItemType, CacheService, ConnectorMode, CurrentUser, CustomDiscoveryModule, CustomDiscoveryService, DynamoDbCacheInstance, DynamoDbCollection, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityParseResult, EntityParseValidationError, EntitySeeder, EntitySerializationFormat, EntitySerializer, EntitySnapshotService, EntityVersionOperation, EventsService, ExclusiveOperationResult, FilesManager, IEntityVersionsCursor, InMemoryBucketProvider, InMemoryEmailProvider, InMemoryFileProvider, InMemoryMediaProvider, InMemorySecretsProvider, InvalidCredentialsError, JobConcurrency, JobInstance, JobProviderState, JobRunType, JobSchedule, JobStatus, JobsModule, JobsService, LockNotFoundError, MediaLibraryService, MemberOf, MissingEntityIdError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestEntitySerializer, NestEntitySnapshotService, NestPipelineTemplate, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationLockService, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, Permissions, PipelineController, PipelineErrorType, PipelineInvocationError, PipelineStatus, PipelineStepErrorType, PipelinesBuilder, PipelinesRunner, PlatformEvents, Public, QueryBuilderBase, QueryBuilderOperation, ReplicationMode, Roles, SanityMediaError, SanityMediaModule, SanityMediaProvider, SecretsService, SendgridEmailModule, SendgridEmailTemplate, SortDirection, TaskConcurrency, TasksModule, TestingAppSessionService, TrackingService, TypeOrmQueryBuilder, TypeOrmRepository, TypeormCacheInstance, TypeormOperationLockRepository, UserCreationError, UserRegistrationError, WpApiKeysService, WpAppInitializer, WpAwsSesEmailTemplate, WpBucketProvider, WpCacheInstance, WpEmailLogger, WpEmailProvider, WpEmailTemplate, WpEmailTemplateMiddleware, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConnectorMapper, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEntitySerializer, WpEntitySnapshotService, WpEntityVersioningProvider, WpEventsTracker, WpFileProvider, WpFileReferenceRepository, WpGlobalAuthenticationMiddleware, WpMediaFolderRepository, WpMediaProvider, WpMediaReferenceRepository, WpPermissionsService, WpPipeline, WpRolesService, WpSendgridEmailTemplate, WpTask, WpUserRolesService, WpUserService, awsBatchSettings, buildPermissionsGuard, buildProviderToken, buildRolesGuard, createContainer, createExpressFileResponse, fieldRequiredValidator, getEntityManagerProviderToken, getLocalizedText, newUuid, renderHandlebarsTemplate, sessionStorage, toEntitiesImportInput };
44451
44622
  //# sourceMappingURL=index.js.map