@alejotamayo28/event-contracts 1.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.
@@ -0,0 +1,8 @@
1
+ export interface DomainEvent<TData = unknown, TAggregate extends string = string, TType extends string = string> {
2
+ type: TType;
3
+ timestamp: Date;
4
+ aggregateId: string;
5
+ aggregateType: TAggregate;
6
+ data: TData;
7
+ }
8
+ //# sourceMappingURL=domain-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-event.d.ts","sourceRoot":"","sources":["../src/domain-event.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAC1B,KAAK,GAAG,OAAO,EACf,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,KAAK,SAAS,MAAM,GAAG,MAAM;IAE7B,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,UAAU,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC;CACb"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=domain-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../src/domain-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from "./domain-event";
2
+ export * from "./inventory";
3
+ export * from "./order";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
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("./domain-event"), exports);
18
+ __exportStar(require("./inventory"), exports);
19
+ __exportStar(require("./order"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB"}
@@ -0,0 +1,27 @@
1
+ import { DomainEvent } from "../domain-event";
2
+ export declare enum ReservationStatus {
3
+ PENDING = "PENDING",
4
+ RESERVED = "RESERVED",
5
+ CONFIRMED = "CONFIRMED",
6
+ CANCELLED = "CANCELLED",
7
+ EXPIRED = "EXPIRED"
8
+ }
9
+ export interface InventoryReservedPayload {
10
+ orderId: string;
11
+ type: "INVENTORY_RESERVATION_COMPLETED";
12
+ reservationId: string;
13
+ status: ReservationStatus;
14
+ }
15
+ export interface InventoryUnavailablePayload {
16
+ orderId: string;
17
+ type: "INVENTORY_RESERVATION_FAILED";
18
+ reason: string;
19
+ unavailableItems?: {
20
+ itemId: string;
21
+ }[];
22
+ }
23
+ export type InventoryReservedEvent = DomainEvent<InventoryReservedPayload, "Inventory", "INVENTORY_RESERVED">;
24
+ export type InventoryUnavailableEvent = DomainEvent<InventoryUnavailablePayload, "Inventory", "INVENTORY_UNAVAILABLE">;
25
+ export type InventoryDomainEvent = InventoryReservedEvent | InventoryUnavailableEvent;
26
+ export type InventoryServiceEmittedEvents = InventoryDomainEvent;
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inventory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,oBAAY,iBAAiB;IAC5B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,OAAO,YAAY;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iCAAiC,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,8BAA8B,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;CACL;AAED,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAC9C,wBAAwB,EACxB,WAAW,EACX,oBAAoB,CACrB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,WAAW,CACjD,2BAA2B,EAC3B,WAAW,EACX,uBAAuB,CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,yBAAyB,CAAC;AAEtF,MAAM,MAAM,6BAA6B,GAAG,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReservationStatus = void 0;
4
+ var ReservationStatus;
5
+ (function (ReservationStatus) {
6
+ ReservationStatus["PENDING"] = "PENDING";
7
+ ReservationStatus["RESERVED"] = "RESERVED";
8
+ ReservationStatus["CONFIRMED"] = "CONFIRMED";
9
+ ReservationStatus["CANCELLED"] = "CANCELLED";
10
+ ReservationStatus["EXPIRED"] = "EXPIRED";
11
+ })(ReservationStatus || (exports.ReservationStatus = ReservationStatus = {}));
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inventory/index.ts"],"names":[],"mappings":";;;AAEA,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC5B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;AACpB,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B"}
@@ -0,0 +1,68 @@
1
+ import { DomainEvent } from "../domain-event";
2
+ export interface OrderItems {
3
+ id: string;
4
+ price: number;
5
+ quantity: number;
6
+ totalAmount: number;
7
+ }
8
+ export declare enum OrderStatus {
9
+ PENDING = "PENDING",
10
+ CONFIRMED = "CONFIRMED",
11
+ COMPLETED = "COMPLETED",
12
+ CANCELLED = "CANCELLED"
13
+ }
14
+ export declare enum CancellationReason {
15
+ PAYMENT_FAILED = "PAYMENT_FAILED",
16
+ OUT_OF_STOCK = "OUT_OF_STOCK",
17
+ INVENTORY_UNAVAILABLE = "INVENTORY_UNAVAILABLE",
18
+ SYSTEM_ERROR = "SYSTEM_ERROR",
19
+ ITEMS_NOT_FOUND = "ITEMS_NOT_FOUND"
20
+ }
21
+ export interface OrderCreatedPayload {
22
+ orderId: string;
23
+ customerId: string;
24
+ items: OrderItems[];
25
+ totalAmount: number;
26
+ currency: string;
27
+ }
28
+ export interface OrderConfirmedPayload {
29
+ orderId: string;
30
+ confirmedAt: Date;
31
+ customerId: string;
32
+ totalAmount: number;
33
+ }
34
+ export interface OrderCancelledPayload {
35
+ orderId: string;
36
+ cancelledAt: Date;
37
+ reason: string;
38
+ cancelledBy: "customer" | "admin" | "system";
39
+ previousStatus: OrderStatus;
40
+ requiresRefund: boolean;
41
+ requiresInventoryRollback: boolean;
42
+ }
43
+ export interface OrderCompletedPayload {
44
+ orderId: string;
45
+ completedAt: Date;
46
+ deliveryDetails?: Record<string, any>;
47
+ }
48
+ export interface PaymentVerificationFailedPayload {
49
+ orderId: string;
50
+ reason: CancellationReason.PAYMENT_FAILED;
51
+ details: string;
52
+ }
53
+ export interface OrderInventoryReservationFailedPayload {
54
+ orderId: string;
55
+ reason: CancellationReason.INVENTORY_UNAVAILABLE | CancellationReason.INVENTORY_UNAVAILABLE;
56
+ unavailableItems: {
57
+ itemId: string;
58
+ }[];
59
+ }
60
+ export type OrderCreatedEvent = DomainEvent<OrderCreatedPayload, "Order", "ORDER_CREATED">;
61
+ export type OrderConfirmedEvent = DomainEvent<OrderConfirmedPayload, "Order", "ORDER_CONFIRMED">;
62
+ export type OrderCancelledEvent = DomainEvent<OrderCancelledPayload, "Order", "ORDER_CANCELLED">;
63
+ export type OrderCompletedEvent = DomainEvent<OrderCompletedPayload, "Order", "ORDER_COMPLETED">;
64
+ export type PaymentVerificationFailedEvent = DomainEvent<PaymentVerificationFailedPayload, "Order", "ORDER_PAYMENT_VERIFICATION_FAILED">;
65
+ export type OrderInventoryReservationFailedEvent = DomainEvent<OrderInventoryReservationFailedPayload, "Order", "ORDER_INVENTORY_RESERVATION_FAILED">;
66
+ export type OrderDomainEvent = OrderCreatedEvent | OrderConfirmedEvent | OrderCancelledEvent | OrderCompletedEvent | PaymentVerificationFailedEvent | OrderInventoryReservationFailedEvent;
67
+ export type OrderServiceEmittedEvents = OrderDomainEvent;
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/order/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;CACvB;AAED,oBAAY,kBAAkB;IAC7B,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;CACnC;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,cAAc,EAAE,WAAW,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,gCAAgC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sCAAsC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EACH,kBAAkB,CAAC,qBAAqB,GACxC,kBAAkB,CAAC,qBAAqB,CAAC;IAC5C,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAC1C,mBAAmB,EACnB,OAAO,EACP,eAAe,CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC5C,qBAAqB,EACrB,OAAO,EACP,iBAAiB,CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC5C,qBAAqB,EACrB,OAAO,EACP,iBAAiB,CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC5C,qBAAqB,EACrB,OAAO,EACP,iBAAiB,CACjB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,WAAW,CACvD,gCAAgC,EAChC,OAAO,EACP,mCAAmC,CACnC,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,WAAW,CAC7D,sCAAsC,EACtC,OAAO,EACP,oCAAoC,CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACzB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,8BAA8B,GAC9B,oCAAoC,CAAC;AAExC,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancellationReason = exports.OrderStatus = void 0;
4
+ var OrderStatus;
5
+ (function (OrderStatus) {
6
+ OrderStatus["PENDING"] = "PENDING";
7
+ OrderStatus["CONFIRMED"] = "CONFIRMED";
8
+ OrderStatus["COMPLETED"] = "COMPLETED";
9
+ OrderStatus["CANCELLED"] = "CANCELLED";
10
+ })(OrderStatus || (exports.OrderStatus = OrderStatus = {}));
11
+ var CancellationReason;
12
+ (function (CancellationReason) {
13
+ CancellationReason["PAYMENT_FAILED"] = "PAYMENT_FAILED";
14
+ CancellationReason["OUT_OF_STOCK"] = "OUT_OF_STOCK";
15
+ CancellationReason["INVENTORY_UNAVAILABLE"] = "INVENTORY_UNAVAILABLE";
16
+ CancellationReason["SYSTEM_ERROR"] = "SYSTEM_ERROR";
17
+ CancellationReason["ITEMS_NOT_FOUND"] = "ITEMS_NOT_FOUND";
18
+ })(CancellationReason || (exports.CancellationReason = CancellationReason = {}));
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/order/index.ts"],"names":[],"mappings":";;;AASA,IAAY,WAKX;AALD,WAAY,WAAW;IACtB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;AACxB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC7B,uDAAiC,CAAA;IACjC,mDAA6B,CAAA;IAC7B,qEAA+C,CAAA;IAC/C,mDAA6B,CAAA;IAC7B,yDAAmC,CAAA;AACpC,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@alejotamayo28/event-contracts",
3
+ "version": "1.0.0",
4
+ "description": "Centralized TypeScript interfaces and contract for messaging-service communication across microservices",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": ["dist/"],
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "prepublishOnly": "npm run build",
11
+ "dev": "tsc --watch",
12
+ "clean": "rm -rf dist",
13
+ "test": "echo \"Error: no test specified\" && exit 1"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "keywords": [],
19
+ "author": "",
20
+ "license": "ISC",
21
+ "type": "commonjs",
22
+ "devDependencies": {
23
+ "@types/node": "^25.0.3",
24
+ "typescript": "^5.9.3"
25
+ }
26
+ }