@memberjunction/react-linter 0.0.1 → 5.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component-linter.d.ts +77 -0
- package/dist/component-linter.d.ts.map +1 -0
- package/dist/component-linter.js +1206 -0
- package/dist/component-linter.js.map +1 -0
- package/dist/control-flow-analyzer.d.ts +184 -0
- package/dist/control-flow-analyzer.d.ts.map +1 -0
- package/dist/control-flow-analyzer.js +798 -0
- package/dist/control-flow-analyzer.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/library-lint-cache.d.ts +50 -0
- package/dist/library-lint-cache.d.ts.map +1 -0
- package/dist/library-lint-cache.js +173 -0
- package/dist/library-lint-cache.js.map +1 -0
- package/dist/lint-rule.d.ts +70 -0
- package/dist/lint-rule.d.ts.map +1 -0
- package/dist/lint-rule.js +30 -0
- package/dist/lint-rule.js.map +1 -0
- package/dist/lint-utils.d.ts +131 -0
- package/dist/lint-utils.d.ts.map +1 -0
- package/dist/lint-utils.js +358 -0
- package/dist/lint-utils.js.map +1 -0
- package/dist/linter-options.d.ts +51 -0
- package/dist/linter-options.d.ts.map +1 -0
- package/dist/linter-options.js +2 -0
- package/dist/linter-options.js.map +1 -0
- package/dist/prop-value-extractor.d.ts +147 -0
- package/dist/prop-value-extractor.d.ts.map +1 -0
- package/dist/prop-value-extractor.js +472 -0
- package/dist/prop-value-extractor.js.map +1 -0
- package/dist/runtime-rules/ai-tools-availability-check.d.ts +9 -0
- package/dist/runtime-rules/ai-tools-availability-check.d.ts.map +1 -0
- package/dist/runtime-rules/ai-tools-availability-check.js +223 -0
- package/dist/runtime-rules/ai-tools-availability-check.js.map +1 -0
- package/dist/runtime-rules/callback-event-validation.d.ts +22 -0
- package/dist/runtime-rules/callback-event-validation.d.ts.map +1 -0
- package/dist/runtime-rules/callback-event-validation.js +561 -0
- package/dist/runtime-rules/callback-event-validation.js.map +1 -0
- package/dist/runtime-rules/chart-field-validation.d.ts +10 -0
- package/dist/runtime-rules/chart-field-validation.d.ts.map +1 -0
- package/dist/runtime-rules/chart-field-validation.js +270 -0
- package/dist/runtime-rules/chart-field-validation.js.map +1 -0
- package/dist/runtime-rules/child-component-prop-validation.d.ts +11 -0
- package/dist/runtime-rules/child-component-prop-validation.d.ts.map +1 -0
- package/dist/runtime-rules/child-component-prop-validation.js +443 -0
- package/dist/runtime-rules/child-component-prop-validation.js.map +1 -0
- package/dist/runtime-rules/component-name-mismatch.d.ts +19 -0
- package/dist/runtime-rules/component-name-mismatch.d.ts.map +1 -0
- package/dist/runtime-rules/component-name-mismatch.js +82 -0
- package/dist/runtime-rules/component-name-mismatch.js.map +1 -0
- package/dist/runtime-rules/component-not-in-dependencies.d.ts +20 -0
- package/dist/runtime-rules/component-not-in-dependencies.d.ts.map +1 -0
- package/dist/runtime-rules/component-not-in-dependencies.js +92 -0
- package/dist/runtime-rules/component-not-in-dependencies.js.map +1 -0
- package/dist/runtime-rules/component-props-validation.d.ts +25 -0
- package/dist/runtime-rules/component-props-validation.d.ts.map +1 -0
- package/dist/runtime-rules/component-props-validation.js +228 -0
- package/dist/runtime-rules/component-props-validation.js.map +1 -0
- package/dist/runtime-rules/component-usage-without-destructuring.d.ts +20 -0
- package/dist/runtime-rules/component-usage-without-destructuring.d.ts.map +1 -0
- package/dist/runtime-rules/component-usage-without-destructuring.js +124 -0
- package/dist/runtime-rules/component-usage-without-destructuring.js.map +1 -0
- package/dist/runtime-rules/data-result-validation.d.ts +9 -0
- package/dist/runtime-rules/data-result-validation.d.ts.map +1 -0
- package/dist/runtime-rules/data-result-validation.js +763 -0
- package/dist/runtime-rules/data-result-validation.js.map +1 -0
- package/dist/runtime-rules/datagrid-field-validation.d.ts +10 -0
- package/dist/runtime-rules/datagrid-field-validation.d.ts.map +1 -0
- package/dist/runtime-rules/datagrid-field-validation.js +249 -0
- package/dist/runtime-rules/datagrid-field-validation.js.map +1 -0
- package/dist/runtime-rules/dependency-shadowing.d.ts +20 -0
- package/dist/runtime-rules/dependency-shadowing.d.ts.map +1 -0
- package/dist/runtime-rules/dependency-shadowing.js +147 -0
- package/dist/runtime-rules/dependency-shadowing.js.map +1 -0
- package/dist/runtime-rules/entity-field-access-validation.d.ts +12 -0
- package/dist/runtime-rules/entity-field-access-validation.d.ts.map +1 -0
- package/dist/runtime-rules/entity-field-access-validation.js +304 -0
- package/dist/runtime-rules/entity-field-access-validation.js.map +1 -0
- package/dist/runtime-rules/event-parameter-validation.d.ts +22 -0
- package/dist/runtime-rules/event-parameter-validation.d.ts.map +1 -0
- package/dist/runtime-rules/event-parameter-validation.js +406 -0
- package/dist/runtime-rules/event-parameter-validation.js.map +1 -0
- package/dist/runtime-rules/index.d.ts +61 -0
- package/dist/runtime-rules/index.d.ts.map +1 -0
- package/dist/runtime-rules/index.js +62 -0
- package/dist/runtime-rules/index.js.map +1 -0
- package/dist/runtime-rules/library-variable-names.d.ts +24 -0
- package/dist/runtime-rules/library-variable-names.d.ts.map +1 -0
- package/dist/runtime-rules/library-variable-names.js +88 -0
- package/dist/runtime-rules/library-variable-names.js.map +1 -0
- package/dist/runtime-rules/no-child-implementation.d.ts +18 -0
- package/dist/runtime-rules/no-child-implementation.d.ts.map +1 -0
- package/dist/runtime-rules/no-child-implementation.js +57 -0
- package/dist/runtime-rules/no-child-implementation.js.map +1 -0
- package/dist/runtime-rules/no-data-prop.d.ts +22 -0
- package/dist/runtime-rules/no-data-prop.d.ts.map +1 -0
- package/dist/runtime-rules/no-data-prop.js +111 -0
- package/dist/runtime-rules/no-data-prop.js.map +1 -0
- package/dist/runtime-rules/no-export-statements.d.ts +18 -0
- package/dist/runtime-rules/no-export-statements.d.ts.map +1 -0
- package/dist/runtime-rules/no-export-statements.js +143 -0
- package/dist/runtime-rules/no-export-statements.js.map +1 -0
- package/dist/runtime-rules/no-iife-wrapper.d.ts +18 -0
- package/dist/runtime-rules/no-iife-wrapper.d.ts.map +1 -0
- package/dist/runtime-rules/no-iife-wrapper.js +217 -0
- package/dist/runtime-rules/no-iife-wrapper.js.map +1 -0
- package/dist/runtime-rules/no-import-statements.d.ts +18 -0
- package/dist/runtime-rules/no-import-statements.d.ts.map +1 -0
- package/dist/runtime-rules/no-import-statements.js +65 -0
- package/dist/runtime-rules/no-import-statements.js.map +1 -0
- package/dist/runtime-rules/no-react-destructuring.d.ts +18 -0
- package/dist/runtime-rules/no-react-destructuring.d.ts.map +1 -0
- package/dist/runtime-rules/no-react-destructuring.js +60 -0
- package/dist/runtime-rules/no-react-destructuring.js.map +1 -0
- package/dist/runtime-rules/no-require-statements.d.ts +18 -0
- package/dist/runtime-rules/no-require-statements.d.ts.map +1 -0
- package/dist/runtime-rules/no-require-statements.js +109 -0
- package/dist/runtime-rules/no-require-statements.js.map +1 -0
- package/dist/runtime-rules/no-return-component.d.ts +18 -0
- package/dist/runtime-rules/no-return-component.d.ts.map +1 -0
- package/dist/runtime-rules/no-return-component.js +106 -0
- package/dist/runtime-rules/no-return-component.js.map +1 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.d.ts +20 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.d.ts.map +1 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.js +75 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.js.map +1 -0
- package/dist/runtime-rules/no-use-reducer.d.ts +19 -0
- package/dist/runtime-rules/no-use-reducer.d.ts.map +1 -0
- package/dist/runtime-rules/no-use-reducer.js +78 -0
- package/dist/runtime-rules/no-use-reducer.js.map +1 -0
- package/dist/runtime-rules/no-window-access.d.ts +23 -0
- package/dist/runtime-rules/no-window-access.d.ts.map +1 -0
- package/dist/runtime-rules/no-window-access.js +136 -0
- package/dist/runtime-rules/no-window-access.js.map +1 -0
- package/dist/runtime-rules/noisy-settings-updates.d.ts +18 -0
- package/dist/runtime-rules/noisy-settings-updates.d.ts.map +1 -0
- package/dist/runtime-rules/noisy-settings-updates.js +110 -0
- package/dist/runtime-rules/noisy-settings-updates.js.map +1 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.d.ts +30 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.d.ts.map +1 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.js +220 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.js.map +1 -0
- package/dist/runtime-rules/pass-standard-props.d.ts +19 -0
- package/dist/runtime-rules/pass-standard-props.d.ts.map +1 -0
- package/dist/runtime-rules/pass-standard-props.js +82 -0
- package/dist/runtime-rules/pass-standard-props.js.map +1 -0
- package/dist/runtime-rules/prefer-async-await.d.ts +17 -0
- package/dist/runtime-rules/prefer-async-await.d.ts.map +1 -0
- package/dist/runtime-rules/prefer-async-await.js +52 -0
- package/dist/runtime-rules/prefer-async-await.js.map +1 -0
- package/dist/runtime-rules/prefer-jsx-syntax.d.ts +17 -0
- package/dist/runtime-rules/prefer-jsx-syntax.d.ts.map +1 -0
- package/dist/runtime-rules/prefer-jsx-syntax.js +51 -0
- package/dist/runtime-rules/prefer-jsx-syntax.js.map +1 -0
- package/dist/runtime-rules/prop-state-sync.d.ts +19 -0
- package/dist/runtime-rules/prop-state-sync.d.ts.map +1 -0
- package/dist/runtime-rules/prop-state-sync.js +76 -0
- package/dist/runtime-rules/prop-state-sync.js.map +1 -0
- package/dist/runtime-rules/property-name-consistency.d.ts +20 -0
- package/dist/runtime-rules/property-name-consistency.d.ts.map +1 -0
- package/dist/runtime-rules/property-name-consistency.js +172 -0
- package/dist/runtime-rules/property-name-consistency.js.map +1 -0
- package/dist/runtime-rules/query-result-field-access-validation.d.ts +10 -0
- package/dist/runtime-rules/query-result-field-access-validation.d.ts.map +1 -0
- package/dist/runtime-rules/query-result-field-access-validation.js +304 -0
- package/dist/runtime-rules/query-result-field-access-validation.js.map +1 -0
- package/dist/runtime-rules/react-component-naming.d.ts +19 -0
- package/dist/runtime-rules/react-component-naming.d.ts.map +1 -0
- package/dist/runtime-rules/react-component-naming.js +72 -0
- package/dist/runtime-rules/react-component-naming.js.map +1 -0
- package/dist/runtime-rules/react-hooks-rules.d.ts +27 -0
- package/dist/runtime-rules/react-hooks-rules.d.ts.map +1 -0
- package/dist/runtime-rules/react-hooks-rules.js +223 -0
- package/dist/runtime-rules/react-hooks-rules.js.map +1 -0
- package/dist/runtime-rules/required-queries-not-called.d.ts +19 -0
- package/dist/runtime-rules/required-queries-not-called.d.ts.map +1 -0
- package/dist/runtime-rules/required-queries-not-called.js +146 -0
- package/dist/runtime-rules/required-queries-not-called.js.map +1 -0
- package/dist/runtime-rules/runquery-call-validation.d.ts +11 -0
- package/dist/runtime-rules/runquery-call-validation.d.ts.map +1 -0
- package/dist/runtime-rules/runquery-call-validation.js +886 -0
- package/dist/runtime-rules/runquery-call-validation.js.map +1 -0
- package/dist/runtime-rules/runview-call-validation.d.ts +10 -0
- package/dist/runtime-rules/runview-call-validation.d.ts.map +1 -0
- package/dist/runtime-rules/runview-call-validation.js +336 -0
- package/dist/runtime-rules/runview-call-validation.js.map +1 -0
- package/dist/runtime-rules/saved-user-settings-pattern.d.ts +19 -0
- package/dist/runtime-rules/saved-user-settings-pattern.d.ts.map +1 -0
- package/dist/runtime-rules/saved-user-settings-pattern.js +90 -0
- package/dist/runtime-rules/saved-user-settings-pattern.js.map +1 -0
- package/dist/runtime-rules/search-availability-check.d.ts +9 -0
- package/dist/runtime-rules/search-availability-check.d.ts.map +1 -0
- package/dist/runtime-rules/search-availability-check.js +220 -0
- package/dist/runtime-rules/search-availability-check.js.map +1 -0
- package/dist/runtime-rules/search-call-validation.d.ts +9 -0
- package/dist/runtime-rules/search-call-validation.d.ts.map +1 -0
- package/dist/runtime-rules/search-call-validation.js +336 -0
- package/dist/runtime-rules/search-call-validation.js.map +1 -0
- package/dist/runtime-rules/server-reload-on-client-operation.d.ts +18 -0
- package/dist/runtime-rules/server-reload-on-client-operation.d.ts.map +1 -0
- package/dist/runtime-rules/server-reload-on-client-operation.js +107 -0
- package/dist/runtime-rules/server-reload-on-client-operation.js.map +1 -0
- package/dist/runtime-rules/single-function-only.d.ts +18 -0
- package/dist/runtime-rules/single-function-only.d.ts.map +1 -0
- package/dist/runtime-rules/single-function-only.js +103 -0
- package/dist/runtime-rules/single-function-only.js.map +1 -0
- package/dist/runtime-rules/string-replace-all-occurrences.d.ts +19 -0
- package/dist/runtime-rules/string-replace-all-occurrences.d.ts.map +1 -0
- package/dist/runtime-rules/string-replace-all-occurrences.js +109 -0
- package/dist/runtime-rules/string-replace-all-occurrences.js.map +1 -0
- package/dist/runtime-rules/string-template-validation.d.ts +22 -0
- package/dist/runtime-rules/string-template-validation.d.ts.map +1 -0
- package/dist/runtime-rules/string-template-validation.js +163 -0
- package/dist/runtime-rules/string-template-validation.js.map +1 -0
- package/dist/runtime-rules/styles-validation.d.ts +10 -0
- package/dist/runtime-rules/styles-validation.d.ts.map +1 -0
- package/dist/runtime-rules/styles-validation.js +153 -0
- package/dist/runtime-rules/styles-validation.js.map +1 -0
- package/dist/runtime-rules/type-inference-errors.d.ts +23 -0
- package/dist/runtime-rules/type-inference-errors.d.ts.map +1 -0
- package/dist/runtime-rules/type-inference-errors.js +53 -0
- package/dist/runtime-rules/type-inference-errors.js.map +1 -0
- package/dist/runtime-rules/type-mismatch-operation.d.ts +23 -0
- package/dist/runtime-rules/type-mismatch-operation.d.ts.map +1 -0
- package/dist/runtime-rules/type-mismatch-operation.js +145 -0
- package/dist/runtime-rules/type-mismatch-operation.js.map +1 -0
- package/dist/runtime-rules/undefined-component-usage.d.ts +20 -0
- package/dist/runtime-rules/undefined-component-usage.d.ts.map +1 -0
- package/dist/runtime-rules/undefined-component-usage.js +138 -0
- package/dist/runtime-rules/undefined-component-usage.js.map +1 -0
- package/dist/runtime-rules/undefined-jsx-component.d.ts +25 -0
- package/dist/runtime-rules/undefined-jsx-component.d.ts.map +1 -0
- package/dist/runtime-rules/undefined-jsx-component.js +269 -0
- package/dist/runtime-rules/undefined-jsx-component.js.map +1 -0
- package/dist/runtime-rules/unsafe-array-operations.d.ts +25 -0
- package/dist/runtime-rules/unsafe-array-operations.d.ts.map +1 -0
- package/dist/runtime-rules/unsafe-array-operations.js +347 -0
- package/dist/runtime-rules/unsafe-array-operations.js.map +1 -0
- package/dist/runtime-rules/unsafe-formatting-methods.d.ts +24 -0
- package/dist/runtime-rules/unsafe-formatting-methods.d.ts.map +1 -0
- package/dist/runtime-rules/unsafe-formatting-methods.js +277 -0
- package/dist/runtime-rules/unsafe-formatting-methods.js.map +1 -0
- package/dist/runtime-rules/unused-component-dependencies.d.ts +19 -0
- package/dist/runtime-rules/unused-component-dependencies.d.ts.map +1 -0
- package/dist/runtime-rules/unused-component-dependencies.js +90 -0
- package/dist/runtime-rules/unused-component-dependencies.js.map +1 -0
- package/dist/runtime-rules/unused-libraries.d.ts +19 -0
- package/dist/runtime-rules/unused-libraries.d.ts.map +1 -0
- package/dist/runtime-rules/unused-libraries.js +127 -0
- package/dist/runtime-rules/unused-libraries.js.map +1 -0
- package/dist/runtime-rules/use-function-declaration.d.ts +18 -0
- package/dist/runtime-rules/use-function-declaration.d.ts.map +1 -0
- package/dist/runtime-rules/use-function-declaration.js +127 -0
- package/dist/runtime-rules/use-function-declaration.js.map +1 -0
- package/dist/runtime-rules/use-unwrap-components.d.ts +19 -0
- package/dist/runtime-rules/use-unwrap-components.d.ts.map +1 -0
- package/dist/runtime-rules/use-unwrap-components.js +84 -0
- package/dist/runtime-rules/use-unwrap-components.js.map +1 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.d.ts +23 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.d.ts.map +1 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.js +215 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.js.map +1 -0
- package/dist/runtime-rules/utilities-api-validation.d.ts +24 -0
- package/dist/runtime-rules/utilities-api-validation.d.ts.map +1 -0
- package/dist/runtime-rules/utilities-api-validation.js +121 -0
- package/dist/runtime-rules/utilities-api-validation.js.map +1 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.d.ts +20 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.d.ts.map +1 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.js +58 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.js.map +1 -0
- package/dist/runtime-rules/validate-component-references.d.ts +19 -0
- package/dist/runtime-rules/validate-component-references.d.ts.map +1 -0
- package/dist/runtime-rules/validate-component-references.js +255 -0
- package/dist/runtime-rules/validate-component-references.js.map +1 -0
- package/dist/schema-validation/component-prop-rule.d.ts +131 -0
- package/dist/schema-validation/component-prop-rule.d.ts.map +1 -0
- package/dist/schema-validation/component-prop-rule.js +625 -0
- package/dist/schema-validation/component-prop-rule.js.map +1 -0
- package/dist/schema-validation/index.d.ts +26 -0
- package/dist/schema-validation/index.d.ts.map +1 -0
- package/dist/schema-validation/index.js +26 -0
- package/dist/schema-validation/index.js.map +1 -0
- package/dist/schema-validation/semantic-validators/index.d.ts +23 -0
- package/dist/schema-validation/semantic-validators/index.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/index.js +23 -0
- package/dist/schema-validation/semantic-validators/index.js.map +1 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.d.ts +43 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.js +94 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.d.ts +122 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.js +166 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.js.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.d.ts +260 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.js +301 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.d.ts +115 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.js +381 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts +60 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.js +195 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/validation-context.d.ts +335 -0
- package/dist/schema-validation/semantic-validators/validation-context.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/validation-context.js +13 -0
- package/dist/schema-validation/semantic-validators/validation-context.js.map +1 -0
- package/dist/styles-type-analyzer.d.ts +64 -0
- package/dist/styles-type-analyzer.d.ts.map +1 -0
- package/dist/styles-type-analyzer.js +242 -0
- package/dist/styles-type-analyzer.js.map +1 -0
- package/dist/type-context.d.ts +184 -0
- package/dist/type-context.d.ts.map +1 -0
- package/dist/type-context.js +415 -0
- package/dist/type-context.js.map +1 -0
- package/dist/type-inference-engine.d.ts +181 -0
- package/dist/type-inference-engine.d.ts.map +1 -0
- package/dist/type-inference-engine.js +1151 -0
- package/dist/type-inference-engine.js.map +1 -0
- package/dist/type-rules/type-compatibility-rule.d.ts +85 -0
- package/dist/type-rules/type-compatibility-rule.d.ts.map +1 -0
- package/dist/type-rules/type-compatibility-rule.js +211 -0
- package/dist/type-rules/type-compatibility-rule.js.map +1 -0
- package/package.json +35 -7
- package/README.md +0 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runquery-call-validation.js","sourceRoot":"","sources":["../../src/runtime-rules/runquery-call-validation.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAA+B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAe,MAAM,iBAAiB,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AAEH,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C,oCAAoC;AACpC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc;IACpD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB;CAC5E,CAAC,CAAC;AAEH,2CAA2C;AAC3C;;;;GAIG;AACH,MAAM,YAAY,GAAG;IACnB,uBAAuB,EAAU,kBAAkB;IACnD,uBAAuB,EAAU,cAAc;IAC/C,sBAAsB,EAAW,iBAAiB;IAClD,uBAAuB,EAAU,cAAc;IAC/C,uBAAuB,EAAU,aAAa;IAC9C,wBAAwB,EAAS,cAAc;IAC/C,yBAAyB,EAAQ,eAAe;IAChD,cAAc,EAAoB,cAAc;IAChD,WAAW,EAAwB,kDAAkD;CACtF,CAAC;AAEF,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACvD,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS;IACtC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAC5D,KAAK;IACL,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM;IAC1E,kBAAkB;IAClB,QAAQ,EAAE,QAAQ,EAAE,SAAS;CAC9B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,6DAA6D;IACnE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA2B0C;CACpD,CAAC;AAEF,wEAAwE;AAExE,SAAS,gBAAgB,CAAC,MAA8C;IACtE,OAAO,CACL,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;QACzC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;QACpC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,CACpC,CAAC;AACJ,CAAC;AAED,wEAAwE;AAExE,SAAS,oBAAoB,CAC3B,GAAW;IAEX,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqD,CAAC;IAEhF,QAAQ,CAAC,GAAG,EAAE;QACZ,kBAAkB,CAAC,IAAoC;YACrD,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO;YAElH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;gBAAE,OAAO;YAErC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACpC,IAAI,WAAmB,CAAC;oBACxB,IAAI,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC;wBAAE,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;yBACxD,IAAI,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;wBAAE,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC;yBAC3D,IAAI,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC;wBAAE,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;wBAC7D,WAAW,GAAG,QAAQ,CAAC;oBAE5B,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAkF;IAC5G,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA6B;IACvD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;QAC5D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ;KACjD,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;QAC1B,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;QACvD,kBAAkB,EAAE,QAAQ;KAC7B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9C,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AAExE,SAAS,mCAAmC,CAAC,QAAgB;IAC3D,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,oHAAoH,CAAC;QAC9H,KAAK,QAAQ;YACX,OAAO,sFAAsF,CAAC;QAChG,KAAK,SAAS;YACZ,OAAO,kFAAkF,CAAC;QAC5F;YACE,OAAO,qBAAqB,QAAQ,oCAAoC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1H,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,4BAA4B,CACnC,QAAgB,EAChB,KAAmC,EACnC,IAAsB,EACtB,UAAuB;IAEvB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QACnH,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAA2B;gBACzC,OAAO,EAAE,wCAAwC;gBACjD,SAAS,EAAE,mBAAmB;gBAC9B,UAAU,EAAE,wCAAwC;gBACpD,YAAY,EAAE,mBAAmB;aAClC,CAAC;YACF,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;gBACnC,OAAO,EAAE,sBAAsB,QAAQ,gCAAgC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;gBAClH,IAAI,EAAE,GAAG,QAAQ,KAAK,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;gBACxH,UAAU,EAAE,kBAAkB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;gBACnC,OAAO,EAAE,iJAAiJ;gBAC1J,IAAI,EAAE,eAAe,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;gBACxG,UAAU,EAAE,kBAAkB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;gBACnC,OAAO,EAAE,sBAAsB,QAAQ,gCAAgC,QAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;gBAC1H,IAAI,EAAE,GAAG,QAAQ,KAAK,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;gBACtH,UAAU,EAAE,kBAAkB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,kBAAkB,CACzB,KAAa,EACb,IAAgC,EAChC,UAAuB,EACvB,eAA6B;IAE7B,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAE9B,6EAA6E;QAC7E,IAAI,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAE5C,8EAA8E;QAC9E,oFAAoF;QACpF,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7E,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBAChC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;gBACpC,OAAO,EAAE,+FAA+F,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;gBACxI,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YAChC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;YACpC,OAAO,EAAE,+EAA+E;YACxF,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,sBAAsB,CAC7B,SAAiB,EACjB,aAAwC,EACxC,IAAgC,EAChC,UAAuB;IAEvB,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO;QAAE,OAAO;IAEtD,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7F,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9F,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;YACxC,OAAO,EAAE,UAAU,SAAS,qDAAqD,gBAAgB,IAAI,MAAM,EAAE;YAC7G,IAAI,EAAE,eAAe,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,mBAAmB,GAAG;SAC/F,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,eAAwB,EACxB,aAA2C,EAC3C,IAAgC,EAChC,aAAwC,EACxC,UAAuB;IAEvB,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,IAAI,eAAe;QAAE,OAAO;IAEzE,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC3F,IAAI,CAAC,SAAS,EAAE,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnF,MAAM,oBAAoB,GAAG,SAAS,CAAC,YAAY,CAAC;IACpD,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;QACtE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;QAC5E,OAAO,EAAE,4BAA4B,SAAS,sPAAsP;QACpS,IAAI,EAAE,0BAA0B,SAAS,gCAAgC;QACzE,UAAU,EAAE;YACV,IAAI,EAAE,wJAAwJ;YAC9J,OAAO,EAAE;gBACC,SAAS;mBACN,oBAAoB;;;;GAIpC;SACE;KACF,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE,SAAS,uBAAuB,CAC9B,UAA6B,EAC7B,cAAgC,EAChC,SAAoD,EACpD,UAAuB;IAEvB,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1G,MAAM,UAAU,GAAyD,EAAE,CAAC;IAC5E,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,KAAK,GAAqC,IAAI,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBACpD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;yBACtD,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9D,CAAC;qBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAChC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;yBAC9D,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;yBAC7D,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;yBAC7D,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;wBACxD,KAAK,GAAG,aAAa,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,KAAK,CAAC;YAC1B,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAe,CAAC;IAEpB,IAAI,iBAAiB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,GAAG,kBAAkB,QAAQ,KAAK,CAAC;QAE1C,IAAI,SAAS,EAAE,UAAU,EAAE,CAAC;YAC1B,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,UAAU,GAAG,iDAAiD,CAAC;gBAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,IAAI,qBAAqB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,IAAI,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5E,UAAU,IAAI,8BAA8B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,uHAAuH,CAAC;YACvI,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,4FAA4F,CAAC;QAC5G,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU;iBACvC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC;iBACtD,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,OAAO,GAAG,kBAAkB,aAAa,KAAK,CAAC;YAC/C,UAAU,GAAG,wDAAwD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5H,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,mEAAmE,CAAC;YAC9E,UAAU,GAAG,oEAAoE,CAAC;QACpF,CAAC;IACH,CAAC;IAED,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;QACzC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;QAC7C,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE,SAAS,wBAAwB,CAC/B,UAA8B,EAC9B,cAAgC,EAChC,SAAiB,EACjB,SAAwC,EACxC,UAAuB;IAEvB,IAAI,CAAC,SAAS,CAAC,UAAU;QAAE,OAAO;IAElC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACvD,OAAO,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,mBAAmB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,cAAc;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAC5E,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,UAAU,SAAS,wBAAwB,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAElE,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACjE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAC7C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CACvF,CAAC;gBAElC,IAAI,YAAY,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;gBAC/G,IAAI,YAAY,IAAI,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC9G,IAAI,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3G,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC;QACpD,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,CAAC;QAEf,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACzC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;YAC7C,OAAO,EAAE,OAAO,GAAG,cAAc,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC7D,IAAI,EAAE,kBAAkB,aAAa,KAAK;SAC3C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,0BAA0B,CACjC,UAAwB,EACxB,cAAgC,EAChC,SAAiB,EACjB,SAAwC,EACxC,WAAoC,EACpC,UAAuB;IAEvB,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU;QAAE,OAAO;IAElD,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO;IAE1D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,mBAAmB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC5D,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACzC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;YAC7C,OAAO,EAAE,UAAU,SAAS,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACrH,IAAI,EAAE,eAAe,UAAU,CAAC,IAAI,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,2BAA2B,CAClC,cAAgC,EAChC,SAAoD,EACpD,UAAuB;IAEvB,IAAI,OAAe,CAAC;IACpB,IAAI,OAAe,CAAC;IAEpB,IAAI,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9G,OAAO,GAAG,kBAAkB,aAAa,KAAK,CAAC;QAC/C,OAAO,GAAG,kEAAkE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACnI,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,wCAAwC,CAAC;QACnD,OAAO,GAAG,yDAAyD,CAAC;IACtE,CAAC;IAED,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;QACzC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;QAC7C,OAAO;QACP,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE,SAAS,2BAA2B,CAClC,cAAkC,EAClC,SAAiB,EACjB,aAA4B,EAC5B,UAAuB;IAEvB,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7F,IAAI,CAAC,SAAS,EAAE,UAAU;QAAE,OAAO;IAEnC,iBAAiB;IACjB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;IACxE,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAwC,CAAC;QAC1D,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;gBACvC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvC,OAAO,EAAE,QAAQ,CAAC,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAElC,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa;YAAE,SAAS;QAE7B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;QACxC,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,QAAQ,CAAC;YAAC,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;QAAC,CAAC;aAC7F,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,QAAQ,CAAC;YAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;aACpG,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,SAAS,CAAC;YAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;aACrG,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,MAAM,CAAC;YAAC,SAAS,GAAG,MAAM,CAAC;QAAC,CAAC;aAC7E,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC,CAAC,kBAAkB;aAChE,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,QAAQ,CAAC;YAAC,SAAS,GAAG,iBAAiB,CAAC;QAAC,CAAC;aAC9F,CAAC;YAAC,SAAS;QAAC,CAAC,CAAC,4BAA4B;QAE/C,IAAI,UAAU,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAC9C,IAAI,UAAU,KAAK,MAAM;gBAAE,SAAS,CAAC,iCAAiC;YAEtE,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtE,UAAU,GAAG,OAAO,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,mBAAmB,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,qBAAqB,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjE,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC3C,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;wBACtC,UAAU,GAAG,OAAO,SAAS,KAAK,GAAG,mBAAmB,CAAC;oBAC3D,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,OAAO,SAAS,aAAa,SAAS,SAAS,CAAC;oBAC/D,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAChE,UAAU,GAAG,OAAO,SAAS,MAAM,SAAS,GAAG,CAAC;YAClD,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;gBACnC,OAAO,EAAE,cAAc,SAAS,8BAA8B,YAAY,KAAK,aAAa,CAAC,OAAO,UAAU,UAAU,KAAK,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/K,IAAI,EAAE,UAAU,IAAI,GAAG,SAAS,MAAM,YAAY,SAAS;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,6BAA6B,CACpC,cAAkC,EAClC,SAAiB,EACjB,aAA4B,EAC5B,UAAkE,EAClE,UAAuB;IAEvB,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7F,IAAI,CAAC,SAAS,EAAE,UAAU;QAAE,OAAO;IAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwC,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACrC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;QAE1E,4CAA4C;QAC5C,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;gBACnC,OAAO,EAAE,6BAA6B,SAAS,mFAAmF;gBAClI,IAAI,EAAE,GAAG,SAAS,QAAQ;gBAC1B,UAAU,EAAE;oBACV,IAAI,EAAE,8BAA8B,SAAS,+CAA+C;oBAC5F,OAAO,EAAE,GAAG,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;iBACzF;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7E,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;oBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;oBACnC,OAAO,EAAE,oBAAoB,SAAS,mCAAmC,SAAS,CAAC,IAAI,IAAI,QAAQ,uDAAuD;oBAC1J,IAAI,EAAE,GAAG,SAAS,SAAS;oBAC3B,UAAU,EAAE;wBACV,IAAI,EAAE,yCAAyC;wBAC/C,OAAO,EAAE,GAAG,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;qBACzF;iBACF,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB;gBAAE,SAAS;YAEhC,IAAI,SAAS,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;oBAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;oBACnC,OAAO,EAAE,oBAAoB,SAAS,mBAAmB,SAAS,CAAC,IAAI,MAAM,gBAAgB,yBAAyB,KAAK,CAAC,IAAI,uBAAuB,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,WAAW,oDAAoD;oBACvP,IAAI,EAAE,GAAG,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE;oBACnC,UAAU,EAAE;wBACV,IAAI,EAAE,wCAAwC,gBAAgB,mCAAmC;wBACjG,OAAO,EAAE,gBAAgB,KAAK,QAAQ;4BACpC,CAAC,CAAC,aAAa;4BACf,CAAC,CAAC,gBAAgB,KAAK,QAAQ;gCAC7B,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,iBAAiB;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,iCAAiC,CACxC,SAAiB,EACjB,SAAoD,EACpD,IAAgC,EAChC,UAAuB;IAEvB,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAExE,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACvD,OAAO,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5H,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;YACxC,OAAO,EAAE,UAAU,SAAS,uFAAuF,UAAU,EAAE;YAC/H,IAAI,EAAE,kBAAkB,aAAa,KAAK;SAC3C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,wEAAwE;AAGjE,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,YAAY;IAC1D,IAAI,IAAI,KAAK,OAAO,0BAA0B,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,KAA+B,OAAO,KAAK,CAAC,CAAC,CAAC;IAE3D,IAAI,CAAC,GAAW,EAAE,cAAsB,EAAE,aAA6B,EAAE,QAAkB,EAAE,WAAyB;QACpH,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,sDAAsD;QACtD,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAE7C,QAAQ,CAAC,GAAG,EAAE;YACZ,cAAc,CAAC,IAAgC;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,OAAO;gBAEhD,+BAA+B;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;wBACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;wBACxC,OAAO,EAAE;;;;;;;;;GASlB;wBACS,IAAI,EAAE,YAAY;wBAClB,UAAU,EAAE,kBAAkB;qBAC/B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,CAAC,kBAAkB;gBAEtE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,MAAM,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;oBACpF,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;wBACjD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;wBACrD,OAAO,EAAE,mDAAmD,OAAO;;;;;;;;;;;kIAWmD;wBACtH,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;wBACvC,UAAU,EAAE,kBAAkB;qBAC/B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEtC,qCAAqC;gBACrC,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,cAAc,GAA4B,IAAI,CAAC;gBACnD,IAAI,aAA2C,CAAC;gBAChD,MAAM,UAAU,GAAa,EAAE,CAAC;gBAEhC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACrC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAErE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC/B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAE1B,IAAI,QAAQ,KAAK,SAAS;wBAAE,UAAU,GAAG,IAAI,CAAC;oBAC9C,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;wBAC7B,YAAY,GAAG,IAAI,CAAC;wBACpB,aAAa,GAAG,IAAI,CAAC;wBACrB,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;4BAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAClE,CAAC;oBACD,IAAI,QAAQ,KAAK,cAAc;wBAAE,eAAe,GAAG,IAAI,CAAC;oBACxD,IAAI,QAAQ,KAAK,YAAY;wBAAE,cAAc,GAAG,IAAI,CAAC;oBAErD,+BAA+B;oBAC/B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxC,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,UAAU;4BACpB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;4BAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;4BACnC,OAAO,EAAE,mCAAmC,CAAC,QAAQ,CAAC;4BACtD,IAAI,EAAE,GAAG,QAAQ,OAAO;4BACxB,UAAU,EAAE,kBAAkB;yBAC/B,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,0BAA0B;wBAC1B,4BAA4B,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;gBAED,iCAAiC;gBACjC,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjG,MAAM,OAAO,GAAG,eAAe;wBAC7B,CAAC,CAAC,4IAA4I,YAAY,EAAE;wBAC5J,CAAC,CAAC,yFAAyF,YAAY,EAAE,CAAC;oBAE5G,MAAM,gBAAgB,GAAG,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,eAAe,CAAC;oBAChG,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;wBACjC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;wBACrC,OAAO;wBACP,IAAI,EAAE,0BAA0B,gBAAgB,WAAW;wBAC3D,UAAU,EAAE;4BACV,IAAI,EAAE,8CAA8C;4BACpD,OAAO,EAAE,gDAAgD,gBAAgB,KAAK,eAAe,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,EAAE,2DAA2D;yBAC5N;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,yDAAyD;gBACzD,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC;oBACpD,MAAM,gBAAgB,GAAG,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,eAAe,CAAC;oBAChG,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,CAEzH,CAAC;oBAEd,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;wBACtE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;wBAC5E,OAAO,EAAE,sMAAsM;wBAC/M,IAAI,EAAE,4CAA4C;wBAClD,UAAU,EAAE;4BACV,IAAI,EAAE,qHAAqH;4BAC3H,OAAO,EAAE,kCAAkC,gBAAgB,mDAAmD,gBAAgB,yMAAyM;yBACxU;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,+CAA+C;gBAC/C,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CACjF,CAAC;gBACF,IAAI,SAAS,EAAE,CAAC;oBACd,sBAAsB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;oBACnE,IAAI,aAAa,EAAE,CAAC;wBAClB,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;oBAC7E,CAAC;gBACH,CAAC;qBAAM,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,qDAAqD;oBACrD,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;gBAC7E,CAAC;gBAED,gDAAgD;gBAChD,IAAI,SAAS,EAAE,CAAC;oBACd,oBAAoB,CAAC,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;gBACnG,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,2CAA2C;oBAC3C,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,SAAS,GAAG,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBAC9F,iCAAiC,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;oBAC5E,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;gBACxC,MAAM,SAAS,GAAG,SAAS;oBACzB,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;oBAC7E,CAAC,CAAC,SAAS,CAAC;gBAEd,IAAI,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,uBAAuB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC7E,CAAC;qBAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5C,oCAAoC;oBACpC,IAAI,SAAS,EAAE,CAAC;wBACd,wBAAwB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;oBAC1F,CAAC;oBACD,iCAAiC;oBACjC,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;wBAC/B,2BAA2B,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;wBAC9E,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oBAC9F,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;wBAC3B,0BAA0B,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;oBACxG,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,qBAAqB;oBACrB,2BAA2B,CAAC,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAA;AAjNY,0BAA0B;IADtC,aAAa,CAAC,YAAY,EAAE,0BAA0B,CAAC;GAC3C,0BAA0B,CAiNtC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as t from '@babel/types';
|
|
2
|
+
import { BaseLintRule } from '../lint-rule.js';
|
|
3
|
+
import { Violation } from '../component-linter.js';
|
|
4
|
+
import { ComponentSpec } from '@memberjunction/interactive-component-types';
|
|
5
|
+
export declare class RunViewCallValidationRule extends BaseLintRule {
|
|
6
|
+
get Name(): string;
|
|
7
|
+
get AppliesTo(): 'all' | 'child' | 'root';
|
|
8
|
+
Test(ast: t.File, _componentName: string, componentSpec?: ComponentSpec): Violation[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=runview-call-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runview-call-validation.d.ts","sourceRoot":"","sources":["../../src/runtime-rules/runview-call-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AA+O5E,qBACa,yBAA0B,SAAQ,YAAY;IACzD,IAAI,IAAI,WAAwC;IAChD,IAAI,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAkB;IAE3D,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE;CAkHtF"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { traverse, isNullOrUndefined, isStringLike, isNumberLike, isArrayLike } from '../lint-utils.js';
|
|
8
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
9
|
+
import * as t from '@babel/types';
|
|
10
|
+
import { BaseLintRule } from '../lint-rule.js';
|
|
11
|
+
/**
|
|
12
|
+
* Rule: runview-call-validation
|
|
13
|
+
*
|
|
14
|
+
* Consolidates all RunView/RunViews CALL SITE validation into a single traversal.
|
|
15
|
+
* Absorbs checks from:
|
|
16
|
+
* - runview-runquery-valid-properties (RunView/RunViews portions)
|
|
17
|
+
* - runview-entity-validation (all)
|
|
18
|
+
*
|
|
19
|
+
* Checks:
|
|
20
|
+
* 1. Missing first parameter
|
|
21
|
+
* 2. RunViews: argument must be array (not single object)
|
|
22
|
+
* 3. RunView: argument must be object (allow Identifier — skip validation for variables)
|
|
23
|
+
* 4. Missing required EntityName property
|
|
24
|
+
* 5. Invalid property names with specific messages
|
|
25
|
+
* 6. Invalid property types (EntityName must be string, ExtraFilter string, Fields array, MaxRows number, etc.)
|
|
26
|
+
* 7. EntityName not found in componentSpec.dataRequirements.entities (medium severity)
|
|
27
|
+
*
|
|
28
|
+
* Severity: critical/medium
|
|
29
|
+
* Applies to: all components
|
|
30
|
+
*/
|
|
31
|
+
/** Valid properties for RunView/RunViews */
|
|
32
|
+
const VALID_RUNVIEW_PROPS = new Set([
|
|
33
|
+
'EntityName', 'ExtraFilter', 'OrderBy', 'Fields', 'MaxRows', 'StartRow', 'ResultType',
|
|
34
|
+
]);
|
|
35
|
+
const DEFAULT_SUGGESTION = {
|
|
36
|
+
text: 'Use only valid properties for RunView/RunViews and RunQuery',
|
|
37
|
+
example: `// ❌ WRONG - Invalid properties on RunView:
|
|
38
|
+
await utilities.rv.RunView({
|
|
39
|
+
EntityName: 'MJ: AI Prompt Runs',
|
|
40
|
+
Parameters: { startDate, endDate }, // INVALID!
|
|
41
|
+
GroupBy: 'Status' // INVALID!
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// ✅ CORRECT - Use ExtraFilter for WHERE clauses:
|
|
45
|
+
await utilities.rv.RunView({
|
|
46
|
+
EntityName: 'MJ: AI Prompt Runs',
|
|
47
|
+
ExtraFilter: \`RunAt >= '\${startDate.toISOString()}' AND RunAt <= '\${endDate.toISOString()}'\`,
|
|
48
|
+
OrderBy: 'RunAt DESC',
|
|
49
|
+
Fields: ['RunAt', 'Status', 'Success']
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// ✅ For aggregations, use RunQuery with a pre-defined query:
|
|
53
|
+
await utilities.rq.RunQuery({
|
|
54
|
+
QueryName: 'Prompt Run Summary',
|
|
55
|
+
Parameters: { startDate, endDate } // Parameters ARE valid for RunQuery
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// Valid RunView properties:
|
|
59
|
+
// - EntityName (required)
|
|
60
|
+
// - ExtraFilter, OrderBy, Fields, MaxRows, StartRow, ResultType (optional)
|
|
61
|
+
|
|
62
|
+
// Valid RunQuery properties:
|
|
63
|
+
// - QueryName (required)
|
|
64
|
+
// - CategoryPath, CategoryID, Parameters (optional)`,
|
|
65
|
+
};
|
|
66
|
+
// ── Helpers for invalid-property messages ────────────────────────────
|
|
67
|
+
function buildInvalidPropertyMessage(methodName, propName) {
|
|
68
|
+
const defaultMessage = `Invalid property '${propName}' on ${methodName}. Valid properties: ${Array.from(VALID_RUNVIEW_PROPS).join(', ')}`;
|
|
69
|
+
const defaultFix = `Remove '${propName}' property`;
|
|
70
|
+
switch (propName) {
|
|
71
|
+
case 'Parameters':
|
|
72
|
+
return {
|
|
73
|
+
message: `${methodName} does not support 'Parameters'. Use 'ExtraFilter' for WHERE clauses.`,
|
|
74
|
+
fix: `Replace 'Parameters' with 'ExtraFilter' and format as SQL WHERE clause`,
|
|
75
|
+
};
|
|
76
|
+
case 'ViewID':
|
|
77
|
+
case 'ViewName':
|
|
78
|
+
return {
|
|
79
|
+
message: `${methodName} property '${propName}' is not allowed in components. Use 'EntityName' instead.`,
|
|
80
|
+
fix: `Replace '${propName}' with 'EntityName' and specify the entity name`,
|
|
81
|
+
};
|
|
82
|
+
case 'UserSearchString':
|
|
83
|
+
return {
|
|
84
|
+
message: `${methodName} property 'UserSearchString' is not allowed in components. Use 'ExtraFilter' for filtering.`,
|
|
85
|
+
fix: `Remove 'UserSearchString' and use 'ExtraFilter' with appropriate WHERE clause`,
|
|
86
|
+
};
|
|
87
|
+
case 'ForceAuditLog':
|
|
88
|
+
case 'AuditLogDescription':
|
|
89
|
+
return {
|
|
90
|
+
message: `${methodName} property '${propName}' is not allowed in components.`,
|
|
91
|
+
fix: `Remove '${propName}' property`,
|
|
92
|
+
};
|
|
93
|
+
case 'GroupBy':
|
|
94
|
+
return {
|
|
95
|
+
message: `${methodName} does not support 'GroupBy'. Use RunQuery with a pre-defined query for aggregations.`,
|
|
96
|
+
fix: `Remove 'GroupBy' and use RunQuery instead for aggregated data`,
|
|
97
|
+
};
|
|
98
|
+
case 'Having':
|
|
99
|
+
return {
|
|
100
|
+
message: `${methodName} does not support 'Having'. Use RunQuery with a pre-defined query.`,
|
|
101
|
+
fix: `Remove 'Having' and use RunQuery instead`,
|
|
102
|
+
};
|
|
103
|
+
default:
|
|
104
|
+
return { message: defaultMessage, fix: defaultFix };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// ── Property type validation ─────────────────────────────────────────
|
|
108
|
+
function validatePropertyType(methodName, propName, value, prop, violations) {
|
|
109
|
+
if (propName === 'ExtraFilter' || propName === 'OrderBy' || propName === 'EntityName') {
|
|
110
|
+
const allowNullUndefined = propName === 'ExtraFilter' || propName === 'OrderBy';
|
|
111
|
+
if (!isStringLike(value) && !(allowNullUndefined && isNullOrUndefined(value))) {
|
|
112
|
+
const exampleMap = {
|
|
113
|
+
ExtraFilter: `"Status = 'Active' AND Type = 'Customer'"`,
|
|
114
|
+
OrderBy: `"CreatedAt DESC"`,
|
|
115
|
+
EntityName: `"Products"`,
|
|
116
|
+
};
|
|
117
|
+
violations.push({
|
|
118
|
+
rule: 'runview-call-validation',
|
|
119
|
+
severity: 'critical',
|
|
120
|
+
line: prop.loc?.start.line || 0,
|
|
121
|
+
column: prop.loc?.start.column || 0,
|
|
122
|
+
message: `${methodName} property '${propName}' must be a string, not ${t.isObjectExpression(value) ? 'an object' : t.isArrayExpression(value) ? 'an array' : 'a non-string value'}. Example: ${propName}: ${exampleMap[propName] || '""'}`,
|
|
123
|
+
code: `${propName}: ${value.type === 'ObjectExpression' ? '{...}' : value.type === 'ArrayExpression' ? '[...]' : '...'}`,
|
|
124
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else if (propName === 'Fields') {
|
|
129
|
+
if (!isArrayLike(value) && !isStringLike(value)) {
|
|
130
|
+
violations.push({
|
|
131
|
+
rule: 'runview-call-validation',
|
|
132
|
+
severity: 'critical',
|
|
133
|
+
line: prop.loc?.start.line || 0,
|
|
134
|
+
column: prop.loc?.start.column || 0,
|
|
135
|
+
message: `${methodName} property 'Fields' must be an array of field names or a comma-separated string. Example: Fields: ['ID', 'Name', 'Status'] or Fields: 'ID, Name, Status'`,
|
|
136
|
+
code: `Fields: ${value.type === 'ObjectExpression' ? '{...}' : '...'}`,
|
|
137
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (propName === 'MaxRows' || propName === 'StartRow') {
|
|
142
|
+
if (!isNumberLike(value)) {
|
|
143
|
+
violations.push({
|
|
144
|
+
rule: 'runview-call-validation',
|
|
145
|
+
severity: 'critical',
|
|
146
|
+
line: prop.loc?.start.line || 0,
|
|
147
|
+
column: prop.loc?.start.column || 0,
|
|
148
|
+
message: `${methodName} property '${propName}' must be a number. Example: ${propName}: ${propName === 'MaxRows' ? '100' : '0'}`,
|
|
149
|
+
code: `${propName}: ${value.type === 'StringLiteral' ? '"..."' : value.type === 'ObjectExpression' ? '{...}' : '...'}`,
|
|
150
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// ── Entity spec validation ───────────────────────────────────────────
|
|
156
|
+
function validateEntityAgainstSpec(config, componentSpec, violations) {
|
|
157
|
+
if (!componentSpec?.dataRequirements?.entities)
|
|
158
|
+
return;
|
|
159
|
+
const specEntityNames = componentSpec.dataRequirements.entities.map((e) => e.name);
|
|
160
|
+
if (specEntityNames.length === 0)
|
|
161
|
+
return;
|
|
162
|
+
let entityName = null;
|
|
163
|
+
for (const prop of config.properties) {
|
|
164
|
+
if (t.isObjectProperty(prop) && t.isIdentifier(prop.key) && prop.key.name === 'EntityName' && t.isStringLiteral(prop.value)) {
|
|
165
|
+
entityName = prop.value.value;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (entityName && !specEntityNames.includes(entityName)) {
|
|
170
|
+
violations.push({
|
|
171
|
+
rule: 'runview-call-validation',
|
|
172
|
+
severity: 'medium',
|
|
173
|
+
line: config.loc?.start.line || 0,
|
|
174
|
+
column: config.loc?.start.column || 0,
|
|
175
|
+
message: `Entity '${entityName}' not in component spec. Available entities: ${specEntityNames.join(', ')}`,
|
|
176
|
+
code: `EntityName: '${specEntityNames[0] || 'EntityFromSpec'}'`,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// ── Single config validation ─────────────────────────────────────────
|
|
181
|
+
function validateRunViewConfig(config, methodName, componentSpec, violations) {
|
|
182
|
+
let hasEntityName = false;
|
|
183
|
+
for (const prop of config.properties) {
|
|
184
|
+
if (!t.isObjectProperty(prop) || !t.isIdentifier(prop.key))
|
|
185
|
+
continue;
|
|
186
|
+
const propName = prop.key.name;
|
|
187
|
+
if (propName === 'EntityName')
|
|
188
|
+
hasEntityName = true;
|
|
189
|
+
if (!VALID_RUNVIEW_PROPS.has(propName)) {
|
|
190
|
+
const { message } = buildInvalidPropertyMessage(methodName, propName);
|
|
191
|
+
violations.push({
|
|
192
|
+
rule: 'runview-call-validation',
|
|
193
|
+
severity: 'critical',
|
|
194
|
+
line: prop.loc?.start.line || 0,
|
|
195
|
+
column: prop.loc?.start.column || 0,
|
|
196
|
+
message,
|
|
197
|
+
code: `${propName}: ...`,
|
|
198
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
validatePropertyType(methodName, propName, prop.value, prop, violations);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (!hasEntityName) {
|
|
206
|
+
violations.push({
|
|
207
|
+
rule: 'runview-call-validation',
|
|
208
|
+
severity: 'critical',
|
|
209
|
+
line: config.loc?.start.line || 0,
|
|
210
|
+
column: config.loc?.start.column || 0,
|
|
211
|
+
message: `${methodName} requires 'EntityName' property. Add EntityName to identify what data to retrieve.`,
|
|
212
|
+
code: `${methodName}({ ... })`,
|
|
213
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
validateEntityAgainstSpec(config, componentSpec, violations);
|
|
217
|
+
}
|
|
218
|
+
// ── Main Rule ────────────────────────────────────────────────────────
|
|
219
|
+
let RunViewCallValidationRule = class RunViewCallValidationRule extends BaseLintRule {
|
|
220
|
+
get Name() { return 'runview-call-validation'; }
|
|
221
|
+
get AppliesTo() { return 'all'; }
|
|
222
|
+
Test(ast, _componentName, componentSpec) {
|
|
223
|
+
const violations = [];
|
|
224
|
+
traverse(ast, {
|
|
225
|
+
CallExpression(path) {
|
|
226
|
+
const callee = path.node.callee;
|
|
227
|
+
if (!t.isMemberExpression(callee) ||
|
|
228
|
+
!t.isMemberExpression(callee.object) ||
|
|
229
|
+
!t.isIdentifier(callee.object.object) ||
|
|
230
|
+
callee.object.object.name !== 'utilities' ||
|
|
231
|
+
!t.isIdentifier(callee.object.property) ||
|
|
232
|
+
callee.object.property.name !== 'rv' ||
|
|
233
|
+
!t.isIdentifier(callee.property)) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const methodName = callee.property.name;
|
|
237
|
+
if (methodName !== 'RunView' && methodName !== 'RunViews')
|
|
238
|
+
return;
|
|
239
|
+
// Check 1: Missing first parameter
|
|
240
|
+
if (!path.node.arguments[0]) {
|
|
241
|
+
violations.push({
|
|
242
|
+
rule: 'runview-call-validation',
|
|
243
|
+
severity: 'critical',
|
|
244
|
+
line: path.node.loc?.start.line || 0,
|
|
245
|
+
column: path.node.loc?.start.column || 0,
|
|
246
|
+
message: `${methodName} requires a ${methodName === 'RunViews' ? 'array of RunViewParams objects' : 'RunViewParams object'} as the first parameter.`,
|
|
247
|
+
code: `${methodName}()`,
|
|
248
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
249
|
+
});
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
let configs = [];
|
|
253
|
+
if (methodName === 'RunViews') {
|
|
254
|
+
// Check 2: RunViews must receive an array
|
|
255
|
+
if (t.isArrayExpression(path.node.arguments[0])) {
|
|
256
|
+
configs = path.node.arguments[0].elements.filter((e) => t.isObjectExpression(e));
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
violations.push({
|
|
260
|
+
rule: 'runview-call-validation',
|
|
261
|
+
severity: 'critical',
|
|
262
|
+
line: path.node.arguments[0].loc?.start.line || 0,
|
|
263
|
+
column: path.node.arguments[0].loc?.start.column || 0,
|
|
264
|
+
message: `RunViews expects an array of RunViewParams objects, not a ${t.isObjectExpression(path.node.arguments[0]) ? 'single object' : 'non-array'}.
|
|
265
|
+
Use: RunViews([
|
|
266
|
+
{
|
|
267
|
+
EntityName: 'Entity1',
|
|
268
|
+
ExtraFilter: 'IsActive = 1',
|
|
269
|
+
Fields: 'ID, Name',
|
|
270
|
+
StartRow: 0,
|
|
271
|
+
MaxRows: 50
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
EntityName: 'Entity2',
|
|
275
|
+
OrderBy: 'CreatedAt DESC',
|
|
276
|
+
StartRow: 0,
|
|
277
|
+
MaxRows: 100
|
|
278
|
+
}
|
|
279
|
+
])
|
|
280
|
+
Each object supports: EntityName, ExtraFilter, Fields, OrderBy, MaxRows, StartRow, ResultType`,
|
|
281
|
+
code: path.toString().substring(0, 100),
|
|
282
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
283
|
+
});
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
// Check 3: RunView must receive an object (allow Identifier for variables)
|
|
289
|
+
if (t.isObjectExpression(path.node.arguments[0])) {
|
|
290
|
+
configs = [path.node.arguments[0]];
|
|
291
|
+
}
|
|
292
|
+
else if (t.isIdentifier(path.node.arguments[0])) {
|
|
293
|
+
// Variable reference — can't statically validate, skip
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
const argType = t.isStringLiteral(path.node.arguments[0])
|
|
298
|
+
? 'string'
|
|
299
|
+
: t.isArrayExpression(path.node.arguments[0])
|
|
300
|
+
? 'array'
|
|
301
|
+
: 'non-object';
|
|
302
|
+
violations.push({
|
|
303
|
+
rule: 'runview-call-validation',
|
|
304
|
+
severity: 'critical',
|
|
305
|
+
line: path.node.arguments[0].loc?.start.line || 0,
|
|
306
|
+
column: path.node.arguments[0].loc?.start.column || 0,
|
|
307
|
+
message: `RunView expects a RunViewParams object, not ${argType === 'array' ? 'an' : 'a'} ${argType}.
|
|
308
|
+
Use: RunView({
|
|
309
|
+
EntityName: 'YourEntity',
|
|
310
|
+
ExtraFilter: 'Status = "Active"', // Optional WHERE clause
|
|
311
|
+
Fields: 'ID, Name, Status', // Optional columns to return
|
|
312
|
+
OrderBy: 'Name ASC', // Optional sort
|
|
313
|
+
StartRow: 0, // Optional offset (0-based)
|
|
314
|
+
MaxRows: 100 // Optional limit
|
|
315
|
+
})
|
|
316
|
+
Valid properties: EntityName, ExtraFilter, Fields, OrderBy, MaxRows, StartRow, ResultType`,
|
|
317
|
+
code: path.toString().substring(0, 100),
|
|
318
|
+
suggestion: DEFAULT_SUGGESTION,
|
|
319
|
+
});
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
// Validate each config object
|
|
324
|
+
for (const config of configs) {
|
|
325
|
+
validateRunViewConfig(config, methodName, componentSpec, violations);
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
});
|
|
329
|
+
return violations;
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
RunViewCallValidationRule = __decorate([
|
|
333
|
+
RegisterClass(BaseLintRule, 'runview-call-validation')
|
|
334
|
+
], RunViewCallValidationRule);
|
|
335
|
+
export { RunViewCallValidationRule };
|
|
336
|
+
//# sourceMappingURL=runview-call-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runview-call-validation.js","sourceRoot":"","sources":["../../src/runtime-rules/runview-call-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as t from '@babel/types';
|
|
2
|
+
import { BaseLintRule } from '../lint-rule.js';
|
|
3
|
+
import { Violation } from '../component-linter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Rule: saved-user-settings-pattern
|
|
6
|
+
*
|
|
7
|
+
* Checks for improper onSaveUserSettings usage. Prevents saving ephemeral UI state
|
|
8
|
+
* (hover, dropdown, modal, loading, typing, draft, expanded, collapsed, focused)
|
|
9
|
+
* to savedUserSettings. Only important user preferences should be persisted.
|
|
10
|
+
*
|
|
11
|
+
* Severity: medium (pattern issue but not breaking)
|
|
12
|
+
* Applies to: all components
|
|
13
|
+
*/
|
|
14
|
+
export declare class SavedUserSettingsPatternRule extends BaseLintRule {
|
|
15
|
+
get Name(): string;
|
|
16
|
+
get AppliesTo(): 'all' | 'child' | 'root';
|
|
17
|
+
Test(ast: t.File, componentName: string): Violation[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=saved-user-settings-pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saved-user-settings-pattern.d.ts","sourceRoot":"","sources":["../../src/runtime-rules/saved-user-settings-pattern.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;;;;;;;;GASG;AACH,qBACa,4BAA6B,SAAQ,YAAY;IAC5D,IAAI,IAAI,WAA4C;IACpD,IAAI,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAkB;IAE3D,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE;CAiEtD"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { traverse } from '../lint-utils.js';
|
|
8
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
9
|
+
import * as t from '@babel/types';
|
|
10
|
+
import { BaseLintRule } from '../lint-rule.js';
|
|
11
|
+
/**
|
|
12
|
+
* Rule: saved-user-settings-pattern
|
|
13
|
+
*
|
|
14
|
+
* Checks for improper onSaveUserSettings usage. Prevents saving ephemeral UI state
|
|
15
|
+
* (hover, dropdown, modal, loading, typing, draft, expanded, collapsed, focused)
|
|
16
|
+
* to savedUserSettings. Only important user preferences should be persisted.
|
|
17
|
+
*
|
|
18
|
+
* Severity: medium (pattern issue but not breaking)
|
|
19
|
+
* Applies to: all components
|
|
20
|
+
*/
|
|
21
|
+
let SavedUserSettingsPatternRule = class SavedUserSettingsPatternRule extends BaseLintRule {
|
|
22
|
+
get Name() { return 'saved-user-settings-pattern'; }
|
|
23
|
+
get AppliesTo() { return 'all'; }
|
|
24
|
+
Test(ast, componentName) {
|
|
25
|
+
const violations = [];
|
|
26
|
+
// Check for improper onSaveUserSettings usage
|
|
27
|
+
traverse(ast, {
|
|
28
|
+
CallExpression(path) {
|
|
29
|
+
const callee = path.node.callee;
|
|
30
|
+
// Check for onSaveUserSettings calls
|
|
31
|
+
if (t.isMemberExpression(callee) && t.isIdentifier(callee.object) && callee.object.name === 'onSaveUserSettings') {
|
|
32
|
+
// Check if saving ephemeral state
|
|
33
|
+
if (path.node.arguments.length > 0) {
|
|
34
|
+
const arg = path.node.arguments[0];
|
|
35
|
+
if (t.isObjectExpression(arg)) {
|
|
36
|
+
for (const prop of arg.properties) {
|
|
37
|
+
if (t.isObjectProperty(prop) && t.isIdentifier(prop.key)) {
|
|
38
|
+
const key = prop.key.name;
|
|
39
|
+
const ephemeralPatterns = ['hover', 'dropdown', 'modal', 'loading', 'typing', 'draft', 'expanded', 'collapsed', 'focused'];
|
|
40
|
+
if (ephemeralPatterns.some((pattern) => key.toLowerCase().includes(pattern))) {
|
|
41
|
+
violations.push({
|
|
42
|
+
rule: 'saved-user-settings-pattern',
|
|
43
|
+
severity: 'medium', // Pattern issue but not breaking
|
|
44
|
+
line: prop.loc?.start.line || 0,
|
|
45
|
+
column: prop.loc?.start.column || 0,
|
|
46
|
+
message: `Saving ephemeral UI state "${key}" to savedUserSettings. Only save important user preferences.`,
|
|
47
|
+
suggestion: {
|
|
48
|
+
text: 'Only save important user preferences, not ephemeral UI state',
|
|
49
|
+
example: `// ✅ SAVE these (important preferences):
|
|
50
|
+
- Selected items/tabs: selectedCustomerId, activeTab
|
|
51
|
+
- Sort preferences: sortBy, sortDirection
|
|
52
|
+
- Filter selections: activeFilters
|
|
53
|
+
- View preferences: viewMode, pageSize
|
|
54
|
+
|
|
55
|
+
// ❌ DON'T SAVE these (ephemeral UI):
|
|
56
|
+
- Hover states: hoveredItemId
|
|
57
|
+
- Dropdown states: isDropdownOpen
|
|
58
|
+
- Text being typed: searchDraft (save on submit)
|
|
59
|
+
- Loading states: isLoading
|
|
60
|
+
|
|
61
|
+
// Example:
|
|
62
|
+
const handleHover = (id) => {
|
|
63
|
+
setHoveredId(id); // Just local state
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const handleSelect = (id) => {
|
|
67
|
+
setSelectedId(id);
|
|
68
|
+
onSaveUserSettings?.({ // Save important preference
|
|
69
|
+
...savedUserSettings,
|
|
70
|
+
selectedId: id
|
|
71
|
+
});
|
|
72
|
+
};`,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
return violations;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
SavedUserSettingsPatternRule = __decorate([
|
|
87
|
+
RegisterClass(BaseLintRule, 'saved-user-settings-pattern')
|
|
88
|
+
], SavedUserSettingsPatternRule);
|
|
89
|
+
export { SavedUserSettingsPatternRule };
|
|
90
|
+
//# sourceMappingURL=saved-user-settings-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saved-user-settings-pattern.js","sourceRoot":"","sources":["../../src/runtime-rules/saved-user-settings-pattern.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAY,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C;;;;;;;;;GASG;AAEI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,YAAY;IAC5D,IAAI,IAAI,KAAK,OAAO,6BAA6B,CAAC,CAAC,CAAC;IACpD,IAAI,SAAS,KAA+B,OAAO,KAAK,CAAC,CAAC,CAAC;IAE3D,IAAI,CAAC,GAAW,EAAE,aAAqB;QACrC,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,8CAA8C;QAC9C,QAAQ,CAAC,GAAG,EAAE;YACZ,cAAc,CAAC,IAAgC;gBAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAEhC,qCAAqC;gBACrC,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBACjH,kCAAkC;oBAClC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC9B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gCAClC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oCACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oCAC1B,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;oCAE3H,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;wCAC7E,UAAU,CAAC,IAAI,CAAC;4CACd,IAAI,EAAE,6BAA6B;4CACnC,QAAQ,EAAE,QAAQ,EAAE,iCAAiC;4CACrD,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;4CAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;4CACnC,OAAO,EAAE,8BAA8B,GAAG,+DAA+D;4CACzG,UAAU,EAAE;gDACV,IAAI,EAAE,8DAA8D;gDACpE,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;GAuB9B;6CACoB;yCACF,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IAClB,CAAC;CACJ,CAAA;AArEY,4BAA4B;IADxC,aAAa,CAAC,YAAY,EAAE,6BAA6B,CAAC;GAC9C,4BAA4B,CAqExC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as t from '@babel/types';
|
|
2
|
+
import { BaseLintRule } from '../lint-rule.js';
|
|
3
|
+
import { Violation } from '../component-linter.js';
|
|
4
|
+
export declare class SearchAvailabilityCheckRule extends BaseLintRule {
|
|
5
|
+
get Name(): string;
|
|
6
|
+
get AppliesTo(): 'all' | 'child' | 'root';
|
|
7
|
+
Test(ast: t.File): Violation[];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=search-availability-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-availability-check.d.ts","sourceRoot":"","sources":["../../src/runtime-rules/search-availability-check.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAmLhD,qBACa,2BAA4B,SAAQ,YAAY;IAC3D,IAAI,IAAI,WAA0C;IAClD,IAAI,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAkB;IAE3D,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE;CAmD/B"}
|