@hexaijs/core 0.4.0 → 0.5.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.
Files changed (73) hide show
  1. package/dist/{message.d.ts → event-store-BDib72ud.d.ts} +19 -7
  2. package/dist/index.d.ts +67 -5
  3. package/dist/index.js +202 -19
  4. package/dist/index.js.map +1 -1
  5. package/dist/test/index.d.ts +38 -7
  6. package/dist/test/index.js +304 -42
  7. package/dist/test/index.js.map +1 -1
  8. package/package.json +6 -7
  9. package/dist/config.d.ts +0 -2
  10. package/dist/config.d.ts.map +0 -1
  11. package/dist/config.js +0 -5
  12. package/dist/config.js.map +0 -1
  13. package/dist/domain/aggregate-root.d.ts +0 -11
  14. package/dist/domain/aggregate-root.d.ts.map +0 -1
  15. package/dist/domain/aggregate-root.js +0 -21
  16. package/dist/domain/aggregate-root.js.map +0 -1
  17. package/dist/domain/domain-error.d.ts +0 -11
  18. package/dist/domain/domain-error.d.ts.map +0 -1
  19. package/dist/domain/domain-error.js +0 -25
  20. package/dist/domain/domain-error.js.map +0 -1
  21. package/dist/domain/domain-event.d.ts +0 -5
  22. package/dist/domain/domain-event.d.ts.map +0 -1
  23. package/dist/domain/domain-event.js +0 -11
  24. package/dist/domain/domain-event.js.map +0 -1
  25. package/dist/domain/identifiable.d.ts +0 -11
  26. package/dist/domain/identifiable.d.ts.map +0 -1
  27. package/dist/domain/identifiable.js +0 -18
  28. package/dist/domain/identifiable.js.map +0 -1
  29. package/dist/domain/index.d.ts +0 -6
  30. package/dist/domain/index.d.ts.map +0 -1
  31. package/dist/domain/index.js +0 -22
  32. package/dist/domain/index.js.map +0 -1
  33. package/dist/domain/repository.d.ts +0 -16
  34. package/dist/domain/repository.d.ts.map +0 -1
  35. package/dist/domain/repository.js +0 -25
  36. package/dist/domain/repository.js.map +0 -1
  37. package/dist/event-store.d.ts +0 -13
  38. package/dist/event-store.d.ts.map +0 -1
  39. package/dist/event-store.js +0 -3
  40. package/dist/event-store.js.map +0 -1
  41. package/dist/index.d.ts.map +0 -1
  42. package/dist/message.d.ts.map +0 -1
  43. package/dist/message.js +0 -120
  44. package/dist/message.js.map +0 -1
  45. package/dist/test/dummy-message.d.ts +0 -8
  46. package/dist/test/dummy-message.d.ts.map +0 -1
  47. package/dist/test/dummy-message.js +0 -22
  48. package/dist/test/dummy-message.js.map +0 -1
  49. package/dist/test/expect.d.ts +0 -3
  50. package/dist/test/expect.d.ts.map +0 -1
  51. package/dist/test/expect.js +0 -13
  52. package/dist/test/expect.js.map +0 -1
  53. package/dist/test/in-memory-event-store.d.ts +0 -11
  54. package/dist/test/in-memory-event-store.d.ts.map +0 -1
  55. package/dist/test/in-memory-event-store.js +0 -38
  56. package/dist/test/in-memory-event-store.js.map +0 -1
  57. package/dist/test/index.d.ts.map +0 -1
  58. package/dist/test/matchers.d.ts +0 -5
  59. package/dist/test/matchers.d.ts.map +0 -1
  60. package/dist/test/matchers.js +0 -77
  61. package/dist/test/matchers.js.map +0 -1
  62. package/dist/test/partial-match.d.ts +0 -4
  63. package/dist/test/partial-match.d.ts.map +0 -1
  64. package/dist/test/partial-match.js +0 -33
  65. package/dist/test/partial-match.js.map +0 -1
  66. package/dist/test/utils.d.ts +0 -5
  67. package/dist/test/utils.d.ts.map +0 -1
  68. package/dist/test/utils.js +0 -25
  69. package/dist/test/utils.js.map +0 -1
  70. package/dist/unit-of-work.d.ts +0 -13
  71. package/dist/unit-of-work.d.ts.map +0 -1
  72. package/dist/unit-of-work.js +0 -10
  73. package/dist/unit-of-work.js.map +0 -1
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./aggregate-root"), exports);
18
- __exportStar(require("./domain-error"), exports);
19
- __exportStar(require("./domain-event"), exports);
20
- __exportStar(require("./identifiable"), exports);
21
- __exportStar(require("./repository"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,+CAA6B"}
@@ -1,16 +0,0 @@
1
- import { Identifiable, IdOf } from "./identifiable";
2
- export interface Repository<T extends Identifiable<any>> {
3
- get(id: IdOf<T>): Promise<T>;
4
- add(entity: T): Promise<void>;
5
- update(entity: T): Promise<void>;
6
- }
7
- export declare class RepositoryError extends Error {
8
- constructor(message: string);
9
- }
10
- export declare class DuplicateObjectError extends RepositoryError {
11
- constructor(message: string);
12
- }
13
- export declare class ObjectNotFoundError extends RepositoryError {
14
- constructor(message: string);
15
- }
16
- //# sourceMappingURL=repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/domain/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC;IACnD,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI9B;AAED,qBAAa,oBAAqB,SAAQ,eAAe;gBACzC,OAAO,EAAE,MAAM;CAI9B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;gBACxC,OAAO,EAAE,MAAM;CAI9B"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectNotFoundError = exports.DuplicateObjectError = exports.RepositoryError = void 0;
4
- class RepositoryError extends Error {
5
- constructor(message) {
6
- super(message);
7
- this.name = "RepositoryError";
8
- }
9
- }
10
- exports.RepositoryError = RepositoryError;
11
- class DuplicateObjectError extends RepositoryError {
12
- constructor(message) {
13
- super(message);
14
- this.name = "DuplicateObjectError";
15
- }
16
- }
17
- exports.DuplicateObjectError = DuplicateObjectError;
18
- class ObjectNotFoundError extends RepositoryError {
19
- constructor(message) {
20
- super(message);
21
- this.name = "ObjectNotFoundError";
22
- }
23
- }
24
- exports.ObjectNotFoundError = ObjectNotFoundError;
25
- //# sourceMappingURL=repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/domain/repository.ts"],"names":[],"mappings":";;;AAQA,MAAa,eAAgB,SAAQ,KAAK;IACtC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AALD,0CAKC;AAED,MAAa,oBAAqB,SAAQ,eAAe;IACrD,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACvC,CAAC;CACJ;AALD,oDAKC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACpD,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACtC,CAAC;CACJ;AALD,kDAKC"}
@@ -1,13 +0,0 @@
1
- import { Message } from "./message";
2
- export interface StoredEvent {
3
- position: number;
4
- event: Message;
5
- }
6
- export interface EventStoreFetchResult {
7
- events: StoredEvent[];
8
- lastPosition: number;
9
- }
10
- export interface EventStore {
11
- fetch(afterPosition: number, limit?: number): Promise<EventStoreFetchResult>;
12
- }
13
- //# sourceMappingURL=event-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,CACD,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=event-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store.js","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
package/dist/message.js DELETED
@@ -1,120 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Message = void 0;
4
- const uuid_1 = require("uuid");
5
- class Message {
6
- payload;
7
- headers;
8
- static getSchemaVersion() {
9
- return this.schemaVersion ?? undefined;
10
- }
11
- static getType() {
12
- return this.type ?? this.name;
13
- }
14
- static getIntent() {
15
- return this.intent ?? undefined;
16
- }
17
- static newHeaders(...excludes) {
18
- return generateHeaderFor(this, ...excludes);
19
- }
20
- static from(rawPayload, headers) {
21
- const payload = this.deserializeRawPayload(rawPayload);
22
- return new this(payload, headers ? this.deserializeRawHeaders(headers) : this.newHeaders());
23
- }
24
- static deserializeRawPayload(rawPayload) {
25
- return rawPayload;
26
- }
27
- static deserializeRawHeaders(headers) {
28
- headers.createdAt = new Date(headers.createdAt);
29
- return headers;
30
- }
31
- constructor(payload, headers = {}) {
32
- this.payload = payload;
33
- this.headers = Object.freeze(this.constructor.mergeHeaders(headers));
34
- if (payload && typeof payload === "object") {
35
- Object.freeze(payload);
36
- }
37
- }
38
- static mergeHeaders(headers) {
39
- return {
40
- ...this.newHeaders(...Object.keys(headers)),
41
- ...headers,
42
- };
43
- }
44
- withHeader(field, value) {
45
- const newHeaders = { ...this.headers, [field]: value };
46
- return new this.constructor(this.payload, newHeaders);
47
- }
48
- clone() {
49
- return new this.constructor(this.payload, { ...this.headers });
50
- }
51
- getHeader(field) {
52
- return this.headers[field];
53
- }
54
- getHeaders() {
55
- return Object.freeze({ ...this.headers });
56
- }
57
- getPayload() {
58
- return this.payload;
59
- }
60
- getMessageId() {
61
- return this.headers.id;
62
- }
63
- getMessageType() {
64
- return this.headers.type;
65
- }
66
- getSchemaVersion() {
67
- return this.headers.schemaVersion;
68
- }
69
- getTimestamp() {
70
- return this.headers.createdAt;
71
- }
72
- getIntent() {
73
- return this.constructor.getIntent();
74
- }
75
- serialize() {
76
- // we do this to convert the Date object to a string
77
- // and also to remove any reference to the original object
78
- return JSON.parse(JSON.stringify(this.doSerialize()));
79
- }
80
- doSerialize() {
81
- return {
82
- headers: { ...this.headers },
83
- payload: this.serializePayload(this.payload),
84
- };
85
- }
86
- serializePayload(payload) {
87
- return payload;
88
- }
89
- asType(cls) {
90
- const { headers, payload } = this.serialize();
91
- return cls.from(payload, headers);
92
- }
93
- }
94
- exports.Message = Message;
95
- function generateHeaderFor(cls, ...excludes) {
96
- const headers = {};
97
- if (!excludes.includes("id")) {
98
- headers.id = (0, uuid_1.v4)();
99
- }
100
- if (!excludes.includes("type")) {
101
- headers.type = cls.getType();
102
- }
103
- if (!excludes.includes("intent")) {
104
- const intent = cls.getIntent();
105
- if (intent !== undefined) {
106
- headers.intent = intent;
107
- }
108
- }
109
- if (!excludes.includes("schemaVersion")) {
110
- const schemaVersion = cls.getSchemaVersion();
111
- if (schemaVersion !== undefined) {
112
- headers.schemaVersion = schemaVersion;
113
- }
114
- }
115
- if (!excludes.includes("createdAt")) {
116
- headers.createdAt = new Date();
117
- }
118
- return headers;
119
- }
120
- //# sourceMappingURL=message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { Message, MessageHeaders } from "@/message";
2
- export declare class DummyMessage extends Message<Record<never, never>> {
3
- static type: string;
4
- static create(): DummyMessage;
5
- static createMany(number: number): DummyMessage[];
6
- static from(_: Record<never, never>, headers?: MessageHeaders): DummyMessage;
7
- }
8
- //# sourceMappingURL=dummy-message.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy-message.d.ts","sourceRoot":"","sources":["../../src/test/dummy-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpD,qBAAa,YAAa,SAAQ,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,SAAwB;WAErB,MAAM;WAIN,UAAU,CAAC,MAAM,EAAE,MAAM;WAIzB,IAAI,CACd,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACvB,OAAO,CAAC,EAAE,cAAc,GACzB,YAAY;CAGlB"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DummyMessage = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const message_1 = require("@/message");
9
- class DummyMessage extends message_1.Message {
10
- static type = "test.dummy-message";
11
- static create() {
12
- return new this({});
13
- }
14
- static createMany(number) {
15
- return lodash_1.default.times(number, () => this.create());
16
- }
17
- static from(_, headers) {
18
- return new this({}, headers);
19
- }
20
- }
21
- exports.DummyMessage = DummyMessage;
22
- //# sourceMappingURL=dummy-message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy-message.js","sourceRoot":"","sources":["../../src/test/dummy-message.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEvB,uCAAoD;AAEpD,MAAa,YAAa,SAAQ,iBAA6B;IAC3D,MAAM,CAAC,IAAI,GAAG,oBAAoB,CAAC;IAE5B,MAAM,CAAC,MAAM;QAChB,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAc;QACnC,OAAO,gBAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,IAAI,CACd,CAAuB,EACvB,OAAwB;QAExB,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;;AAhBL,oCAiBC"}
@@ -1,3 +0,0 @@
1
- export declare let expect: any;
2
- export declare function setExpect(expectStatic: any): void;
3
- //# sourceMappingURL=expect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/test/expect.ts"],"names":[],"mappings":"AAEA,eAAO,IAAI,MAAM,EAAG,GAAG,CAAC;AAQxB,wBAAgB,SAAS,CAAC,YAAY,EAAE,GAAG,QAE1C"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expect = void 0;
4
- exports.setExpect = setExpect;
5
- // if (RUNNING_HEXAI_TEST) {
6
- // import("vitest").then(({ expect: expectStatic }) => {
7
- // expect = expectStatic;
8
- // });
9
- // }
10
- function setExpect(expectStatic) {
11
- exports.expect = expectStatic;
12
- }
13
- //# sourceMappingURL=expect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/test/expect.ts"],"names":[],"mappings":";;;AAUA,8BAEC;AARD,4BAA4B;AAC5B,4DAA4D;AAC5D,iCAAiC;AACjC,UAAU;AACV,IAAI;AAEJ,SAAgB,SAAS,CAAC,YAAiB;IACvC,cAAM,GAAG,YAAY,CAAC;AAC1B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { EventStore, EventStoreFetchResult, StoredEvent } from "@/event-store";
2
- import { Message } from "@/message";
3
- export declare class InMemoryEventStore implements EventStore {
4
- private events;
5
- store(event: Message): Promise<StoredEvent>;
6
- storeAll(events: Message[]): Promise<StoredEvent[]>;
7
- fetch(afterPosition: number, limit?: number): Promise<EventStoreFetchResult>;
8
- getLastPosition(): Promise<number>;
9
- clear(): void;
10
- }
11
- //# sourceMappingURL=in-memory-event-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-event-store.d.ts","sourceRoot":"","sources":["../../src/test/in-memory-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,kBAAmB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAqB;IAE7B,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAO3C,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQnD,KAAK,CACP,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC;IAc3B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC,KAAK,IAAI,IAAI;CAGhB"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryEventStore = void 0;
4
- class InMemoryEventStore {
5
- events = [];
6
- async store(event) {
7
- const position = this.events.length + 1;
8
- const storedEvent = { position, event };
9
- this.events.push(storedEvent);
10
- return storedEvent;
11
- }
12
- async storeAll(events) {
13
- const storedEvents = [];
14
- for (const event of events) {
15
- storedEvents.push(await this.store(event));
16
- }
17
- return storedEvents;
18
- }
19
- async fetch(afterPosition, limit) {
20
- const lastPosition = await this.getLastPosition();
21
- let filtered = this.events.filter((e) => e.position > afterPosition);
22
- if (limit !== undefined) {
23
- filtered = filtered.slice(0, limit);
24
- }
25
- return {
26
- events: filtered,
27
- lastPosition,
28
- };
29
- }
30
- async getLastPosition() {
31
- return this.events.length;
32
- }
33
- clear() {
34
- this.events = [];
35
- }
36
- }
37
- exports.InMemoryEventStore = InMemoryEventStore;
38
- //# sourceMappingURL=in-memory-event-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-event-store.js","sourceRoot":"","sources":["../../src/test/in-memory-event-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IACnB,MAAM,GAAkB,EAAE,CAAC;IAEnC,KAAK,CAAC,KAAK,CAAC,KAAc;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,MAAM,WAAW,GAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAiB;QAC5B,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAK,CACP,aAAqB,EACrB,KAAc;QAEd,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC;QAErE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,OAAO;YACH,MAAM,EAAE,QAAQ;YAChB,YAAY;SACf,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;CACJ;AA1CD,gDA0CC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Message, MessageClass } from "@/message";
2
- export declare function expectMessagesToBeFullyEqual(messages: Message[], expectedMessages: Message[]): void;
3
- export declare function expectMessagesToContain(messages: Message[], expectedMessages: Message[]): void;
4
- export declare function expectMessageToMatch(messages: Message[], messageType: string | MessageClass<any>, payload?: Record<string, unknown>): void;
5
- //# sourceMappingURL=matchers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/test/matchers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIlD,wBAAgB,4BAA4B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,gBAAgB,EAAE,OAAO,EAAE,GAC5B,IAAI,CAYN;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,gBAAgB,EAAE,OAAO,EAAE,GAC5B,IAAI,CAQN;AAED,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,WAAW,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,EACvC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,IAAI,CAgCN"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.expectMessagesToBeFullyEqual = expectMessagesToBeFullyEqual;
7
- exports.expectMessagesToContain = expectMessagesToContain;
8
- exports.expectMessageToMatch = expectMessageToMatch;
9
- const lodash_1 = __importDefault(require("lodash"));
10
- const utils_1 = require("./utils");
11
- const expect_1 = require("./expect");
12
- function expectMessagesToBeFullyEqual(messages, expectedMessages) {
13
- const actualSummary = formatMessagesSummary(messages);
14
- const expectedSummary = formatMessagesSummary(expectedMessages);
15
- (0, expect_1.expect)(actualSummary, "Messages should match").toEqual(expectedSummary);
16
- for (let i = 0; i < Math.max(messages.length, expectedMessages.length); i++) {
17
- const actual = messages[i]?.serialize();
18
- const expected = expectedMessages[i]?.serialize();
19
- (0, expect_1.expect)(actual, `message[${i}]`).toEqual(expected);
20
- }
21
- }
22
- function expectMessagesToContain(messages, expectedMessages) {
23
- for (const message of expectedMessages) {
24
- expectMessageToMatch(messages, message.getMessageType(), message.getPayload());
25
- }
26
- }
27
- function expectMessageToMatch(messages, messageType, payload = {}) {
28
- const resolvedMessageType = typeof messageType === "string" ? messageType : messageType.getType();
29
- const sameTypeMessages = messages.filter((msg) => msg.getMessageType() === resolvedMessageType);
30
- if (sameTypeMessages.length === 0) {
31
- const availableTypes = [...new Set(messages.map((m) => m.getMessageType()))];
32
- expect_1.expect.fail(`Message not found: "${resolvedMessageType}"\n\n` +
33
- `Available message types:\n` +
34
- (availableTypes.length === 0
35
- ? " (none)"
36
- : availableTypes.map((t) => ` - ${t}`).join("\n")));
37
- }
38
- const found = sameTypeMessages.find((msg) => (0, utils_1.partialMatch)(msg.getPayload(), payload));
39
- if (!found) {
40
- const closestMatch = findClosestMatch(sameTypeMessages, payload);
41
- (0, expect_1.expect)(closestMatch.payload, `Found ${sameTypeMessages.length} message(s) of type "${resolvedMessageType}", ` +
42
- `but payload did not match.\n` +
43
- `Showing closest match (${closestMatch.matchedKeys}/${closestMatch.totalKeys} keys matched):`).toMatchObject(payload);
44
- }
45
- }
46
- function formatMessagesSummary(messages) {
47
- return messages.map((msg) => ({
48
- type: msg.getMessageType(),
49
- payload: msg.getPayload(),
50
- }));
51
- }
52
- function findClosestMatch(messages, expectedPayload) {
53
- const expectedKeys = Object.keys(expectedPayload);
54
- let bestMatch = {
55
- payload: messages[0]?.getPayload() ?? {},
56
- matchedKeys: 0,
57
- totalKeys: expectedKeys.length,
58
- };
59
- for (const msg of messages) {
60
- const actualPayload = msg.getPayload();
61
- const matchedKeys = countMatchedKeys(actualPayload, expectedPayload);
62
- if (matchedKeys > bestMatch.matchedKeys) {
63
- bestMatch = { payload: actualPayload, matchedKeys, totalKeys: expectedKeys.length };
64
- }
65
- }
66
- return bestMatch;
67
- }
68
- function countMatchedKeys(actual, expected) {
69
- let matched = 0;
70
- for (const key of Object.keys(expected)) {
71
- if (lodash_1.default.isEqual(actual[key], expected[key])) {
72
- matched++;
73
- }
74
- }
75
- return matched;
76
- }
77
- //# sourceMappingURL=matchers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/test/matchers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare const anyString: unique symbol;
2
- export declare const anyDate: unique symbol;
3
- export declare function partialMatch(source: Record<any, any>, target: Record<any, any>): boolean;
4
- //# sourceMappingURL=partial-match.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"partial-match.d.ts","sourceRoot":"","sources":["../../src/test/partial-match.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAuB,CAAC;AAE9C,eAAO,MAAM,OAAO,eAAqB,CAAC;AAE1C,wBAAgB,YAAY,CACxB,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EACxB,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GACzB,OAAO,CAyBT"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.anyDate = exports.anyString = void 0;
7
- exports.partialMatch = partialMatch;
8
- const lodash_1 = __importDefault(require("lodash"));
9
- exports.anyString = Symbol.for("string");
10
- exports.anyDate = Symbol.for("date");
11
- function partialMatch(source, target) {
12
- for (const key of Object.keys(target)) {
13
- const shouldRecurse = lodash_1.default.isObject(source[key]) && lodash_1.default.isObject(target[key]);
14
- if (shouldRecurse) {
15
- if (!partialMatch(source[key], target[key])) {
16
- return false;
17
- }
18
- }
19
- else {
20
- if (target[key] === exports.anyString && typeof source[key] === "string") {
21
- continue;
22
- }
23
- if (target[key] === exports.anyDate && source[key] instanceof Date) {
24
- continue;
25
- }
26
- if (!lodash_1.default.isEqual(source[key], target[key])) {
27
- return false;
28
- }
29
- }
30
- }
31
- return true;
32
- }
33
- //# sourceMappingURL=partial-match.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"partial-match.js","sourceRoot":"","sources":["../../src/test/partial-match.ts"],"names":[],"mappings":";;;;;;AAMA,oCA4BC;AAlCD,oDAAuB;AAEV,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEjC,QAAA,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE1C,SAAgB,YAAY,CACxB,MAAwB,EACxB,MAAwB;IAExB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,aAAa,GACf,gBAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,gBAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvD,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,iBAAS,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/D,SAAS;YACb,CAAC;YAED,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,eAAO,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;gBACzD,SAAS;YACb,CAAC;YAED,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1,5 +0,0 @@
1
- export { partialMatch } from "./partial-match";
2
- export declare function waitForTicks(number?: number): Promise<void>;
3
- export declare function waitForMs(number?: number): Promise<void>;
4
- export declare function waitFor(type?: "ticks" | "ms", number?: number): Promise<void>;
5
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,wBAAsB,YAAY,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7D;AAED,wBAAsB,SAAS,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAsB,OAAO,CACzB,IAAI,GAAE,OAAO,GAAG,IAAc,EAC9B,MAAM,SAAK,GACZ,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.partialMatch = void 0;
4
- exports.waitForTicks = waitForTicks;
5
- exports.waitForMs = waitForMs;
6
- exports.waitFor = waitFor;
7
- var partial_match_1 = require("./partial-match");
8
- Object.defineProperty(exports, "partialMatch", { enumerable: true, get: function () { return partial_match_1.partialMatch; } });
9
- async function waitForTicks(number = 10) {
10
- for (let i = 0; i < number; i++) {
11
- await new Promise((resolve) => setTimeout(resolve, 0));
12
- }
13
- }
14
- async function waitForMs(number = 10) {
15
- await new Promise((resolve) => setTimeout(resolve, number));
16
- }
17
- async function waitFor(type = "ticks", number = 10) {
18
- if (type === "ticks") {
19
- await waitForTicks(number);
20
- }
21
- else {
22
- await waitForMs(number);
23
- }
24
- }
25
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":";;;AAEA,oCAIC;AAED,8BAEC;AAED,0BASC;AArBD,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAEd,KAAK,UAAU,YAAY,CAAC,MAAM,GAAG,EAAE;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,MAAM,GAAG,EAAE;IACvC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,CAAC;AAEM,KAAK,UAAU,OAAO,CACzB,OAAuB,OAAO,EAC9B,MAAM,GAAG,EAAE;IAEX,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACJ,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;AACL,CAAC"}
@@ -1,13 +0,0 @@
1
- export declare enum Propagation {
2
- NEW = "new",
3
- EXISTING = "existing",
4
- NESTED = "nested"
5
- }
6
- export interface BaseUnitOfWorkOptions {
7
- propagation: Propagation;
8
- }
9
- export interface UnitOfWork<Client = unknown, Options extends BaseUnitOfWorkOptions = BaseUnitOfWorkOptions> {
10
- getClient(): Client;
11
- wrap<T>(fn: (client: Client) => Promise<T>, options?: Partial<Options>): Promise<T>;
12
- }
13
- //# sourceMappingURL=unit-of-work.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../src/unit-of-work.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACnB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU,CACvB,MAAM,GAAG,OAAO,EAChB,OAAO,SAAS,qBAAqB,GAAG,qBAAqB;IAE7D,SAAS,IAAI,MAAM,CAAC;IACpB,IAAI,CAAC,CAAC,EACF,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Propagation = void 0;
4
- var Propagation;
5
- (function (Propagation) {
6
- Propagation["NEW"] = "new";
7
- Propagation["EXISTING"] = "existing";
8
- Propagation["NESTED"] = "nested";
9
- })(Propagation || (exports.Propagation = Propagation = {}));
10
- //# sourceMappingURL=unit-of-work.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../src/unit-of-work.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,0BAAW,CAAA;IACX,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;AACrB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}