@coherent.js/core 1.0.0-beta.6 → 1.0.0-beta.7

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 (108) hide show
  1. package/dist/coherent.d.ts +150 -10
  2. package/dist/coherent.d.ts.map +1 -1
  3. package/dist/coherent.js +166 -33
  4. package/dist/coherent.js.map +1 -1
  5. package/dist/components/component-system.js +109 -109
  6. package/dist/components/lifecycle.d.ts +212 -0
  7. package/dist/components/lifecycle.d.ts.map +1 -0
  8. package/dist/components/lifecycle.js +525 -0
  9. package/dist/components/lifecycle.js.map +1 -0
  10. package/dist/core/html-utils.js +5 -5
  11. package/dist/core/object-factory.js +21 -21
  12. package/dist/core/object-utils.js +2 -2
  13. package/dist/dev/dev-tools.d.ts +1 -1
  14. package/dist/dev/dev-tools.js +28 -28
  15. package/dist/forms/validation.d.ts +271 -0
  16. package/dist/forms/validation.d.ts.map +1 -0
  17. package/dist/forms/validation.js +573 -0
  18. package/dist/forms/validation.js.map +1 -0
  19. package/dist/index.cjs +157 -4
  20. package/dist/index.cjs.map +4 -4
  21. package/dist/index.js +153 -4
  22. package/dist/index.js.map +4 -4
  23. package/dist/performance/bundle-optimizer.js +11 -11
  24. package/dist/performance/cache-manager.js +6 -6
  25. package/dist/performance/component-cache.d.ts +120 -0
  26. package/dist/performance/component-cache.d.ts.map +1 -0
  27. package/dist/performance/component-cache.js +364 -0
  28. package/dist/performance/component-cache.js.map +1 -0
  29. package/dist/performance/monitor.js +10 -10
  30. package/dist/performance/monitor.js.map +1 -1
  31. package/dist/rendering/base-renderer.js +13 -13
  32. package/dist/rendering/css-manager.d.ts +73 -0
  33. package/dist/rendering/css-manager.d.ts.map +1 -0
  34. package/dist/rendering/css-manager.js +176 -0
  35. package/dist/rendering/css-manager.js.map +1 -0
  36. package/dist/rendering/dom-renderer.d.ts +23 -0
  37. package/dist/rendering/dom-renderer.d.ts.map +1 -1
  38. package/dist/rendering/dom-renderer.js +77 -9
  39. package/dist/rendering/dom-renderer.js.map +1 -1
  40. package/dist/rendering/html-renderer.d.ts +15 -0
  41. package/dist/rendering/html-renderer.d.ts.map +1 -1
  42. package/dist/rendering/html-renderer.js +85 -4
  43. package/dist/rendering/html-renderer.js.map +1 -1
  44. package/dist/rendering/streaming-renderer.js +12 -12
  45. package/dist/rendering/vdom-diff.d.ts +47 -0
  46. package/dist/rendering/vdom-diff.d.ts.map +1 -0
  47. package/dist/rendering/vdom-diff.js +416 -0
  48. package/dist/rendering/vdom-diff.js.map +1 -0
  49. package/dist/routing/router.d.ts +241 -0
  50. package/dist/routing/router.d.ts.map +1 -0
  51. package/dist/routing/router.js +648 -0
  52. package/dist/routing/router.js.map +1 -0
  53. package/dist/state/reactive-state.d.ts +166 -0
  54. package/dist/state/reactive-state.d.ts.map +1 -0
  55. package/dist/state/reactive-state.js +546 -0
  56. package/dist/state/reactive-state.js.map +1 -0
  57. package/dist/utils/dependency-utils.js +2 -2
  58. package/dist/utils/error-handler.d.ts +148 -0
  59. package/dist/utils/error-handler.d.ts.map +1 -0
  60. package/dist/utils/error-handler.js +468 -0
  61. package/dist/utils/error-handler.js.map +1 -0
  62. package/dist/utils/normalization.js +1 -1
  63. package/dist/utils/validation.js +1 -1
  64. package/package.json +5 -1
  65. package/dist/database/adapters/mongodb.d.ts +0 -15
  66. package/dist/database/adapters/mongodb.d.ts.map +0 -1
  67. package/dist/database/adapters/mongodb.js +0 -216
  68. package/dist/database/adapters/mongodb.js.map +0 -1
  69. package/dist/database/adapters/mysql.d.ts +0 -12
  70. package/dist/database/adapters/mysql.d.ts.map +0 -1
  71. package/dist/database/adapters/mysql.js +0 -171
  72. package/dist/database/adapters/mysql.js.map +0 -1
  73. package/dist/database/adapters/postgresql.d.ts +0 -12
  74. package/dist/database/adapters/postgresql.d.ts.map +0 -1
  75. package/dist/database/adapters/postgresql.js +0 -177
  76. package/dist/database/adapters/postgresql.js.map +0 -1
  77. package/dist/database/adapters/sqlite.d.ts +0 -15
  78. package/dist/database/adapters/sqlite.d.ts.map +0 -1
  79. package/dist/database/adapters/sqlite.js +0 -241
  80. package/dist/database/adapters/sqlite.js.map +0 -1
  81. package/dist/database/connection-manager.d.ts +0 -135
  82. package/dist/database/connection-manager.d.ts.map +0 -1
  83. package/dist/database/connection-manager.js +0 -362
  84. package/dist/database/connection-manager.js.map +0 -1
  85. package/dist/database/index.d.ts +0 -38
  86. package/dist/database/index.d.ts.map +0 -1
  87. package/dist/database/index.js +0 -60
  88. package/dist/database/index.js.map +0 -1
  89. package/dist/database/middleware.d.ts +0 -122
  90. package/dist/database/middleware.d.ts.map +0 -1
  91. package/dist/database/middleware.js +0 -390
  92. package/dist/database/middleware.js.map +0 -1
  93. package/dist/database/migration.d.ts +0 -62
  94. package/dist/database/migration.d.ts.map +0 -1
  95. package/dist/database/migration.js +0 -423
  96. package/dist/database/migration.js.map +0 -1
  97. package/dist/database/model.d.ts +0 -8
  98. package/dist/database/model.d.ts.map +0 -1
  99. package/dist/database/model.js +0 -167
  100. package/dist/database/model.js.map +0 -1
  101. package/dist/database/query-builder.d.ts +0 -111
  102. package/dist/database/query-builder.d.ts.map +0 -1
  103. package/dist/database/query-builder.js +0 -187
  104. package/dist/database/query-builder.js.map +0 -1
  105. package/dist/database/utils.d.ts +0 -196
  106. package/dist/database/utils.d.ts.map +0 -1
  107. package/dist/database/utils.js +0 -372
  108. package/dist/database/utils.js.map +0 -1
