@tachui/core 0.7.0-alpha1 → 0.7.1-alpha
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/README.md +195 -0
- package/dist/ScrollView-h-6wYMAm.js +515 -0
- package/dist/Spacer-BbteDQ9I.js +5337 -0
- package/dist/binding-CmdpowkI.js +2276 -0
- package/dist/bundles/minimal.d.ts +30 -4
- package/dist/bundles/minimal.d.ts.map +1 -1
- package/dist/common.js +825 -954
- package/dist/compiler/index.js +1386 -10
- package/dist/components/index.js +4166 -101
- package/dist/concatenated-component-DPcl2TEO.js +6779 -0
- package/dist/{runtime/context.js → context--zQFIImS.js} +65 -71
- package/dist/debug.js +0 -1
- package/dist/dom-bridge-Cx-s6Ihx.js +406 -0
- package/dist/effect-CytAc9em.js +66 -0
- package/dist/essential.js +825 -954
- package/dist/index-Nfi2SBQh.js +3268 -0
- package/dist/index.js +825 -954
- package/dist/minimal-prod.js +162 -191
- package/dist/minimal.js +183 -957
- package/dist/modifiers/responsive/index.d.ts +10 -9
- package/dist/modifiers/responsive/index.d.ts.map +1 -1
- package/dist/plugins/index.js +543 -32
- package/dist/reactive/index.js +490 -93
- package/dist/runtime/dom-bridge.js +12 -239
- package/dist/runtime/renderer.js +8 -388
- package/dist/scheduler-7SvC3a21.js +814 -0
- package/dist/validation/index.js +6614 -198
- package/dist/viewport/index.js +2002 -83
- package/package.json +3 -4
- package/dist/assets/Asset.cjs +0 -2
- package/dist/assets/Asset.cjs.map +0 -1
- package/dist/assets/Asset.js +0 -9
- package/dist/assets/Asset.js.map +0 -1
- package/dist/assets/AssetCollection.cjs +0 -2
- package/dist/assets/AssetCollection.cjs.map +0 -1
- package/dist/assets/AssetCollection.js +0 -44
- package/dist/assets/AssetCollection.js.map +0 -1
- package/dist/assets/ColorAsset.cjs +0 -2
- package/dist/assets/ColorAsset.cjs.map +0 -1
- package/dist/assets/ColorAsset.js +0 -114
- package/dist/assets/ColorAsset.js.map +0 -1
- package/dist/assets/FontAsset.cjs +0 -9
- package/dist/assets/FontAsset.cjs.map +0 -1
- package/dist/assets/FontAsset.js +0 -173
- package/dist/assets/FontAsset.js.map +0 -1
- package/dist/assets/ImageAsset.cjs +0 -2
- package/dist/assets/ImageAsset.cjs.map +0 -1
- package/dist/assets/ImageAsset.js +0 -39
- package/dist/assets/ImageAsset.js.map +0 -1
- package/dist/assets/index.cjs +0 -2
- package/dist/assets/index.cjs.map +0 -1
- package/dist/assets/index.js +0 -119
- package/dist/assets/index.js.map +0 -1
- package/dist/common.cjs +0 -2
- package/dist/common.cjs.map +0 -1
- package/dist/common.js.map +0 -1
- package/dist/compiler/advanced-parser.cjs +0 -5
- package/dist/compiler/advanced-parser.cjs.map +0 -1
- package/dist/compiler/advanced-parser.js +0 -440
- package/dist/compiler/advanced-parser.js.map +0 -1
- package/dist/compiler/codegen.cjs +0 -6
- package/dist/compiler/codegen.cjs.map +0 -1
- package/dist/compiler/codegen.js +0 -241
- package/dist/compiler/codegen.js.map +0 -1
- package/dist/compiler/enhanced-codegen.cjs +0 -6
- package/dist/compiler/enhanced-codegen.cjs.map +0 -1
- package/dist/compiler/enhanced-codegen.js +0 -347
- package/dist/compiler/enhanced-codegen.js.map +0 -1
- package/dist/compiler/index.cjs +0 -2
- package/dist/compiler/index.cjs.map +0 -1
- package/dist/compiler/index.js.map +0 -1
- package/dist/compiler/parser.cjs +0 -5
- package/dist/compiler/parser.cjs.map +0 -1
- package/dist/compiler/parser.js +0 -275
- package/dist/compiler/parser.js.map +0 -1
- package/dist/compiler/plugin.cjs +0 -33
- package/dist/compiler/plugin.cjs.map +0 -1
- package/dist/compiler/plugin.js +0 -103
- package/dist/compiler/plugin.js.map +0 -1
- package/dist/components/BasicInput.cjs +0 -2
- package/dist/components/BasicInput.cjs.map +0 -1
- package/dist/components/BasicInput.js +0 -182
- package/dist/components/BasicInput.js.map +0 -1
- package/dist/components/Button.cjs +0 -7
- package/dist/components/Button.cjs.map +0 -1
- package/dist/components/Button.js +0 -408
- package/dist/components/Button.js.map +0 -1
- package/dist/components/Divider.cjs +0 -2
- package/dist/components/Divider.cjs.map +0 -1
- package/dist/components/Divider.js +0 -187
- package/dist/components/Divider.js.map +0 -1
- package/dist/components/EnhancedLink.cjs +0 -2
- package/dist/components/EnhancedLink.cjs.map +0 -1
- package/dist/components/EnhancedLink.js +0 -345
- package/dist/components/EnhancedLink.js.map +0 -1
- package/dist/components/Form.cjs +0 -2
- package/dist/components/Form.cjs.map +0 -1
- package/dist/components/Form.js +0 -244
- package/dist/components/Form.js.map +0 -1
- package/dist/components/Grid.cjs +0 -2
- package/dist/components/Grid.cjs.map +0 -1
- package/dist/components/Grid.js +0 -1045
- package/dist/components/Grid.js.map +0 -1
- package/dist/components/GridResponsive.cjs +0 -2
- package/dist/components/GridResponsive.cjs.map +0 -1
- package/dist/components/GridResponsive.js +0 -382
- package/dist/components/GridResponsive.js.map +0 -1
- package/dist/components/Image.cjs +0 -2
- package/dist/components/Image.cjs.map +0 -1
- package/dist/components/Image.js +0 -212
- package/dist/components/Image.js.map +0 -1
- package/dist/components/List.cjs +0 -2
- package/dist/components/List.cjs.map +0 -1
- package/dist/components/List.js +0 -561
- package/dist/components/List.js.map +0 -1
- package/dist/components/Menu.cjs +0 -2
- package/dist/components/Menu.cjs.map +0 -1
- package/dist/components/Menu.js +0 -443
- package/dist/components/Menu.js.map +0 -1
- package/dist/components/Picker.cjs +0 -2
- package/dist/components/Picker.cjs.map +0 -1
- package/dist/components/Picker.js +0 -478
- package/dist/components/Picker.js.map +0 -1
- package/dist/components/ScrollView.cjs +0 -6
- package/dist/components/ScrollView.cjs.map +0 -1
- package/dist/components/ScrollView.js +0 -363
- package/dist/components/ScrollView.js.map +0 -1
- package/dist/components/Section.cjs +0 -2
- package/dist/components/Section.cjs.map +0 -1
- package/dist/components/Section.js +0 -323
- package/dist/components/Section.js.map +0 -1
- package/dist/components/Show.cjs +0 -2
- package/dist/components/Show.cjs.map +0 -1
- package/dist/components/Show.js +0 -112
- package/dist/components/Show.js.map +0 -1
- package/dist/components/Spacer.cjs +0 -2
- package/dist/components/Spacer.cjs.map +0 -1
- package/dist/components/Spacer.js +0 -53
- package/dist/components/Spacer.js.map +0 -1
- package/dist/components/Text.cjs +0 -2
- package/dist/components/Text.cjs.map +0 -1
- package/dist/components/Text.js +0 -193
- package/dist/components/Text.js.map +0 -1
- package/dist/components/Toggle.cjs +0 -2
- package/dist/components/Toggle.cjs.map +0 -1
- package/dist/components/Toggle.js +0 -477
- package/dist/components/Toggle.js.map +0 -1
- package/dist/components/index.cjs +0 -2
- package/dist/components/index.cjs.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/wrapper.cjs +0 -2
- package/dist/components/wrapper.cjs.map +0 -1
- package/dist/components/wrapper.js +0 -484
- package/dist/components/wrapper.js.map +0 -1
- package/dist/concatenation/concatenatable.cjs +0 -2
- package/dist/concatenation/concatenatable.cjs.map +0 -1
- package/dist/concatenation/concatenatable.js +0 -118
- package/dist/concatenation/concatenatable.js.map +0 -1
- package/dist/concatenation/concatenated-component.cjs +0 -2
- package/dist/concatenation/concatenated-component.cjs.map +0 -1
- package/dist/concatenation/concatenated-component.js +0 -276
- package/dist/concatenation/concatenated-component.js.map +0 -1
- package/dist/concatenation/text-optimizer.cjs +0 -2
- package/dist/concatenation/text-optimizer.cjs.map +0 -1
- package/dist/concatenation/text-optimizer.js +0 -236
- package/dist/concatenation/text-optimizer.js.map +0 -1
- package/dist/concatenation/types.cjs +0 -2
- package/dist/concatenation/types.cjs.map +0 -1
- package/dist/concatenation/types.js +0 -13
- package/dist/concatenation/types.js.map +0 -1
- package/dist/constants/frame-utils.cjs +0 -2
- package/dist/constants/frame-utils.cjs.map +0 -1
- package/dist/constants/frame-utils.js +0 -116
- package/dist/constants/frame-utils.js.map +0 -1
- package/dist/constants/layout.cjs +0 -2
- package/dist/constants/layout.cjs.map +0 -1
- package/dist/constants/layout.js +0 -46
- package/dist/constants/layout.js.map +0 -1
- package/dist/css-classes/component-base.cjs +0 -2
- package/dist/css-classes/component-base.cjs.map +0 -1
- package/dist/css-classes/component-base.js +0 -62
- package/dist/css-classes/component-base.js.map +0 -1
- package/dist/css-classes/css-class-manager.cjs +0 -2
- package/dist/css-classes/css-class-manager.cjs.map +0 -1
- package/dist/css-classes/css-class-manager.js +0 -209
- package/dist/css-classes/css-class-manager.js.map +0 -1
- package/dist/css-classes/dom-integration.cjs +0 -2
- package/dist/css-classes/dom-integration.cjs.map +0 -1
- package/dist/css-classes/dom-integration.js +0 -67
- package/dist/css-classes/dom-integration.js.map +0 -1
- package/dist/css-classes/enhanced-renderer.cjs +0 -2
- package/dist/css-classes/enhanced-renderer.cjs.map +0 -1
- package/dist/css-classes/enhanced-renderer.js +0 -73
- package/dist/css-classes/enhanced-renderer.js.map +0 -1
- package/dist/css-classes/utilities.cjs +0 -2
- package/dist/css-classes/utilities.cjs.map +0 -1
- package/dist/css-classes/utilities.js +0 -41
- package/dist/css-classes/utilities.js.map +0 -1
- package/dist/debug.cjs +0 -52
- package/dist/debug.cjs.map +0 -1
- package/dist/debug.js.map +0 -1
- package/dist/essential.cjs +0 -2
- package/dist/essential.cjs.map +0 -1
- package/dist/essential.js.map +0 -1
- package/dist/gradients/css-generator.cjs +0 -2
- package/dist/gradients/css-generator.cjs.map +0 -1
- package/dist/gradients/css-generator.js +0 -100
- package/dist/gradients/css-generator.js.map +0 -1
- package/dist/gradients/examples.cjs +0 -2
- package/dist/gradients/examples.cjs.map +0 -1
- package/dist/gradients/examples.js +0 -555
- package/dist/gradients/examples.js.map +0 -1
- package/dist/gradients/gradient-asset.cjs +0 -2
- package/dist/gradients/gradient-asset.cjs.map +0 -1
- package/dist/gradients/gradient-asset.js +0 -22
- package/dist/gradients/gradient-asset.js.map +0 -1
- package/dist/gradients/index.cjs +0 -2
- package/dist/gradients/index.cjs.map +0 -1
- package/dist/gradients/index.js +0 -78
- package/dist/gradients/index.js.map +0 -1
- package/dist/gradients/performance.cjs +0 -2
- package/dist/gradients/performance.cjs.map +0 -1
- package/dist/gradients/performance.js +0 -237
- package/dist/gradients/performance.js.map +0 -1
- package/dist/gradients/presets.cjs +0 -2
- package/dist/gradients/presets.cjs.map +0 -1
- package/dist/gradients/presets.js +0 -254
- package/dist/gradients/presets.js.map +0 -1
- package/dist/gradients/reactive.cjs +0 -2
- package/dist/gradients/reactive.cjs.map +0 -1
- package/dist/gradients/reactive.js +0 -239
- package/dist/gradients/reactive.js.map +0 -1
- package/dist/gradients/state-gradient-asset.cjs +0 -2
- package/dist/gradients/state-gradient-asset.cjs.map +0 -1
- package/dist/gradients/state-gradient-asset.js +0 -111
- package/dist/gradients/state-gradient-asset.js.map +0 -1
- package/dist/gradients/utils.cjs +0 -2
- package/dist/gradients/utils.cjs.map +0 -1
- package/dist/gradients/utils.js +0 -385
- package/dist/gradients/utils.js.map +0 -1
- package/dist/gradients/validation.cjs +0 -2
- package/dist/gradients/validation.cjs.map +0 -1
- package/dist/gradients/validation.js +0 -209
- package/dist/gradients/validation.js.map +0 -1
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index2.cjs +0 -2
- package/dist/index2.cjs.map +0 -1
- package/dist/index2.js +0 -293
- package/dist/index2.js.map +0 -1
- package/dist/lifecycle/hooks.cjs +0 -2
- package/dist/lifecycle/hooks.cjs.map +0 -1
- package/dist/lifecycle/hooks.js +0 -159
- package/dist/lifecycle/hooks.js.map +0 -1
- package/dist/minimal-prod.cjs +0 -2
- package/dist/minimal-prod.cjs.map +0 -1
- package/dist/minimal-prod.js.map +0 -1
- package/dist/minimal.cjs +0 -2
- package/dist/minimal.cjs.map +0 -1
- package/dist/minimal.js.map +0 -1
- package/dist/modifiers/as-html-validator.cjs +0 -2
- package/dist/modifiers/as-html-validator.cjs.map +0 -1
- package/dist/modifiers/as-html-validator.js +0 -47
- package/dist/modifiers/as-html-validator.js.map +0 -1
- package/dist/modifiers/as-html.cjs +0 -2
- package/dist/modifiers/as-html.cjs.map +0 -1
- package/dist/modifiers/as-html.js +0 -71
- package/dist/modifiers/as-html.js.map +0 -1
- package/dist/modifiers/attributes.cjs +0 -2
- package/dist/modifiers/attributes.cjs.map +0 -1
- package/dist/modifiers/attributes.js +0 -272
- package/dist/modifiers/attributes.js.map +0 -1
- package/dist/modifiers/backdrop.cjs +0 -2
- package/dist/modifiers/backdrop.cjs.map +0 -1
- package/dist/modifiers/backdrop.js +0 -109
- package/dist/modifiers/backdrop.js.map +0 -1
- package/dist/modifiers/background.cjs +0 -2
- package/dist/modifiers/background.cjs.map +0 -1
- package/dist/modifiers/background.js +0 -67
- package/dist/modifiers/background.js.map +0 -1
- package/dist/modifiers/base.cjs +0 -25
- package/dist/modifiers/base.cjs.map +0 -1
- package/dist/modifiers/base.js +0 -745
- package/dist/modifiers/base.js.map +0 -1
- package/dist/modifiers/basic-sanitizer.cjs +0 -2
- package/dist/modifiers/basic-sanitizer.cjs.map +0 -1
- package/dist/modifiers/basic-sanitizer.js +0 -162
- package/dist/modifiers/basic-sanitizer.js.map +0 -1
- package/dist/modifiers/border.cjs +0 -2
- package/dist/modifiers/border.cjs.map +0 -1
- package/dist/modifiers/border.js +0 -160
- package/dist/modifiers/border.js.map +0 -1
- package/dist/modifiers/builder.cjs +0 -2
- package/dist/modifiers/builder.cjs.map +0 -1
- package/dist/modifiers/builder.js +0 -930
- package/dist/modifiers/builder.js.map +0 -1
- package/dist/modifiers/core.cjs +0 -2
- package/dist/modifiers/core.cjs.map +0 -1
- package/dist/modifiers/core.js +0 -398
- package/dist/modifiers/core.js.map +0 -1
- package/dist/modifiers/css.cjs +0 -2
- package/dist/modifiers/css.cjs.map +0 -1
- package/dist/modifiers/css.js +0 -50
- package/dist/modifiers/css.js.map +0 -1
- package/dist/modifiers/effects.cjs +0 -2
- package/dist/modifiers/effects.cjs.map +0 -1
- package/dist/modifiers/effects.js +0 -178
- package/dist/modifiers/effects.js.map +0 -1
- package/dist/modifiers/elements.cjs +0 -2
- package/dist/modifiers/elements.cjs.map +0 -1
- package/dist/modifiers/elements.js +0 -216
- package/dist/modifiers/elements.js.map +0 -1
- package/dist/modifiers/filters.cjs +0 -2
- package/dist/modifiers/filters.cjs.map +0 -1
- package/dist/modifiers/filters.js +0 -223
- package/dist/modifiers/filters.js.map +0 -1
- package/dist/modifiers/flexbox.cjs +0 -2
- package/dist/modifiers/flexbox.cjs.map +0 -1
- package/dist/modifiers/flexbox.js +0 -56
- package/dist/modifiers/flexbox.js.map +0 -1
- package/dist/modifiers/font.cjs +0 -2
- package/dist/modifiers/font.cjs.map +0 -1
- package/dist/modifiers/font.js +0 -60
- package/dist/modifiers/font.js.map +0 -1
- package/dist/modifiers/grid.cjs +0 -2
- package/dist/modifiers/grid.cjs.map +0 -1
- package/dist/modifiers/grid.js +0 -92
- package/dist/modifiers/grid.js.map +0 -1
- package/dist/modifiers/margin.cjs +0 -2
- package/dist/modifiers/margin.cjs.map +0 -1
- package/dist/modifiers/margin.js +0 -65
- package/dist/modifiers/margin.js.map +0 -1
- package/dist/modifiers/padding.cjs +0 -2
- package/dist/modifiers/padding.cjs.map +0 -1
- package/dist/modifiers/padding.js +0 -109
- package/dist/modifiers/padding.js.map +0 -1
- package/dist/modifiers/registry.cjs +0 -2
- package/dist/modifiers/registry.cjs.map +0 -1
- package/dist/modifiers/registry.js +0 -163
- package/dist/modifiers/registry.js.map +0 -1
- package/dist/modifiers/responsive/advanced-utilities.cjs +0 -2
- package/dist/modifiers/responsive/advanced-utilities.cjs.map +0 -1
- package/dist/modifiers/responsive/advanced-utilities.js +0 -291
- package/dist/modifiers/responsive/advanced-utilities.js.map +0 -1
- package/dist/modifiers/responsive/breakpoints.cjs +0 -2
- package/dist/modifiers/responsive/breakpoints.cjs.map +0 -1
- package/dist/modifiers/responsive/breakpoints.js +0 -168
- package/dist/modifiers/responsive/breakpoints.js.map +0 -1
- package/dist/modifiers/responsive/css-generator.cjs +0 -5
- package/dist/modifiers/responsive/css-generator.cjs.map +0 -1
- package/dist/modifiers/responsive/css-generator.js +0 -261
- package/dist/modifiers/responsive/css-generator.js.map +0 -1
- package/dist/modifiers/responsive/dev-tools.cjs +0 -77
- package/dist/modifiers/responsive/dev-tools.cjs.map +0 -1
- package/dist/modifiers/responsive/dev-tools.js +0 -380
- package/dist/modifiers/responsive/dev-tools.js.map +0 -1
- package/dist/modifiers/responsive/layout-patterns.cjs +0 -2
- package/dist/modifiers/responsive/layout-patterns.cjs.map +0 -1
- package/dist/modifiers/responsive/layout-patterns.js +0 -254
- package/dist/modifiers/responsive/layout-patterns.js.map +0 -1
- package/dist/modifiers/responsive/performance.cjs +0 -3
- package/dist/modifiers/responsive/performance.cjs.map +0 -1
- package/dist/modifiers/responsive/performance.js +0 -212
- package/dist/modifiers/responsive/performance.js.map +0 -1
- package/dist/modifiers/responsive/responsive-builder.cjs +0 -2
- package/dist/modifiers/responsive/responsive-builder.cjs.map +0 -1
- package/dist/modifiers/responsive/responsive-builder.js +0 -272
- package/dist/modifiers/responsive/responsive-builder.js.map +0 -1
- package/dist/modifiers/responsive/responsive-modifier.cjs +0 -3
- package/dist/modifiers/responsive/responsive-modifier.cjs.map +0 -1
- package/dist/modifiers/responsive/responsive-modifier.js +0 -204
- package/dist/modifiers/responsive/responsive-modifier.js.map +0 -1
- package/dist/modifiers/responsive/types.cjs +0 -2
- package/dist/modifiers/responsive/types.cjs.map +0 -1
- package/dist/modifiers/responsive/types.js +0 -26
- package/dist/modifiers/responsive/types.js.map +0 -1
- package/dist/modifiers/responsive/utilities.cjs +0 -16
- package/dist/modifiers/responsive/utilities.cjs.map +0 -1
- package/dist/modifiers/responsive/utilities.js +0 -273
- package/dist/modifiers/responsive/utilities.js.map +0 -1
- package/dist/modifiers/scroll.cjs +0 -2
- package/dist/modifiers/scroll.cjs.map +0 -1
- package/dist/modifiers/scroll.js +0 -82
- package/dist/modifiers/scroll.js.map +0 -1
- package/dist/modifiers/shadows.cjs +0 -2
- package/dist/modifiers/shadows.cjs.map +0 -1
- package/dist/modifiers/shadows.js +0 -147
- package/dist/modifiers/shadows.js.map +0 -1
- package/dist/modifiers/size.cjs +0 -2
- package/dist/modifiers/size.cjs.map +0 -1
- package/dist/modifiers/size.js +0 -74
- package/dist/modifiers/size.js.map +0 -1
- package/dist/modifiers/text.cjs +0 -2
- package/dist/modifiers/text.cjs.map +0 -1
- package/dist/modifiers/text.js +0 -166
- package/dist/modifiers/text.js.map +0 -1
- package/dist/modifiers/transformations.cjs +0 -2
- package/dist/modifiers/transformations.cjs.map +0 -1
- package/dist/modifiers/transformations.js +0 -216
- package/dist/modifiers/transformations.js.map +0 -1
- package/dist/modifiers/transitions.cjs +0 -2
- package/dist/modifiers/transitions.cjs.map +0 -1
- package/dist/modifiers/transitions.js +0 -102
- package/dist/modifiers/transitions.js.map +0 -1
- package/dist/modifiers/types.cjs +0 -2
- package/dist/modifiers/types.cjs.map +0 -1
- package/dist/modifiers/types.js +0 -5
- package/dist/modifiers/types.js.map +0 -1
- package/dist/modifiers/typography.cjs +0 -2
- package/dist/modifiers/typography.cjs.map +0 -1
- package/dist/modifiers/typography.js +0 -76
- package/dist/modifiers/typography.js.map +0 -1
- package/dist/modifiers/utility.cjs +0 -2
- package/dist/modifiers/utility.cjs.map +0 -1
- package/dist/modifiers/utility.js +0 -71
- package/dist/modifiers/utility.js.map +0 -1
- package/dist/modifiers/utils.cjs +0 -2
- package/dist/modifiers/utils.cjs.map +0 -1
- package/dist/modifiers/utils.js +0 -250
- package/dist/modifiers/utils.js.map +0 -1
- package/dist/plugins/index.cjs +0 -2
- package/dist/plugins/index.cjs.map +0 -1
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/legacy-adapter.cjs +0 -2
- package/dist/plugins/legacy-adapter.cjs.map +0 -1
- package/dist/plugins/legacy-adapter.js +0 -30
- package/dist/plugins/legacy-adapter.js.map +0 -1
- package/dist/plugins/simplified-component-registry.cjs +0 -2
- package/dist/plugins/simplified-component-registry.cjs.map +0 -1
- package/dist/plugins/simplified-component-registry.js +0 -71
- package/dist/plugins/simplified-component-registry.js.map +0 -1
- package/dist/plugins/simplified-error-handler.cjs +0 -2
- package/dist/plugins/simplified-error-handler.cjs.map +0 -1
- package/dist/plugins/simplified-error-handler.js +0 -154
- package/dist/plugins/simplified-error-handler.js.map +0 -1
- package/dist/plugins/simplified-lazy-loader.cjs +0 -2
- package/dist/plugins/simplified-lazy-loader.cjs.map +0 -1
- package/dist/plugins/simplified-lazy-loader.js +0 -129
- package/dist/plugins/simplified-lazy-loader.js.map +0 -1
- package/dist/plugins/simplified-plugin-manager.cjs +0 -2
- package/dist/plugins/simplified-plugin-manager.cjs.map +0 -1
- package/dist/plugins/simplified-plugin-manager.js +0 -51
- package/dist/plugins/simplified-plugin-manager.js.map +0 -1
- package/dist/plugins/simplified-tachui-instance.cjs +0 -2
- package/dist/plugins/simplified-tachui-instance.cjs.map +0 -1
- package/dist/plugins/simplified-tachui-instance.js +0 -88
- package/dist/plugins/simplified-tachui-instance.js.map +0 -1
- package/dist/plugins/simplified-types.cjs +0 -2
- package/dist/plugins/simplified-types.cjs.map +0 -1
- package/dist/plugins/simplified-types.js +0 -9
- package/dist/plugins/simplified-types.js.map +0 -1
- package/dist/plugins/simplified-utils.cjs +0 -2
- package/dist/plugins/simplified-utils.cjs.map +0 -1
- package/dist/plugins/simplified-utils.js +0 -40
- package/dist/plugins/simplified-utils.js.map +0 -1
- package/dist/reactive/cleanup.cjs +0 -2
- package/dist/reactive/cleanup.cjs.map +0 -1
- package/dist/reactive/cleanup.js +0 -62
- package/dist/reactive/cleanup.js.map +0 -1
- package/dist/reactive/computed.cjs +0 -2
- package/dist/reactive/computed.cjs.map +0 -1
- package/dist/reactive/computed.js +0 -121
- package/dist/reactive/computed.js.map +0 -1
- package/dist/reactive/context.cjs +0 -2
- package/dist/reactive/context.cjs.map +0 -1
- package/dist/reactive/context.js +0 -143
- package/dist/reactive/context.js.map +0 -1
- package/dist/reactive/effect.cjs +0 -2
- package/dist/reactive/effect.cjs.map +0 -1
- package/dist/reactive/effect.js +0 -67
- package/dist/reactive/effect.js.map +0 -1
- package/dist/reactive/enhanced-effect.cjs +0 -2
- package/dist/reactive/enhanced-effect.cjs.map +0 -1
- package/dist/reactive/enhanced-effect.js +0 -153
- package/dist/reactive/enhanced-effect.js.map +0 -1
- package/dist/reactive/enhanced-signal.cjs +0 -2
- package/dist/reactive/enhanced-signal.cjs.map +0 -1
- package/dist/reactive/enhanced-signal.js +0 -117
- package/dist/reactive/enhanced-signal.js.map +0 -1
- package/dist/reactive/equality.cjs +0 -2
- package/dist/reactive/equality.cjs.map +0 -1
- package/dist/reactive/equality.js +0 -66
- package/dist/reactive/equality.js.map +0 -1
- package/dist/reactive/index.cjs +0 -2
- package/dist/reactive/index.cjs.map +0 -1
- package/dist/reactive/index.js.map +0 -1
- package/dist/reactive/migration.cjs +0 -18
- package/dist/reactive/migration.cjs.map +0 -1
- package/dist/reactive/migration.js +0 -164
- package/dist/reactive/migration.js.map +0 -1
- package/dist/reactive/ownership.cjs +0 -2
- package/dist/reactive/ownership.cjs.map +0 -1
- package/dist/reactive/ownership.js +0 -34
- package/dist/reactive/ownership.js.map +0 -1
- package/dist/reactive/scheduler.cjs +0 -2
- package/dist/reactive/scheduler.cjs.map +0 -1
- package/dist/reactive/scheduler.js +0 -111
- package/dist/reactive/scheduler.js.map +0 -1
- package/dist/reactive/signal.cjs +0 -2
- package/dist/reactive/signal.cjs.map +0 -1
- package/dist/reactive/signal.js +0 -96
- package/dist/reactive/signal.js.map +0 -1
- package/dist/reactive/theme.cjs +0 -2
- package/dist/reactive/theme.cjs.map +0 -1
- package/dist/reactive/theme.js +0 -27
- package/dist/reactive/theme.js.map +0 -1
- package/dist/reactive/types.cjs +0 -2
- package/dist/reactive/types.cjs.map +0 -1
- package/dist/reactive/types.js +0 -5
- package/dist/reactive/types.js.map +0 -1
- package/dist/reactive/unified-scheduler.cjs +0 -2
- package/dist/reactive/unified-scheduler.cjs.map +0 -1
- package/dist/reactive/unified-scheduler.js +0 -219
- package/dist/reactive/unified-scheduler.js.map +0 -1
- package/dist/runtime/component-context.cjs +0 -2
- package/dist/runtime/component-context.cjs.map +0 -1
- package/dist/runtime/component-context.js +0 -177
- package/dist/runtime/component-context.js.map +0 -1
- package/dist/runtime/component.cjs +0 -2
- package/dist/runtime/component.cjs.map +0 -1
- package/dist/runtime/component.js +0 -238
- package/dist/runtime/component.js.map +0 -1
- package/dist/runtime/context.cjs +0 -2
- package/dist/runtime/context.cjs.map +0 -1
- package/dist/runtime/context.js.map +0 -1
- package/dist/runtime/dev-tools.cjs +0 -2
- package/dist/runtime/dev-tools.cjs.map +0 -1
- package/dist/runtime/dev-tools.js +0 -391
- package/dist/runtime/dev-tools.js.map +0 -1
- package/dist/runtime/development-warnings.cjs +0 -2
- package/dist/runtime/development-warnings.cjs.map +0 -1
- package/dist/runtime/development-warnings.js +0 -69
- package/dist/runtime/development-warnings.js.map +0 -1
- package/dist/runtime/dom-bridge.cjs +0 -2
- package/dist/runtime/dom-bridge.cjs.map +0 -1
- package/dist/runtime/dom-bridge.js.map +0 -1
- package/dist/runtime/element-override.cjs +0 -2
- package/dist/runtime/element-override.cjs.map +0 -1
- package/dist/runtime/element-override.js +0 -214
- package/dist/runtime/element-override.js.map +0 -1
- package/dist/runtime/error-boundary.cjs +0 -2
- package/dist/runtime/error-boundary.cjs.map +0 -1
- package/dist/runtime/error-boundary.js +0 -559
- package/dist/runtime/error-boundary.js.map +0 -1
- package/dist/runtime/error-recovery.cjs +0 -2
- package/dist/runtime/error-recovery.cjs.map +0 -1
- package/dist/runtime/error-recovery.js +0 -385
- package/dist/runtime/error-recovery.js.map +0 -1
- package/dist/runtime/error-reporting.cjs +0 -3
- package/dist/runtime/error-reporting.cjs.map +0 -1
- package/dist/runtime/error-reporting.js +0 -479
- package/dist/runtime/error-reporting.js.map +0 -1
- package/dist/runtime/error-utils.cjs +0 -3
- package/dist/runtime/error-utils.cjs.map +0 -1
- package/dist/runtime/error-utils.js +0 -352
- package/dist/runtime/error-utils.js.map +0 -1
- package/dist/runtime/lazy-component.cjs +0 -2
- package/dist/runtime/lazy-component.cjs.map +0 -1
- package/dist/runtime/lazy-component.js +0 -129
- package/dist/runtime/lazy-component.js.map +0 -1
- package/dist/runtime/lifecycle.cjs +0 -2
- package/dist/runtime/lifecycle.cjs.map +0 -1
- package/dist/runtime/lifecycle.js +0 -7
- package/dist/runtime/lifecycle.js.map +0 -1
- package/dist/runtime/mounting.cjs +0 -2
- package/dist/runtime/mounting.cjs.map +0 -1
- package/dist/runtime/mounting.js +0 -12
- package/dist/runtime/mounting.js.map +0 -1
- package/dist/runtime/optimization.cjs +0 -2
- package/dist/runtime/optimization.cjs.map +0 -1
- package/dist/runtime/optimization.js +0 -6
- package/dist/runtime/optimization.js.map +0 -1
- package/dist/runtime/performance.cjs +0 -2
- package/dist/runtime/performance.cjs.map +0 -1
- package/dist/runtime/performance.js +0 -399
- package/dist/runtime/performance.js.map +0 -1
- package/dist/runtime/props.cjs +0 -2
- package/dist/runtime/props.cjs.map +0 -1
- package/dist/runtime/props.js +0 -265
- package/dist/runtime/props.js.map +0 -1
- package/dist/runtime/renderer.cjs +0 -2
- package/dist/runtime/renderer.cjs.map +0 -1
- package/dist/runtime/renderer.js.map +0 -1
- package/dist/runtime/semantic-role-manager.cjs +0 -2
- package/dist/runtime/semantic-role-manager.cjs.map +0 -1
- package/dist/runtime/semantic-role-manager.js +0 -82
- package/dist/runtime/semantic-role-manager.js.map +0 -1
- package/dist/state/binding.cjs +0 -2
- package/dist/state/binding.cjs.map +0 -1
- package/dist/state/binding.js +0 -155
- package/dist/state/binding.js.map +0 -1
- package/dist/state/environment.cjs +0 -2
- package/dist/state/environment.cjs.map +0 -1
- package/dist/state/environment.js +0 -115
- package/dist/state/environment.js.map +0 -1
- package/dist/state/index.cjs +0 -2
- package/dist/state/index.cjs.map +0 -1
- package/dist/state/index.js +0 -63
- package/dist/state/index.js.map +0 -1
- package/dist/state/observed-object.cjs +0 -2
- package/dist/state/observed-object.cjs.map +0 -1
- package/dist/state/observed-object.js +0 -163
- package/dist/state/observed-object.js.map +0 -1
- package/dist/state/state-manager.cjs +0 -2
- package/dist/state/state-manager.cjs.map +0 -1
- package/dist/state/state-manager.js +0 -233
- package/dist/state/state-manager.js.map +0 -1
- package/dist/state/state.cjs +0 -2
- package/dist/state/state.cjs.map +0 -1
- package/dist/state/state.js +0 -159
- package/dist/state/state.js.map +0 -1
- package/dist/sui-compat.cjs +0 -2
- package/dist/sui-compat.cjs.map +0 -1
- package/dist/sui-compat.js +0 -88
- package/dist/sui-compat.js.map +0 -1
- package/dist/validation/advanced-debugging.cjs +0 -44
- package/dist/validation/advanced-debugging.cjs.map +0 -1
- package/dist/validation/advanced-debugging.js +0 -455
- package/dist/validation/advanced-debugging.js.map +0 -1
- package/dist/validation/build-time/detection.cjs +0 -2
- package/dist/validation/build-time/detection.cjs.map +0 -1
- package/dist/validation/build-time/detection.js +0 -199
- package/dist/validation/build-time/detection.js.map +0 -1
- package/dist/validation/build-time/index.cjs +0 -2
- package/dist/validation/build-time/index.cjs.map +0 -1
- package/dist/validation/build-time/index.js +0 -122
- package/dist/validation/build-time/index.js.map +0 -1
- package/dist/validation/build-time/plugins.cjs +0 -3
- package/dist/validation/build-time/plugins.cjs.map +0 -1
- package/dist/validation/build-time/plugins.js +0 -282
- package/dist/validation/build-time/plugins.js.map +0 -1
- package/dist/validation/build-time/rules.cjs +0 -2
- package/dist/validation/build-time/rules.cjs.map +0 -1
- package/dist/validation/build-time/rules.js +0 -576
- package/dist/validation/build-time/rules.js.map +0 -1
- package/dist/validation/build-time/transformer.cjs +0 -3
- package/dist/validation/build-time/transformer.cjs.map +0 -1
- package/dist/validation/build-time/transformer.js +0 -177
- package/dist/validation/build-time/transformer.js.map +0 -1
- package/dist/validation/comprehensive.cjs +0 -9
- package/dist/validation/comprehensive.cjs.map +0 -1
- package/dist/validation/comprehensive.js +0 -916
- package/dist/validation/comprehensive.js.map +0 -1
- package/dist/validation/debug-tools.cjs +0 -16
- package/dist/validation/debug-tools.cjs.map +0 -1
- package/dist/validation/debug-tools.js +0 -405
- package/dist/validation/debug-tools.js.map +0 -1
- package/dist/validation/developer-experience.cjs +0 -17
- package/dist/validation/developer-experience.cjs.map +0 -1
- package/dist/validation/developer-experience.js +0 -433
- package/dist/validation/developer-experience.js.map +0 -1
- package/dist/validation/documentation-integration.cjs +0 -7
- package/dist/validation/documentation-integration.cjs.map +0 -1
- package/dist/validation/documentation-integration.js +0 -440
- package/dist/validation/documentation-integration.js.map +0 -1
- package/dist/validation/enhanced-runtime.cjs +0 -6
- package/dist/validation/enhanced-runtime.cjs.map +0 -1
- package/dist/validation/enhanced-runtime.js +0 -465
- package/dist/validation/enhanced-runtime.js.map +0 -1
- package/dist/validation/error-reporting.cjs +0 -32
- package/dist/validation/error-reporting.cjs.map +0 -1
- package/dist/validation/error-reporting.js +0 -370
- package/dist/validation/error-reporting.js.map +0 -1
- package/dist/validation/ide-integration.cjs +0 -85
- package/dist/validation/ide-integration.cjs.map +0 -1
- package/dist/validation/ide-integration.js +0 -557
- package/dist/validation/ide-integration.js.map +0 -1
- package/dist/validation/index.cjs +0 -6
- package/dist/validation/index.cjs.map +0 -1
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/lifecycle-validation.cjs +0 -2
- package/dist/validation/lifecycle-validation.cjs.map +0 -1
- package/dist/validation/lifecycle-validation.js +0 -314
- package/dist/validation/lifecycle-validation.js.map +0 -1
- package/dist/validation/performance-optimizer.cjs +0 -2
- package/dist/validation/performance-optimizer.cjs.map +0 -1
- package/dist/validation/performance-optimizer.js +0 -338
- package/dist/validation/performance-optimizer.js.map +0 -1
- package/dist/validation/plugin-registration.cjs +0 -2
- package/dist/validation/plugin-registration.cjs.map +0 -1
- package/dist/validation/plugin-registration.js +0 -126
- package/dist/validation/plugin-registration.js.map +0 -1
- package/dist/validation/production-bypass.cjs +0 -2
- package/dist/validation/production-bypass.cjs.map +0 -1
- package/dist/validation/production-bypass.js +0 -218
- package/dist/validation/production-bypass.js.map +0 -1
- package/dist/validation/simple.cjs +0 -9
- package/dist/validation/simple.cjs.map +0 -1
- package/dist/validation/simple.js +0 -146
- package/dist/validation/simple.js.map +0 -1
- package/dist/viewport/adapters/web-adapter.cjs +0 -70
- package/dist/viewport/adapters/web-adapter.cjs.map +0 -1
- package/dist/viewport/adapters/web-adapter.js +0 -823
- package/dist/viewport/adapters/web-adapter.js.map +0 -1
- package/dist/viewport/components.cjs +0 -2
- package/dist/viewport/components.cjs.map +0 -1
- package/dist/viewport/components.js +0 -298
- package/dist/viewport/components.js.map +0 -1
- package/dist/viewport/environment.cjs +0 -2
- package/dist/viewport/environment.cjs.map +0 -1
- package/dist/viewport/environment.js +0 -86
- package/dist/viewport/environment.js.map +0 -1
- package/dist/viewport/index.cjs +0 -2
- package/dist/viewport/index.cjs.map +0 -1
- package/dist/viewport/index.js.map +0 -1
- package/dist/viewport/platform-detection.cjs +0 -2
- package/dist/viewport/platform-detection.cjs.map +0 -1
- package/dist/viewport/platform-detection.js +0 -205
- package/dist/viewport/platform-detection.js.map +0 -1
- package/dist/viewport/types.cjs +0 -2
- package/dist/viewport/types.cjs.map +0 -1
- package/dist/viewport/types.js +0 -13
- package/dist/viewport/types.js.map +0 -1
- package/dist/viewport/viewport-manager.cjs +0 -2
- package/dist/viewport/viewport-manager.cjs.map +0 -1
- package/dist/viewport/viewport-manager.js +0 -524
- package/dist/viewport/viewport-manager.js.map +0 -1
- package/src/assets/Asset.ts +0 -11
- package/src/assets/AssetCollection.ts +0 -99
- package/src/assets/ColorAsset.ts +0 -210
- package/src/assets/FontAsset.ts +0 -380
- package/src/assets/ImageAsset.ts +0 -91
- package/src/assets/README.md +0 -190
- package/src/assets/index.ts +0 -175
- package/src/assets/test-assets.ts +0 -69
- package/src/assets/test-integration.ts +0 -46
- package/src/assets/test-simple.ts +0 -28
- package/src/assets/types.ts +0 -79
- package/src/bundles/common.ts +0 -30
- package/src/bundles/complete.ts +0 -29
- package/src/bundles/essential.ts +0 -26
- package/src/bundles/minimal.ts +0 -26
- package/src/bundles/production-minimal.ts +0 -67
- package/src/compiler/advanced-parser.ts +0 -871
- package/src/compiler/codegen.ts +0 -450
- package/src/compiler/enhanced-codegen.ts +0 -729
- package/src/compiler/index.ts +0 -25
- package/src/compiler/parser.ts +0 -461
- package/src/compiler/plugin.ts +0 -181
- package/src/compiler/types.ts +0 -177
- package/src/components/BasicInput.ts +0 -352
- package/src/components/Button.ts +0 -963
- package/src/components/Divider.ts +0 -341
- package/src/components/EnhancedLink.ts +0 -676
- package/src/components/Form.ts +0 -414
- package/src/components/Grid.ts +0 -2507
- package/src/components/GridResponsive.ts +0 -637
- package/src/components/Image.ts +0 -426
- package/src/components/List.ts +0 -1084
- package/src/components/Menu.ts +0 -807
- package/src/components/Picker.ts +0 -678
- package/src/components/ScrollView.ts +0 -725
- package/src/components/Section.ts +0 -472
- package/src/components/Show.ts +0 -205
- package/src/components/Spacer.ts +0 -93
- package/src/components/Text.ts +0 -447
- package/src/components/Toggle.ts +0 -700
- package/src/components/index.ts +0 -231
- package/src/components/wrapper.ts +0 -828
- package/src/concatenation/concatenatable.ts +0 -211
- package/src/concatenation/concatenated-component.ts +0 -471
- package/src/concatenation/index.ts +0 -41
- package/src/concatenation/styles.css +0 -120
- package/src/concatenation/text-optimizer.ts +0 -440
- package/src/concatenation/types.ts +0 -116
- package/src/constants/README.md +0 -339
- package/src/constants/__tests__/frame-utils.test.ts +0 -276
- package/src/constants/__tests__/layout.test.ts +0 -215
- package/src/constants/frame-utils.ts +0 -174
- package/src/constants/index.ts +0 -8
- package/src/constants/layout.ts +0 -120
- package/src/css-classes/component-base.ts +0 -117
- package/src/css-classes/css-class-manager.ts +0 -372
- package/src/css-classes/dom-integration.ts +0 -162
- package/src/css-classes/enhanced-renderer.ts +0 -166
- package/src/css-classes/index.ts +0 -45
- package/src/css-classes/types.ts +0 -73
- package/src/css-classes/utilities.ts +0 -175
- package/src/debug/index.ts +0 -267
- package/src/developer-experience/enhanced-errors.ts +0 -556
- package/src/developer-experience/enhanced-types.ts +0 -427
- package/src/developer-experience/index.ts +0 -220
- package/src/globals.d.ts +0 -43
- package/src/gradients/__tests__/angular-gradient.test.ts +0 -111
- package/src/gradients/__tests__/background-modifier.test.ts +0 -81
- package/src/gradients/__tests__/comprehensive-gradients.test.ts +0 -296
- package/src/gradients/__tests__/gradient-asset.test.ts +0 -144
- package/src/gradients/__tests__/linear-gradient.test.ts +0 -92
- package/src/gradients/__tests__/phase4-features.test.ts +0 -386
- package/src/gradients/__tests__/radial-gradient.test.ts +0 -110
- package/src/gradients/__tests__/repeating-gradients.test.ts +0 -125
- package/src/gradients/__tests__/state-background-modifier.test.ts +0 -340
- package/src/gradients/__tests__/state-gradient-asset.test.ts +0 -262
- package/src/gradients/__tests__/state-gradient-integration.test.ts +0 -277
- package/src/gradients/css-generator.ts +0 -158
- package/src/gradients/examples.ts +0 -632
- package/src/gradients/gradient-asset.ts +0 -30
- package/src/gradients/index.ts +0 -85
- package/src/gradients/performance.ts +0 -521
- package/src/gradients/presets.ts +0 -422
- package/src/gradients/reactive.ts +0 -470
- package/src/gradients/state-gradient-asset.ts +0 -179
- package/src/gradients/types.ts +0 -148
- package/src/gradients/utils.ts +0 -579
- package/src/gradients/validation.ts +0 -489
- package/src/index.ts +0 -168
- package/src/lifecycle/hooks.ts +0 -332
- package/src/modifiers/__tests__/as-html-integration.test.ts +0 -204
- package/src/modifiers/__tests__/as-html.test.ts +0 -437
- package/src/modifiers/__tests__/basic-sanitizer-security.test.ts +0 -294
- package/src/modifiers/__tests__/border.test.ts +0 -371
- package/src/modifiers/__tests__/margin-string-support.test.ts +0 -41
- package/src/modifiers/__tests__/padding-string-support.test.ts +0 -41
- package/src/modifiers/as-html-validator.ts +0 -68
- package/src/modifiers/as-html.ts +0 -216
- package/src/modifiers/attributes.ts +0 -574
- package/src/modifiers/backdrop.ts +0 -290
- package/src/modifiers/background.ts +0 -165
- package/src/modifiers/base.ts +0 -1815
- package/src/modifiers/basic-sanitizer.ts +0 -227
- package/src/modifiers/border.ts +0 -574
- package/src/modifiers/builder.ts +0 -1747
- package/src/modifiers/core.ts +0 -521
- package/src/modifiers/css.ts +0 -148
- package/src/modifiers/effects.ts +0 -412
- package/src/modifiers/elements.ts +0 -541
- package/src/modifiers/filters.ts +0 -501
- package/src/modifiers/flexbox.ts +0 -180
- package/src/modifiers/font.ts +0 -149
- package/src/modifiers/grid.ts +0 -238
- package/src/modifiers/index.ts +0 -481
- package/src/modifiers/margin.ts +0 -218
- package/src/modifiers/padding.ts +0 -318
- package/src/modifiers/registry.ts +0 -444
- package/src/modifiers/responsive/__tests__/advanced-media-queries.test.ts +0 -392
- package/src/modifiers/responsive/__tests__/advanced-utilities.test.ts +0 -368
- package/src/modifiers/responsive/__tests__/comprehensive-browser-tests.test.ts +0 -556
- package/src/modifiers/responsive/__tests__/layout-patterns.test.ts +0 -558
- package/src/modifiers/responsive/advanced-utilities.ts +0 -562
- package/src/modifiers/responsive/breakpoints.ts +0 -330
- package/src/modifiers/responsive/css-generator.ts +0 -432
- package/src/modifiers/responsive/dev-tools.ts +0 -650
- package/src/modifiers/responsive/index.ts +0 -119
- package/src/modifiers/responsive/layout-patterns.ts +0 -592
- package/src/modifiers/responsive/performance.ts +0 -385
- package/src/modifiers/responsive/responsive-builder.ts +0 -620
- package/src/modifiers/responsive/responsive-modifier.ts +0 -410
- package/src/modifiers/responsive/types.ts +0 -226
- package/src/modifiers/responsive/utilities.ts +0 -478
- package/src/modifiers/scroll.ts +0 -297
- package/src/modifiers/shadows.ts +0 -321
- package/src/modifiers/size.ts +0 -208
- package/src/modifiers/text.ts +0 -416
- package/src/modifiers/transformations.ts +0 -640
- package/src/modifiers/transitions.ts +0 -218
- package/src/modifiers/types.ts +0 -889
- package/src/modifiers/typography.ts +0 -341
- package/src/modifiers/utility.ts +0 -209
- package/src/modifiers/utils.ts +0 -413
- package/src/plugins/__tests__/simplified-plugin-system.test.ts +0 -190
- package/src/plugins/component-loader-registry.ts +0 -371
- package/src/plugins/index.ts +0 -61
- package/src/plugins/legacy-adapter.ts +0 -84
- package/src/plugins/simplified-component-registry.ts +0 -130
- package/src/plugins/simplified-error-handler.ts +0 -372
- package/src/plugins/simplified-index.ts +0 -61
- package/src/plugins/simplified-lazy-loader.ts +0 -242
- package/src/plugins/simplified-plugin-manager.ts +0 -93
- package/src/plugins/simplified-tachui-instance.ts +0 -142
- package/src/plugins/simplified-types.ts +0 -79
- package/src/plugins/simplified-utils.ts +0 -118
- package/src/reactive/cleanup.ts +0 -241
- package/src/reactive/computed.ts +0 -281
- package/src/reactive/context.ts +0 -287
- package/src/reactive/effect.ts +0 -194
- package/src/reactive/enhanced-effect.ts +0 -318
- package/src/reactive/enhanced-signal.ts +0 -227
- package/src/reactive/equality.ts +0 -188
- package/src/reactive/globals.d.ts +0 -5
- package/src/reactive/index.ts +0 -150
- package/src/reactive/migration.ts +0 -335
- package/src/reactive/ownership.ts +0 -182
- package/src/reactive/scheduler.ts +0 -300
- package/src/reactive/signal.ts +0 -201
- package/src/reactive/theme.ts +0 -49
- package/src/reactive/types.ts +0 -103
- package/src/reactive/unified-scheduler.ts +0 -357
- package/src/runtime/component-context.ts +0 -343
- package/src/runtime/component.ts +0 -499
- package/src/runtime/context.ts +0 -527
- package/src/runtime/dev-tools.ts +0 -752
- package/src/runtime/development-warnings.ts +0 -114
- package/src/runtime/dom-bridge.ts +0 -570
- package/src/runtime/element-override.ts +0 -282
- package/src/runtime/error-boundary.ts +0 -955
- package/src/runtime/error-recovery.ts +0 -638
- package/src/runtime/error-reporting.ts +0 -808
- package/src/runtime/error-utils.ts +0 -698
- package/src/runtime/index.ts +0 -202
- package/src/runtime/lazy-component.ts +0 -268
- package/src/runtime/lifecycle.ts +0 -10
- package/src/runtime/mounting.ts +0 -17
- package/src/runtime/optimization.ts +0 -13
- package/src/runtime/performance.ts +0 -693
- package/src/runtime/props.ts +0 -434
- package/src/runtime/refs.ts +0 -13
- package/src/runtime/renderer.ts +0 -674
- package/src/runtime/semantic-role-manager.ts +0 -140
- package/src/runtime/types.ts +0 -282
- package/src/state/binding.ts +0 -381
- package/src/state/environment-object.ts +0 -444
- package/src/state/environment.ts +0 -351
- package/src/state/index.ts +0 -179
- package/src/state/observed-object.ts +0 -405
- package/src/state/state-manager.ts +0 -366
- package/src/state/state.ts +0 -339
- package/src/state/types.ts +0 -192
- package/src/sui-compat.ts +0 -163
- package/src/validation/__tests__/phase-1d-integration.test.ts +0 -558
- package/src/validation/advanced-debugging.ts +0 -860
- package/src/validation/build-time/detection.ts +0 -373
- package/src/validation/build-time/index.ts +0 -222
- package/src/validation/build-time/plugins.ts +0 -515
- package/src/validation/build-time/rules.ts +0 -624
- package/src/validation/build-time/transformer.ts +0 -372
- package/src/validation/build-time/types.ts +0 -232
- package/src/validation/comprehensive.ts +0 -1272
- package/src/validation/debug-tools.ts +0 -724
- package/src/validation/developer-experience.ts +0 -712
- package/src/validation/documentation-integration.ts +0 -835
- package/src/validation/enhanced-runtime.ts +0 -765
- package/src/validation/error-reporting.ts +0 -587
- package/src/validation/ide-integration.ts +0 -845
- package/src/validation/index.ts +0 -353
- package/src/validation/lifecycle-validation.ts +0 -636
- package/src/validation/performance-optimizer.ts +0 -599
- package/src/validation/plugin-registration.ts +0 -249
- package/src/validation/production-bypass.ts +0 -466
- package/src/validation/simple.ts +0 -465
- package/src/viewport/adapters/web-adapter.ts +0 -1385
- package/src/viewport/components.ts +0 -505
- package/src/viewport/environment.ts +0 -173
- package/src/viewport/index.ts +0 -290
- package/src/viewport/platform-detection.ts +0 -431
- package/src/viewport/types.ts +0 -371
- package/src/viewport/viewport-manager.ts +0 -979
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance-optimizer.cjs","sources":["../../src/validation/performance-optimizer.ts"],"sourcesContent":["/**\n * Performance Optimization System - Phase 1C\n * \n * Advanced performance optimizations to reduce validation overhead\n * to <5% impact in development mode with smart caching and batching.\n */\n\nimport { ProductionModeManager } from './production-bypass'\nimport { validationDebugger } from './debug-tools'\n\n/**\n * Performance optimization configuration\n */\nexport interface PerformanceOptimizerConfig {\n enabled: boolean\n targetOverhead: number // percentage (5 = 5%)\n batchSize: number\n cacheStrategy: 'aggressive' | 'moderate' | 'conservative'\n asyncValidation: boolean\n throttleMs: number\n skipFrames: number // Skip validation every N frames\n}\n\n/**\n * Validation operation metrics\n */\nexport interface ValidationMetrics {\n operationCount: number\n totalTime: number\n averageTime: number\n maxTime: number\n cacheHitRate: number\n skipRate: number\n}\n\n/**\n * Performance optimization engine\n */\nexport class PerformanceOptimizer {\n private static instance: PerformanceOptimizer\n private config: PerformanceOptimizerConfig\n private metrics = new Map<string, ValidationMetrics>()\n private operationQueue: Array<() => void> = []\n private frameCounter = 0\n private lastBatchTime = 0\n private throttleTimers = new Map<string, number>()\n \n // Advanced caching\n private resultCache = new Map<string, { result: any; timestamp: number; hits: number }>()\n \n // Performance monitoring\n private performanceObserver?: PerformanceObserver\n private frameTimeTarget = 16.67 // 60fps target\n\n constructor(config: Partial<PerformanceOptimizerConfig> = {}) {\n this.config = {\n enabled: process.env.NODE_ENV !== 'production',\n targetOverhead: 5, // 5% overhead target\n batchSize: 10,\n cacheStrategy: 'moderate',\n asyncValidation: true,\n throttleMs: 16, // One frame\n skipFrames: 0, // Don't skip by default\n ...config\n }\n\n this.initializePerformanceMonitoring()\n }\n\n static getInstance(config?: Partial<PerformanceOptimizerConfig>): PerformanceOptimizer {\n if (!this.instance) {\n this.instance = new PerformanceOptimizer(config)\n }\n return this.instance\n }\n\n /**\n * Optimize validation function with caching and batching\n */\n optimizeValidation<T>(\n key: string,\n validationFn: () => T,\n options: {\n cache?: boolean\n batch?: boolean\n throttle?: boolean\n priority?: 'high' | 'medium' | 'low'\n } = {}\n ): T | Promise<T> {\n // Skip optimization in production\n if (ProductionModeManager.shouldBypassValidation()) {\n return validationFn()\n }\n\n const {\n cache = true,\n batch = false,\n throttle = false,\n priority = 'medium'\n } = options\n\n // Check cache first\n if (cache) {\n const cached = this.getCachedResult(key)\n if (cached !== undefined) {\n this.updateMetrics(key, 0, true, false) // Cache hit\n return cached\n }\n }\n\n // Apply frame skipping if configured\n if (this.shouldSkipFrame()) {\n this.updateMetrics(key, 0, false, true) // Skipped\n return this.getFallbackResult()\n }\n\n // Apply throttling\n if (throttle && this.isThrottled(key)) {\n return this.getFallbackResult()\n }\n\n const startTime = performance.now()\n\n try {\n let result: T\n\n if (batch && priority !== 'high') {\n // Add to batch queue for low priority operations\n return this.addToBatch(key, validationFn, cache) as Promise<T>\n } else {\n // Execute immediately\n result = validationFn()\n }\n\n const endTime = performance.now()\n const duration = endTime - startTime\n\n // Cache result if enabled\n if (cache) {\n this.cacheResult(key, result)\n }\n\n // Update metrics\n this.updateMetrics(key, duration, false, false)\n\n // Check performance impact\n this.checkPerformanceImpact(duration)\n\n return result\n\n } catch (error) {\n const endTime = performance.now()\n this.updateMetrics(key, endTime - startTime, false, false)\n throw error\n }\n }\n\n /**\n * Smart caching with TTL and popularity-based eviction\n */\n private getCachedResult(key: string): any {\n const cached = this.resultCache.get(key)\n if (!cached) return undefined\n\n // Check TTL based on cache strategy\n const ttl = this.getCacheTTL()\n if (Date.now() - cached.timestamp > ttl) {\n this.resultCache.delete(key)\n return undefined\n }\n\n // Update hit count\n cached.hits++\n return cached.result\n }\n\n /**\n * Cache result with intelligent eviction\n */\n private cacheResult(key: string, result: any): void {\n const maxCacheSize = this.getMaxCacheSize()\n \n // Evict least popular entries if cache is full\n if (this.resultCache.size >= maxCacheSize) {\n this.evictLeastPopular()\n }\n\n this.resultCache.set(key, {\n result,\n timestamp: Date.now(),\n hits: 1\n })\n }\n\n /**\n * Evict least popular cache entries\n */\n private evictLeastPopular(): void {\n const entries = Array.from(this.resultCache.entries())\n \n // Sort by hits (ascending) and timestamp (ascending)\n entries.sort((a, b) => {\n if (a[1].hits !== b[1].hits) {\n return a[1].hits - b[1].hits\n }\n return a[1].timestamp - b[1].timestamp\n })\n\n // Remove bottom 25%\n const removeCount = Math.floor(entries.length * 0.25)\n for (let i = 0; i < removeCount; i++) {\n this.resultCache.delete(entries[i][0])\n }\n }\n\n /**\n * Get cache TTL based on strategy\n */\n private getCacheTTL(): number {\n switch (this.config.cacheStrategy) {\n case 'aggressive': return 300000 // 5 minutes\n case 'moderate': return 60000 // 1 minute\n case 'conservative': return 10000 // 10 seconds\n default: return 60000\n }\n }\n\n /**\n * Get max cache size based on strategy\n */\n private getMaxCacheSize(): number {\n switch (this.config.cacheStrategy) {\n case 'aggressive': return 1000\n case 'moderate': return 500\n case 'conservative': return 100\n default: return 500\n }\n }\n\n /**\n * Check if operation should skip this frame\n */\n private shouldSkipFrame(): boolean {\n if (this.config.skipFrames === 0) return false\n \n this.frameCounter++\n return this.frameCounter % (this.config.skipFrames + 1) !== 0\n }\n\n /**\n * Check if operation is throttled\n */\n private isThrottled(key: string): boolean {\n const lastTime = this.throttleTimers.get(key) || 0\n const now = Date.now()\n \n if (now - lastTime < this.config.throttleMs) {\n return true\n }\n \n this.throttleTimers.set(key, now)\n return false\n }\n\n /**\n * Add operation to batch queue\n */\n private addToBatch<T>(key: string, fn: () => T, cache: boolean): Promise<T> {\n return new Promise((resolve, reject) => {\n this.operationQueue.push(() => {\n try {\n const result = fn()\n if (cache) {\n this.cacheResult(key, result)\n }\n resolve(result)\n } catch (error) {\n reject(error)\n }\n })\n\n // Process batch if it's full or enough time has passed\n this.processBatchIfReady()\n })\n }\n\n /**\n * Process batch queue if conditions are met\n */\n private processBatchIfReady(): void {\n const now = Date.now()\n const shouldProcess = \n this.operationQueue.length >= this.config.batchSize ||\n (this.operationQueue.length > 0 && now - this.lastBatchTime > this.config.throttleMs)\n\n if (shouldProcess) {\n this.processBatch()\n }\n }\n\n /**\n * Process batch queue\n */\n private processBatch(): void {\n if (this.operationQueue.length === 0) return\n\n const batch = this.operationQueue.splice(0, this.config.batchSize)\n this.lastBatchTime = Date.now()\n\n if (this.config.asyncValidation) {\n // Process asynchronously to not block the main thread\n setTimeout(() => {\n batch.forEach(operation => operation())\n }, 0)\n } else {\n // Process synchronously\n batch.forEach(operation => operation())\n }\n }\n\n /**\n * Update operation metrics\n */\n private updateMetrics(key: string, duration: number, cacheHit: boolean, skipped: boolean): void {\n let metrics = this.metrics.get(key)\n if (!metrics) {\n metrics = {\n operationCount: 0,\n totalTime: 0,\n averageTime: 0,\n maxTime: 0,\n cacheHitRate: 0,\n skipRate: 0\n }\n this.metrics.set(key, metrics)\n }\n\n metrics.operationCount++\n \n if (!cacheHit && !skipped) {\n metrics.totalTime += duration\n metrics.averageTime = metrics.totalTime / metrics.operationCount\n metrics.maxTime = Math.max(metrics.maxTime, duration)\n }\n\n // Update rates\n const totalOperations = metrics.operationCount\n const cacheHits = Math.floor(metrics.cacheHitRate * totalOperations) + (cacheHit ? 1 : 0)\n const skips = Math.floor(metrics.skipRate * totalOperations) + (skipped ? 1 : 0)\n \n metrics.cacheHitRate = cacheHits / totalOperations\n metrics.skipRate = skips / totalOperations\n }\n\n /**\n * Check if performance impact exceeds target\n */\n private checkPerformanceImpact(duration: number): void {\n const frameTime = this.frameTimeTarget\n const impactPercentage = (duration / frameTime) * 100\n\n if (impactPercentage > this.config.targetOverhead) {\n // Automatically adjust optimization settings\n this.autoOptimize(impactPercentage)\n \n validationDebugger.logEvent(\n 'performance-warning',\n `Validation overhead: ${impactPercentage.toFixed(1)}% (target: ${this.config.targetOverhead}%)`,\n { duration, target: this.config.targetOverhead, actual: impactPercentage }\n )\n }\n }\n\n /**\n * Automatically adjust optimization settings\n */\n private autoOptimize(currentImpact: number): void {\n const factor = currentImpact / this.config.targetOverhead\n\n if (factor > 2) {\n // Very high impact - aggressive optimization\n this.config.cacheStrategy = 'aggressive'\n this.config.skipFrames = Math.max(1, this.config.skipFrames)\n this.config.throttleMs = Math.max(this.config.throttleMs, 32)\n this.config.batchSize = Math.min(this.config.batchSize, 5)\n } else if (factor > 1.5) {\n // High impact - moderate optimization\n this.config.cacheStrategy = 'aggressive'\n this.config.throttleMs = Math.max(this.config.throttleMs, 16)\n }\n }\n\n /**\n * Get fallback result for skipped/throttled operations\n */\n private getFallbackResult(): any {\n // Return a safe default that won't cause errors\n // In practice, this would be context-specific\n return true\n }\n\n /**\n * Initialize performance monitoring\n */\n private initializePerformanceMonitoring(): void {\n if (typeof PerformanceObserver !== 'undefined') {\n try {\n this.performanceObserver = new PerformanceObserver((list) => {\n const entries = list.getEntries()\n entries.forEach((entry) => {\n if (entry.name.includes('tachui-validation')) {\n this.analyzePerformanceEntry(entry)\n }\n })\n })\n \n this.performanceObserver.observe({ entryTypes: ['measure', 'navigation', 'paint'] })\n } catch (_error) {\n // PerformanceObserver not supported\n }\n }\n }\n\n /**\n * Analyze performance entry\n */\n private analyzePerformanceEntry(entry: PerformanceEntry): void {\n if (entry.duration > this.frameTimeTarget) {\n console.warn(`⚠️ Slow validation operation: ${entry.name} took ${entry.duration.toFixed(2)}ms`)\n }\n }\n\n /**\n * Get performance statistics\n */\n getPerformanceStats() {\n const totalOperations = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.operationCount, 0)\n \n const totalTime = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.totalTime, 0)\n \n const averageTime = totalOperations > 0 ? totalTime / totalOperations : 0\n \n const cacheHitRate = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.cacheHitRate, 0) / this.metrics.size || 0\n \n const skipRate = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.skipRate, 0) / this.metrics.size || 0\n\n return {\n config: this.config,\n totalOperations,\n totalTime,\n averageTime,\n cacheHitRate,\n skipRate,\n cacheSize: this.resultCache.size,\n queueSize: this.operationQueue.length,\n frameImpact: (averageTime / this.frameTimeTarget) * 100,\n targetMet: (averageTime / this.frameTimeTarget) * 100 <= this.config.targetOverhead,\n operations: Object.fromEntries(this.metrics)\n }\n }\n\n /**\n * Clear all caches and reset metrics\n */\n reset(): void {\n this.resultCache.clear()\n this.metrics.clear()\n this.operationQueue = []\n this.throttleTimers.clear()\n this.frameCounter = 0\n this.lastBatchTime = 0\n }\n\n /**\n * Configure optimizer\n */\n configure(config: Partial<PerformanceOptimizerConfig>): void {\n this.config = { ...this.config, ...config }\n }\n\n /**\n * Force process all batched operations\n */\n flush(): void {\n while (this.operationQueue.length > 0) {\n this.processBatch()\n }\n }\n\n /**\n * Get cache statistics\n */\n getCacheStats() {\n const entries = Array.from(this.resultCache.values())\n const totalHits = entries.reduce((sum, entry) => sum + entry.hits, 0)\n const averageAge = entries.length > 0 \n ? entries.reduce((sum, entry) => sum + (Date.now() - entry.timestamp), 0) / entries.length\n : 0\n\n return {\n size: this.resultCache.size,\n maxSize: this.getMaxCacheSize(),\n totalHits,\n averageAge,\n strategy: this.config.cacheStrategy,\n ttl: this.getCacheTTL()\n }\n }\n}\n\n// Global optimizer instance\nexport const performanceOptimizer = PerformanceOptimizer.getInstance()\n\n// Performance optimization utilities\nexport const PerformanceOptimizationUtils = {\n /**\n * Configure performance optimizer\n */\n configure: (config: Partial<PerformanceOptimizerConfig>) => \n performanceOptimizer.configure(config),\n\n /**\n * Get performance statistics\n */\n getStats: () => performanceOptimizer.getPerformanceStats(),\n\n /**\n * Get cache statistics\n */\n getCacheStats: () => performanceOptimizer.getCacheStats(),\n\n /**\n * Reset optimizer\n */\n reset: () => performanceOptimizer.reset(),\n\n /**\n * Flush batched operations\n */\n flush: () => performanceOptimizer.flush(),\n\n /**\n * Optimize validation function\n */\n optimize: <T>(\n key: string,\n fn: () => T,\n options?: {\n cache?: boolean\n batch?: boolean\n throttle?: boolean\n priority?: 'high' | 'medium' | 'low'\n }\n ) => performanceOptimizer.optimizeValidation(key, fn, options),\n\n /**\n * Test performance optimization\n */\n test: () => {\n console.group('⚡ Performance Optimization Test')\n \n try {\n const startTime = performance.now()\n \n // Test optimization with different scenarios\n const results = []\n \n // Test caching\n for (let i = 0; i < 100; i++) {\n const result = performanceOptimizer.optimizeValidation(\n 'test-cache',\n () => Math.random(),\n { cache: true }\n )\n results.push(result)\n }\n \n const endTime = performance.now()\n const duration = endTime - startTime\n const stats = performanceOptimizer.getPerformanceStats()\n \n console.info('✅ Optimization system active:', stats.config.enabled)\n console.info('✅ Test duration:', `${duration.toFixed(2)}ms`)\n console.info('✅ Cache hit rate:', `${(stats.cacheHitRate * 100).toFixed(1)}%`)\n console.info('✅ Frame impact:', `${stats.frameImpact.toFixed(1)}% (target: ${stats.config.targetOverhead}%)`)\n console.info('✅ Target met:', stats.targetMet)\n console.info('✅ Performance optimization is working correctly')\n \n } catch (error) {\n console.error('❌ Performance optimization test failed:', error)\n }\n \n console.groupEnd()\n }\n}"],"names":["_PerformanceOptimizer","config","__publicField","key","validationFn","options","ProductionModeManager","cache","batch","throttle","priority","cached","startTime","result","duration","error","endTime","ttl","maxCacheSize","entries","a","b","removeCount","lastTime","now","fn","resolve","reject","operation","cacheHit","skipped","metrics","totalOperations","cacheHits","skips","frameTime","impactPercentage","validationDebugger","currentImpact","factor","list","entry","sum","totalTime","averageTime","cacheHitRate","skipRate","totalHits","averageAge","PerformanceOptimizer","performanceOptimizer","PerformanceOptimizationUtils","results","i","stats"],"mappings":"sTAsCO,MAAMA,EAAN,MAAMA,CAAqB,CAgBhC,YAAYC,EAA8C,GAAI,CAd9DC,EAAA,KAAQ,QAAA,EACRA,EAAA,KAAQ,cAAc,GAA+B,EACrDA,EAAA,KAAQ,iBAAoC,EAAC,EAC7CA,EAAA,KAAQ,eAAe,CAAA,EACvBA,EAAA,KAAQ,gBAAgB,CAAA,EACxBA,EAAA,KAAQ,qBAAqB,GAAoB,EAGjDA,EAAA,KAAQ,kBAAkB,GAA8D,EAGxFA,EAAA,KAAQ,qBAAA,EACRA,EAAA,KAAQ,kBAAkB,KAAA,EAGxB,KAAK,OAAS,CACZ,QAAS,QAAQ,IAAI,WAAa,aAClC,eAAgB,EAChB,UAAW,GACX,cAAe,WACf,gBAAiB,GACjB,WAAY,GACZ,WAAY,EACZ,GAAGD,CAAA,EAGL,KAAK,gCAAA,CACP,CAEA,OAAO,YAAYA,EAAoE,CACrF,OAAK,KAAK,WACR,KAAK,SAAW,IAAID,EAAqBC,CAAM,GAE1C,KAAK,QACd,CAKA,mBACEE,EACAC,EACAC,EAKI,CAAA,EACY,CAEhB,GAAIC,EAAAA,sBAAsB,yBACxB,OAAOF,EAAA,EAGT,KAAM,CACJ,MAAAG,EAAQ,GACR,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,SAAAC,EAAW,QAAA,EACTL,EAGJ,GAAIE,EAAO,CACT,MAAMI,EAAS,KAAK,gBAAgBR,CAAG,EACvC,GAAIQ,IAAW,OACb,YAAK,cAAcR,EAAK,EAAG,GAAM,EAAK,EAC/BQ,CAEX,CAGA,GAAI,KAAK,kBACP,YAAK,cAAcR,EAAK,EAAG,GAAO,EAAI,EAC/B,KAAK,kBAAA,EAId,GAAIM,GAAY,KAAK,YAAYN,CAAG,EAClC,OAAO,KAAK,kBAAA,EAGd,MAAMS,EAAY,YAAY,IAAA,EAE9B,GAAI,CACF,IAAIC,EAEJ,GAAIL,GAASE,IAAa,OAExB,OAAO,KAAK,WAAWP,EAAKC,EAAcG,CAAK,EAG/CM,EAAST,EAAA,EAIX,MAAMU,EADU,YAAY,IAAA,EACDF,EAG3B,OAAIL,GACF,KAAK,YAAYJ,EAAKU,CAAM,EAI9B,KAAK,cAAcV,EAAKW,EAAU,GAAO,EAAK,EAG9C,KAAK,uBAAuBA,CAAQ,EAE7BD,CAET,OAASE,EAAO,CACd,MAAMC,EAAU,YAAY,IAAA,EAC5B,WAAK,cAAcb,EAAKa,EAAUJ,EAAW,GAAO,EAAK,EACnDG,CACR,CACF,CAKQ,gBAAgBZ,EAAkB,CACxC,MAAMQ,EAAS,KAAK,YAAY,IAAIR,CAAG,EACvC,GAAI,CAACQ,EAAQ,OAGb,MAAMM,EAAM,KAAK,YAAA,EACjB,GAAI,KAAK,IAAA,EAAQN,EAAO,UAAYM,EAAK,CACvC,KAAK,YAAY,OAAOd,CAAG,EAC3B,MACF,CAGA,OAAAQ,EAAO,OACAA,EAAO,MAChB,CAKQ,YAAYR,EAAaU,EAAmB,CAClD,MAAMK,EAAe,KAAK,gBAAA,EAGtB,KAAK,YAAY,MAAQA,GAC3B,KAAK,kBAAA,EAGP,KAAK,YAAY,IAAIf,EAAK,CACxB,OAAAU,EACA,UAAW,KAAK,IAAA,EAChB,KAAM,CAAA,CACP,CACH,CAKQ,mBAA0B,CAChC,MAAMM,EAAU,MAAM,KAAK,KAAK,YAAY,SAAS,EAGrDA,EAAQ,KAAK,CAACC,EAAGC,IACXD,EAAE,CAAC,EAAE,OAASC,EAAE,CAAC,EAAE,KACdD,EAAE,CAAC,EAAE,KAAOC,EAAE,CAAC,EAAE,KAEnBD,EAAE,CAAC,EAAE,UAAYC,EAAE,CAAC,EAAE,SAC9B,EAGD,MAAMC,EAAc,KAAK,MAAMH,EAAQ,OAAS,GAAI,EACpD,QAAS,EAAI,EAAG,EAAIG,EAAa,IAC/B,KAAK,YAAY,OAAOH,EAAQ,CAAC,EAAE,CAAC,CAAC,CAEzC,CAKQ,aAAsB,CAC5B,OAAQ,KAAK,OAAO,cAAA,CAClB,IAAK,aAAc,MAAO,KAC1B,IAAK,WAAY,MAAO,KACxB,IAAK,eAAgB,MAAO,KAC5B,QAAS,MAAO,IAAA,CAEpB,CAKQ,iBAA0B,CAChC,OAAQ,KAAK,OAAO,cAAA,CAClB,IAAK,aAAc,MAAO,KAC1B,IAAK,WAAY,MAAO,KACxB,IAAK,eAAgB,MAAO,KAC5B,QAAS,MAAO,IAAA,CAEpB,CAKQ,iBAA2B,CACjC,OAAI,KAAK,OAAO,aAAe,EAAU,IAEzC,KAAK,eACE,KAAK,cAAgB,KAAK,OAAO,WAAa,KAAO,EAC9D,CAKQ,YAAYhB,EAAsB,CACxC,MAAMoB,EAAW,KAAK,eAAe,IAAIpB,CAAG,GAAK,EAC3CqB,EAAM,KAAK,IAAA,EAEjB,OAAIA,EAAMD,EAAW,KAAK,OAAO,WACxB,IAGT,KAAK,eAAe,IAAIpB,EAAKqB,CAAG,EACzB,GACT,CAKQ,WAAcrB,EAAasB,EAAalB,EAA4B,CAC1E,OAAO,IAAI,QAAQ,CAACmB,EAASC,IAAW,CACtC,KAAK,eAAe,KAAK,IAAM,CAC7B,GAAI,CACF,MAAMd,EAASY,EAAA,EACXlB,GACF,KAAK,YAAYJ,EAAKU,CAAM,EAE9Ba,EAAQb,CAAM,CAChB,OAASE,EAAO,CACdY,EAAOZ,CAAK,CACd,CACF,CAAC,EAGD,KAAK,oBAAA,CACP,CAAC,CACH,CAKQ,qBAA4B,CAClC,MAAMS,EAAM,KAAK,IAAA,GAEf,KAAK,eAAe,QAAU,KAAK,OAAO,WACzC,KAAK,eAAe,OAAS,GAAKA,EAAM,KAAK,cAAgB,KAAK,OAAO,aAG1E,KAAK,aAAA,CAET,CAKQ,cAAqB,CAC3B,GAAI,KAAK,eAAe,SAAW,EAAG,OAEtC,MAAMhB,EAAQ,KAAK,eAAe,OAAO,EAAG,KAAK,OAAO,SAAS,EACjE,KAAK,cAAgB,KAAK,IAAA,EAEtB,KAAK,OAAO,gBAEd,WAAW,IAAM,CACfA,EAAM,QAAQoB,GAAaA,EAAA,CAAW,CACxC,EAAG,CAAC,EAGJpB,EAAM,QAAQoB,GAAaA,EAAA,CAAW,CAE1C,CAKQ,cAAczB,EAAaW,EAAkBe,EAAmBC,EAAwB,CAC9F,IAAIC,EAAU,KAAK,QAAQ,IAAI5B,CAAG,EAC7B4B,IACHA,EAAU,CACR,eAAgB,EAChB,UAAW,EACX,YAAa,EACb,QAAS,EACT,aAAc,EACd,SAAU,CAAA,EAEZ,KAAK,QAAQ,IAAI5B,EAAK4B,CAAO,GAG/BA,EAAQ,iBAEJ,CAACF,GAAY,CAACC,IAChBC,EAAQ,WAAajB,EACrBiB,EAAQ,YAAcA,EAAQ,UAAYA,EAAQ,eAClDA,EAAQ,QAAU,KAAK,IAAIA,EAAQ,QAASjB,CAAQ,GAItD,MAAMkB,EAAkBD,EAAQ,eAC1BE,EAAY,KAAK,MAAMF,EAAQ,aAAeC,CAAe,GAAKH,EAAW,EAAI,GACjFK,EAAQ,KAAK,MAAMH,EAAQ,SAAWC,CAAe,GAAKF,EAAU,EAAI,GAE9EC,EAAQ,aAAeE,EAAYD,EACnCD,EAAQ,SAAWG,EAAQF,CAC7B,CAKQ,uBAAuBlB,EAAwB,CACrD,MAAMqB,EAAY,KAAK,gBACjBC,EAAoBtB,EAAWqB,EAAa,IAE9CC,EAAmB,KAAK,OAAO,iBAEjC,KAAK,aAAaA,CAAgB,EAElCC,EAAAA,mBAAmB,SACjB,sBACA,wBAAwBD,EAAiB,QAAQ,CAAC,CAAC,cAAc,KAAK,OAAO,cAAc,KAC3F,CAAE,SAAAtB,EAAU,OAAQ,KAAK,OAAO,eAAgB,OAAQsB,CAAA,CAAiB,EAG/E,CAKQ,aAAaE,EAA6B,CAChD,MAAMC,EAASD,EAAgB,KAAK,OAAO,eAEvCC,EAAS,GAEX,KAAK,OAAO,cAAgB,aAC5B,KAAK,OAAO,WAAa,KAAK,IAAI,EAAG,KAAK,OAAO,UAAU,EAC3D,KAAK,OAAO,WAAa,KAAK,IAAI,KAAK,OAAO,WAAY,EAAE,EAC5D,KAAK,OAAO,UAAY,KAAK,IAAI,KAAK,OAAO,UAAW,CAAC,GAChDA,EAAS,MAElB,KAAK,OAAO,cAAgB,aAC5B,KAAK,OAAO,WAAa,KAAK,IAAI,KAAK,OAAO,WAAY,EAAE,EAEhE,CAKQ,mBAAyB,CAG/B,MAAO,EACT,CAKQ,iCAAwC,CAC9C,GAAI,OAAO,oBAAwB,IACjC,GAAI,CACF,KAAK,oBAAsB,IAAI,oBAAqBC,GAAS,CAC3CA,EAAK,WAAA,EACb,QAASC,GAAU,CACrBA,EAAM,KAAK,SAAS,mBAAmB,GACzC,KAAK,wBAAwBA,CAAK,CAEtC,CAAC,CACH,CAAC,EAED,KAAK,oBAAoB,QAAQ,CAAE,WAAY,CAAC,UAAW,aAAc,OAAO,EAAG,CACrF,MAAiB,CAEjB,CAEJ,CAKQ,wBAAwBA,EAA+B,CACzDA,EAAM,SAAW,KAAK,iBACxB,QAAQ,KAAK,iCAAiCA,EAAM,IAAI,SAASA,EAAM,SAAS,QAAQ,CAAC,CAAC,IAAI,CAElG,CAKA,qBAAsB,CACpB,MAAMT,EAAkB,MAAM,KAAK,KAAK,QAAQ,OAAA,CAAQ,EACrD,OAAO,CAACU,EAAKX,IAAYW,EAAMX,EAAQ,eAAgB,CAAC,EAErDY,EAAY,MAAM,KAAK,KAAK,QAAQ,OAAA,CAAQ,EAC/C,OAAO,CAACD,EAAKX,IAAYW,EAAMX,EAAQ,UAAW,CAAC,EAEhDa,EAAcZ,EAAkB,EAAIW,EAAYX,EAAkB,EAElEa,EAAe,MAAM,KAAK,KAAK,QAAQ,OAAA,CAAQ,EAClD,OAAO,CAACH,EAAKX,IAAYW,EAAMX,EAAQ,aAAc,CAAC,EAAI,KAAK,QAAQ,MAAQ,EAE5Ee,EAAW,MAAM,KAAK,KAAK,QAAQ,OAAA,CAAQ,EAC9C,OAAO,CAACJ,EAAKX,IAAYW,EAAMX,EAAQ,SAAU,CAAC,EAAI,KAAK,QAAQ,MAAQ,EAE9E,MAAO,CACL,OAAQ,KAAK,OACb,gBAAAC,EACA,UAAAW,EACA,YAAAC,EACA,aAAAC,EACA,SAAAC,EACA,UAAW,KAAK,YAAY,KAC5B,UAAW,KAAK,eAAe,OAC/B,YAAcF,EAAc,KAAK,gBAAmB,IACpD,UAAYA,EAAc,KAAK,gBAAmB,KAAO,KAAK,OAAO,eACrE,WAAY,OAAO,YAAY,KAAK,OAAO,CAAA,CAE/C,CAKA,OAAc,CACZ,KAAK,YAAY,MAAA,EACjB,KAAK,QAAQ,MAAA,EACb,KAAK,eAAiB,CAAA,EACtB,KAAK,eAAe,MAAA,EACpB,KAAK,aAAe,EACpB,KAAK,cAAgB,CACvB,CAKA,UAAU3C,EAAmD,CAC3D,KAAK,OAAS,CAAE,GAAG,KAAK,OAAQ,GAAGA,CAAA,CACrC,CAKA,OAAc,CACZ,KAAO,KAAK,eAAe,OAAS,GAClC,KAAK,aAAA,CAET,CAKA,eAAgB,CACd,MAAMkB,EAAU,MAAM,KAAK,KAAK,YAAY,QAAQ,EAC9C4B,EAAY5B,EAAQ,OAAO,CAACuB,EAAKD,IAAUC,EAAMD,EAAM,KAAM,CAAC,EAC9DO,EAAa7B,EAAQ,OAAS,EAChCA,EAAQ,OAAO,CAACuB,EAAKD,IAAUC,GAAO,KAAK,MAAQD,EAAM,WAAY,CAAC,EAAItB,EAAQ,OAClF,EAEJ,MAAO,CACL,KAAM,KAAK,YAAY,KACvB,QAAS,KAAK,gBAAA,EACd,UAAA4B,EACA,WAAAC,EACA,SAAU,KAAK,OAAO,cACtB,IAAK,KAAK,YAAA,CAAY,CAE1B,CACF,EAzdE9C,EADWF,EACI,UAAA,EADV,IAAMiD,EAANjD,EA6dA,MAAMkD,EAAuBD,EAAqB,YAAA,EAG5CE,EAA+B,CAI1C,UAAYlD,GACViD,EAAqB,UAAUjD,CAAM,EAKvC,SAAU,IAAMiD,EAAqB,oBAAA,EAKrC,cAAe,IAAMA,EAAqB,cAAA,EAK1C,MAAO,IAAMA,EAAqB,MAAA,EAKlC,MAAO,IAAMA,EAAqB,MAAA,EAKlC,SAAU,CACR/C,EACAsB,EACApB,IAMG6C,EAAqB,mBAAmB/C,EAAKsB,EAAIpB,CAAO,EAK7D,KAAM,IAAM,CACV,QAAQ,MAAM,iCAAiC,EAE/C,GAAI,CACF,MAAMO,EAAY,YAAY,IAAA,EAGxBwC,EAAU,CAAA,EAGhB,QAASC,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,MAAMxC,EAASqC,EAAqB,mBAClC,aACA,IAAM,KAAK,OAAA,EACX,CAAE,MAAO,EAAA,CAAK,EAEhBE,EAAQ,KAAKvC,CAAM,CACrB,CAGA,MAAMC,EADU,YAAY,IAAA,EACDF,EACrB0C,EAAQJ,EAAqB,oBAAA,EAEnC,QAAQ,KAAK,gCAAiCI,EAAM,OAAO,OAAO,EAClE,QAAQ,KAAK,mBAAoB,GAAGxC,EAAS,QAAQ,CAAC,CAAC,IAAI,EAC3D,QAAQ,KAAK,oBAAqB,IAAIwC,EAAM,aAAe,KAAK,QAAQ,CAAC,CAAC,GAAG,EAC7E,QAAQ,KAAK,kBAAmB,GAAGA,EAAM,YAAY,QAAQ,CAAC,CAAC,cAAcA,EAAM,OAAO,cAAc,IAAI,EAC5G,QAAQ,KAAK,gBAAiBA,EAAM,SAAS,EAC7C,QAAQ,KAAK,iDAAiD,CAEhE,OAASvC,EAAO,CACd,QAAQ,MAAM,0CAA2CA,CAAK,CAChE,CAEA,QAAQ,SAAA,CACV,CACF"}
|
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
import { ProductionModeManager as d } from "./production-bypass.js";
|
|
2
|
-
import { validationDebugger as T } from "./debug-tools.js";
|
|
3
|
-
var v = Object.defineProperty, z = (o, e, t) => e in o ? v(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, n = (o, e, t) => z(o, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
const g = class p {
|
|
5
|
-
// 60fps target
|
|
6
|
-
constructor(e = {}) {
|
|
7
|
-
n(this, "config"), n(this, "metrics", /* @__PURE__ */ new Map()), n(this, "operationQueue", []), n(this, "frameCounter", 0), n(this, "lastBatchTime", 0), n(this, "throttleTimers", /* @__PURE__ */ new Map()), n(this, "resultCache", /* @__PURE__ */ new Map()), n(this, "performanceObserver"), n(this, "frameTimeTarget", 16.67), this.config = {
|
|
8
|
-
enabled: process.env.NODE_ENV !== "production",
|
|
9
|
-
targetOverhead: 5,
|
|
10
|
-
// 5% overhead target
|
|
11
|
-
batchSize: 10,
|
|
12
|
-
cacheStrategy: "moderate",
|
|
13
|
-
asyncValidation: !0,
|
|
14
|
-
throttleMs: 16,
|
|
15
|
-
// One frame
|
|
16
|
-
skipFrames: 0,
|
|
17
|
-
// Don't skip by default
|
|
18
|
-
...e
|
|
19
|
-
}, this.initializePerformanceMonitoring();
|
|
20
|
-
}
|
|
21
|
-
static getInstance(e) {
|
|
22
|
-
return this.instance || (this.instance = new p(e)), this.instance;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Optimize validation function with caching and batching
|
|
26
|
-
*/
|
|
27
|
-
optimizeValidation(e, t, i = {}) {
|
|
28
|
-
if (d.shouldBypassValidation())
|
|
29
|
-
return t();
|
|
30
|
-
const {
|
|
31
|
-
cache: s = !0,
|
|
32
|
-
batch: r = !1,
|
|
33
|
-
throttle: a = !1,
|
|
34
|
-
priority: c = "medium"
|
|
35
|
-
} = i;
|
|
36
|
-
if (s) {
|
|
37
|
-
const h = this.getCachedResult(e);
|
|
38
|
-
if (h !== void 0)
|
|
39
|
-
return this.updateMetrics(e, 0, !0, !1), h;
|
|
40
|
-
}
|
|
41
|
-
if (this.shouldSkipFrame())
|
|
42
|
-
return this.updateMetrics(e, 0, !1, !0), this.getFallbackResult();
|
|
43
|
-
if (a && this.isThrottled(e))
|
|
44
|
-
return this.getFallbackResult();
|
|
45
|
-
const f = performance.now();
|
|
46
|
-
try {
|
|
47
|
-
let h;
|
|
48
|
-
if (r && c !== "high")
|
|
49
|
-
return this.addToBatch(e, t, s);
|
|
50
|
-
h = t();
|
|
51
|
-
const u = performance.now() - f;
|
|
52
|
-
return s && this.cacheResult(e, h), this.updateMetrics(e, u, !1, !1), this.checkPerformanceImpact(u), h;
|
|
53
|
-
} catch (h) {
|
|
54
|
-
const l = performance.now();
|
|
55
|
-
throw this.updateMetrics(e, l - f, !1, !1), h;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Smart caching with TTL and popularity-based eviction
|
|
60
|
-
*/
|
|
61
|
-
getCachedResult(e) {
|
|
62
|
-
const t = this.resultCache.get(e);
|
|
63
|
-
if (!t) return;
|
|
64
|
-
const i = this.getCacheTTL();
|
|
65
|
-
if (Date.now() - t.timestamp > i) {
|
|
66
|
-
this.resultCache.delete(e);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
return t.hits++, t.result;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Cache result with intelligent eviction
|
|
73
|
-
*/
|
|
74
|
-
cacheResult(e, t) {
|
|
75
|
-
const i = this.getMaxCacheSize();
|
|
76
|
-
this.resultCache.size >= i && this.evictLeastPopular(), this.resultCache.set(e, {
|
|
77
|
-
result: t,
|
|
78
|
-
timestamp: Date.now(),
|
|
79
|
-
hits: 1
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Evict least popular cache entries
|
|
84
|
-
*/
|
|
85
|
-
evictLeastPopular() {
|
|
86
|
-
const e = Array.from(this.resultCache.entries());
|
|
87
|
-
e.sort((i, s) => i[1].hits !== s[1].hits ? i[1].hits - s[1].hits : i[1].timestamp - s[1].timestamp);
|
|
88
|
-
const t = Math.floor(e.length * 0.25);
|
|
89
|
-
for (let i = 0; i < t; i++)
|
|
90
|
-
this.resultCache.delete(e[i][0]);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Get cache TTL based on strategy
|
|
94
|
-
*/
|
|
95
|
-
getCacheTTL() {
|
|
96
|
-
switch (this.config.cacheStrategy) {
|
|
97
|
-
case "aggressive":
|
|
98
|
-
return 3e5;
|
|
99
|
-
// 5 minutes
|
|
100
|
-
case "moderate":
|
|
101
|
-
return 6e4;
|
|
102
|
-
// 1 minute
|
|
103
|
-
case "conservative":
|
|
104
|
-
return 1e4;
|
|
105
|
-
// 10 seconds
|
|
106
|
-
default:
|
|
107
|
-
return 6e4;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Get max cache size based on strategy
|
|
112
|
-
*/
|
|
113
|
-
getMaxCacheSize() {
|
|
114
|
-
switch (this.config.cacheStrategy) {
|
|
115
|
-
case "aggressive":
|
|
116
|
-
return 1e3;
|
|
117
|
-
case "moderate":
|
|
118
|
-
return 500;
|
|
119
|
-
case "conservative":
|
|
120
|
-
return 100;
|
|
121
|
-
default:
|
|
122
|
-
return 500;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Check if operation should skip this frame
|
|
127
|
-
*/
|
|
128
|
-
shouldSkipFrame() {
|
|
129
|
-
return this.config.skipFrames === 0 ? !1 : (this.frameCounter++, this.frameCounter % (this.config.skipFrames + 1) !== 0);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Check if operation is throttled
|
|
133
|
-
*/
|
|
134
|
-
isThrottled(e) {
|
|
135
|
-
const t = this.throttleTimers.get(e) || 0, i = Date.now();
|
|
136
|
-
return i - t < this.config.throttleMs ? !0 : (this.throttleTimers.set(e, i), !1);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Add operation to batch queue
|
|
140
|
-
*/
|
|
141
|
-
addToBatch(e, t, i) {
|
|
142
|
-
return new Promise((s, r) => {
|
|
143
|
-
this.operationQueue.push(() => {
|
|
144
|
-
try {
|
|
145
|
-
const a = t();
|
|
146
|
-
i && this.cacheResult(e, a), s(a);
|
|
147
|
-
} catch (a) {
|
|
148
|
-
r(a);
|
|
149
|
-
}
|
|
150
|
-
}), this.processBatchIfReady();
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Process batch queue if conditions are met
|
|
155
|
-
*/
|
|
156
|
-
processBatchIfReady() {
|
|
157
|
-
const e = Date.now();
|
|
158
|
-
(this.operationQueue.length >= this.config.batchSize || this.operationQueue.length > 0 && e - this.lastBatchTime > this.config.throttleMs) && this.processBatch();
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Process batch queue
|
|
162
|
-
*/
|
|
163
|
-
processBatch() {
|
|
164
|
-
if (this.operationQueue.length === 0) return;
|
|
165
|
-
const e = this.operationQueue.splice(0, this.config.batchSize);
|
|
166
|
-
this.lastBatchTime = Date.now(), this.config.asyncValidation ? setTimeout(() => {
|
|
167
|
-
e.forEach((t) => t());
|
|
168
|
-
}, 0) : e.forEach((t) => t());
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Update operation metrics
|
|
172
|
-
*/
|
|
173
|
-
updateMetrics(e, t, i, s) {
|
|
174
|
-
let r = this.metrics.get(e);
|
|
175
|
-
r || (r = {
|
|
176
|
-
operationCount: 0,
|
|
177
|
-
totalTime: 0,
|
|
178
|
-
averageTime: 0,
|
|
179
|
-
maxTime: 0,
|
|
180
|
-
cacheHitRate: 0,
|
|
181
|
-
skipRate: 0
|
|
182
|
-
}, this.metrics.set(e, r)), r.operationCount++, !i && !s && (r.totalTime += t, r.averageTime = r.totalTime / r.operationCount, r.maxTime = Math.max(r.maxTime, t));
|
|
183
|
-
const a = r.operationCount, c = Math.floor(r.cacheHitRate * a) + (i ? 1 : 0), f = Math.floor(r.skipRate * a) + (s ? 1 : 0);
|
|
184
|
-
r.cacheHitRate = c / a, r.skipRate = f / a;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Check if performance impact exceeds target
|
|
188
|
-
*/
|
|
189
|
-
checkPerformanceImpact(e) {
|
|
190
|
-
const t = this.frameTimeTarget, i = e / t * 100;
|
|
191
|
-
i > this.config.targetOverhead && (this.autoOptimize(i), T.logEvent(
|
|
192
|
-
"performance-warning",
|
|
193
|
-
`Validation overhead: ${i.toFixed(1)}% (target: ${this.config.targetOverhead}%)`,
|
|
194
|
-
{ duration: e, target: this.config.targetOverhead, actual: i }
|
|
195
|
-
));
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Automatically adjust optimization settings
|
|
199
|
-
*/
|
|
200
|
-
autoOptimize(e) {
|
|
201
|
-
const t = e / this.config.targetOverhead;
|
|
202
|
-
t > 2 ? (this.config.cacheStrategy = "aggressive", this.config.skipFrames = Math.max(1, this.config.skipFrames), this.config.throttleMs = Math.max(this.config.throttleMs, 32), this.config.batchSize = Math.min(this.config.batchSize, 5)) : t > 1.5 && (this.config.cacheStrategy = "aggressive", this.config.throttleMs = Math.max(this.config.throttleMs, 16));
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Get fallback result for skipped/throttled operations
|
|
206
|
-
*/
|
|
207
|
-
getFallbackResult() {
|
|
208
|
-
return !0;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Initialize performance monitoring
|
|
212
|
-
*/
|
|
213
|
-
initializePerformanceMonitoring() {
|
|
214
|
-
if (typeof PerformanceObserver < "u")
|
|
215
|
-
try {
|
|
216
|
-
this.performanceObserver = new PerformanceObserver((e) => {
|
|
217
|
-
e.getEntries().forEach((i) => {
|
|
218
|
-
i.name.includes("tachui-validation") && this.analyzePerformanceEntry(i);
|
|
219
|
-
});
|
|
220
|
-
}), this.performanceObserver.observe({ entryTypes: ["measure", "navigation", "paint"] });
|
|
221
|
-
} catch {
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Analyze performance entry
|
|
226
|
-
*/
|
|
227
|
-
analyzePerformanceEntry(e) {
|
|
228
|
-
e.duration > this.frameTimeTarget && console.warn(`⚠️ Slow validation operation: ${e.name} took ${e.duration.toFixed(2)}ms`);
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Get performance statistics
|
|
232
|
-
*/
|
|
233
|
-
getPerformanceStats() {
|
|
234
|
-
const e = Array.from(this.metrics.values()).reduce((a, c) => a + c.operationCount, 0), t = Array.from(this.metrics.values()).reduce((a, c) => a + c.totalTime, 0), i = e > 0 ? t / e : 0, s = Array.from(this.metrics.values()).reduce((a, c) => a + c.cacheHitRate, 0) / this.metrics.size || 0, r = Array.from(this.metrics.values()).reduce((a, c) => a + c.skipRate, 0) / this.metrics.size || 0;
|
|
235
|
-
return {
|
|
236
|
-
config: this.config,
|
|
237
|
-
totalOperations: e,
|
|
238
|
-
totalTime: t,
|
|
239
|
-
averageTime: i,
|
|
240
|
-
cacheHitRate: s,
|
|
241
|
-
skipRate: r,
|
|
242
|
-
cacheSize: this.resultCache.size,
|
|
243
|
-
queueSize: this.operationQueue.length,
|
|
244
|
-
frameImpact: i / this.frameTimeTarget * 100,
|
|
245
|
-
targetMet: i / this.frameTimeTarget * 100 <= this.config.targetOverhead,
|
|
246
|
-
operations: Object.fromEntries(this.metrics)
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Clear all caches and reset metrics
|
|
251
|
-
*/
|
|
252
|
-
reset() {
|
|
253
|
-
this.resultCache.clear(), this.metrics.clear(), this.operationQueue = [], this.throttleTimers.clear(), this.frameCounter = 0, this.lastBatchTime = 0;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Configure optimizer
|
|
257
|
-
*/
|
|
258
|
-
configure(e) {
|
|
259
|
-
this.config = { ...this.config, ...e };
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Force process all batched operations
|
|
263
|
-
*/
|
|
264
|
-
flush() {
|
|
265
|
-
for (; this.operationQueue.length > 0; )
|
|
266
|
-
this.processBatch();
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Get cache statistics
|
|
270
|
-
*/
|
|
271
|
-
getCacheStats() {
|
|
272
|
-
const e = Array.from(this.resultCache.values()), t = e.reduce((s, r) => s + r.hits, 0), i = e.length > 0 ? e.reduce((s, r) => s + (Date.now() - r.timestamp), 0) / e.length : 0;
|
|
273
|
-
return {
|
|
274
|
-
size: this.resultCache.size,
|
|
275
|
-
maxSize: this.getMaxCacheSize(),
|
|
276
|
-
totalHits: t,
|
|
277
|
-
averageAge: i,
|
|
278
|
-
strategy: this.config.cacheStrategy,
|
|
279
|
-
ttl: this.getCacheTTL()
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
};
|
|
283
|
-
n(g, "instance");
|
|
284
|
-
let C = g;
|
|
285
|
-
const m = C.getInstance(), P = {
|
|
286
|
-
/**
|
|
287
|
-
* Configure performance optimizer
|
|
288
|
-
*/
|
|
289
|
-
configure: (o) => m.configure(o),
|
|
290
|
-
/**
|
|
291
|
-
* Get performance statistics
|
|
292
|
-
*/
|
|
293
|
-
getStats: () => m.getPerformanceStats(),
|
|
294
|
-
/**
|
|
295
|
-
* Get cache statistics
|
|
296
|
-
*/
|
|
297
|
-
getCacheStats: () => m.getCacheStats(),
|
|
298
|
-
/**
|
|
299
|
-
* Reset optimizer
|
|
300
|
-
*/
|
|
301
|
-
reset: () => m.reset(),
|
|
302
|
-
/**
|
|
303
|
-
* Flush batched operations
|
|
304
|
-
*/
|
|
305
|
-
flush: () => m.flush(),
|
|
306
|
-
/**
|
|
307
|
-
* Optimize validation function
|
|
308
|
-
*/
|
|
309
|
-
optimize: (o, e, t) => m.optimizeValidation(o, e, t),
|
|
310
|
-
/**
|
|
311
|
-
* Test performance optimization
|
|
312
|
-
*/
|
|
313
|
-
test: () => {
|
|
314
|
-
console.group("⚡ Performance Optimization Test");
|
|
315
|
-
try {
|
|
316
|
-
const o = performance.now(), e = [];
|
|
317
|
-
for (let r = 0; r < 100; r++) {
|
|
318
|
-
const a = m.optimizeValidation(
|
|
319
|
-
"test-cache",
|
|
320
|
-
() => Math.random(),
|
|
321
|
-
{ cache: !0 }
|
|
322
|
-
);
|
|
323
|
-
e.push(a);
|
|
324
|
-
}
|
|
325
|
-
const i = performance.now() - o, s = m.getPerformanceStats();
|
|
326
|
-
console.info("✅ Optimization system active:", s.config.enabled), console.info("✅ Test duration:", `${i.toFixed(2)}ms`), console.info("✅ Cache hit rate:", `${(s.cacheHitRate * 100).toFixed(1)}%`), console.info("✅ Frame impact:", `${s.frameImpact.toFixed(1)}% (target: ${s.config.targetOverhead}%)`), console.info("✅ Target met:", s.targetMet), console.info("✅ Performance optimization is working correctly");
|
|
327
|
-
} catch (o) {
|
|
328
|
-
console.error("❌ Performance optimization test failed:", o);
|
|
329
|
-
}
|
|
330
|
-
console.groupEnd();
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
export {
|
|
334
|
-
P as PerformanceOptimizationUtils,
|
|
335
|
-
C as PerformanceOptimizer,
|
|
336
|
-
m as performanceOptimizer
|
|
337
|
-
};
|
|
338
|
-
//# sourceMappingURL=performance-optimizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance-optimizer.js","sources":["../../src/validation/performance-optimizer.ts"],"sourcesContent":["/**\n * Performance Optimization System - Phase 1C\n * \n * Advanced performance optimizations to reduce validation overhead\n * to <5% impact in development mode with smart caching and batching.\n */\n\nimport { ProductionModeManager } from './production-bypass'\nimport { validationDebugger } from './debug-tools'\n\n/**\n * Performance optimization configuration\n */\nexport interface PerformanceOptimizerConfig {\n enabled: boolean\n targetOverhead: number // percentage (5 = 5%)\n batchSize: number\n cacheStrategy: 'aggressive' | 'moderate' | 'conservative'\n asyncValidation: boolean\n throttleMs: number\n skipFrames: number // Skip validation every N frames\n}\n\n/**\n * Validation operation metrics\n */\nexport interface ValidationMetrics {\n operationCount: number\n totalTime: number\n averageTime: number\n maxTime: number\n cacheHitRate: number\n skipRate: number\n}\n\n/**\n * Performance optimization engine\n */\nexport class PerformanceOptimizer {\n private static instance: PerformanceOptimizer\n private config: PerformanceOptimizerConfig\n private metrics = new Map<string, ValidationMetrics>()\n private operationQueue: Array<() => void> = []\n private frameCounter = 0\n private lastBatchTime = 0\n private throttleTimers = new Map<string, number>()\n \n // Advanced caching\n private resultCache = new Map<string, { result: any; timestamp: number; hits: number }>()\n \n // Performance monitoring\n private performanceObserver?: PerformanceObserver\n private frameTimeTarget = 16.67 // 60fps target\n\n constructor(config: Partial<PerformanceOptimizerConfig> = {}) {\n this.config = {\n enabled: process.env.NODE_ENV !== 'production',\n targetOverhead: 5, // 5% overhead target\n batchSize: 10,\n cacheStrategy: 'moderate',\n asyncValidation: true,\n throttleMs: 16, // One frame\n skipFrames: 0, // Don't skip by default\n ...config\n }\n\n this.initializePerformanceMonitoring()\n }\n\n static getInstance(config?: Partial<PerformanceOptimizerConfig>): PerformanceOptimizer {\n if (!this.instance) {\n this.instance = new PerformanceOptimizer(config)\n }\n return this.instance\n }\n\n /**\n * Optimize validation function with caching and batching\n */\n optimizeValidation<T>(\n key: string,\n validationFn: () => T,\n options: {\n cache?: boolean\n batch?: boolean\n throttle?: boolean\n priority?: 'high' | 'medium' | 'low'\n } = {}\n ): T | Promise<T> {\n // Skip optimization in production\n if (ProductionModeManager.shouldBypassValidation()) {\n return validationFn()\n }\n\n const {\n cache = true,\n batch = false,\n throttle = false,\n priority = 'medium'\n } = options\n\n // Check cache first\n if (cache) {\n const cached = this.getCachedResult(key)\n if (cached !== undefined) {\n this.updateMetrics(key, 0, true, false) // Cache hit\n return cached\n }\n }\n\n // Apply frame skipping if configured\n if (this.shouldSkipFrame()) {\n this.updateMetrics(key, 0, false, true) // Skipped\n return this.getFallbackResult()\n }\n\n // Apply throttling\n if (throttle && this.isThrottled(key)) {\n return this.getFallbackResult()\n }\n\n const startTime = performance.now()\n\n try {\n let result: T\n\n if (batch && priority !== 'high') {\n // Add to batch queue for low priority operations\n return this.addToBatch(key, validationFn, cache) as Promise<T>\n } else {\n // Execute immediately\n result = validationFn()\n }\n\n const endTime = performance.now()\n const duration = endTime - startTime\n\n // Cache result if enabled\n if (cache) {\n this.cacheResult(key, result)\n }\n\n // Update metrics\n this.updateMetrics(key, duration, false, false)\n\n // Check performance impact\n this.checkPerformanceImpact(duration)\n\n return result\n\n } catch (error) {\n const endTime = performance.now()\n this.updateMetrics(key, endTime - startTime, false, false)\n throw error\n }\n }\n\n /**\n * Smart caching with TTL and popularity-based eviction\n */\n private getCachedResult(key: string): any {\n const cached = this.resultCache.get(key)\n if (!cached) return undefined\n\n // Check TTL based on cache strategy\n const ttl = this.getCacheTTL()\n if (Date.now() - cached.timestamp > ttl) {\n this.resultCache.delete(key)\n return undefined\n }\n\n // Update hit count\n cached.hits++\n return cached.result\n }\n\n /**\n * Cache result with intelligent eviction\n */\n private cacheResult(key: string, result: any): void {\n const maxCacheSize = this.getMaxCacheSize()\n \n // Evict least popular entries if cache is full\n if (this.resultCache.size >= maxCacheSize) {\n this.evictLeastPopular()\n }\n\n this.resultCache.set(key, {\n result,\n timestamp: Date.now(),\n hits: 1\n })\n }\n\n /**\n * Evict least popular cache entries\n */\n private evictLeastPopular(): void {\n const entries = Array.from(this.resultCache.entries())\n \n // Sort by hits (ascending) and timestamp (ascending)\n entries.sort((a, b) => {\n if (a[1].hits !== b[1].hits) {\n return a[1].hits - b[1].hits\n }\n return a[1].timestamp - b[1].timestamp\n })\n\n // Remove bottom 25%\n const removeCount = Math.floor(entries.length * 0.25)\n for (let i = 0; i < removeCount; i++) {\n this.resultCache.delete(entries[i][0])\n }\n }\n\n /**\n * Get cache TTL based on strategy\n */\n private getCacheTTL(): number {\n switch (this.config.cacheStrategy) {\n case 'aggressive': return 300000 // 5 minutes\n case 'moderate': return 60000 // 1 minute\n case 'conservative': return 10000 // 10 seconds\n default: return 60000\n }\n }\n\n /**\n * Get max cache size based on strategy\n */\n private getMaxCacheSize(): number {\n switch (this.config.cacheStrategy) {\n case 'aggressive': return 1000\n case 'moderate': return 500\n case 'conservative': return 100\n default: return 500\n }\n }\n\n /**\n * Check if operation should skip this frame\n */\n private shouldSkipFrame(): boolean {\n if (this.config.skipFrames === 0) return false\n \n this.frameCounter++\n return this.frameCounter % (this.config.skipFrames + 1) !== 0\n }\n\n /**\n * Check if operation is throttled\n */\n private isThrottled(key: string): boolean {\n const lastTime = this.throttleTimers.get(key) || 0\n const now = Date.now()\n \n if (now - lastTime < this.config.throttleMs) {\n return true\n }\n \n this.throttleTimers.set(key, now)\n return false\n }\n\n /**\n * Add operation to batch queue\n */\n private addToBatch<T>(key: string, fn: () => T, cache: boolean): Promise<T> {\n return new Promise((resolve, reject) => {\n this.operationQueue.push(() => {\n try {\n const result = fn()\n if (cache) {\n this.cacheResult(key, result)\n }\n resolve(result)\n } catch (error) {\n reject(error)\n }\n })\n\n // Process batch if it's full or enough time has passed\n this.processBatchIfReady()\n })\n }\n\n /**\n * Process batch queue if conditions are met\n */\n private processBatchIfReady(): void {\n const now = Date.now()\n const shouldProcess = \n this.operationQueue.length >= this.config.batchSize ||\n (this.operationQueue.length > 0 && now - this.lastBatchTime > this.config.throttleMs)\n\n if (shouldProcess) {\n this.processBatch()\n }\n }\n\n /**\n * Process batch queue\n */\n private processBatch(): void {\n if (this.operationQueue.length === 0) return\n\n const batch = this.operationQueue.splice(0, this.config.batchSize)\n this.lastBatchTime = Date.now()\n\n if (this.config.asyncValidation) {\n // Process asynchronously to not block the main thread\n setTimeout(() => {\n batch.forEach(operation => operation())\n }, 0)\n } else {\n // Process synchronously\n batch.forEach(operation => operation())\n }\n }\n\n /**\n * Update operation metrics\n */\n private updateMetrics(key: string, duration: number, cacheHit: boolean, skipped: boolean): void {\n let metrics = this.metrics.get(key)\n if (!metrics) {\n metrics = {\n operationCount: 0,\n totalTime: 0,\n averageTime: 0,\n maxTime: 0,\n cacheHitRate: 0,\n skipRate: 0\n }\n this.metrics.set(key, metrics)\n }\n\n metrics.operationCount++\n \n if (!cacheHit && !skipped) {\n metrics.totalTime += duration\n metrics.averageTime = metrics.totalTime / metrics.operationCount\n metrics.maxTime = Math.max(metrics.maxTime, duration)\n }\n\n // Update rates\n const totalOperations = metrics.operationCount\n const cacheHits = Math.floor(metrics.cacheHitRate * totalOperations) + (cacheHit ? 1 : 0)\n const skips = Math.floor(metrics.skipRate * totalOperations) + (skipped ? 1 : 0)\n \n metrics.cacheHitRate = cacheHits / totalOperations\n metrics.skipRate = skips / totalOperations\n }\n\n /**\n * Check if performance impact exceeds target\n */\n private checkPerformanceImpact(duration: number): void {\n const frameTime = this.frameTimeTarget\n const impactPercentage = (duration / frameTime) * 100\n\n if (impactPercentage > this.config.targetOverhead) {\n // Automatically adjust optimization settings\n this.autoOptimize(impactPercentage)\n \n validationDebugger.logEvent(\n 'performance-warning',\n `Validation overhead: ${impactPercentage.toFixed(1)}% (target: ${this.config.targetOverhead}%)`,\n { duration, target: this.config.targetOverhead, actual: impactPercentage }\n )\n }\n }\n\n /**\n * Automatically adjust optimization settings\n */\n private autoOptimize(currentImpact: number): void {\n const factor = currentImpact / this.config.targetOverhead\n\n if (factor > 2) {\n // Very high impact - aggressive optimization\n this.config.cacheStrategy = 'aggressive'\n this.config.skipFrames = Math.max(1, this.config.skipFrames)\n this.config.throttleMs = Math.max(this.config.throttleMs, 32)\n this.config.batchSize = Math.min(this.config.batchSize, 5)\n } else if (factor > 1.5) {\n // High impact - moderate optimization\n this.config.cacheStrategy = 'aggressive'\n this.config.throttleMs = Math.max(this.config.throttleMs, 16)\n }\n }\n\n /**\n * Get fallback result for skipped/throttled operations\n */\n private getFallbackResult(): any {\n // Return a safe default that won't cause errors\n // In practice, this would be context-specific\n return true\n }\n\n /**\n * Initialize performance monitoring\n */\n private initializePerformanceMonitoring(): void {\n if (typeof PerformanceObserver !== 'undefined') {\n try {\n this.performanceObserver = new PerformanceObserver((list) => {\n const entries = list.getEntries()\n entries.forEach((entry) => {\n if (entry.name.includes('tachui-validation')) {\n this.analyzePerformanceEntry(entry)\n }\n })\n })\n \n this.performanceObserver.observe({ entryTypes: ['measure', 'navigation', 'paint'] })\n } catch (_error) {\n // PerformanceObserver not supported\n }\n }\n }\n\n /**\n * Analyze performance entry\n */\n private analyzePerformanceEntry(entry: PerformanceEntry): void {\n if (entry.duration > this.frameTimeTarget) {\n console.warn(`⚠️ Slow validation operation: ${entry.name} took ${entry.duration.toFixed(2)}ms`)\n }\n }\n\n /**\n * Get performance statistics\n */\n getPerformanceStats() {\n const totalOperations = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.operationCount, 0)\n \n const totalTime = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.totalTime, 0)\n \n const averageTime = totalOperations > 0 ? totalTime / totalOperations : 0\n \n const cacheHitRate = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.cacheHitRate, 0) / this.metrics.size || 0\n \n const skipRate = Array.from(this.metrics.values())\n .reduce((sum, metrics) => sum + metrics.skipRate, 0) / this.metrics.size || 0\n\n return {\n config: this.config,\n totalOperations,\n totalTime,\n averageTime,\n cacheHitRate,\n skipRate,\n cacheSize: this.resultCache.size,\n queueSize: this.operationQueue.length,\n frameImpact: (averageTime / this.frameTimeTarget) * 100,\n targetMet: (averageTime / this.frameTimeTarget) * 100 <= this.config.targetOverhead,\n operations: Object.fromEntries(this.metrics)\n }\n }\n\n /**\n * Clear all caches and reset metrics\n */\n reset(): void {\n this.resultCache.clear()\n this.metrics.clear()\n this.operationQueue = []\n this.throttleTimers.clear()\n this.frameCounter = 0\n this.lastBatchTime = 0\n }\n\n /**\n * Configure optimizer\n */\n configure(config: Partial<PerformanceOptimizerConfig>): void {\n this.config = { ...this.config, ...config }\n }\n\n /**\n * Force process all batched operations\n */\n flush(): void {\n while (this.operationQueue.length > 0) {\n this.processBatch()\n }\n }\n\n /**\n * Get cache statistics\n */\n getCacheStats() {\n const entries = Array.from(this.resultCache.values())\n const totalHits = entries.reduce((sum, entry) => sum + entry.hits, 0)\n const averageAge = entries.length > 0 \n ? entries.reduce((sum, entry) => sum + (Date.now() - entry.timestamp), 0) / entries.length\n : 0\n\n return {\n size: this.resultCache.size,\n maxSize: this.getMaxCacheSize(),\n totalHits,\n averageAge,\n strategy: this.config.cacheStrategy,\n ttl: this.getCacheTTL()\n }\n }\n}\n\n// Global optimizer instance\nexport const performanceOptimizer = PerformanceOptimizer.getInstance()\n\n// Performance optimization utilities\nexport const PerformanceOptimizationUtils = {\n /**\n * Configure performance optimizer\n */\n configure: (config: Partial<PerformanceOptimizerConfig>) => \n performanceOptimizer.configure(config),\n\n /**\n * Get performance statistics\n */\n getStats: () => performanceOptimizer.getPerformanceStats(),\n\n /**\n * Get cache statistics\n */\n getCacheStats: () => performanceOptimizer.getCacheStats(),\n\n /**\n * Reset optimizer\n */\n reset: () => performanceOptimizer.reset(),\n\n /**\n * Flush batched operations\n */\n flush: () => performanceOptimizer.flush(),\n\n /**\n * Optimize validation function\n */\n optimize: <T>(\n key: string,\n fn: () => T,\n options?: {\n cache?: boolean\n batch?: boolean\n throttle?: boolean\n priority?: 'high' | 'medium' | 'low'\n }\n ) => performanceOptimizer.optimizeValidation(key, fn, options),\n\n /**\n * Test performance optimization\n */\n test: () => {\n console.group('⚡ Performance Optimization Test')\n \n try {\n const startTime = performance.now()\n \n // Test optimization with different scenarios\n const results = []\n \n // Test caching\n for (let i = 0; i < 100; i++) {\n const result = performanceOptimizer.optimizeValidation(\n 'test-cache',\n () => Math.random(),\n { cache: true }\n )\n results.push(result)\n }\n \n const endTime = performance.now()\n const duration = endTime - startTime\n const stats = performanceOptimizer.getPerformanceStats()\n \n console.info('✅ Optimization system active:', stats.config.enabled)\n console.info('✅ Test duration:', `${duration.toFixed(2)}ms`)\n console.info('✅ Cache hit rate:', `${(stats.cacheHitRate * 100).toFixed(1)}%`)\n console.info('✅ Frame impact:', `${stats.frameImpact.toFixed(1)}% (target: ${stats.config.targetOverhead}%)`)\n console.info('✅ Target met:', stats.targetMet)\n console.info('✅ Performance optimization is working correctly')\n \n } catch (error) {\n console.error('❌ Performance optimization test failed:', error)\n }\n \n console.groupEnd()\n }\n}"],"names":["_PerformanceOptimizer","config","__publicField","key","validationFn","options","ProductionModeManager","cache","batch","throttle","priority","cached","startTime","result","duration","error","endTime","ttl","maxCacheSize","entries","a","b","removeCount","lastTime","now","fn","resolve","reject","operation","cacheHit","skipped","metrics","totalOperations","cacheHits","skips","frameTime","impactPercentage","validationDebugger","currentImpact","factor","list","entry","sum","totalTime","averageTime","cacheHitRate","skipRate","totalHits","averageAge","PerformanceOptimizer","performanceOptimizer","PerformanceOptimizationUtils","results","i","stats"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=new Map,a=new Map;function l(t){const e=`${t.packageName}:${t.componentName}`;r.set(e,t),a.has(t.packageName)||a.set(t.packageName,new Set),a.get(t.packageName).add(t.componentName)}function p(t,e){const o=`${t}:${e}`;r.delete(o);const n=a.get(t);n&&(n.delete(e),n.size===0&&a.delete(t)),process.env.NODE_ENV!=="production"&&console.info(`🔍 Unregistered validator: ${o}`)}function c(t,e){const o=`${t}:${e}`;return r.get(o)}function d(t){const{packageName:e,components:o}=t;for(const n of o){const i={packageName:e,componentName:n.name,validate:n.validate||g(e,n)};l(i)}process.env.NODE_ENV!=="production"&&console.info(`🔍 Registered ${o.length} validators for package: ${e}`)}function g(t,e){return o=>{const{TachUIValidationError:n}=require("./comprehensive");if(e.requiredProps?.length&&o.length===0)throw new n(`${e.name} component requires props`,{component:e.name,package:t,suggestion:`Add required props: ${e.requiredProps.join(", ")}`,documentation:e.documentation});if(o.length>0){const[i]=o;if(!i||typeof i!="object")throw new n(`${e.name} requires a props object`,{component:e.name,package:t,suggestion:"Pass a props object",documentation:e.documentation});if(e.requiredProps){const u=i;for(const s of e.requiredProps)if(u[s]===void 0)throw new n(`${e.name} ${s} property is required`,{component:e.name,package:t,suggestion:`Provide a value for ${s}`,documentation:e.documentation})}}}}function f(){const t=Array.from(a.entries()).map(([e,o])=>({name:e,componentCount:o.size}));return{totalValidators:r.size,packages:t}}function m(t,e,o){const n=c(t,e);n&&n.validate&&n.validate(o)}function V(t,e){return r.has(`${t}:${e}`)}function P(){return Array.from(a.keys())}function $(t){const e=a.get(t);return e?Array.from(e):[]}function k(){r.clear(),a.clear(),process.env.NODE_ENV!=="production"&&console.info("🔍 Cleared all plugin validators")}const h={registerPlugin(t,e){d({packageName:t,components:e.map(o=>({name:o.name,requiredProps:o.requiredProps,optionalProps:o.optionalProps}))})},createValidator(t,e,o){return{packageName:t,componentName:e,validate:o}}};exports.PluginValidationHelper=h;exports.clearAllValidators=k;exports.getComponentValidator=c;exports.getPackageComponents=$;exports.getRegisteredPackages=P;exports.getValidationStats=f;exports.hasValidator=V;exports.registerComponentValidator=l;exports.registerPluginValidation=d;exports.unregisterComponentValidator=p;exports.validateComponent=m;
|
|
2
|
-
//# sourceMappingURL=plugin-registration.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-registration.cjs","sources":["../../src/validation/plugin-registration.ts"],"sourcesContent":["/**\n * Plugin Validation Registration System\n *\n * Allows packages to register their own component validators with Core,\n * maintaining proper architectural separation and plugin independence.\n */\n\nimport type { ComponentValidator } from './comprehensive'\n\n/**\n * Plugin validation registry\n */\nconst pluginValidators = new Map<string, ComponentValidator>()\nconst packageValidators = new Map<string, Set<string>>()\n\n/**\n * Plugin validation interface for external packages\n */\nexport interface PluginValidationConfig {\n packageName: string\n components: ComponentValidationDefinition[]\n}\n\n/**\n * Component validation definition for registration\n */\nexport interface ComponentValidationDefinition {\n name: string\n requiredProps?: string[]\n optionalProps?: string[]\n validate?: (args: unknown[]) => void\n documentation?: string\n}\n\n/**\n * Register component validator from a plugin package\n */\nexport function registerComponentValidator(validator: ComponentValidator): void {\n const key = `${validator.packageName}:${validator.componentName}`\n pluginValidators.set(key, validator)\n\n // Track validators by package\n if (!packageValidators.has(validator.packageName)) {\n packageValidators.set(validator.packageName, new Set())\n }\n packageValidators.get(validator.packageName)!.add(validator.componentName)\n\n // if (process.env.NODE_ENV !== 'production') {\n // console.info(`🔍 Registered validator: ${key}`)\n // }\n}\n\n/**\n * Unregister component validator\n */\nexport function unregisterComponentValidator(packageName: string, componentName: string): void {\n const key = `${packageName}:${componentName}`\n pluginValidators.delete(key)\n\n const packageSet = packageValidators.get(packageName)\n if (packageSet) {\n packageSet.delete(componentName)\n if (packageSet.size === 0) {\n packageValidators.delete(packageName)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.info(`🔍 Unregistered validator: ${key}`)\n }\n}\n\n/**\n * Get component validator for validation\n */\nexport function getComponentValidator(packageName: string, componentName: string): ComponentValidator | undefined {\n const key = `${packageName}:${componentName}`\n return pluginValidators.get(key)\n}\n\n/**\n * Register multiple validators from a plugin package\n */\nexport function registerPluginValidation(config: PluginValidationConfig): void {\n const { packageName, components } = config\n\n for (const component of components) {\n const validator: ComponentValidator = {\n packageName,\n componentName: component.name,\n validate: component.validate || createDefaultValidator(packageName, component)\n }\n\n registerComponentValidator(validator)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.info(`🔍 Registered ${components.length} validators for package: ${packageName}`)\n }\n}\n\n/**\n * Create default validator based on component definition\n */\nfunction createDefaultValidator(packageName: string, component: ComponentValidationDefinition) {\n return (args: unknown[]) => {\n // Import TachUIValidationError dynamically to avoid circular dependency\n const { TachUIValidationError } = require('./comprehensive')\n\n if (component.requiredProps?.length && args.length === 0) {\n throw new TachUIValidationError(`${component.name} component requires props`, {\n component: component.name,\n package: packageName,\n suggestion: `Add required props: ${component.requiredProps.join(', ')}`,\n documentation: component.documentation\n })\n }\n\n if (args.length > 0) {\n const [props] = args\n if (!props || typeof props !== 'object') {\n throw new TachUIValidationError(`${component.name} requires a props object`, {\n component: component.name,\n package: packageName,\n suggestion: 'Pass a props object',\n documentation: component.documentation\n })\n }\n\n // Check required props\n if (component.requiredProps) {\n const propsObj = props as any\n for (const requiredProp of component.requiredProps) {\n if (propsObj[requiredProp] === undefined) {\n throw new TachUIValidationError(`${component.name} ${requiredProp} property is required`, {\n component: component.name,\n package: packageName,\n suggestion: `Provide a value for ${requiredProp}`,\n documentation: component.documentation\n })\n }\n }\n }\n }\n }\n}\n\n/**\n * Get validation statistics\n */\nexport function getValidationStats(): {\n totalValidators: number\n packages: Array<{ name: string; componentCount: number }>\n} {\n const packages = Array.from(packageValidators.entries()).map(([name, components]) => ({\n name,\n componentCount: components.size\n }))\n\n return {\n totalValidators: pluginValidators.size,\n packages\n }\n}\n\n/**\n * Validate a component using registered validators\n */\nexport function validateComponent(packageName: string, componentName: string, args: unknown[]): void {\n const validator = getComponentValidator(packageName, componentName)\n if (validator && validator.validate) {\n validator.validate(args)\n }\n}\n\n/**\n * Check if a component has validation registered\n */\nexport function hasValidator(packageName: string, componentName: string): boolean {\n return pluginValidators.has(`${packageName}:${componentName}`)\n}\n\n/**\n * Get all registered packages\n */\nexport function getRegisteredPackages(): string[] {\n return Array.from(packageValidators.keys())\n}\n\n/**\n * Get all components for a package\n */\nexport function getPackageComponents(packageName: string): string[] {\n const components = packageValidators.get(packageName)\n return components ? Array.from(components) : []\n}\n\n/**\n * Clear all validators (for testing/cleanup)\n */\nexport function clearAllValidators(): void {\n pluginValidators.clear()\n packageValidators.clear()\n\n if (process.env.NODE_ENV !== 'production') {\n console.info('🔍 Cleared all plugin validators')\n }\n}\n\n/**\n * Plugin helper for easier registration\n */\nexport const PluginValidationHelper = {\n /**\n * Register a simple plugin with basic validation\n */\n registerPlugin(\n packageName: string,\n components: Array<{\n name: string\n requiredProps?: string[]\n optionalProps?: string[]\n }>\n ): void {\n registerPluginValidation({\n packageName,\n components: components.map(comp => ({\n name: comp.name,\n requiredProps: comp.requiredProps,\n optionalProps: comp.optionalProps\n }))\n })\n },\n\n /**\n * Create a custom validator\n */\n createValidator(\n packageName: string,\n componentName: string,\n validate: (args: unknown[]) => void\n ): ComponentValidator {\n return {\n packageName,\n componentName,\n validate\n }\n }\n}\n"],"names":["pluginValidators","packageValidators","registerComponentValidator","validator","key","unregisterComponentValidator","packageName","componentName","packageSet","getComponentValidator","registerPluginValidation","config","components","component","createDefaultValidator","args","TachUIValidationError","props","propsObj","requiredProp","getValidationStats","packages","name","validateComponent","hasValidator","getRegisteredPackages","getPackageComponents","clearAllValidators","PluginValidationHelper","comp","validate"],"mappings":"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"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
const a = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
|
|
2
|
-
function u(o) {
|
|
3
|
-
const e = `${o.packageName}:${o.componentName}`;
|
|
4
|
-
a.set(e, o), r.has(o.packageName) || r.set(o.packageName, /* @__PURE__ */ new Set()), r.get(o.packageName).add(o.componentName);
|
|
5
|
-
}
|
|
6
|
-
function g(o, e) {
|
|
7
|
-
const t = `${o}:${e}`;
|
|
8
|
-
a.delete(t);
|
|
9
|
-
const n = r.get(o);
|
|
10
|
-
n && (n.delete(e), n.size === 0 && r.delete(o)), process.env.NODE_ENV !== "production" && console.info(`🔍 Unregistered validator: ${t}`);
|
|
11
|
-
}
|
|
12
|
-
function p(o, e) {
|
|
13
|
-
const t = `${o}:${e}`;
|
|
14
|
-
return a.get(t);
|
|
15
|
-
}
|
|
16
|
-
function d(o) {
|
|
17
|
-
const { packageName: e, components: t } = o;
|
|
18
|
-
for (const n of t) {
|
|
19
|
-
const i = {
|
|
20
|
-
packageName: e,
|
|
21
|
-
componentName: n.name,
|
|
22
|
-
validate: n.validate || l(e, n)
|
|
23
|
-
};
|
|
24
|
-
u(i);
|
|
25
|
-
}
|
|
26
|
-
process.env.NODE_ENV !== "production" && console.info(`🔍 Registered ${t.length} validators for package: ${e}`);
|
|
27
|
-
}
|
|
28
|
-
function l(o, e) {
|
|
29
|
-
return (t) => {
|
|
30
|
-
const { TachUIValidationError: n } = require("./comprehensive");
|
|
31
|
-
if (e.requiredProps?.length && t.length === 0)
|
|
32
|
-
throw new n(`${e.name} component requires props`, {
|
|
33
|
-
component: e.name,
|
|
34
|
-
package: o,
|
|
35
|
-
suggestion: `Add required props: ${e.requiredProps.join(", ")}`,
|
|
36
|
-
documentation: e.documentation
|
|
37
|
-
});
|
|
38
|
-
if (t.length > 0) {
|
|
39
|
-
const [i] = t;
|
|
40
|
-
if (!i || typeof i != "object")
|
|
41
|
-
throw new n(`${e.name} requires a props object`, {
|
|
42
|
-
component: e.name,
|
|
43
|
-
package: o,
|
|
44
|
-
suggestion: "Pass a props object",
|
|
45
|
-
documentation: e.documentation
|
|
46
|
-
});
|
|
47
|
-
if (e.requiredProps) {
|
|
48
|
-
const c = i;
|
|
49
|
-
for (const s of e.requiredProps)
|
|
50
|
-
if (c[s] === void 0)
|
|
51
|
-
throw new n(`${e.name} ${s} property is required`, {
|
|
52
|
-
component: e.name,
|
|
53
|
-
package: o,
|
|
54
|
-
suggestion: `Provide a value for ${s}`,
|
|
55
|
-
documentation: e.documentation
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function f() {
|
|
62
|
-
const o = Array.from(r.entries()).map(([e, t]) => ({
|
|
63
|
-
name: e,
|
|
64
|
-
componentCount: t.size
|
|
65
|
-
}));
|
|
66
|
-
return {
|
|
67
|
-
totalValidators: a.size,
|
|
68
|
-
packages: o
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
function m(o, e, t) {
|
|
72
|
-
const n = p(o, e);
|
|
73
|
-
n && n.validate && n.validate(t);
|
|
74
|
-
}
|
|
75
|
-
function V(o, e) {
|
|
76
|
-
return a.has(`${o}:${e}`);
|
|
77
|
-
}
|
|
78
|
-
function $() {
|
|
79
|
-
return Array.from(r.keys());
|
|
80
|
-
}
|
|
81
|
-
function P(o) {
|
|
82
|
-
const e = r.get(o);
|
|
83
|
-
return e ? Array.from(e) : [];
|
|
84
|
-
}
|
|
85
|
-
function k() {
|
|
86
|
-
a.clear(), r.clear(), process.env.NODE_ENV !== "production" && console.info("🔍 Cleared all plugin validators");
|
|
87
|
-
}
|
|
88
|
-
const q = {
|
|
89
|
-
/**
|
|
90
|
-
* Register a simple plugin with basic validation
|
|
91
|
-
*/
|
|
92
|
-
registerPlugin(o, e) {
|
|
93
|
-
d({
|
|
94
|
-
packageName: o,
|
|
95
|
-
components: e.map((t) => ({
|
|
96
|
-
name: t.name,
|
|
97
|
-
requiredProps: t.requiredProps,
|
|
98
|
-
optionalProps: t.optionalProps
|
|
99
|
-
}))
|
|
100
|
-
});
|
|
101
|
-
},
|
|
102
|
-
/**
|
|
103
|
-
* Create a custom validator
|
|
104
|
-
*/
|
|
105
|
-
createValidator(o, e, t) {
|
|
106
|
-
return {
|
|
107
|
-
packageName: o,
|
|
108
|
-
componentName: e,
|
|
109
|
-
validate: t
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
export {
|
|
114
|
-
q as PluginValidationHelper,
|
|
115
|
-
k as clearAllValidators,
|
|
116
|
-
p as getComponentValidator,
|
|
117
|
-
P as getPackageComponents,
|
|
118
|
-
$ as getRegisteredPackages,
|
|
119
|
-
f as getValidationStats,
|
|
120
|
-
V as hasValidator,
|
|
121
|
-
u as registerComponentValidator,
|
|
122
|
-
d as registerPluginValidation,
|
|
123
|
-
g as unregisterComponentValidator,
|
|
124
|
-
m as validateComponent
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=plugin-registration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-registration.js","sources":["../../src/validation/plugin-registration.ts"],"sourcesContent":["/**\n * Plugin Validation Registration System\n *\n * Allows packages to register their own component validators with Core,\n * maintaining proper architectural separation and plugin independence.\n */\n\nimport type { ComponentValidator } from './comprehensive'\n\n/**\n * Plugin validation registry\n */\nconst pluginValidators = new Map<string, ComponentValidator>()\nconst packageValidators = new Map<string, Set<string>>()\n\n/**\n * Plugin validation interface for external packages\n */\nexport interface PluginValidationConfig {\n packageName: string\n components: ComponentValidationDefinition[]\n}\n\n/**\n * Component validation definition for registration\n */\nexport interface ComponentValidationDefinition {\n name: string\n requiredProps?: string[]\n optionalProps?: string[]\n validate?: (args: unknown[]) => void\n documentation?: string\n}\n\n/**\n * Register component validator from a plugin package\n */\nexport function registerComponentValidator(validator: ComponentValidator): void {\n const key = `${validator.packageName}:${validator.componentName}`\n pluginValidators.set(key, validator)\n\n // Track validators by package\n if (!packageValidators.has(validator.packageName)) {\n packageValidators.set(validator.packageName, new Set())\n }\n packageValidators.get(validator.packageName)!.add(validator.componentName)\n\n // if (process.env.NODE_ENV !== 'production') {\n // console.info(`🔍 Registered validator: ${key}`)\n // }\n}\n\n/**\n * Unregister component validator\n */\nexport function unregisterComponentValidator(packageName: string, componentName: string): void {\n const key = `${packageName}:${componentName}`\n pluginValidators.delete(key)\n\n const packageSet = packageValidators.get(packageName)\n if (packageSet) {\n packageSet.delete(componentName)\n if (packageSet.size === 0) {\n packageValidators.delete(packageName)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.info(`🔍 Unregistered validator: ${key}`)\n }\n}\n\n/**\n * Get component validator for validation\n */\nexport function getComponentValidator(packageName: string, componentName: string): ComponentValidator | undefined {\n const key = `${packageName}:${componentName}`\n return pluginValidators.get(key)\n}\n\n/**\n * Register multiple validators from a plugin package\n */\nexport function registerPluginValidation(config: PluginValidationConfig): void {\n const { packageName, components } = config\n\n for (const component of components) {\n const validator: ComponentValidator = {\n packageName,\n componentName: component.name,\n validate: component.validate || createDefaultValidator(packageName, component)\n }\n\n registerComponentValidator(validator)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.info(`🔍 Registered ${components.length} validators for package: ${packageName}`)\n }\n}\n\n/**\n * Create default validator based on component definition\n */\nfunction createDefaultValidator(packageName: string, component: ComponentValidationDefinition) {\n return (args: unknown[]) => {\n // Import TachUIValidationError dynamically to avoid circular dependency\n const { TachUIValidationError } = require('./comprehensive')\n\n if (component.requiredProps?.length && args.length === 0) {\n throw new TachUIValidationError(`${component.name} component requires props`, {\n component: component.name,\n package: packageName,\n suggestion: `Add required props: ${component.requiredProps.join(', ')}`,\n documentation: component.documentation\n })\n }\n\n if (args.length > 0) {\n const [props] = args\n if (!props || typeof props !== 'object') {\n throw new TachUIValidationError(`${component.name} requires a props object`, {\n component: component.name,\n package: packageName,\n suggestion: 'Pass a props object',\n documentation: component.documentation\n })\n }\n\n // Check required props\n if (component.requiredProps) {\n const propsObj = props as any\n for (const requiredProp of component.requiredProps) {\n if (propsObj[requiredProp] === undefined) {\n throw new TachUIValidationError(`${component.name} ${requiredProp} property is required`, {\n component: component.name,\n package: packageName,\n suggestion: `Provide a value for ${requiredProp}`,\n documentation: component.documentation\n })\n }\n }\n }\n }\n }\n}\n\n/**\n * Get validation statistics\n */\nexport function getValidationStats(): {\n totalValidators: number\n packages: Array<{ name: string; componentCount: number }>\n} {\n const packages = Array.from(packageValidators.entries()).map(([name, components]) => ({\n name,\n componentCount: components.size\n }))\n\n return {\n totalValidators: pluginValidators.size,\n packages\n }\n}\n\n/**\n * Validate a component using registered validators\n */\nexport function validateComponent(packageName: string, componentName: string, args: unknown[]): void {\n const validator = getComponentValidator(packageName, componentName)\n if (validator && validator.validate) {\n validator.validate(args)\n }\n}\n\n/**\n * Check if a component has validation registered\n */\nexport function hasValidator(packageName: string, componentName: string): boolean {\n return pluginValidators.has(`${packageName}:${componentName}`)\n}\n\n/**\n * Get all registered packages\n */\nexport function getRegisteredPackages(): string[] {\n return Array.from(packageValidators.keys())\n}\n\n/**\n * Get all components for a package\n */\nexport function getPackageComponents(packageName: string): string[] {\n const components = packageValidators.get(packageName)\n return components ? Array.from(components) : []\n}\n\n/**\n * Clear all validators (for testing/cleanup)\n */\nexport function clearAllValidators(): void {\n pluginValidators.clear()\n packageValidators.clear()\n\n if (process.env.NODE_ENV !== 'production') {\n console.info('🔍 Cleared all plugin validators')\n }\n}\n\n/**\n * Plugin helper for easier registration\n */\nexport const PluginValidationHelper = {\n /**\n * Register a simple plugin with basic validation\n */\n registerPlugin(\n packageName: string,\n components: Array<{\n name: string\n requiredProps?: string[]\n optionalProps?: string[]\n }>\n ): void {\n registerPluginValidation({\n packageName,\n components: components.map(comp => ({\n name: comp.name,\n requiredProps: comp.requiredProps,\n optionalProps: comp.optionalProps\n }))\n })\n },\n\n /**\n * Create a custom validator\n */\n createValidator(\n packageName: string,\n componentName: string,\n validate: (args: unknown[]) => void\n ): ComponentValidator {\n return {\n packageName,\n componentName,\n validate\n }\n }\n}\n"],"names":["pluginValidators","packageValidators","registerComponentValidator","validator","key","unregisterComponentValidator","packageName","componentName","packageSet","getComponentValidator","registerPluginValidation","config","components","component","createDefaultValidator","args","TachUIValidationError","props","propsObj","requiredProp","getValidationStats","packages","name","validateComponent","hasValidator","getRegisteredPackages","getPackageComponents","clearAllValidators","PluginValidationHelper","comp","validate"],"mappings":"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"}
|