@azure-net/kit 3.1.0 → 3.9.2

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 (71) hide show
  1. package/README.md +2 -2
  2. package/dist/core/delivery/index.d.ts +1 -4
  3. package/dist/core/delivery/index.js +1 -4
  4. package/dist/core/delivery/injectableDependencies/AsyncHelpers.d.ts +28 -30
  5. package/dist/core/delivery/injectableDependencies/AsyncHelpers.js +80 -116
  6. package/dist/core/delivery/injectableDependencies/ErrorHandler.d.ts +3 -21
  7. package/dist/core/delivery/injectableDependencies/ErrorHandler.js +11 -42
  8. package/dist/core/delivery/schema/Schema.d.ts +8 -1
  9. package/dist/core/delivery/schema/Schema.js +12 -3
  10. package/dist/core/delivery.d.ts +5 -0
  11. package/dist/core/delivery.js +5 -0
  12. package/dist/core/errors.d.ts +4 -0
  13. package/dist/core/errors.js +4 -0
  14. package/dist/core/index.d.ts +7 -8
  15. package/dist/core/index.js +7 -8
  16. package/dist/core/infra/datasource/BaseDatasource.d.ts +11 -11
  17. package/dist/core/infra/datasource/BaseDatasource.js +4 -4
  18. package/dist/core/infra/httpService/HttpServiceInstance.d.ts +90 -0
  19. package/dist/core/infra/httpService/HttpServiceInstance.js +340 -0
  20. package/dist/core/infra/httpService/index.d.ts +1 -1
  21. package/dist/core/infra/httpService/index.js +1 -1
  22. package/dist/core/infra/query/QueryBuilder.d.ts +9 -21
  23. package/dist/core/infra/query/QueryBuilder.js +63 -50
  24. package/dist/core/infra/response/BaseResponse.js +3 -2
  25. package/dist/core/infra.d.ts +6 -0
  26. package/dist/core/infra.js +6 -0
  27. package/dist/core/shared/appError/AppError.d.ts +30 -0
  28. package/dist/core/shared/appError/AppError.js +66 -0
  29. package/dist/core/shared/appEventBus/EventBus.d.ts +1 -1
  30. package/dist/core/shared/appEventBus/EventBus.js +3 -3
  31. package/dist/core/shared/boundaryProvider/Provider.d.ts +2 -2
  32. package/dist/core/shared/boundaryProvider/Provider.js +16 -9
  33. package/dist/core/shared/classMirror/ClassMirror.d.ts +7 -2
  34. package/dist/core/shared/classMirror/ClassMirror.js +34 -15
  35. package/dist/core/shared/cookie/UniversalCookie.js +9 -11
  36. package/dist/core/shared/middleware/Middleware.js +12 -8
  37. package/dist/core/svelte/ActiveForm/ActiveForm.svelte.d.ts +10 -6
  38. package/dist/core/svelte/ActiveForm/ActiveForm.svelte.js +47 -41
  39. package/dist/core/svelte/AsyncSignal/AsyncSignal.svelte.d.ts +0 -1
  40. package/dist/core/svelte/AsyncSignal/AsyncSignal.svelte.js +21 -30
  41. package/dist/core/svelte/Query/Query.svelte.d.ts +11 -12
  42. package/dist/core/svelte/Query/Query.svelte.js +43 -55
  43. package/dist/core/ui/onClickOutside/OnClickOutside.js +1 -1
  44. package/dist/core/ui/scrollTo/index.js +2 -2
  45. package/dist/edges/context/index.d.ts +1 -1
  46. package/dist/edges/context/index.js +1 -1
  47. package/dist/edges/dev/index.d.ts +1 -1
  48. package/dist/edges/dev/index.js +1 -1
  49. package/dist/edges/index.d.ts +1 -1
  50. package/dist/edges/index.js +1 -1
  51. package/dist/edges/plugin/index.d.ts +1 -1
  52. package/dist/edges/plugin/index.js +1 -1
  53. package/dist/edges/server/index.d.ts +1 -1
  54. package/dist/edges/server/index.js +1 -1
  55. package/dist/edges/state/index.d.ts +1 -1
  56. package/dist/edges/state/index.js +1 -1
  57. package/dist/i18n/index.d.ts +1 -1
  58. package/dist/i18n/index.js +1 -1
  59. package/dist/tools/index.d.ts +2 -1
  60. package/dist/tools/index.js +2 -1
  61. package/package.json +45 -47
  62. package/dist/core/delivery/serverAction/CreateServerAction.d.ts +0 -15
  63. package/dist/core/delivery/serverAction/CreateServerAction.js +0 -22
  64. package/dist/core/delivery/serverAction/index.d.ts +0 -1
  65. package/dist/core/delivery/serverAction/index.js +0 -1
  66. package/dist/core/infra/httpService/HttpService.d.ts +0 -74
  67. package/dist/core/infra/httpService/HttpService.js +0 -164
  68. package/dist/core/shared/eventBus/EventBus.d.ts +0 -87
  69. package/dist/core/shared/eventBus/EventBus.js +0 -227
  70. package/dist/core/shared/eventBus/index.d.ts +0 -1
  71. package/dist/core/shared/eventBus/index.js +0 -1
