@unchainedshop/core-events 3.0.0-rc9 → 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
|
|
20
|
-
|
|
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: (
|
|
23
|
+
findEvents: ({ limit, offset, sort, ...query }: EventQuery & {
|
|
24
24
|
limit?: number;
|
|
25
25
|
offset?: number;
|
|
26
26
|
sort?: Array<SortOption>;
|
|
27
|
-
}
|
|
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: (
|
|
30
|
+
getReport: ({ dateRange, types }?: {
|
|
32
31
|
dateRange?: DateFilterInput;
|
|
33
32
|
types?: string[];
|
|
34
33
|
}) => Promise<EventReport[]>;
|
|
35
|
-
}
|
|
36
|
-
export
|
|
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,
|
|
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 } = {
|
|
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":"
|
|
1
|
+
{"version":3,"file":"configureEventsModule.js","sourceRoot":"","sources":["../../src/module/configureEventsModule.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-events",
|
|
3
|
-
"version": "3.0.0
|
|
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
|
|
35
|
-
"@unchainedshop/utils": "^3.0.0
|
|
34
|
+
"@unchainedshop/events": "^3.0.0",
|
|
35
|
+
"@unchainedshop/utils": "^3.0.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/node": "^22.10.
|
|
38
|
+
"@types/node": "^22.10.5",
|
|
39
39
|
"jest": "^29.7.0",
|
|
40
40
|
"ts-jest": "^29.2.5",
|
|
41
|
-
"typescript": "^5.7.
|
|
41
|
+
"typescript": "^5.7.3"
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
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
|
|
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
|
|
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 (
|
|
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 ({
|
|
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 (
|
|
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>>;
|