schemantic 0.1.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 (131) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/LICENSE +21 -0
  3. package/README.md +827 -0
  4. package/dist/__tests__/setup.d.ts +6 -0
  5. package/dist/__tests__/setup.d.ts.map +1 -0
  6. package/dist/__tests__/setup.js +30 -0
  7. package/dist/__tests__/setup.js.map +1 -0
  8. package/dist/__tests__/test-config.d.ts +36 -0
  9. package/dist/__tests__/test-config.d.ts.map +1 -0
  10. package/dist/__tests__/test-config.js +563 -0
  11. package/dist/__tests__/test-config.js.map +1 -0
  12. package/dist/cli/index.d.ts +118 -0
  13. package/dist/cli/index.d.ts.map +1 -0
  14. package/dist/cli/index.js +657 -0
  15. package/dist/cli/index.js.map +1 -0
  16. package/dist/core/index.d.ts +5 -0
  17. package/dist/core/index.d.ts.map +1 -0
  18. package/dist/core/index.js +21 -0
  19. package/dist/core/index.js.map +1 -0
  20. package/dist/core/schemantic.d.ts +95 -0
  21. package/dist/core/schemantic.d.ts.map +1 -0
  22. package/dist/core/schemantic.js +543 -0
  23. package/dist/core/schemantic.js.map +1 -0
  24. package/dist/generators/api-client-generator.d.ts +145 -0
  25. package/dist/generators/api-client-generator.d.ts.map +1 -0
  26. package/dist/generators/api-client-generator.js +856 -0
  27. package/dist/generators/api-client-generator.js.map +1 -0
  28. package/dist/generators/base.d.ts +117 -0
  29. package/dist/generators/base.d.ts.map +1 -0
  30. package/dist/generators/base.js +232 -0
  31. package/dist/generators/base.js.map +1 -0
  32. package/dist/generators/enum-generator.d.ts +52 -0
  33. package/dist/generators/enum-generator.d.ts.map +1 -0
  34. package/dist/generators/enum-generator.js +178 -0
  35. package/dist/generators/enum-generator.js.map +1 -0
  36. package/dist/generators/factory.d.ts +59 -0
  37. package/dist/generators/factory.d.ts.map +1 -0
  38. package/dist/generators/factory.js +127 -0
  39. package/dist/generators/factory.js.map +1 -0
  40. package/dist/generators/hook-generator.d.ts +36 -0
  41. package/dist/generators/hook-generator.d.ts.map +1 -0
  42. package/dist/generators/hook-generator.js +495 -0
  43. package/dist/generators/hook-generator.js.map +1 -0
  44. package/dist/generators/index.d.ts +10 -0
  45. package/dist/generators/index.d.ts.map +1 -0
  46. package/dist/generators/index.js +26 -0
  47. package/dist/generators/index.js.map +1 -0
  48. package/dist/generators/object-generator.d.ts +48 -0
  49. package/dist/generators/object-generator.d.ts.map +1 -0
  50. package/dist/generators/object-generator.js +280 -0
  51. package/dist/generators/object-generator.js.map +1 -0
  52. package/dist/generators/primitive-generator.d.ts +40 -0
  53. package/dist/generators/primitive-generator.d.ts.map +1 -0
  54. package/dist/generators/primitive-generator.js +150 -0
  55. package/dist/generators/primitive-generator.js.map +1 -0
  56. package/dist/index.d.ts +17 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +42 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/parsers/base.d.ts +101 -0
  61. package/dist/parsers/base.d.ts.map +1 -0
  62. package/dist/parsers/base.js +77 -0
  63. package/dist/parsers/base.js.map +1 -0
  64. package/dist/parsers/factory.d.ts +64 -0
  65. package/dist/parsers/factory.d.ts.map +1 -0
  66. package/dist/parsers/factory.js +116 -0
  67. package/dist/parsers/factory.js.map +1 -0
  68. package/dist/parsers/index.d.ts +7 -0
  69. package/dist/parsers/index.d.ts.map +1 -0
  70. package/dist/parsers/index.js +23 -0
  71. package/dist/parsers/index.js.map +1 -0
  72. package/dist/parsers/openapi.d.ts +52 -0
  73. package/dist/parsers/openapi.d.ts.map +1 -0
  74. package/dist/parsers/openapi.js +396 -0
  75. package/dist/parsers/openapi.js.map +1 -0
  76. package/dist/plugins/branded-types.d.ts +28 -0
  77. package/dist/plugins/branded-types.d.ts.map +1 -0
  78. package/dist/plugins/branded-types.js +568 -0
  79. package/dist/plugins/branded-types.js.map +1 -0
  80. package/dist/plugins/builtin.d.ts +38 -0
  81. package/dist/plugins/builtin.d.ts.map +1 -0
  82. package/dist/plugins/builtin.js +283 -0
  83. package/dist/plugins/builtin.js.map +1 -0
  84. package/dist/plugins/index.d.ts +7 -0
  85. package/dist/plugins/index.d.ts.map +1 -0
  86. package/dist/plugins/index.js +23 -0
  87. package/dist/plugins/index.js.map +1 -0
  88. package/dist/plugins/loader.d.ts +92 -0
  89. package/dist/plugins/loader.d.ts.map +1 -0
  90. package/dist/plugins/loader.js +245 -0
  91. package/dist/plugins/loader.js.map +1 -0
  92. package/dist/plugins/manager.d.ts +99 -0
  93. package/dist/plugins/manager.d.ts.map +1 -0
  94. package/dist/plugins/manager.js +233 -0
  95. package/dist/plugins/manager.js.map +1 -0
  96. package/dist/plugins/performance-monitoring.d.ts +98 -0
  97. package/dist/plugins/performance-monitoring.d.ts.map +1 -0
  98. package/dist/plugins/performance-monitoring.js +596 -0
  99. package/dist/plugins/performance-monitoring.js.map +1 -0
  100. package/dist/plugins/request-deduplication.d.ts +27 -0
  101. package/dist/plugins/request-deduplication.d.ts.map +1 -0
  102. package/dist/plugins/request-deduplication.js +650 -0
  103. package/dist/plugins/request-deduplication.js.map +1 -0
  104. package/dist/plugins/zod-validation.d.ts +63 -0
  105. package/dist/plugins/zod-validation.d.ts.map +1 -0
  106. package/dist/plugins/zod-validation.js +743 -0
  107. package/dist/plugins/zod-validation.js.map +1 -0
  108. package/dist/types/core.d.ts +203 -0
  109. package/dist/types/core.d.ts.map +1 -0
  110. package/dist/types/core.js +24 -0
  111. package/dist/types/core.js.map +1 -0
  112. package/dist/types/index.d.ts +7 -0
  113. package/dist/types/index.d.ts.map +1 -0
  114. package/dist/types/index.js +23 -0
  115. package/dist/types/index.js.map +1 -0
  116. package/dist/types/openapi.d.ts +250 -0
  117. package/dist/types/openapi.d.ts.map +1 -0
  118. package/dist/types/openapi.js +8 -0
  119. package/dist/types/openapi.js.map +1 -0
  120. package/dist/types/schema.d.ts +68 -0
  121. package/dist/types/schema.d.ts.map +1 -0
  122. package/dist/types/schema.js +22 -0
  123. package/dist/types/schema.js.map +1 -0
  124. package/docs/ADVANCED_PLUGINS_IMPLEMENTATION.md +355 -0
  125. package/docs/ADVANCED_PLUGIN_DEVELOPMENT.md +309 -0
  126. package/docs/API.md +600 -0
  127. package/docs/CONFIGURATION.md +722 -0
  128. package/docs/FASTAPI_TUTORIAL.md +1497 -0
  129. package/docs/PLUGINS.md +683 -0
  130. package/docs/PLUGIN_DEVELOPMENT.md +720 -0
  131. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Plugin manager for the schemantic system
