@tamasha/kafka-schema-validation 1.0.1 → 1.0.3

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.
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { walletEventsSchema } from "./walletEvents";
5
5
  import { callEventsSchema } from "./callEvents";
6
6
  import { audienceUpdateSchema } from "./audienceEvents";
7
7
  import { customerEventsSchema } from "./customerEvents";
8
+ import { productEventsSchema } from "./productEvents";
8
9
  export { defineAction, defineTopic, defineTopicSchemas, TopicSchemaRegistry, type PrimitiveType, type FieldRule, type ActionSchema, type TopicSchema, type TopicSchemas, type ActionPayload, type TopicActionPayloadMap, type TopicMessage, type TopicMessageMap, } from "./base";
9
10
  export { USER_EVENTS_TOPIC, userEventsSchema } from "./userEvents";
10
11
  export { ORDER_EVENTS_TOPIC, orderEventsSchema } from "./orderEvents";
@@ -12,45 +13,90 @@ export { WALLET_EVENT_TOPIC, walletEventsSchema } from "./walletEvents";
12
13
  export { CALL_EVENT_TOPIC, callEventsSchema } from "./callEvents";
13
14
  export { AUDIENCE_UPDATE_TOPIC, audienceUpdateSchema } from "./audienceEvents";
14
15
  export { CUSTOMER_EVENTS_TOPIC, customerEventsSchema } from "./customerEvents";