@@ -107,9 +107,9 @@ export class DevTools {
107
107
  this.postRenderAnalysis(component, result, renderTime, renderId);
108
108
  return result;
109
109
  }
110
- catch (_error) {
111
- this.handleRenderError(_error, component, context, renderId);
112
- throw _error;
110
+ catch (error) {
111
+ this.handleRenderError(error, component, context, renderId);
112
+ throw error;
113
113
  }
114
114
  };
115
115
  }
@@ -187,10 +187,10 @@ export class DevTools {
187
187
  try {
188
188
  validateComponent(component);
189
189
  }
190
- catch (_error) {
190
+ catch (error) {
191
191
  return {
192
192
  isValid: false,
193
- message: `Invalid component at ${path}: ${_error.message}`
193
+ message: `Invalid component at ${path}: ${error.message}`
194
194
  };
195
195
  }
196
196
  // Recursive validation for objects and arrays
@@ -247,7 +247,7 @@ export class DevTools {
247
247
  */
248
248
  analyzeContext(context, renderId) {
249
249
  // Large context warning
250
- const contextSize = JSON.stringify(context).length;
250
+ const contextSize = JSON.stringify(_context).length;
251
251
  if (contextSize > 10000) {
252
252
  this.warnings.push({
253
253
  type: 'context',
@@ -258,10 +258,10 @@ export class DevTools {
258
258
  }
259
259
  // Circular reference check
260
260
  try {
261
- JSON.stringify(context);
261
+ JSON.stringify(_context);
262
262
  }
263
- catch (_error) {
264
- if (_error.message.includes('circular')) {
263
+ catch (error) {
264
+ if (error.message.includes('circular')) {
265
265
  this.warnings.push({
266
266
  type: 'context',
267
267
  message: 'Circular reference detected in context',
@@ -383,12 +383,12 @@ export class DevTools {
383
383
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
384
384
  }
385
385
  /**
386
- * Setup _error handling
386
+ * Setup error handling
387
387
  */
388
388
  setupErrorHandling() {
389
- // Global _error handler
390
- const originalConsoleError = console._error;
391
- console._error = (...args) => {
389
+ // Global error handler
390
+ const originalConsoleError = console.error;
391
+ console.error = (...args) => {
392
392
  // Log to dev tools
393
393
  this.errors.push({
394
394
  type: 'console',
@@ -410,11 +410,11 @@ export class DevTools {
410
410
  });
411
411
  });
412
412
  }
413
- // Browser _error handler
413
+ // Browser error handler
414
414
  if (typeof window !== 'undefined') {
415
- window.addEventListener('_error', (event) => {
415
+ window.addEventListener('error', (event) => {
416
416
  this.errors.push({
417
- type: 'browser-_error',
417
+ type: 'browser-error',
418
418
  message: event.message,
419
419
  filename: event.filename,
420
420
  lineno: event.lineno,
@@ -427,18 +427,18 @@ export class DevTools {
427
427
  /**
428
428
  * Handle render errors specifically
429
429
  */
430
- handleRenderError(_error, component, context, renderId) {
430
+ handleRenderError(error, component, context, renderId) {
431
431
  this.errors.push({
432
- type: 'render-_error',
433
- message: _error.message,
434
- stack: _error.stack,
432
+ type: 'render-error',
433
+ message: error.message,
434
+ stack: error.stack,
435
435
  component: this.serializeComponent(component),
436
- context: Object.keys(context),
436
+ context: Object.keys(_context),
437
437
  renderId,
438
438
  timestamp: Date.now()
439
439
  });
440
- console._error(`🚨 Render Error in ${renderId}:`, _error.message);
441
- console._error('Component:', this.serializeComponent(component));
440
+ console.error(`🚨 Render Error in ${renderId}:`, error.message);
441
+ console.error('Component:', this.serializeComponent(component));
442
442
  }
443
443
  /**
444
444
  * Setup hot reload capability
@@ -736,8 +736,8 @@ export class DevTools {
736
736
  }
737
737
  return component;
738
738
  }
739
- catch (_error) {
740
- return `[Serialization Error: ${_error.message}]`;
739
+ catch (error) {
740
+ return `[Serialization Error: ${error.message}]`;
741
741
  }
742
742
  }
743
743
  clearDevData() {
@@ -812,7 +812,7 @@ export const devUtils = {
812
812
  for (const tag of tags) {
813
813
  const props = component[tag];
814
814
  if (props && typeof props === 'object') {
815
- console.log(`${tag} props:`, Object.keys(props));
815
+ console.log(`${tag} props:`, Object.keys(_props));
816
816
  }
817
817
  }
818
818
  }
@@ -826,8 +826,8 @@ export const devUtils = {
826
826
  console.log('✅ Component is valid');
827
827
  return true;
828
828
  }
829
- catch (_error) {
830
- console._error('❌ Component validation failed:', _error.message);
829
+ catch (error) {
830
+ console.error('❌ Component validation failed:', error.message);
831
831
  return false;
832
832
  }
833
833
  },
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Create form validator
3
+ */
4
+ export function createForm(schema: any, options?: {}): FormValidator;
5
+ export namespace validationRules {
6
+ function required(value: any, params?: boolean): true | "This field is required";
7
+ function min(value: any, minValue: any): string | true;
8
+ function max(value: any, maxValue: any): string | true;
9
+ function minLength(value: any, minLen: any): string | true;
10
+ function maxLength(value: any, maxLen: any): string | true;
11
+ function pattern(value: any, regex: any, message?: string): any;
12
+ function email(value: any): true | "Please enter a valid email address";
13
+ function url(value: any): true | "Please enter a valid URL";
14
+ function numeric(value: any): true | "Must be a valid number";
15
+ function integer(value: any): true | "Must be a whole number";
16
+ function alpha(value: any): true | "Must contain only letters";
17
+ function alphanumeric(value: any): true | "Must contain only letters and numbers";
18
+ function equals(value: any, otherValue: any, fieldName?: string): string | true;
19
+ function oneOf(value: any, options: any, message?: string): any;
20
+ function custom(value: any, validator: any, ...args: any[]): any;
21
+ }
22
+ /**
23
+ * Form validation and binding system
24
+ */
25
+ export class FormValidator {
26
+ constructor(schema?: {}, options?: {});
27
+ schema: {};
28
+ options: {
29
+ validateOnSubmit: boolean;
30
+ validateOnChange: boolean;
31
+ stopOnFirstError: boolean;
32
+ };
33
+ data: ReactiveState;
34
+ validators: Map<any, any>;
35
+ isSubmitting: import("../state/reactive-state.js").Observable;
36
+ submitCount: import("../state/reactive-state.js").Observable;
37
+ isValid: {
38
+ _getter: any;
39
+ _cached: boolean;
40
+ _dirty: boolean;
41
+ get value(): any;
42
+ set value(newValue: any);
43
+ _compute(): void;
44
+ _value: any;
45
+ _invalidate(): void;
46
+ _observers: Set<any>;
47
+ _computedDependents: Set<any>;
48
+ _options: {
49
+ deep: boolean;
50
+ immediate: boolean;
51
+ };
52
+ watch(callback: any, options?: {}): () => void;
53
+ unwatch(observer: any): void;
54
+ unwatchAll(): void;
55
+ };
56
+ isPending: {
57
+ _getter: any;
58
+ _cached: boolean;
59
+ _dirty: boolean;
60
+ get value(): any;
61
+ set value(newValue: any);
62
+ _compute(): void;
63
+ _value: any;
64
+ _invalidate(): void;
65
+ _observers: Set<any>;
66
+ _computedDependents: Set<any>;
67
+ _options: {
68
+ deep: boolean;
69
+ immediate: boolean;
70
+ };
71
+ watch(callback: any, options?: {}): () => void;
72
+ unwatch(observer: any): void;
73
+ unwatchAll(): void;
74
+ };
75
+ isTouched: {
76
+ _getter: any;
77
+ _cached: boolean;
78
+ _dirty: boolean;
79
+ get value(): any;
80
+ set value(newValue: any);
81
+ _compute(): void;
82
+ _value: any;
83
+ _invalidate(): void;
84
+ _observers: Set<any>;
85
+ _computedDependents: Set<any>;
86
+ _options: {
87
+ deep: boolean;
88
+ immediate: boolean;
89
+ };
90
+ watch(callback: any, options?: {}): () => void;
91
+ unwatch(observer: any): void;
92
+ unwatchAll(): void;
93
+ };
94
+ isDirty: {
95
+ _getter: any;
96
+ _cached: boolean;
97
+ _dirty: boolean;
98
+ get value(): any;
99
+ set value(newValue: any);
100
+ _compute(): void;
101
+ _value: any;
102
+ _invalidate(): void;
103
+ _observers: Set<any>;
104
+ _computedDependents: Set<any>;
105
+ _options: {
106
+ deep: boolean;
107
+ immediate: boolean;
108
+ };
109
+ watch(callback: any, options?: {}): () => void;
110
+ unwatch(observer: any): void;
111
+ unwatchAll(): void;
112
+ };
113
+ errors: {
114
+ _getter: any;
115
+ _cached: boolean;
116
+ _dirty: boolean;
117
+ get value(): any;
118
+ set value(newValue: any);
119
+ _compute(): void;
120
+ _value: any;
121
+ _invalidate(): void;
122
+ _observers: Set<any>;
123
+ _computedDependents: Set<any>;
124
+ _options: {
125
+ deep: boolean;
126
+ immediate: boolean;
127
+ };
128
+ watch(callback: any, options?: {}): () => void;
129
+ unwatch(observer: any): void;
130
+ unwatchAll(): void;
131
+ };
132
+ /**
133
+ * Initialize field validators from schema
134
+ */
135
+ initializeValidators(): void;
136
+ /**
137
+ * Set field value
138
+ */
139
+ setField(name: any, value: any): void;
140
+ /**
141
+ * Get field value
142
+ */
143
+ getField(name: any): any;
144
+ /**
145
+ * Set multiple fields
146
+ */
147
+ setFields(fields: any): void;
148
+ /**
149
+ * Get all form data
150
+ */
151
+ getData(): {};
152
+ /**
153
+ * Validate specific field
154
+ */
155
+ validateField(name: any): Promise<any>;
156
+ /**
157
+ * Validate all fields
158
+ */
159
+ validateAll(): Promise<boolean>;
160
+ /**
161
+ * Handle field blur event
162
+ */
163
+ handleBlur(name: any): void;
164
+ /**
165
+ * Handle form submission
166
+ */
167
+ handleSubmit(submitHandler: any): Promise<boolean>;
168
+ /**
169
+ * Reset form to initial state
170
+ */
171
+ reset(): void;
172
+ /**
173
+ * Add custom validator
174
+ */
175
+ addValidator(name: any, rules: any, options?: {}): void;
176
+ /**
177
+ * Remove validator
178
+ */
179
+ removeValidator(name: any): void;
180
+ /**
181
+ * Get field validator
182
+ */
183
+ getValidator(name: any): any;
184
+ /**
185
+ * Get form state summary
186
+ */
187
+ getState(): {
188
+ isValid: any;
189
+ isPending: any;
190
+ isTouched: any;
191
+ isDirty: any;
192
+ isSubmitting: any;
193
+ submitCount: any;
194
+ errors: any;
195
+ data: {};
196
+ };
197
+ /**
198
+ * Watch form state changes
199
+ */
200
+ watch(callback: any, options?: {}): () => void;
201
+ /**
202
+ * Cleanup form
203
+ */
204
+ destroy(): void;
205
+ }
206
+ export namespace binding {
207
+ /**
208
+ * Two-way data binding for input elements
209
+ */
210
+ function model(form: any, fieldName: any, options?: {}): {
211
+ value: any;
212
+ oninput: (event: any) => void;
213
+ onblur: () => void;
214
+ };
215
+ /**
216
+ * Checkbox binding
217
+ */
218
+ function checkbox(form: any, fieldName: any): {
219
+ checked: boolean;
220
+ onchange: (event: any) => void;
221
+ onblur: () => void;
222
+ };
223
+ /**
224
+ * Select dropdown binding
225
+ */
226
+ function select(form: any, fieldName: any, options?: {}): {
227
+ value: any;
228
+ onchange: (event: any) => void;
229
+ onblur: () => void;
230
+ };
231
+ /**
232
+ * Radio button binding
233
+ */
234
+ function radio(form: any, fieldName: any, value: any): {
235
+ checked: boolean;
236
+ value: any;
237
+ onchange: (event: any) => void;
238
+ };
239
+ }
240
+ export namespace formComponents {
241
+ /**
242
+ * Validation error display
243
+ */
244
+ function ValidationError({ form, field, className }: {
245
+ form: any;
246
+ field: any;
247
+ className?: string | undefined;
248
+ }): {
249
+ div: {
250
+ className: string;
251
+ children: any;
252
+ };
253
+ } | null;
254
+ /**
255
+ * Form field wrapper with validation
256
+ */
257
+ function FormField({ form, field, label, children, showErrors }: {
258
+ form: any;
259
+ field: any;
260
+ label: any;
261
+ children: any;
262
+ showErrors?: boolean | undefined;
263
+ }): {
264
+ div: {
265
+ className: string;
266
+ children: any[];
267
+ };
268
+ };
269
+ }
270
+ import { ReactiveState } from '../state/reactive-state.js';
271
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/forms/validation.js"],"names":[],"mappings":"AAygBA;;GAEG;AACH,qEAEC;;IAlgBa,iFAKT;IAEI,uDAIJ;IAEI,uDAIJ;IAEU,2DAIV;IAEU,2DAIV;IAEQ,gEAIR;IAEM,wEAIN;IAEI,4DAQJ;IAEQ,8DAGR;IAEQ,8DAIR;IAEM,+DAGN;IAEa,kFAGb;IAEO,gFAEP;IAEM,gEAGN;IAEO,iEAKP;;AAqIL;;GAEG;AACH;IACI,uCA2CC;IA1CG,WAAoB;IACpB;;;;MAKC;IAED,oBAA+B;IAC/B,0BAA2B;IAC3B,8DAAqC;IACrC,6DAAgC;IAMhC;;;;;;;;;;;;;;;;;;MAEE;IAEF;;;;;;;;;;;;;;;;;;MAEE;IAEF;;;;;;;;;;;;;;;;;;MAEE;IAEF;;;;;;;;;;;;;;;;;;MAEE;IAEF;;;;;;;;;;;;;;;;;;MAQE;IAGN;;OAEG;IACH,6BAsBC;IAED;;OAEG;IACH,sCAOC;IAED;;OAEG;IACH,yBAEC;IAED;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH,cAEC;IAED;;OAEG;IACH,uCASC;IAED;;OAEG;IACH,gCAUC;IAED;;OAEG;IACH,4BAUC;IAED;;OAEG;IACH,mDAyCC;IAED;;OAEG;IACH,cAYC;IAED;;OAEG;IACH,wDAKC;IAED;;OAEG;IACH,iCAEC;IAED;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH;;;;;;;;;MAWC;IAED;;OAEG;IACH,+CAkBC;IAED;;OAEG;IACH,gBAGC;CACJ;;IAaG;;OAEG;IACH;;;;MAWC;IAED;;OAEG;IACH;;;;MAUC;IAED;;OAEG;IACH;;;;MAaC;IAED;;OAEG;IACH;;;;MAUC;;;IAOD;;OAEG;IACH;;;;;;;;;aAcC;IAED;;OAEG;IACH;;;;;;;;;;;MAeC;;8BAznB+C,4BAA4B"}