3
+ * Handles loading, registration, and execution of plugins
4
+ */
5
+ import { SchemanticPlugin, GenerationContext, GenerationResult, GeneratedType, GeneratedApiClient } from "../types/core";
6
+ import { ResolvedSchema } from "../types/schema";
7
+ /**
8
+ * Plugin manager class
9
+ */
10
+ export declare class PluginManager {
11
+ private plugins;
12
+ private enabledPlugins;
13
+ /**
14
+ * Register a plugin
15
+ */
16
+ registerPlugin(plugin: SchemanticPlugin): void;
17
+ /**
18
+ * Unregister a plugin
19
+ */
20
+ unregisterPlugin(name: string): void;
21
+ /**
22
+ * Enable a plugin
23
+ */
24
+ enablePlugin(name: string): void;
25
+ /**
26
+ * Disable a plugin
27
+ */
28
+ disablePlugin(name: string): void;
29
+ /**
30
+ * Check if a plugin is enabled
31
+ */
32
+ isPluginEnabled(name: string): boolean;
33
+ /**
34
+ * Get all registered plugins
35
+ */
36
+ getAllPlugins(): SchemanticPlugin[];
37
+ /**
38
+ * Get enabled plugins
39
+ */
40
+ getEnabledPlugins(): SchemanticPlugin[];
41
+ /**
42
+ * Get a specific plugin
43
+ */
44
+ getPlugin(name: string): SchemanticPlugin | undefined;
45
+ /**
46
+ * Execute before generation hook
47
+ */
48
+ executeBeforeGeneration(context: GenerationContext): Promise<void>;
49
+ /**
50
+ * Execute after generation hook
51
+ */
52
+ executeAfterGeneration(context: GenerationContext, result: GenerationResult): Promise<void>;
53
+ /**
54
+ * Execute before type generation hook
55
+ */
56
+ executeBeforeTypeGeneration(typeName: string, schema: ResolvedSchema, context: GenerationContext): Promise<void>;
57
+ /**
58
+ * Execute after type generation hook
59
+ */
60
+ executeAfterTypeGeneration(typeName: string, generatedType: GeneratedType, context: GenerationContext): Promise<void>;
61
+ /**
62
+ * Execute before client generation hook
63
+ */
64
+ executeBeforeClientGeneration(context: GenerationContext): Promise<void>;
65
+ /**
66
+ * Execute after client generation hook
67
+ */
68
+ executeAfterClientGeneration(generatedClient: GeneratedApiClient, context: GenerationContext): Promise<void>;
69
+ /**
70
+ * Transform schema using plugins
71
+ */
72
+ transformSchema(schema: ResolvedSchema, context: GenerationContext): ResolvedSchema;
73
+ /**
74
+ * Get custom type generators from plugins
75
+ */
76
+ getCustomTypeGenerators(): Map<string, (schema: ResolvedSchema, context: GenerationContext) => GeneratedType>;
77
+ /**
78
+ * Get custom client generators from plugins
79
+ */
80
+ getCustomClientGenerators(): Map<string, (context: GenerationContext) => GeneratedApiClient>;
81
+ /**
82
+ * Clear all plugins
83
+ */
84
+ clear(): void;
85
+ /**
86
+ * Get plugin statistics
87
+ */
88
+ getStatistics(): PluginStatistics;
89
+ }
90
+ /**
91
+ * Plugin statistics
92
+ */
93
+ export interface PluginStatistics {
94
+ totalPlugins: number;
95
+ enabledPlugins: number;
96
+ disabledPlugins: number;
97
+ pluginNames: string[];
98
+ }
99
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,cAAc,CAA0B;IAEhD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAI9C;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,aAAa,IAAI,gBAAgB,EAAE;IAInC;;OAEG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAMvC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIrD;;OAEG;IACG,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxE;;OAEG;IACG,sBAAsB,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACG,2BAA2B,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACG,0BAA0B,CAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACG,6BAA6B,CACjC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACG,4BAA4B,CAChC,eAAe,EAAE,kBAAkB,EACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACH,eAAe,CACb,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,iBAAiB,GACzB,cAAc;IAwBjB;;OAEG;IACH,uBAAuB,IAAI,GAAG,CAC5B,MAAM,EACN,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,KAAK,aAAa,CACtE;IAqBD;;OAEG;IACH,yBAAyB,IAAI,GAAG,CAC9B,MAAM,EACN,CAAC,OAAO,EAAE,iBAAiB,KAAK,kBAAkB,CACnD;IAqBD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,aAAa,IAAI,gBAAgB;CAQlC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin manager for the schemantic system
4
+ * Handles loading, registration, and execution of plugins
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PluginManager = void 0;
8
+ /**
9
+ * Plugin manager class
10
+ */
11
+ class PluginManager {
12
+ constructor() {
13
+ this.plugins = new Map();
14
+ this.enabledPlugins = new Set();
15
+ }
16
+ /**
17
+ * Register a plugin
18
+ */
19
+ registerPlugin(plugin) {
20
+ this.plugins.set(plugin.name, plugin);
21
+ }
22
+ /**
23
+ * Unregister a plugin
24
+ */
25
+ unregisterPlugin(name) {
26
+ this.plugins.delete(name);
27
+ this.enabledPlugins.delete(name);
28
+ }
29
+ /**
30
+ * Enable a plugin
31
+ */
32
+ enablePlugin(name) {
33
+ if (this.plugins.has(name)) {
34
+ this.enabledPlugins.add(name);
35
+ }
36
+ }
37
+ /**
38
+ * Disable a plugin
39
+ */
40
+ disablePlugin(name) {
41
+ this.enabledPlugins.delete(name);
42
+ }
43
+ /**
44
+ * Check if a plugin is enabled
45
+ */
46
+ isPluginEnabled(name) {
47
+ return this.enabledPlugins.has(name);
48
+ }
49
+ /**
50
+ * Get all registered plugins
51
+ */
52
+ getAllPlugins() {
53
+ return Array.from(this.plugins.values());
54
+ }
55
+ /**
56
+ * Get enabled plugins
57
+ */
58
+ getEnabledPlugins() {
59
+ return Array.from(this.enabledPlugins)
60
+ .map((name) => this.plugins.get(name))
61
+ .filter((plugin) => plugin !== undefined);
62
+ }
63
+ /**
64
+ * Get a specific plugin
65
+ */
66
+ getPlugin(name) {
67
+ return this.plugins.get(name);
68
+ }
69
+ /**
70
+ * Execute before generation hook
71
+ */
72
+ async executeBeforeGeneration(context) {
73
+ const enabledPlugins = this.getEnabledPlugins();
74
+ for (const plugin of enabledPlugins) {
75
+ if (plugin.beforeGeneration) {
76
+ try {
77
+ await plugin.beforeGeneration(context);
78
+ }
79
+ catch (error) {
80
+ console.warn(`Plugin ${plugin.name} beforeGeneration hook failed:`, error);
81
+ }
82
+ }
83
+ }
84
+ }
85
+ /**
86
+ * Execute after generation hook
87
+ */
88
+ async executeAfterGeneration(context, result) {
89
+ const enabledPlugins = this.getEnabledPlugins();
90
+ for (const plugin of enabledPlugins) {
91
+ if (plugin.afterGeneration) {
92
+ try {
93
+ await plugin.afterGeneration(context, result);
94
+ }
95
+ catch (error) {
96
+ console.warn(`Plugin ${plugin.name} afterGeneration hook failed:`, error);
97
+ }
98
+ }
99
+ }
100
+ }
101
+ /**
102
+ * Execute before type generation hook
103
+ */
104
+ async executeBeforeTypeGeneration(typeName, schema, context) {
105
+ const enabledPlugins = this.getEnabledPlugins();
106
+ for (const plugin of enabledPlugins) {
107
+ if (plugin.beforeTypeGeneration) {
108
+ try {
109
+ await plugin.beforeTypeGeneration(typeName, schema, context);
110
+ }
111
+ catch (error) {
112
+ console.warn(`Plugin ${plugin.name} beforeTypeGeneration hook failed:`, error);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ /**
118
+ * Execute after type generation hook
119
+ */
120
+ async executeAfterTypeGeneration(typeName, generatedType, context) {
121
+ const enabledPlugins = this.getEnabledPlugins();
122
+ for (const plugin of enabledPlugins) {
123
+ if (plugin.afterTypeGeneration) {
124
+ try {
125
+ await plugin.afterTypeGeneration(typeName, generatedType, context);
126
+ }
127
+ catch (error) {
128
+ console.warn(`Plugin ${plugin.name} afterTypeGeneration hook failed:`, error);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ /**
134
+ * Execute before client generation hook
135
+ */
136
+ async executeBeforeClientGeneration(context) {
137
+ const enabledPlugins = this.getEnabledPlugins();
138
+ for (const plugin of enabledPlugins) {
139
+ if (plugin.beforeClientGeneration) {
140
+ try {
141
+ await plugin.beforeClientGeneration(context);
142
+ }
143
+ catch (error) {
144
+ console.warn(`Plugin ${plugin.name} beforeClientGeneration hook failed:`, error);
145
+ }
146
+ }
147
+ }
148
+ }
149
+ /**
150
+ * Execute after client generation hook
151
+ */
152
+ async executeAfterClientGeneration(generatedClient, context) {
153
+ const enabledPlugins = this.getEnabledPlugins();
154
+ for (const plugin of enabledPlugins) {
155
+ if (plugin.afterClientGeneration) {
156
+ try {
157
+ await plugin.afterClientGeneration(generatedClient, context);
158
+ }
159
+ catch (error) {
160
+ console.warn(`Plugin ${plugin.name} afterClientGeneration hook failed:`, error);
161
+ }
162
+ }
163
+ }
164
+ }
165
+ /**
166
+ * Transform schema using plugins
167
+ */
168
+ transformSchema(schema, context) {
169
+ let transformedSchema = schema;
170
+ const enabledPlugins = this.getEnabledPlugins();
171
+ for (const plugin of enabledPlugins) {
172
+ if (plugin.transformSchema) {
173
+ try {
174
+ transformedSchema = plugin.transformSchema(transformedSchema, context);
175
+ }
176
+ catch (error) {
177
+ console.warn(`Plugin ${plugin.name} transformSchema hook failed:`, error);
178
+ }
179
+ }
180
+ }
181
+ return transformedSchema;
182
+ }
183
+ /**
184
+ * Get custom type generators from plugins
185
+ */
186
+ getCustomTypeGenerators() {
187
+ const generators = new Map();
188
+ const enabledPlugins = this.getEnabledPlugins();
189
+ for (const plugin of enabledPlugins) {
190
+ if (plugin.customTypeGenerators) {
191
+ for (const [name, generator] of Object.entries(plugin.customTypeGenerators)) {
192
+ generators.set(`${plugin.name}:${name}`, generator);
193
+ }
194
+ }
195
+ }
196
+ return generators;
197
+ }
198
+ /**
199
+ * Get custom client generators from plugins
200
+ */
201
+ getCustomClientGenerators() {
202
+ const generators = new Map();
203
+ const enabledPlugins = this.getEnabledPlugins();
204
+ for (const plugin of enabledPlugins) {
205
+ if (plugin.customClientGenerators) {
206
+ for (const [name, generator] of Object.entries(plugin.customClientGenerators)) {
207
+ generators.set(`${plugin.name}:${name}`, generator);
208
+ }
209
+ }
210
+ }
211
+ return generators;
212
+ }
213
+ /**
214
+ * Clear all plugins
215
+ */
216
+ clear() {
217
+ this.plugins.clear();
218
+ this.enabledPlugins.clear();
219
+ }
220
+ /**
221
+ * Get plugin statistics
222
+ */
223
+ getStatistics() {
224
+ return {
225
+ totalPlugins: this.plugins.size,
226
+ enabledPlugins: this.enabledPlugins.size,
227
+ disabledPlugins: this.plugins.size - this.enabledPlugins.size,
228
+ pluginNames: Array.from(this.plugins.keys()),
229
+ };
230
+ }
231
+ }
232
+ exports.PluginManager = PluginManager;
233
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Advanced Performance Monitoring Plugin
3
+ *
4
+ * Implements sophisticated performance tracking, bundle size optimization,
5
+ * and intelligent monitoring for generated API clients and types.
6
+ *
7
+ * Key Features:
8
+ * - Request timing collection with statistical analysis
9
+ * - Bundle size analysis and optimization recommendations
10
+ * - Memory usage profiling and leak detection
11
+ * - Performance regression detection
12
+ * - Automated optimization suggestions
13
+ *
14
+ * Architecture:
15
+ * - Non-intrusive performance instrumentation
16
+ * - Statistical analysis with percentile calculations
17
+ * - Memory-efficient metrics storage with TTL
18
+ * - Configurable monitoring thresholds
19
+ */
20
+ import { SchemanticPlugin } from "../types/core";
21
+ /**
22
+ * Performance metric data structure
23
+ */
24
+ interface PerformanceMetric {
25
+ timestamp: number;
26
+ operation: string;
27
+ duration: number;
28
+ metadata: Record<string, unknown>;
29
+ }
30
+ /**
31
+ * Bundle analysis result
32
+ */
33
+ interface BundleAnalysis {
34
+ totalSize: number;
35
+ gzippedSize?: number;
36
+ chunks: {
37
+ name: string;
38
+ size: number;
39
+ dependencies: string[];
40
+ }[];
41
+ recommendations: string[];
42
+ }
43
+ /**
44
+ * Performance statistics calculator
45
+ */
46
+ declare class PerformanceAnalyzer {
47
+ private readonly maxSnapshots;
48
+ constructor(maxSnapshots?: number);
49
+ recordMetric(metric: PerformanceMetric): void;
50
+ getStatistics(operation: string): PerformanceStatistics | null;
51
+ private getPercentile;
52
+ private calculateStandardDeviation;
53
+ recordMemorySnapshot(): void;
54
+ analyzeBundleSize(generatedContent: string, dependencies: string[]): BundleAnalysis;
55
+ generateReport(format?: "json" | "html" | "markdown"): string;
56
+ private getAllStatistics;
57
+ /**
58
+ * Get all statistics (public method)
59
+ */
60
+ getAllStats(): Record<string, PerformanceStatistics>;
61
+ private getMemoryAnalysis;
62
+ private generateHTMLReport;
63
+ private generateMarkdownReport;
64
+ clearMetrics(): void;
65
+ }
66
+ /**
67
+ * Performance statistics interface
68
+ */
69
+ interface PerformanceStatistics {
70
+ count: number;
71
+ min: number;
72
+ max: number;
73
+ mean: number;
74
+ median: number;
75
+ p95: number;
76
+ p99: number;
77
+ standardDeviation: number;
78
+ }
79
+ /**
80
+ * Global performance analyzer instance
81
+ */
82
+ declare const performanceAnalyzer: PerformanceAnalyzer;
83
+ /**
84
+ * Advanced Performance Monitoring Plugin Implementation
85
+ */
86
+ export declare const performanceMonitoringPlugin: SchemanticPlugin;
87
+ /**
88
+ * Export performance analyzer instance for external use
89
+ */
90
+ export { performanceAnalyzer };
91
+ /**
92
+ * Export utility functions
93
+ */
94
+ export declare function getPerformanceMonitoringStats(): Record<string, PerformanceStatistics>;
95
+ export declare function clearPerformanceMonitoringCache(): void;
96
+ export declare function generatePerformanceReport(format?: "json" | "html" | "markdown"): string;
97
+ export default performanceMonitoringPlugin;
98
+ //# sourceMappingURL=performance-monitoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-monitoring.d.ts","sourceRoot":"","sources":["../../src/plugins/performance-monitoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,gBAAgB,EAIjB,MAAM,eAAe,CAAC;AA+BvB;;GAEG;AACH,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,EAAE,CAAC;IACJ,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAmBD;;GAEG;AACH,cAAM,mBAAmB;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,SAAO;IAI/B,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAe7C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;IAqB9D,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,0BAA0B;IAQlC,oBAAoB,IAAI,IAAI;IAiB5B,iBAAiB,CACf,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAAE,GACrB,cAAc;IA0BjB,cAAc,CAAC,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,UAAmB,GAAG,MAAM;IAkBrE,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAIpD,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,sBAAsB;IAgB9B,YAAY,IAAI,IAAI;CAKrB;AAED;;GAEG;AACH,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAqBD;;GAEG;AACH,QAAA,MAAM,mBAAmB,qBAA4B,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,gBA6MzC,CAAC;AAiOF;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CACrD,MAAM,EACN,qBAAqB,CACtB,CAEA;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAED,wBAAgB,yBAAyB,CACvC,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,UAAmB,GAC5C,MAAM,CAER;AAGD,eAAe,2BAA2B,CAAC"}