@@ -1,87 +0,0 @@
1
- export interface IEvent<T = unknown> {
2
- aggregateId: string;
3
- eventType: string;
4
- eventVersion: number;
5
- occurredAt: Date;
6
- metadata: IEventMetadata;
7
- busName?: string;
8
- payload: T;
9
- }
10
- export interface IEventMetadata {
11
- userId?: string;
12
- correlationId: string;
13
- causationId?: string;
14
- sessionId?: string;
15
- [key: string]: unknown;
16
- }
17
- export type DomainEventHandler<T = unknown> = (event: IEvent<T>) => void | Promise<void>;
18
- export interface IEventSubscription {
19
- unsubscribe(): void;
20
- }
21
- export declare class EventBus<TEventMap extends object> {
22
- private options;
23
- private handlers;
24
- private wildcardHandlers;
25
- private middleware;
26
- private eventQueue;
27
- private isProcessing;
28
- private eventHistory;
29
- private priorities;
30
- private readonly debug;
31
- private readonly maxHistorySize;
32
- private readonly busName?;
33
- constructor(options?: {
34
- busName?: string;
35
- enableHistory?: boolean;
36
- maxHistorySize?: number;
37
- enableAsyncProcessing?: boolean;
38
- debug?: boolean;
39
- });
40
- publish<K extends keyof TEventMap>(eventType: K, payload: TEventMap[K], metadata?: Partial<IEventMetadata>): void;
41
- publishBatch<K extends keyof TEventMap>(events: Array<{
42
- type: K;
43
- payload: TEventMap[K];
44
- metadata?: Partial<IEventMetadata>;
45
- }>): void;
46
- subscribe<K extends keyof TEventMap>(eventType: K, handler: DomainEventHandler<TEventMap[K]>, options?: {
47
- priority?: number;
48
- }): IEventSubscription;
49
- subscribeMany<K extends keyof TEventMap>(eventTypes: K[], handler: DomainEventHandler<TEventMap[K]>): IEventSubscription;
50
- subscribeAll(handler: DomainEventHandler): IEventSubscription;
51
- use(middleware: <T = unknown>(event: IEvent<T>, next: () => Promise<void>) => Promise<void>): void;
52
- private processEvent;
53
- private executeHandlers;
54
- private safeExecuteHandler;
55
- private getHandlersForEvent;
56
- private processQueue;
57
- private addToHistory;
58
- getHistory(filter?: {
59
- eventType?: keyof TEventMap;
60
- aggregateId?: string;
61
- }): IEvent[];
62
- waitForCompletion(): Promise<void>;
63
- clear(): void;
64
- private generateAggregateId;
65
- private generateCorrelationId;
66
- }
67
- export declare const loggingMiddleware: (event: IEvent, next: () => Promise<void>) => Promise<void>;
68
- export declare const createEventBus: <TEventMap extends object>(opts: {
69
- history?: boolean;
70
- asyncProcessing?: boolean;
71
- historySize?: number;
72
- middlewares?: (<T = unknown>(event: IEvent<T>, next: () => Promise<void>) => Promise<void>)[];
73
- debug?: boolean;
74
- busName?: string;
75
- }) => {
76
- eventBus: EventBus<TEventMap>;
77
- CreateEvent: <K extends keyof TEventMap>(eventName: K, data: TEventMap[K]) => void;
78
- CreateBatch: <K extends keyof TEventMap>(events: Array<{
79
- type: K;
80
- payload: TEventMap[K];
81
- metadata?: Partial<IEventMetadata>;
82
- }>) => void;
83
- CreateSubscriber: <K extends keyof TEventMap>(eventType: K, handler: DomainEventHandler<TEventMap[K]>, options?: {
84
- priority?: number;
85
- }) => IEventSubscription;
86
- CreateSubscribers: <K extends keyof TEventMap>(eventTypes: K[], handler: DomainEventHandler<TEventMap[K]>) => IEventSubscription;
87
- };
@@ -1,227 +0,0 @@
1
- export class EventBus {
2
- options;
3
- handlers = new Map();
4
- wildcardHandlers = new Set();
5
- middleware = [];
6
- eventQueue = [];
7
- isProcessing = false;
8
- eventHistory = [];
9
- priorities = new Map();
10
- debug = false;
11
- maxHistorySize = 1000;
12
- busName;
13
- constructor(options = { debug: false }) {
14
- this.options = options;
15
- this.busName = options.busName ?? undefined;
16
- this.debug = options.debug ?? false;
17
- if (options.maxHistorySize) {
18
- this.maxHistorySize = options.maxHistorySize;
19
- }
20
- }
21
- publish(eventType, payload, metadata) {
22
- const event = {
23
- aggregateId: this.generateAggregateId(String(eventType), payload),
24
- eventType: String(eventType),
25
- eventVersion: 1,
26
- occurredAt: new Date(),
27
- metadata: {
28
- correlationId: this.generateCorrelationId(),
29
- ...metadata
30
- },
31
- busName: this.busName,
32
- payload
33
- };
34
- void this.processEvent(event);
35
- }
36
- publishBatch(events) {
37
- const domainEvents = events.map(({ type, payload, metadata }) => ({
38
- aggregateId: this.generateAggregateId(type, payload),
39
- eventType: type,
40
- eventVersion: 1,
41
- occurredAt: new Date(),
42
- busName: this.busName,
43
- metadata: {
44
- correlationId: this.generateCorrelationId(),
45
- ...metadata
46
- },
47
- payload
48
- }));
49
- domainEvents.forEach((event) => this.processEvent(event));
50
- }
51
- subscribe(eventType, handler, options) {
52
- if (!this.handlers.has(eventType)) {
53
- this.handlers.set(eventType, new Set());
54
- }
55
- const handlers = this.handlers.get(eventType);
56
- handlers.add(handler);
57
- if (options?.priority !== undefined) {
58
- this.priorities.set(eventType, options.priority);
59
- }
60
- return {
61
- unsubscribe: () => {
62
- handlers.delete(handler);
63
- if (handlers.size === 0) {
64
- this.handlers.delete(eventType);
65
- this.priorities.delete(eventType);
66
- }
67
- }
68
- };
69
- }
70
- subscribeMany(eventTypes, handler) {
71
- const subscriptions = eventTypes.map((type) => this.subscribe(type, handler));
72
- return {
73
- unsubscribe: () => {
74
- subscriptions.forEach((sub) => sub.unsubscribe());
75
- }
76
- };
77
- }
78
- subscribeAll(handler) {
79
- this.wildcardHandlers.add(handler);
80
- return {
81
- unsubscribe: () => {
82
- this.wildcardHandlers.delete(handler);
83
- }
84
- };
85
- }
86
- use(middleware) {
87
- this.middleware.push(middleware);
88
- }
89
- async processEvent(event) {
90
- if (this.options.enableHistory) {
91
- this.addToHistory(event);
92
- }
93
- const handlers = this.getHandlersForEvent(event);
94
- if (!this.debug && handlers.size === 0 && this.wildcardHandlers.size === 0) {
95
- return;
96
- }
97
- if (this.options.enableAsyncProcessing) {
98
- this.eventQueue.push({ event, handlers });
99
- if (!this.isProcessing) {
100
- void this.processQueue();
101
- }
102
- return;
103
- }
104
- await this.executeHandlers(event, handlers);
105
- }
106
- async executeHandlers(event, handlers) {
107
- const allHandlers = [...handlers, ...this.wildcardHandlers];
108
- let index = -1;
109
- const dispatch = async (i) => {
110
- if (i <= index) {
111
- throw new Error('next() called multiple times');
112
- }
113
- index = i;
114
- if (i === this.middleware.length) {
115
- await Promise.all(allHandlers.map((handler) => this.safeExecuteHandler(handler, event)));
116
- return;
117
- }
118
- const middleware = this.middleware[i];
119
- await middleware(event, () => dispatch(i + 1));
120
- };
121
- await dispatch(0);
122
- }
123
- async safeExecuteHandler(handler, event) {
124
- try {
125
- await handler(event);
126
- }
127
- catch (error) {
128
- console.error(`Error handling event ${event.eventType}:`, error);
129
- }
130
- }
131
- getHandlersForEvent(event) {
132
- const handlers = this.handlers.get(event.eventType);
133
- return handlers || new Set();
134
- }
135
- async processQueue() {
136
- if (this.isProcessing || this.eventQueue.length === 0) {
137
- return;
138
- }
139
- this.isProcessing = true;
140
- this.eventQueue.sort((a, b) => {
141
- const priorityA = this.priorities.get(a.event.eventType) || 0;
142
- const priorityB = this.priorities.get(b.event.eventType) || 0;
143
- return priorityB - priorityA;
144
- });
145
- while (this.eventQueue.length > 0) {
146
- const batch = this.eventQueue.splice(0, 10);
147
- await Promise.all(batch.map(({ event, handlers }) => this.executeHandlers(event, handlers)));
148
- }
149
- this.isProcessing = false;
150
- }
151
- addToHistory(event) {
152
- this.eventHistory.push(event);
153
- if (this.eventHistory.length > this.maxHistorySize) {
154
- this.eventHistory.shift();
155
- }
156
- }
157
- getHistory(filter) {
158
- if (!filter)
159
- return [...this.eventHistory];
160
- return this.eventHistory.filter((event) => {
161
- switch (true) {
162
- case filter.eventType && event.eventType !== filter.eventType:
163
- return false;
164
- case filter.aggregateId && event.aggregateId !== filter.aggregateId:
165
- return false;
166
- default:
167
- return true;
168
- }
169
- });
170
- }
171
- async waitForCompletion() {
172
- while (this.isProcessing || this.eventQueue.length > 0) {
173
- await new Promise((resolve) => setTimeout(resolve, 10));
174
- }
175
- }
176
- clear() {
177
- this.handlers.clear();
178
- this.wildcardHandlers.clear();
179
- this.eventQueue = [];
180
- this.eventHistory = [];
181
- }
182
- generateAggregateId(eventType, payload) {
183
- const maybeEventPayload = payload;
184
- if (typeof maybeEventPayload === 'object' && maybeEventPayload?.id)
185
- return String(maybeEventPayload.id);
186
- if (typeof maybeEventPayload === 'object' && maybeEventPayload?.aggregateId)
187
- return String(maybeEventPayload.aggregateId);
188
- return `${eventType}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
189
- }
190
- generateCorrelationId() {
191
- return `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
192
- }
193
- }
194
- export const loggingMiddleware = async (event, next) => {
195
- console.log(`[${event.busName ?? ''}Event] ${event.eventType} at ${event.occurredAt.toISOString()}`);
196
- console.log(`[${event.busName ?? ''}Event] data:`, event);
197
- const start = performance.now();
198
- await next();
199
- const duration = performance.now() - start;
200
- console.log(`[${event.busName ?? ''}Event] ${event.eventType} processed in ${duration.toFixed(2)}ms`);
201
- };
202
- export const createEventBus = (opts) => {
203
- const { history = true, asyncProcessing = true, historySize = 1000, middlewares = [], debug = false } = opts;
204
- const eventBus = new EventBus({
205
- busName: opts.busName,
206
- enableHistory: history,
207
- enableAsyncProcessing: asyncProcessing,
208
- maxHistorySize: historySize,
209
- debug
210
- });
211
- middlewares.forEach((value) => {
212
- eventBus.use(value);
213
- });
214
- const CreateEvent = (eventName, data) => {
215
- eventBus.publish(eventName, data);
216
- };
217
- const CreateBatch = (events) => {
218
- eventBus.publishBatch(events);
219
- };
220
- const CreateSubscriber = (eventType, handler, options) => {
221
- return eventBus.subscribe(eventType, handler, options);
222
- };
223
- const CreateSubscribers = (eventTypes, handler) => {
224
- return eventBus.subscribeMany(eventTypes, handler);
225
- };
226
- return { eventBus, CreateEvent, CreateBatch, CreateSubscriber, CreateSubscribers };
227
- };
@@ -1 +0,0 @@
1
- export * from './EventBus.js';
@@ -1 +0,0 @@
1
- export * from './EventBus.js';