@plyaz/types 1.7.18 → 1.7.20

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/api/client/enum.d.ts +12 -0
  2. package/dist/api/client/index.d.ts +1 -0
  3. package/dist/api/client/types.d.ts +114 -0
  4. package/dist/api/config/types.d.ts +56 -9
  5. package/dist/api/debugger/enums.d.ts +153 -0
  6. package/dist/api/debugger/factories/index.d.ts +1 -0
  7. package/dist/api/debugger/factories/types.d.ts +191 -0
  8. package/dist/api/debugger/index.d.ts +2 -0
  9. package/dist/api/debugger/types.d.ts +628 -0
  10. package/dist/api/endpoints/campaigns/index.d.ts +1 -0
  11. package/dist/api/endpoints/campaigns/types.d.ts +68 -0
  12. package/dist/api/endpoints/health/index.d.ts +1 -0
  13. package/dist/api/endpoints/health/types.d.ts +127 -0
  14. package/dist/api/endpoints/index.d.ts +3 -0
  15. package/dist/api/endpoints/types.d.ts +5 -0
  16. package/dist/api/errors/enum.d.ts +182 -0
  17. package/dist/api/errors/index.d.ts +1 -0
  18. package/dist/api/errors/types.d.ts +126 -27
  19. package/dist/api/events/enum.d.ts +262 -0
  20. package/dist/api/events/factories/cache/index.d.ts +1 -0
  21. package/dist/api/events/factories/cache/types.d.ts +60 -0
  22. package/dist/api/events/factories/client/index.d.ts +1 -0
  23. package/dist/api/events/factories/client/types.d.ts +120 -0
  24. package/dist/api/events/factories/config/index.d.ts +1 -0
  25. package/dist/api/events/factories/config/types.d.ts +77 -0
  26. package/dist/api/events/factories/debug/index.d.ts +1 -0
  27. package/dist/api/events/factories/debug/types.d.ts +131 -0
  28. package/dist/api/events/factories/errors/index.d.ts +1 -0
  29. package/dist/api/events/factories/errors/types.d.ts +293 -0
  30. package/dist/api/events/factories/headers/index.d.ts +1 -0
  31. package/dist/api/events/factories/headers/types.d.ts +256 -0
  32. package/dist/api/events/factories/index.d.ts +9 -0
  33. package/dist/api/events/factories/network/index.d.ts +1 -0
  34. package/dist/api/events/factories/network/types.d.ts +196 -0
  35. package/dist/api/events/factories/performance/index.d.ts +1 -0
  36. package/dist/api/events/factories/performance/types.d.ts +150 -0
  37. package/dist/api/events/factories/types.d.ts +84 -0
  38. package/dist/api/events/index.d.ts +2 -0
  39. package/dist/api/events/types.d.ts +1 -730
  40. package/dist/api/headers/enum.d.ts +34 -0
  41. package/dist/api/headers/index.d.ts +1 -0
  42. package/dist/api/headers/types.d.ts +456 -0
  43. package/dist/api/hooks/index.d.ts +1 -0
  44. package/dist/api/hooks/types.d.ts +131 -0
  45. package/dist/api/index.d.ts +7 -1
  46. package/dist/api/network/enums.d.ts +75 -5
  47. package/dist/api/network/frameworks/index.d.ts +2 -0
  48. package/dist/api/network/frameworks/nestjs/index.d.ts +1 -0
  49. package/dist/api/network/frameworks/nestjs/types.d.ts +47 -0
  50. package/dist/api/network/frameworks/types.d.ts +76 -0
  51. package/dist/api/network/index.d.ts +1 -0
  52. package/dist/api/network/types.d.ts +346 -39
  53. package/dist/api/performance/types.d.ts +17 -10
  54. package/dist/api/polling/types.d.ts +6 -4
  55. package/dist/api/pubsub/enum.d.ts +12 -0
  56. package/dist/api/pubsub/index.d.ts +2 -0
  57. package/dist/api/pubsub/types.d.ts +61 -0
  58. package/dist/api/queue/types.d.ts +69 -0
  59. package/dist/api/regional/enum.d.ts +75 -0
  60. package/dist/api/regional/index.d.ts +1 -0
  61. package/dist/api/regional/types.d.ts +2 -1
  62. package/dist/api/request/index.d.ts +1 -0
  63. package/dist/api/request/types.d.ts +44 -0
  64. package/dist/api/retry/types.d.ts +31 -0
  65. package/dist/api/strategies/types.d.ts +12 -8
  66. package/dist/errors/index.cjs +69 -0
  67. package/dist/errors/index.cjs.map +1 -1
  68. package/dist/errors/index.d.ts +1 -1
  69. package/dist/errors/index.js +66 -0
  70. package/dist/errors/index.js.map +1 -1
  71. package/dist/features/cache/types.d.ts +5 -0
  72. package/dist/testing/features/api/types.d.ts +355 -4
  73. package/package.json +5 -3
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Network Event Factory
3
+ * Creates and emits network-related events with type safety
4
+ */
5
+ import { type BaseEvent, type EventOptions } from '..';
6
+ import type { NetworkClientHints as NetworkHints, NETWORK_QUALITY, NetworkInfo } from '../../../network';
7
+ import type { DebuggerConfigSource, NETWORK_EVENTS } from '../../..';
8
+ /**
9
+ * Base structure for network events
10
+ */
11
+ export interface NetworkEvent extends BaseEvent {
12
+ type: string;
13
+ data: Record<string, unknown>;
14
+ }
15
+ /**
16
+ * Network quality change event
17
+ */
18
+ export interface NetworkQualityEvent extends NetworkEvent {
19
+ type: typeof NETWORK_EVENTS.QUALITY_CHANGE;
20
+ data: {
21
+ previous?: NETWORK_QUALITY;
22
+ current: NETWORK_QUALITY;
23
+ networkInfo: NetworkInfo;
24
+ score: number;
25
+ factors: {
26
+ downlink?: number;
27
+ rtt?: number;
28
+ effectiveType?: string;
29
+ saveData?: boolean;
30
+ };
31
+ recommendation: 'reduce_quality' | 'maintain' | 'increase_quality';
32
+ };
33
+ }
34
+ /**
35
+ * Network info update event
36
+ */
37
+ export interface NetworkInfoEvent extends NetworkEvent {
38
+ type: typeof NETWORK_EVENTS.INFO_UPDATE;
39
+ data: {
40
+ previous?: NetworkInfo;
41
+ current: NetworkInfo;
42
+ changes: {
43
+ downlink?: boolean;
44
+ effectiveType?: boolean;
45
+ rtt?: boolean;
46
+ saveData?: boolean;
47
+ type?: boolean;
48
+ };
49
+ };
50
+ }
51
+ /**
52
+ * Network config override event
53
+ */
54
+ export interface NetworkConfigOverrideEvent extends NetworkEvent {
55
+ type: typeof NETWORK_EVENTS.CONFIG_OVERRIDE | typeof NETWORK_EVENTS.CONFIG_RESTORED;
56
+ data: {
57
+ property: string;
58
+ previousValue: unknown;
59
+ newValue: unknown;
60
+ source: DebuggerConfigSource;
61
+ overrideReason: string;
62
+ temporaryOverride?: boolean;
63
+ duration?: number;
64
+ };
65
+ }
66
+ /**
67
+ * Network preset event
68
+ */
69
+ export interface NetworkPresetEvent extends NetworkEvent {
70
+ type: typeof NETWORK_EVENTS.PRESET_APPLIED | typeof NETWORK_EVENTS.PRESET_CHANGED;
71
+ data: {
72
+ preset: string;
73
+ previousPreset?: string;
74
+ config: Record<string, unknown>;
75
+ quality: NETWORK_QUALITY;
76
+ auto: boolean;
77
+ };
78
+ }
79
+ /**
80
+ * Network client hints event
81
+ */
82
+ export interface NetworkClientHintsEvent extends NetworkEvent {
83
+ type: typeof NETWORK_EVENTS.HINTS_UPDATED;
84
+ data: {
85
+ previous?: NetworkHints;
86
+ current: NetworkHints;
87
+ source: 'auto' | 'headers' | 'manual';
88
+ };
89
+ }
90
+ /**
91
+ * Network auto detection event
92
+ */
93
+ export interface NetworkAutoDetectionEvent extends NetworkEvent {
94
+ type: typeof NETWORK_EVENTS.AUTO_DETECTION;
95
+ data: {
96
+ detected: NetworkInfo;
97
+ applied: boolean;
98
+ reason?: string;
99
+ confidence: 'high' | 'medium' | 'low';
100
+ };
101
+ }
102
+ /**
103
+ * Network manual update event
104
+ */
105
+ export interface NetworkManualUpdateEvent extends NetworkEvent {
106
+ type: typeof NETWORK_EVENTS.MANUAL_UPDATE;
107
+ data: {
108
+ updates: Partial<NetworkInfo>;
109
+ source: 'user' | 'api' | 'config';
110
+ reason?: string;
111
+ };
112
+ }
113
+ /**
114
+ * Options for emitQualityChange method
115
+ */
116
+ export interface EmitQualityChangeOptions extends EventOptions {
117
+ current: NETWORK_QUALITY;
118
+ networkInfo: NetworkInfo;
119
+ score: number;
120
+ recommendation: 'reduce_quality' | 'maintain' | 'increase_quality';
121
+ previous?: NETWORK_QUALITY;
122
+ }
123
+ /**
124
+ * Options for emitConfigOverride method
125
+ */
126
+ export interface EmitConfigOverrideOptions extends EventOptions {
127
+ property: string;
128
+ previousValue: unknown;
129
+ newValue: unknown;
130
+ source: DebuggerConfigSource;
131
+ overrideReason: string;
132
+ temporaryOverride?: boolean;
133
+ duration?: number;
134
+ }
135
+ /**
136
+ * Options for emitConfigRestored method
137
+ */
138
+ export interface EmitConfigRestoredOptions extends EventOptions {
139
+ property: string;
140
+ previousValue: unknown;
141
+ newValue: unknown;
142
+ source: DebuggerConfigSource;
143
+ reason: string;
144
+ }
145
+ /**
146
+ * Options for emitPresetApplied method
147
+ */
148
+ export interface EmitPresetAppliedOptions extends EventOptions {
149
+ preset: string;
150
+ config: Record<string, unknown>;
151
+ quality: NETWORK_QUALITY;
152
+ auto?: boolean;
153
+ previousPreset?: string;
154
+ }
155
+ /**
156
+ * Options for emitPresetChanged method
157
+ */
158
+ export interface EmitPresetChangedOptions extends EventOptions {
159
+ preset: string;
160
+ previousPreset: string;
161
+ config: Record<string, unknown>;
162
+ quality: NETWORK_QUALITY;
163
+ auto?: boolean;
164
+ }
165
+ /**
166
+ * Options for emitAutoDetection method
167
+ */
168
+ export interface EmitAutoDetectionOptions extends EventOptions {
169
+ detected: NetworkInfo;
170
+ applied: boolean;
171
+ confidence: 'high' | 'medium' | 'low';
172
+ reason?: string;
173
+ }
174
+ /**
175
+ * Union type for all network event types
176
+ */
177
+ export type NetworkEventType = NetworkQualityEvent | NetworkInfoEvent | NetworkConfigOverrideEvent | NetworkPresetEvent | NetworkClientHintsEvent | NetworkAutoDetectionEvent | NetworkManualUpdateEvent;
178
+ /**
179
+ * Network event handlers interface
180
+ */
181
+ export interface NetworkEventHandlers {
182
+ onNetworkQualityChange?: (event: NetworkQualityEvent) => void;
183
+ onNetworkInfoUpdate?: (event: NetworkInfoEvent) => void;
184
+ onNetworkConfigOverride?: (event: NetworkConfigOverrideEvent) => void;
185
+ onNetworkConfigRestored?: (event: NetworkConfigOverrideEvent) => void;
186
+ onNetworkPresetApplied?: (event: NetworkPresetEvent) => void;
187
+ onNetworkPresetChanged?: (event: NetworkPresetEvent) => void;
188
+ onClientHintsUpdated?: (event: NetworkClientHintsEvent) => void;
189
+ onAutoDetection?: (event: NetworkAutoDetectionEvent) => void;
190
+ onManualUpdate?: (event: NetworkManualUpdateEvent) => void;
191
+ onAnyNetworkEvent?: (event: NetworkEventType) => void;
192
+ }
193
+ /**
194
+ * Union type for all network event types
195
+ */
196
+ export type NetworkEventData = NetworkQualityEvent | NetworkInfoEvent | NetworkConfigOverrideEvent | NetworkPresetEvent | NetworkClientHintsEvent | NetworkAutoDetectionEvent | NetworkManualUpdateEvent;
@@ -0,0 +1 @@
1
+ export type * from './types';
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Performance Event Factory
3
+ * Factory for creating and emitting performance-related events
4
+ */
5
+ import type { EventOptions } from '..';
6
+ import type { PERFORMANCE_EVENTS } from '../..';
7
+ /**
8
+ * Request start event
9
+ */
10
+ export interface PerformanceRequestStartEvent {
11
+ type: typeof PERFORMANCE_EVENTS.REQUEST_START;
12
+ timestamp: number;
13
+ data: {
14
+ requestId: string;
15
+ url: string;
16
+ method: string;
17
+ };
18
+ }
19
+ /**
20
+ * Request complete event
21
+ */
22
+ export interface PerformanceRequestCompleteEvent {
23
+ type: typeof PERFORMANCE_EVENTS.REQUEST_COMPLETE;
24
+ timestamp: number;
25
+ data: {
26
+ requestId: string;
27
+ url: string;
28
+ method: string;
29
+ status: number;
30
+ duration: number;
31
+ size?: number;
32
+ };
33
+ }
34
+ /**
35
+ * Retry event
36
+ */
37
+ export interface PerformanceRetryEvent {
38
+ type: typeof PERFORMANCE_EVENTS.RETRY;
39
+ timestamp: number;
40
+ data: {
41
+ requestId: string;
42
+ attempt: number;
43
+ maxAttempts: number;
44
+ reason: string;
45
+ delay: number;
46
+ };
47
+ }
48
+ /**
49
+ * Threshold exceeded event
50
+ */
51
+ export interface PerformanceThresholdExceededEvent {
52
+ type: typeof PERFORMANCE_EVENTS.THRESHOLD_EXCEEDED;
53
+ timestamp: number;
54
+ data: {
55
+ type: string;
56
+ threshold: number;
57
+ actual: number;
58
+ context?: Record<string, unknown>;
59
+ };
60
+ }
61
+ /**
62
+ * Optimization applied event
63
+ */
64
+ export interface PerformanceOptimizationAppliedEvent {
65
+ type: typeof PERFORMANCE_EVENTS.OPTIMIZATION_APPLIED;
66
+ timestamp: number;
67
+ data: {
68
+ type: string;
69
+ reason: string;
70
+ impact?: string;
71
+ context?: Record<string, unknown>;
72
+ };
73
+ }
74
+ /**
75
+ * Metric recorded event
76
+ */
77
+ export interface PerformanceMetricRecordedEvent {
78
+ type: typeof PERFORMANCE_EVENTS.METRIC_RECORDED;
79
+ timestamp: number;
80
+ data: {
81
+ type: string;
82
+ value: number | string;
83
+ unit?: string;
84
+ tags?: Record<string, string>;
85
+ };
86
+ }
87
+ /**
88
+ * All performance event types
89
+ */
90
+ export type PerformanceEventData = PerformanceRequestStartEvent | PerformanceRequestCompleteEvent | PerformanceRetryEvent | PerformanceThresholdExceededEvent | PerformanceOptimizationAppliedEvent | PerformanceMetricRecordedEvent;
91
+ /**
92
+ * Options for emitRequestComplete method
93
+ */
94
+ export interface EmitRequestCompleteOptions extends EventOptions {
95
+ requestId: string;
96
+ url: string;
97
+ method: string;
98
+ status: number;
99
+ duration: number;
100
+ size?: number;
101
+ }
102
+ /**
103
+ * Options for emitRetry method
104
+ */
105
+ export interface EmitRetryOptions extends EventOptions {
106
+ requestId: string;
107
+ attempt: number;
108
+ maxAttempts: number;
109
+ reason: string;
110
+ delay: number;
111
+ }
112
+ /**
113
+ * Options for emitThresholdExceeded method
114
+ */
115
+ export interface EmitThresholdExceededOptions extends EventOptions {
116
+ type: string;
117
+ threshold: number;
118
+ actual: number;
119
+ context?: Record<string, unknown>;
120
+ }
121
+ /**
122
+ * Options for emitOptimizationApplied method
123
+ */
124
+ export interface EmitOptimizationAppliedOptions extends EventOptions {
125
+ type: string;
126
+ reason: string;
127
+ impact?: string;
128
+ context?: Record<string, unknown>;
129
+ }
130
+ /**
131
+ * Options for emitMetricRecorded method
132
+ */
133
+ export interface EmitMetricRecordedOptions extends EventOptions {
134
+ type: string;
135
+ value: number | string;
136
+ unit?: string;
137
+ tags?: Record<string, string>;
138
+ }
139
+ /**
140
+ * Performance event handlers interface
141
+ */
142
+ export interface PerformanceEventHandlers {
143
+ onRequestStart?: (event: PerformanceRequestStartEvent) => void;
144
+ onRequestComplete?: (event: PerformanceRequestCompleteEvent) => void;
145
+ onRetry?: (event: PerformanceRetryEvent) => void;
146
+ onMetricRecorded?: (event: PerformanceMetricRecordedEvent) => void;
147
+ onThresholdExceeded?: (event: PerformanceThresholdExceededEvent) => void;
148
+ onOptimizationApplied?: (event: PerformanceOptimizationAppliedEvent) => void;
149
+ onAnyPerformanceEvent?: (event: PerformanceEventData) => void;
150
+ }
@@ -0,0 +1,84 @@
1
+ import type { EventScope, EventScopeWithTemporary, HandlerStrategy } from '..';
2
+ import type { EventEmitter, HandlerOptions } from '../..';
3
+ /**
4
+ * Base structure for all events
5
+ */
6
+ export interface BaseEvent {
7
+ /** Event type/name */
8
+ type: string;
9
+ /** Timestamp when event was created (milliseconds since epoch) */
10
+ timestamp: number;
11
+ /** Optional event source identifier */
12
+ source?: string;
13
+ }
14
+ /**
15
+ * Options for event creation
16
+ */
17
+ export interface EventOptions {
18
+ /** Whether to emit immediately after creation */
19
+ emit?: boolean;
20
+ /** Additional metadata to attach */
21
+ metadata?: Record<string, unknown>;
22
+ /** Event source identifier */
23
+ source?: string;
24
+ }
25
+ /**
26
+ * Interface representing the public API of BaseEventFactory
27
+ * Useful for type-checking without requiring the actual class instance
28
+ *
29
+ * This interface allows for:
30
+ * - Duck typing compatibility
31
+ * - Easier mocking in tests
32
+ * - Type-safe function parameters without importing the class
33
+ * - Clearer documentation of the public API contract
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * function useEventFactory(factory: BaseEventFactoryLike<'headers'>): void {
38
+ * factory.on('changed', (data) => console.log(data));
39
+ * factory.emit('changed', { headers: {} });
40
+ * }
41
+ * ```
42
+ */
43
+ export interface BaseEventFactoryLike<TNamespace extends string = string> {
44
+ readonly emitter: EventEmitter;
45
+ readonly namespace: TNamespace;
46
+ readonly scope: string;
47
+ emit<T = unknown>(event: string, data?: T): void;
48
+ emitAcrossScopes(eventType: string, eventName: string, data: unknown, scopes?: EventScopeWithTemporary[]): void;
49
+ emitGeneric(eventNameOrType: string, data?: unknown): void;
50
+ on<T = unknown>(eventName: string, handler: (data: T) => void): () => void;
51
+ onAny<T = unknown>(handler: (data: T) => void): () => void;
52
+ once<T = unknown>(eventName: string, handler: (data: T) => void): () => void;
53
+ onceAny<T = unknown>(handler: (data: T) => void): () => void;
54
+ onScoped<T = unknown>(scope: EventScope, eventName: string, handler: (data: T) => void): () => void;
55
+ onceScoped<T = unknown>(scope: EventScope, eventName: string, handler: (data: T) => void): () => void;
56
+ addScopedHandler<T = unknown>(scope: EventScope, eventName: string, handler: (data: T) => void, options?: HandlerOptions & {
57
+ originalHandler?: (data: T) => void;
58
+ }): () => void;
59
+ off(event: string, handler?: Function): void;
60
+ offNamespaced(eventName: string, handler?: (data: unknown) => void): void;
61
+ offAny(handler?: (data: unknown) => void): void;
62
+ removeAllListeners(event?: string): void;
63
+ removeAllListenersNamespaced(eventName?: string): void;
64
+ removeAllScopedListeners(scope: EventScope, eventName?: string): void;
65
+ listeners(event: string): Function[];
66
+ listenersNamespaced(eventName: string): Function[];
67
+ listenerCount(event: string): number;
68
+ listenerCountNamespaced(eventName: string): number;
69
+ getScopedHandlers(scope: EventScope): Map<string, Array<(data: unknown) => void>>;
70
+ getScopedEventHandlers(scope: EventScope, eventName: string): Array<(data: unknown) => void>;
71
+ getOriginalScopedHandlers(scope: EventScope): Map<string, Array<(data: unknown) => void>>;
72
+ getOriginalScopedEventHandlers(scope: EventScope, eventName: string): Array<(data: unknown) => void>;
73
+ clearScopedHandlers(scope: EventScope): void;
74
+ mergeHandlerGroup<T>(global?: T, client?: T, request?: T): T | T[] | undefined;
75
+ mergeHandlersByPriority<T>(global?: T, config?: T, client?: T, request?: T): T | undefined;
76
+ mergeHandlers<T extends object | Function | undefined>(options: {
77
+ strategy: HandlerStrategy;
78
+ usePriority: boolean;
79
+ global?: T;
80
+ client?: T;
81
+ request?: T;
82
+ }): T | undefined;
83
+ getNamespace(): string;
84
+ }
@@ -2,4 +2,6 @@
2
2
  * API Events Types
3
3
  * Re-exports all event-related types for the API package
4
4
  */
5
+ export type * from './factories';
5
6
  export type * from './types';
7
+ export * from './enum';