16
+ export { PRODUCT_EVENTS_TOPIC, productEventsSchema } from "./productEvents";
15
17
  export declare const DEFAULT_TOPIC_SCHEMAS: {
16
- readonly "user-events": import("./base").TopicSchema<{
17
- login: import("./base").ActionSchema<{
18
+ readonly users: import("./base").TopicSchema<{
19
+ created: import("./base").ActionSchema<{
20
+ payload: {
21
+ action: "created";
22
+ user_id: string;
23
+ timestamp: number;
24
+ service: string;
25
+ properties: {
26
+ email: string;
27
+ username: string;
28
+ };
29
+ };
30
+ }>;
31
+ updated: import("./base").ActionSchema<{
18
32
  payload: {
19
- action: "login";
20
- userId: string;
33
+ action: "updated";
34
+ user_id: string;
21
35
  timestamp: number;
22
36
  service: string;
23
- sessionId?: string;
24
37
  };
25
38
  }>;
26
- logout: import("./base").ActionSchema<{
39
+ deleted: import("./base").ActionSchema<{
27
40
  payload: {
28
- action: "logout";
29
- userId: string;
41
+ action: "deleted";
42
+ user_id: string;
30
43
  timestamp: number;
31
44
  service: string;
32
- reason?: string;
33
45
  };
34
46
  }>;
35
47
  }>;
36
- readonly "order-events": import("./base").TopicSchema<{
48
+ readonly orders: import("./base").TopicSchema<{
37
49
  created: import("./base").ActionSchema<{
38
50
  payload: {
39
- status: "created";
40
- orderId: string;
51
+ action: "created";
52
+ order_id: string;
53
+ user_id: string;
54
+ timestamp: number;
55
+ service: string;
56
+ properties: {
57
+ items: Array<{
58
+ product_id: string;
59
+ product_name: string;
60
+ quantity: number;
61
+ unit_price: number;
62
+ }>;
63
+ total_amount: number;
64
+ };
65
+ };
66
+ }>;
67
+ confirmed: import("./base").ActionSchema<{
68
+ payload: {
69
+ action: "confirmed";
70
+ order_id: string;
71
+ timestamp: number;
72
+ service: string;
73
+ };
74
+ }>;
75
+ shipped: import("./base").ActionSchema<{
76
+ payload: {
77
+ action: "shipped";
78
+ order_id: string;
41
79
  timestamp: number;
42
80
  service: string;
43
- amount: number;
81
+ properties?: {
82
+ tracking_number?: string;
83
+ carrier?: string;
84
+ };
44
85
  };
45
86
  }>;
46
- fulfilled: import("./base").ActionSchema<{
87
+ cancelled: import("./base").ActionSchema<{
47
88
  payload: {
48
- status: "fulfilled";
49
- orderId: string;
89
+ action: "cancelled";
90
+ order_id: string;
50
91
  timestamp: number;
51
92
  service: string;
52
- amount?: number;
53
- shipmentId?: string;
93
+ properties: {
94
+ items: Array<{
95
+ product_id: string;
96
+ quantity: number;
97
+ }>;
98
+ reason?: string;
99
+ };
54
100
  };
55
101
  }>;
56
102
  }>;
@@ -150,12 +196,49 @@ export declare const DEFAULT_TOPIC_SCHEMAS: {
150
196
  };
151
197
  }>;
152
198
  }>;
199
+ readonly products: import("./base").TopicSchema<{
200
+ created: import("./base").ActionSchema<{
201
+ payload: {
202
+ action: "created";
203
+ product_id: string;
204
+ timestamp: number;
205
+ service: string;
206
+ properties: {
207
+ name: string;
208
+ sku: string;
209
+ };
210
+ };
211
+ }>;
212
+ updated: import("./base").ActionSchema<{
213
+ payload: {
214
+ action: "updated";
215
+ product_id: string;
216
+ timestamp: number;
217
+ service: string;
218
+ };
219
+ }>;
220
+ stock_changed: import("./base").ActionSchema<{
221
+ payload: {
222
+ action: "stock_changed";
223
+ product_id: string;
224
+ timestamp: number;
225
+ service: string;
226
+ properties: {
227
+ previous_stock: number;
228
+ new_stock: number;
229
+ change: number;
230
+ };
231
+ };
232
+ }>;
233
+ }>;
153
234
  };
154
235
  export type DefaultTopicSchemas = typeof DEFAULT_TOPIC_SCHEMAS;
155
- export type UserEventPayloads = TopicActionPayloadMap<typeof userEventsSchema>;
156
- export type UserEventMessage = TopicMessage<typeof userEventsSchema>;
157
236
  export type OrderEventPayloads = TopicActionPayloadMap<typeof orderEventsSchema>;
158
237
  export type OrderEventMessage = TopicMessage<typeof orderEventsSchema>;
238
+ export type UserEventPayloads = TopicActionPayloadMap<typeof userEventsSchema>;
239
+ export type UserEventMessage = TopicMessage<typeof userEventsSchema>;
240
+ export type ProductEventPayloads = TopicActionPayloadMap<typeof productEventsSchema>;
241
+ export type ProductEventMessage = TopicMessage<typeof productEventsSchema>;
159
242
  export type WalletEventPayloads = TopicActionPayloadMap<typeof walletEventsSchema>;
160
243
  export type WalletEventMessage = TopicMessage<typeof walletEventsSchema>;
161
244
  export type CallEventPayloads = TopicActionPayloadMap<typeof callEventsSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_TOPIC_SCHEMAS = exports.customerEventsSchema = exports.CUSTOMER_EVENTS_TOPIC = exports.audienceUpdateSchema = exports.AUDIENCE_UPDATE_TOPIC = exports.callEventsSchema = exports.CALL_EVENT_TOPIC = exports.walletEventsSchema = exports.WALLET_EVENT_TOPIC = exports.orderEventsSchema = exports.ORDER_EVENTS_TOPIC = exports.userEventsSchema = exports.USER_EVENTS_TOPIC = exports.TopicSchemaRegistry = exports.defineTopicSchemas = exports.defineTopic = exports.defineAction = void 0;
3
+ exports.DEFAULT_TOPIC_SCHEMAS = exports.productEventsSchema = exports.PRODUCT_EVENTS_TOPIC = exports.customerEventsSchema = exports.CUSTOMER_EVENTS_TOPIC = exports.audienceUpdateSchema = exports.AUDIENCE_UPDATE_TOPIC = exports.callEventsSchema = exports.CALL_EVENT_TOPIC = exports.walletEventsSchema = exports.WALLET_EVENT_TOPIC = exports.orderEventsSchema = exports.ORDER_EVENTS_TOPIC = exports.userEventsSchema = exports.USER_EVENTS_TOPIC = exports.TopicSchemaRegistry = exports.defineTopicSchemas = exports.defineTopic = exports.defineAction = void 0;
4
4
  const base_1 = require("./base");
5
5
  const userEvents_1 = require("./userEvents");
6
6
  const orderEvents_1 = require("./orderEvents");
@@ -8,6 +8,7 @@ const walletEvents_1 = require("./walletEvents");
8
8
  const callEvents_1 = require("./callEvents");
9
9
  const audienceEvents_1 = require("./audienceEvents");
10
10
  const customerEvents_1 = require("./customerEvents");
11
+ const productEvents_1 = require("./productEvents");
11
12
  // Re-export base types and classes
12
13
  var base_2 = require("./base");
13
14
  Object.defineProperty(exports, "defineAction", { enumerable: true, get: function () { return base_2.defineAction; } });
@@ -33,6 +34,9 @@ Object.defineProperty(exports, "audienceUpdateSchema", { enumerable: true, get:
33
34
  var customerEvents_2 = require("./customerEvents");
34
35
  Object.defineProperty(exports, "CUSTOMER_EVENTS_TOPIC", { enumerable: true, get: function () { return customerEvents_2.CUSTOMER_EVENTS_TOPIC; } });
35
36
  Object.defineProperty(exports, "customerEventsSchema", { enumerable: true, get: function () { return customerEvents_2.customerEventsSchema; } });
37
+ var productEvents_2 = require("./productEvents");
38
+ Object.defineProperty(exports, "PRODUCT_EVENTS_TOPIC", { enumerable: true, get: function () { return productEvents_2.PRODUCT_EVENTS_TOPIC; } });
39
+ Object.defineProperty(exports, "productEventsSchema", { enumerable: true, get: function () { return productEvents_2.productEventsSchema; } });
36
40
  // Default topic schemas registry
37
41
  exports.DEFAULT_TOPIC_SCHEMAS = (0, base_1.defineTopicSchemas)({
38
42
  [userEvents_1.USER_EVENTS_TOPIC]: userEvents_1.userEventsSchema,
@@ -41,5 +45,6 @@ exports.DEFAULT_TOPIC_SCHEMAS = (0, base_1.defineTopicSchemas)({
41
45
  [callEvents_1.CALL_EVENT_TOPIC]: callEvents_1.callEventsSchema,
42
46
  [audienceEvents_1.AUDIENCE_UPDATE_TOPIC]: audienceEvents_1.audienceUpdateSchema,
43
47
  [customerEvents_1.CUSTOMER_EVENTS_TOPIC]: customerEvents_1.customerEventsSchema,
48
+ [productEvents_1.PRODUCT_EVENTS_TOPIC]: productEvents_1.productEventsSchema,
44
49
  });
45
50
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkG;AAClG,6CAAmE;AACnE,+CAAsE;AACtE,iDAAwE;AACxE,6CAAkE;AAClE,qDAA+E;AAC/E,qDAA+E;AAE/E,mCAAmC;AACnC,+BAcgB;AAbZ,oGAAA,YAAY,OAAA;AACZ,mGAAA,WAAW,OAAA;AACX,0GAAA,kBAAkB,OAAA;AAClB,2GAAA,mBAAmB,OAAA;AAYvB,wCAAwC;AACxC,2CAAmE;AAA1D,+GAAA,iBAAiB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC5C,6CAAsE;AAA7D,iHAAA,kBAAkB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAC9C,+CAAwE;AAA/D,kHAAA,kBAAkB,OAAA;AAAE,kHAAA,kBAAkB,OAAA;AAC/C,2CAAkE;AAAzD,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC3C,mDAA+E;AAAtE,uHAAA,qBAAqB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AACpD,mDAA+E;AAAtE,uHAAA,qBAAqB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAEpD,iCAAiC;AACpB,QAAA,qBAAqB,GAAG,IAAA,yBAAkB,EAAC;IACpD,CAAC,8BAAiB,CAAC,EAAE,6BAAgB;IACrC,CAAC,gCAAkB,CAAC,EAAE,+BAAiB;IACvC,CAAC,iCAAkB,CAAC,EAAE,iCAAkB;IACxC,CAAC,6BAAgB,CAAC,EAAE,6BAAgB;IACpC,CAAC,sCAAqB,CAAC,EAAE,qCAAoB;IAC7C,CAAC,sCAAqB,CAAC,EAAE,qCAAoB;CACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkG;AAClG,6CAAmE;AACnE,+CAAsE;AACtE,iDAAwE;AACxE,6CAAkE;AAClE,qDAA+E;AAC/E,qDAA+E;AAC/E,mDAA4E;AAE5E,mCAAmC;AACnC,+BAcgB;AAbZ,oGAAA,YAAY,OAAA;AACZ,mGAAA,WAAW,OAAA;AACX,0GAAA,kBAAkB,OAAA;AAClB,2GAAA,mBAAmB,OAAA;AAYvB,wCAAwC;AACxC,2CAAmE;AAA1D,+GAAA,iBAAiB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC5C,6CAAsE;AAA7D,iHAAA,kBAAkB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAC9C,+CAAwE;AAA/D,kHAAA,kBAAkB,OAAA;AAAE,kHAAA,kBAAkB,OAAA;AAC/C,2CAAkE;AAAzD,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC3C,mDAA+E;AAAtE,uHAAA,qBAAqB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AACpD,mDAA+E;AAAtE,uHAAA,qBAAqB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AACpD,iDAA4E;AAAnE,qHAAA,oBAAoB,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAElD,iCAAiC;AACpB,QAAA,qBAAqB,GAAG,IAAA,yBAAkB,EAAC;IACpD,CAAC,8BAAiB,CAAC,EAAE,6BAAgB;IACrC,CAAC,gCAAkB,CAAC,EAAE,+BAAiB;IACvC,CAAC,iCAAkB,CAAC,EAAE,iCAAkB;IACxC,CAAC,6BAAgB,CAAC,EAAE,6BAAgB;IACpC,CAAC,sCAAqB,CAAC,EAAE,qCAAoB;IAC7C,CAAC,sCAAqB,CAAC,EAAE,qCAAoB;IAC7C,CAAC,oCAAoB,CAAC,EAAE,mCAAmB;CACrC,CAAC,CAAC"}
@@ -1,23 +1,60 @@
1
- export declare const ORDER_EVENTS_TOPIC: "order-events";
1
+ import { TopicActionPayloadMap, TopicMessage } from "./base";
2
+ export declare const ORDER_EVENTS_TOPIC: "orders";
2
3
  export declare const orderEventsSchema: import("./base").TopicSchema<{
3
4
  created: import("./base").ActionSchema<{
4
5
  payload: {
5
- status: "created";
6
- orderId: string;
6
+ action: "created";
7
+ order_id: string;
8
+ user_id: string;
7
9
  timestamp: number;
8
10
  service: string;
9
- amount: number;
11
+ properties: {
12
+ items: Array<{
13
+ product_id: string;
14
+ product_name: string;
15
+ quantity: number;
16
+ unit_price: number;
17
+ }>;
18
+ total_amount: number;
19
+ };
10
20
  };
11
21
  }>;
12
- fulfilled: import("./base").ActionSchema<{
22
+ confirmed: import("./base").ActionSchema<{
13
23
  payload: {
14
- status: "fulfilled";
15
- orderId: string;
24
+ action: "confirmed";
25
+ order_id: string;
16
26
  timestamp: number;
17
27
  service: string;
18
- amount?: number;
19
- shipmentId?: string;
28
+ };
29
+ }>;
30
+ shipped: import("./base").ActionSchema<{
31
+ payload: {
32
+ action: "shipped";
33
+ order_id: string;
34
+ timestamp: number;
35
+ service: string;
36
+ properties?: {
37
+ tracking_number?: string;
38
+ carrier?: string;
39
+ };
40
+ };
41
+ }>;
42
+ cancelled: import("./base").ActionSchema<{
43
+ payload: {
44
+ action: "cancelled";
45
+ order_id: string;
46
+ timestamp: number;
47
+ service: string;
48
+ properties: {
49
+ items: Array<{
50
+ product_id: string;
51
+ quantity: number;
52
+ }>;
53
+ reason?: string;
54
+ };
20
55
  };
21
56
  }>;
22
57
  }>;
58
+ export type OrderEventPayloads = TopicActionPayloadMap<typeof orderEventsSchema>;
59
+ export type OrderEventMessage = TopicMessage<typeof orderEventsSchema>;
23
60
  //# sourceMappingURL=orderEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderEvents.d.ts","sourceRoot":"","sources":["../src/orderEvents.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,EAAG,cAAuB,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;iBAKT;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;SAClB;;;iBAWQ;YACL,MAAM,EAAE,WAAW,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;SACvB;;EAYX,CAAC"}
1
+ {"version":3,"file":"orderEvents.d.ts","sourceRoot":"","sources":["../src/orderEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,qBAAqB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACxF,eAAO,MAAM,kBAAkB,EAAG,QAAiB,CAAC;AACpD,eAAO,MAAM,iBAAiB;;iBAKT;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE;gBACR,KAAK,EAAE,KAAK,CAAC;oBACT,UAAU,EAAE,MAAM,CAAC;oBACnB,YAAY,EAAE,MAAM,CAAC;oBACrB,QAAQ,EAAE,MAAM,CAAC;oBACjB,UAAU,EAAE,MAAM,CAAC;iBACtB,CAAC,CAAC;gBACH,YAAY,EAAE,MAAM,CAAC;aACxB,CAAC;SACL;;;iBAkBQ;YACL,MAAM,EAAE,WAAW,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACnB;;;iBAUQ;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE;gBACT,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,OAAO,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;SACL;;;iBAWQ;YACL,MAAM,EAAE,WAAW,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE;gBACR,KAAK,EAAE,KAAK,CAAC;oBACT,UAAU,EAAE,MAAM,CAAC;oBACnB,QAAQ,EAAE,MAAM,CAAC;iBACpB,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,MAAM,CAAC;aACnB,CAAC;SACL;;EAiBX,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -2,28 +2,57 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.orderEventsSchema = exports.ORDER_EVENTS_TOPIC = void 0;
4
4
  const base_1 = require("./base");
5
- exports.ORDER_EVENTS_TOPIC = "order-events";
5
+ exports.ORDER_EVENTS_TOPIC = "orders";
6
6
  exports.orderEventsSchema = (0, base_1.defineTopic)({
7
- actionField: "payload.status",
8
- partitionField: "payload.orderId",
7
+ actionField: "payload.action",
8
+ partitionField: "payload.order_id",
9
9
  actions: {
10
10
  created: (0, base_1.defineAction)({
11
11
  fields: {
12
- "payload.status": { type: "string", literal: "created" },
13
- "payload.orderId": { type: "string" },
12
+ "payload.action": { type: "string", literal: "created" },
13
+ "payload.order_id": { type: "string" },
14
+ "payload.user_id": { type: "string" },
14
15
  "payload.timestamp": { type: "number" },
15
16
  "payload.service": { type: "string" },
16
- "payload.amount": { type: "number" },
17
+ "payload.properties": {
18
+ type: "object",
19
+ fields: {
20
+ items: { type: "array" },
21
+ total_amount: { type: "number" },
22
+ },
23
+ },
17
24
  },
18
25
  }),
19
- fulfilled: (0, base_1.defineAction)({
26
+ confirmed: (0, base_1.defineAction)({
20
27
  fields: {
21
- "payload.status": { type: "string", literal: "fulfilled" },
22
- "payload.orderId": { type: "string" },
28
+ "payload.action": { type: "string", literal: "confirmed" },
29
+ "payload.order_id": { type: "string" },
23
30
  "payload.timestamp": { type: "number" },
24
31
  "payload.service": { type: "string" },
25
- "payload.amount": { type: "number", optional: true },
26
- "payload.shipmentId": { type: "string", optional: true },
32
+ },
33
+ }),
34
+ shipped: (0, base_1.defineAction)({
35
+ fields: {
36
+ "payload.action": { type: "string", literal: "shipped" },
37
+ "payload.order_id": { type: "string" },
38
+ "payload.timestamp": { type: "number" },
39
+ "payload.service": { type: "string" },
40
+ "payload.properties": { type: "object", optional: true },
41
+ },
42
+ }),
43
+ cancelled: (0, base_1.defineAction)({
44
+ fields: {
45
+ "payload.action": { type: "string", literal: "cancelled" },
46
+ "payload.order_id": { type: "string" },
47
+ "payload.timestamp": { type: "number" },
48
+ "payload.service": { type: "string" },
49
+ "payload.properties": {
50
+ type: "object",
51
+ fields: {
52
+ items: { type: "array" },
53
+ reason: { type: "string", optional: true },
54
+ },
55
+ },
27
56
  },
28
57
  }),
29
58
  },
@@ -1 +1 @@
1
- {"version":3,"file":"orderEvents.js","sourceRoot":"","sources":["../src/orderEvents.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAEtC,QAAA,kBAAkB,GAAG,cAAuB,CAAC;AAE7C,QAAA,iBAAiB,GAAG,IAAA,kBAAW,EAAC;IACzC,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE;QACL,OAAO,EAAE,IAAA,mBAAY,EAQlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACvC;SACJ,CAAC;QACF,SAAS,EAAE,IAAA,mBAAY,EASpB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;gBAC1D,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpD,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC3D;SACJ,CAAC;KACL;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"orderEvents.js","sourceRoot":"","sources":["../src/orderEvents.ts"],"names":[],"mappings":";;;AAAA,iCAAwF;AAC3E,QAAA,kBAAkB,GAAG,QAAiB,CAAC;AACvC,QAAA,iBAAiB,GAAG,IAAA,kBAAW,EAAC;IACzC,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,kBAAkB;IAClC,OAAO,EAAE;QACL,OAAO,EAAE,IAAA,mBAAY,EAiBlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,oBAAoB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;wBACxB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACnC;iBACJ;aACJ;SACJ,CAAC;QACF,SAAS,EAAE,IAAA,mBAAY,EAOpB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;gBAC1D,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACxC;SACJ,CAAC;QACF,OAAO,EAAE,IAAA,mBAAY,EAWlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC3D;SACJ,CAAC;QACF,SAAS,EAAE,IAAA,mBAAY,EAcpB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;gBAC1D,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,oBAAoB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;wBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAC7C;iBACJ;aACJ;SACJ,CAAC;KACL;CACJ,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { TopicActionPayloadMap, TopicMessage } from "./base";
2
+ export declare const PRODUCT_EVENTS_TOPIC: "products";
3
+ export declare const productEventsSchema: import("./base").TopicSchema<{
4
+ created: import("./base").ActionSchema<{
5
+ payload: {
6
+ action: "created";
7
+ product_id: string;
8
+ timestamp: number;
9
+ service: string;
10
+ properties: {
11
+ name: string;
12
+ sku: string;
13
+ };
14
+ };
15
+ }>;
16
+ updated: import("./base").ActionSchema<{
17
+ payload: {
18
+ action: "updated";
19
+ product_id: string;
20
+ timestamp: number;
21
+ service: string;
22
+ };
23
+ }>;
24
+ stock_changed: import("./base").ActionSchema<{
25
+ payload: {
26
+ action: "stock_changed";
27
+ product_id: string;
28
+ timestamp: number;
29
+ service: string;
30
+ properties: {
31
+ previous_stock: number;
32
+ new_stock: number;
33
+ change: number;
34
+ };
35
+ };
36
+ }>;
37
+ }>;
38
+ export type ProductEventPayloads = TopicActionPayloadMap<typeof productEventsSchema>;
39
+ export type ProductEventMessage = TopicMessage<typeof productEventsSchema>;
40
+ //# sourceMappingURL=productEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productEvents.d.ts","sourceRoot":"","sources":["../src/productEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,qBAAqB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACxF,eAAO,MAAM,oBAAoB,EAAG,UAAmB,CAAC;AACxD,eAAO,MAAM,mBAAmB;;iBAKX;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC;gBACb,GAAG,EAAE,MAAM,CAAC;aACf,CAAC;SACL;;;iBAiBQ;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACnB;;;iBAUQ;YACL,MAAM,EAAE,eAAe,CAAC;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE;gBACR,cAAc,EAAE,MAAM,CAAC;gBACvB,SAAS,EAAE,MAAM,CAAC;gBAClB,MAAM,EAAE,MAAM,CAAC;aAClB,CAAC;SACL;;EAkBX,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrF,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.productEventsSchema = exports.PRODUCT_EVENTS_TOPIC = void 0;
4
+ const base_1 = require("./base");
5
+ exports.PRODUCT_EVENTS_TOPIC = "products";
6
+ exports.productEventsSchema = (0, base_1.defineTopic)({
7
+ actionField: "payload.action",
8
+ partitionField: "payload.product_id",
9
+ actions: {
10
+ created: (0, base_1.defineAction)({
11
+ fields: {
12
+ "payload.action": { type: "string", literal: "created" },
13
+ "payload.product_id": { type: "string" },
14
+ "payload.timestamp": { type: "number" },
15
+ "payload.service": { type: "string" },
16
+ "payload.properties": {
17
+ type: "object",
18
+ fields: {
19
+ name: { type: "string" },
20
+ sku: { type: "string" },
21
+ },
22
+ },
23
+ },
24
+ }),
25
+ updated: (0, base_1.defineAction)({
26
+ fields: {
27
+ "payload.action": { type: "string", literal: "updated" },
28
+ "payload.product_id": { type: "string" },
29
+ "payload.timestamp": { type: "number" },
30
+ "payload.service": { type: "string" },
31
+ },
32
+ }),
33
+ stock_changed: (0, base_1.defineAction)({
34
+ fields: {
35
+ "payload.action": { type: "string", literal: "stock_changed" },
36
+ "payload.product_id": { type: "string" },
37
+ "payload.timestamp": { type: "number" },
38
+ "payload.service": { type: "string" },
39
+ "payload.properties": {
40
+ type: "object",
41
+ fields: {
42
+ previous_stock: { type: "number" },
43
+ new_stock: { type: "number" },
44
+ change: { type: "number" },
45
+ },
46
+ },
47
+ },
48
+ }),
49
+ },
50
+ });
51
+ //# sourceMappingURL=productEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productEvents.js","sourceRoot":"","sources":["../src/productEvents.ts"],"names":[],"mappings":";;;AAAA,iCAAwF;AAC3E,QAAA,oBAAoB,GAAG,UAAmB,CAAC;AAC3C,QAAA,mBAAmB,GAAG,IAAA,kBAAW,EAAC;IAC3C,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,oBAAoB;IACpC,OAAO,EAAE;QACL,OAAO,EAAE,IAAA,mBAAY,EAWlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,oBAAoB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC1B;iBACJ;aACJ;SACJ,CAAC;QACF,OAAO,EAAE,IAAA,mBAAY,EAOlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACxC;SACJ,CAAC;QACF,aAAa,EAAE,IAAA,mBAAY,EAYxB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE;gBAC9D,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,oBAAoB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACJ,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAClC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC7B;iBACJ;aACJ;SACJ,CAAC;KACL;CACJ,CAAC,CAAC"}
@@ -1,22 +1,35 @@
1
- export declare const USER_EVENTS_TOPIC: "user-events";
1
+ import { TopicActionPayloadMap, TopicMessage } from "./base";
2
+ export declare const USER_EVENTS_TOPIC: "users";
2
3
  export declare const userEventsSchema: import("./base").TopicSchema<{
3
- login: import("./base").ActionSchema<{
4
+ created: import("./base").ActionSchema<{
4
5
  payload: {
5
- action: "login";
6
- userId: string;
6
+ action: "created";
7
+ user_id: string;
7
8
  timestamp: number;
8
9
  service: string;
9
- sessionId?: string;
10
+ properties: {
11
+ email: string;
12
+ username: string;
13
+ };
10
14
  };
11
15
  }>;
12
- logout: import("./base").ActionSchema<{
16
+ updated: import("./base").ActionSchema<{
13
17
  payload: {
14
- action: "logout";
15
- userId: string;
18
+ action: "updated";
19
+ user_id: string;
20
+ timestamp: number;
21
+ service: string;
22
+ };
23
+ }>;
24
+ deleted: import("./base").ActionSchema<{
25
+ payload: {
26
+ action: "deleted";
27
+ user_id: string;
16
28
  timestamp: number;
17
29
  service: string;
18
- reason?: string;
19
30
  };
20
31
  }>;
21
32
  }>;
33
+ export type UserEventPayloads = TopicActionPayloadMap<typeof userEventsSchema>;
34
+ export type UserEventMessage = TopicMessage<typeof userEventsSchema>;
22
35
  //# sourceMappingURL=userEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userEvents.d.ts","sourceRoot":"","sources":["../src/userEvents.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,EAAG,aAAsB,CAAC;AAExD,eAAO,MAAM,gBAAgB;;iBAKR;YACL,MAAM,EAAE,OAAO,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;SACtB;;;iBAWQ;YACL,MAAM,EAAE,QAAQ,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;SACnB;;EAWX,CAAC"}
1
+ {"version":3,"file":"userEvents.d.ts","sourceRoot":"","sources":["../src/userEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,qBAAqB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACxF,eAAO,MAAM,iBAAiB,EAAG,OAAgB,CAAC;AAClD,eAAO,MAAM,gBAAgB;;iBAKR;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE;gBACR,KAAK,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,MAAM,CAAC;aACpB,CAAC;SACL;;;iBAiBQ;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACnB;;;iBAUQ;YACL,MAAM,EAAE,SAAS,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACnB;;EAUX,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -2,27 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.userEventsSchema = exports.USER_EVENTS_TOPIC = void 0;
4
4
  const base_1 = require("./base");
5
- exports.USER_EVENTS_TOPIC = "user-events";
5
+ exports.USER_EVENTS_TOPIC = "users";
6
6
  exports.userEventsSchema = (0, base_1.defineTopic)({
7
7
  actionField: "payload.action",
8
- partitionField: "payload.userId",
8
+ partitionField: "payload.user_id",
9
9
  actions: {
10
- login: (0, base_1.defineAction)({
10
+ created: (0, base_1.defineAction)({
11
11
  fields: {
12
- "payload.action": { type: "string", literal: "login" },
13
- "payload.userId": { type: "string" },
12
+ "payload.action": { type: "string", literal: "created" },
13
+ "payload.user_id": { type: "string" },
14
14
  "payload.timestamp": { type: "number" },
15
15
  "payload.service": { type: "string" },
16
- "payload.sessionId": { type: "string", optional: true },
16
+ "payload.properties": {
17
+ type: "object",
18
+ fields: {
19
+ email: { type: "string" },
20
+ username: { type: "string" },
21
+ },
22
+ },
17
23
  },
18
24
  }),
19
- logout: (0, base_1.defineAction)({
25
+ updated: (0, base_1.defineAction)({
20
26
  fields: {
21
- "payload.action": { type: "string", literal: "logout" },
22
- "payload.userId": { type: "string" },
27
+ "payload.action": { type: "string", literal: "updated" },
28
+ "payload.user_id": { type: "string" },
29
+ "payload.timestamp": { type: "number" },
30
+ "payload.service": { type: "string" },
31
+ },
32
+ }),
33
+ deleted: (0, base_1.defineAction)({
34
+ fields: {
35
+ "payload.action": { type: "string", literal: "deleted" },
36
+ "payload.user_id": { type: "string" },
23
37
  "payload.timestamp": { type: "number" },
24
38
  "payload.service": { type: "string" },
25
- "payload.reason": { type: "string", optional: true },
26
39
  },
27
40
  }),
28
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"userEvents.js","sourceRoot":"","sources":["../src/userEvents.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAEtC,QAAA,iBAAiB,GAAG,aAAsB,CAAC;AAE3C,QAAA,gBAAgB,GAAG,IAAA,kBAAW,EAAC;IACxC,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE;QACL,KAAK,EAAE,IAAA,mBAAY,EAQhB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;gBACtD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACpC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC1D;SACJ,CAAC;QACF,MAAM,EAAE,IAAA,mBAAY,EAQjB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;gBACvD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACpC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;aACvD;SACJ,CAAC;KACL;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"userEvents.js","sourceRoot":"","sources":["../src/userEvents.ts"],"names":[],"mappings":";;;AAAA,iCAAwF;AAC3E,QAAA,iBAAiB,GAAG,OAAgB,CAAC;AACrC,QAAA,gBAAgB,GAAG,IAAA,kBAAW,EAAC;IACxC,WAAW,EAAE,gBAAgB;IAC7B,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE;QACL,OAAO,EAAE,IAAA,mBAAY,EAWlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,oBAAoB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC/B;iBACJ;aACJ;SACJ,CAAC;QACF,OAAO,EAAE,IAAA,mBAAY,EAOlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACxC;SACJ,CAAC;QACF,OAAO,EAAE,IAAA,mBAAY,EAOlB;YACC,MAAM,EAAE;gBACJ,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBACxD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACxC;SACJ,CAAC;KACL;CACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamasha/kafka-schema-validation",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Kafka topic schema validation framework with type-safe message definitions",
5
5
  "keywords": [
6
6
  "kafka",