@unchainedshop/core-events 3.0.0-rc8 → 3.0.0

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.
@@ -1,6 +1,5 @@
1
- import { mongodb } from '@unchainedshop/mongodb';
1
+ import { mongodb, ModuleInput } from '@unchainedshop/mongodb';
2
2
  import { SortOption, DateFilterInput } from '@unchainedshop/utils';
3
- import { ModuleInput } from '@unchainedshop/mongodb';
4
3
  import { Event } from '../db/EventsCollection.js';
5
4
  export type EventReport = {
6
5
  emitCount: number;
@@ -16,22 +15,22 @@ export declare const buildFindSelector: ({ types, queryString, created }: EventQ
16
15
  $text?: any;
17
16
  created?: any;
18
17
  };
19
- export interface EventsModule {
20
- findEvent: (params: mongodb.Filter<Event> & {
18
+ export declare const configureEventsModule: ({ db }: ModuleInput<Record<string, never>>) => Promise<{
19
+ create: (doc: Event) => Promise<string>;
20
+ findEvent: ({ eventId, ...rest }: mongodb.Filter<Event> & {
21
21
  eventId: string;
22
22
  }, options?: mongodb.FindOptions) => Promise<Event>;
23
- findEvents: (params: EventQuery & {
23
+ findEvents: ({ limit, offset, sort, ...query }: EventQuery & {
24
24
  limit?: number;
25
25
  offset?: number;
26
26
  sort?: Array<SortOption>;
27
- }, options?: mongodb.FindOptions) => Promise<Array<Event>>;
27
+ }) => Promise<Array<Event>>;
28
28
  type: (event: Event) => string;
29
- create: (doc: Event) => Promise<string | null>;
30
29
  count: (query: EventQuery) => Promise<number>;
31
- getReport: (params?: {
30
+ getReport: ({ dateRange, types }?: {
32
31
  dateRange?: DateFilterInput;
33
32
  types?: string[];
34
33
  }) => Promise<EventReport[]>;
35
- }
36
- export declare const configureEventsModule: ({ db, }: ModuleInput<Record<string, never>>) => Promise<EventsModule>;
34
+ }>;
35
+ export type EventsModule = Awaited<ReturnType<typeof configureEventsModule>>;
37
36
  //# sourceMappingURL=configureEventsModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureEventsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureEventsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAiB,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAoB,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,iBAAiB,oCAAqC,UAAU;WAClD,GAAG;YAAU,GAAG;cAAY,GAAG;CAMzD,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EACnD,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,KAC1B,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpB,UAAU,EAAE,CACV,MAAM,EAAE,UAAU,GAAG;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1B,EACD,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,KAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3B,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE/C,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CACnG;AAED,eAAO,MAAM,qBAAqB,YAE/B,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,YAAY,CAoG3D,CAAC"}
1
+ {"version":3,"file":"configureEventsModule.d.ts","sourceRoot":"","sources":["../../src/module/configureEventsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAiB,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAoB,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,iBAAiB,oCAAqC,UAAU;WAClD,GAAG;YAAU,GAAG;cAAY,GAAG;CAMzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAAkB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;kBAGzD,KAAK;sCAeN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,YACvD,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC;oDAUd,UAAU,GAAG;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1B,KAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;kBASX,KAAK;mBAOE,UAAU;uCAMP;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAItE,OAAO,CAAC,WAAW,EAAE,CAAC;EAyD5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { generateDbFilterById, buildSortOptions, generateDbObjectId } from '@unchainedshop/mongodb';
1
+ import { generateDbFilterById, buildSortOptions, generateDbObjectId, } from '@unchainedshop/mongodb';
2
2
  import { getRegisteredEvents } from '@unchainedshop/events';
3
3
  import { SortDirection } from '@unchainedshop/utils';
4
4
  import { EventsCollection } from '../db/EventsCollection.js';
@@ -13,7 +13,7 @@ export const buildFindSelector = ({ types, queryString, created }) => {
13
13
  selector.created = { $gte: created };
14
14
  return selector;
15
15
  };
16
- export const configureEventsModule = async ({ db, }) => {
16
+ export const configureEventsModule = async ({ db }) => {
17
17
  const Events = await EventsCollection(db);
18
18
  const create = async (doc) => {
19
19
  const result = await Events.insertOne({
@@ -48,7 +48,10 @@ export const configureEventsModule = async ({ db, }) => {
48
48
  const count = await Events.countDocuments(buildFindSelector(query));
49
49
  return count;
50
50
  },
51
- getReport: async ({ dateRange, types } = { dateRange: {}, types: null }) => {
51
+ getReport: async ({ dateRange, types } = {
52
+ dateRange: {},
53
+ types: null,
54
+ }) => {
52
55
  const pipeline = [];
53
56
  const matchConditions = [];
54
57
  // build date filter based on provided values it can be a range if both to and from is supplied
@@ -1 +1 @@
1
- {"version":3,"file":"configureEventsModule.js","sourceRoot":"","sources":["../../src/module/configureEventsModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureEventsModule.js","sourceRoot":"","sources":["../../src/module/configureEventsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAA+B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAS,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAajF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAc,EAAE,EAAE;IAC/E,MAAM,QAAQ,GAA+C,EAAE,CAAC;IAEhE,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAClE,IAAI,WAAW;QAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC3D,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAsC,EAAE,EAAE;IACxF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,KAAK,EAAE,GAAU,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACpC,GAAG,EAAE,kBAAkB,EAAE;YACzB,OAAO,EAAE,IAAI,IAAI,EAAE;YACnB,GAAG,GAAG;SACP,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO;QACL,MAAM;QAEN,SAAS,EAAE,KAAK,EACd,EAAE,OAAO,EAAE,GAAG,IAAI,EAA+C,EACjE,OAA6B,EACb,EAAE;YAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,EACjB,KAAK,EACL,MAAM,EACN,IAAI,EACJ,GAAG,KAAK,EAKT,EAAyB,EAAE;YAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAsB,CAAC;YACzF,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;gBAC3C,IAAI,EAAE,MAAM;gBACZ,KAAK;gBACL,IAAI,EAAE,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;aAC5C,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;QAED,IAAI,EAAE,CAAC,KAAY,EAAE,EAAE;YACrB,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,EAAE,KAAK,EAAE,KAAiB,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,EAAE,KAAK,EACd,EAAE,SAAS,EAAE,KAAK,KAAwD;YACxE,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,IAAI;SACZ,EACuB,EAAE;YAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,EAAE,CAAC;YAC3B,+FAA+F;YAC/F,yDAAyD;YACzD,6BAA6B;YAC7B,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,GAAG,EAAE,CAAC;gBACvC,MAAM,cAAc,GAAG,EAAE,CAAC;gBAC1B,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;oBACrB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBAC5C,cAAc,CAAC,IAAI,CAAC;wBAClB,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;qBACxE,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,SAAS,EAAE,GAAG,EAAE,CAAC;oBACnB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;oBACxC,cAAc,CAAC,IAAI,CAAC;wBAClB,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;qBACpE,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,+EAA+E;YAC/E,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClD,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE;wBACN,IAAI,EAAE,eAAe;qBACtB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,QAAQ,CAAC,IAAI,CACX,GAAG;gBACD;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE,OAAO;wBACZ,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;qBACvB;iBACF;gBACD;oBACE,QAAQ,EAAE;wBACR,GAAG,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,CAAC;qBACb;iBACF;aACF,CACF,CAAC;YAEF,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAA4B,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-events",
3
- "version": "3.0.0-rc8",
3
+ "version": "3.0.0",
4
4
  "main": "lib/events-index.js",
5
5
  "types": "lib/events-index.d.ts",
6
6
  "type": "module",
@@ -31,13 +31,13 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/events": "^3.0.0-rc8",
35
- "@unchainedshop/utils": "^3.0.0-rc8"
34
+ "@unchainedshop/events": "^3.0.0",
35
+ "@unchainedshop/utils": "^3.0.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/node": "^22.10.2",
38
+ "@types/node": "^22.10.5",
39
39
  "jest": "^29.7.0",
40
40
  "ts-jest": "^29.2.5",
41
- "typescript": "^5.7.2"
41
+ "typescript": "^5.7.3"
42
42
  }
43
43
  }
@@ -1,9 +1,12 @@
1
- import { mongodb } from '@unchainedshop/mongodb';
2
-
3
- import { generateDbFilterById, buildSortOptions, generateDbObjectId } from '@unchainedshop/mongodb';
1
+ import {
2
+ mongodb,
3
+ generateDbFilterById,
4
+ buildSortOptions,
5
+ generateDbObjectId,
6
+ ModuleInput,
7
+ } from '@unchainedshop/mongodb';
4
8
  import { getRegisteredEvents } from '@unchainedshop/events';
5
9
  import { SortDirection, SortOption, DateFilterInput } from '@unchainedshop/utils';
6
- import { ModuleInput } from '@unchainedshop/mongodb';
7
10
  import { EventsCollection, Event } from '../db/EventsCollection.js';
8
11
  import { configureEventHistoryAdapter } from './configureEventHistoryAdapter.js';
9
12
 
@@ -27,40 +30,16 @@ export const buildFindSelector = ({ types, queryString, created }: EventQuery) =
27
30
  return selector;
28
31
  };
29
32
 
30
- export interface EventsModule {
31
- findEvent: (
32
- params: mongodb.Filter<Event> & { eventId: string },
33
- options?: mongodb.FindOptions,
34
- ) => Promise<Event>;
35
-
36
- findEvents: (
37
- params: EventQuery & {
38
- limit?: number;
39
- offset?: number;
40
- sort?: Array<SortOption>;
41
- },
42
- options?: mongodb.FindOptions,
43
- ) => Promise<Array<Event>>;
44
-
45
- type: (event: Event) => string;
46
- create: (doc: Event) => Promise<string | null>;
47
-
48
- count: (query: EventQuery) => Promise<number>;
49
- getReport: (params?: { dateRange?: DateFilterInput; types?: string[] }) => Promise<EventReport[]>;
50
- }
51
-
52
- export const configureEventsModule = async ({
53
- db,
54
- }: ModuleInput<Record<string, never>>): Promise<EventsModule> => {
33
+ export const configureEventsModule = async ({ db }: ModuleInput<Record<string, never>>) => {
55
34
  const Events = await EventsCollection(db);
56
35
 
57
- const create = async (doc) => {
36
+ const create = async (doc: Event) => {
58
37
  const result = await Events.insertOne({
59
38
  _id: generateDbObjectId(),
60
39
  created: new Date(),
61
40
  ...doc,
62
41
  });
63
- return result.insertedId as string;
42
+ return result.insertedId;
64
43
  };
65
44
 
66
45
  await configureEventHistoryAdapter(create);
@@ -68,12 +47,24 @@ export const configureEventsModule = async ({
68
47
  return {
69
48
  create,
70
49
 
71
- findEvent: async ({ eventId, ...rest }, options) => {
50
+ findEvent: async (
51
+ { eventId, ...rest }: mongodb.Filter<Event> & { eventId: string },
52
+ options?: mongodb.FindOptions,
53
+ ): Promise<Event> => {
72
54
  const selector = eventId ? generateDbFilterById<Event>(eventId) : rest;
73
55
  return Events.findOne(selector, options);
74
56
  },
75
57
 
76
- findEvents: async ({ limit, offset, sort, ...query }) => {
58
+ findEvents: async ({
59
+ limit,
60
+ offset,
61
+ sort,
62
+ ...query
63
+ }: EventQuery & {
64
+ limit?: number;
65
+ offset?: number;
66
+ sort?: Array<SortOption>;
67
+ }): Promise<Array<Event>> => {
77
68
  const defaultSort = [{ key: 'created', value: SortDirection.DESC }] as Array<SortOption>;
78
69
  return Events.find(buildFindSelector(query), {
79
70
  skip: offset,
@@ -82,19 +73,24 @@ export const configureEventsModule = async ({
82
73
  }).toArray();
83
74
  },
84
75
 
85
- type: (event) => {
76
+ type: (event: Event) => {
86
77
  if (getRegisteredEvents().includes(event.type)) {
87
78
  return event.type;
88
79
  }
89
80
  return 'UNKNOWN';
90
81
  },
91
82
 
92
- count: async (query) => {
83
+ count: async (query: EventQuery) => {
93
84
  const count = await Events.countDocuments(buildFindSelector(query));
94
85
  return count;
95
86
  },
96
87
 
97
- getReport: async ({ dateRange, types } = { dateRange: {}, types: null }) => {
88
+ getReport: async (
89
+ { dateRange, types }: { dateRange?: DateFilterInput; types?: string[] } = {
90
+ dateRange: {},
91
+ types: null,
92
+ },
93
+ ): Promise<EventReport[]> => {
98
94
  const pipeline = [];
99
95
  const matchConditions = [];
100
96
  // build date filter based on provided values it can be a range if both to and from is supplied
@@ -152,3 +148,5 @@ export const configureEventsModule = async ({
152
148
  },
153
149
  };
154
150
  };
151
+
152
+ export type EventsModule = Awaited<ReturnType<typeof configureEventsModule>>;