@oracle/oraclejet-audit 19.0.1 → 20.0.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/LICENSE.md +1 -1
- package/corePackMigrator/cli.js +1 -1
- package/corePackMigrator/corePackMigrator.js +1 -1
- package/corePackMigrator/resource/astUtils.js +1 -1
- package/corePackMigrator/resource/componentMigrator.js +1 -1
- package/corePackMigrator/resource/fileScanner.js +1 -1
- package/corePackMigrator/resource/htmlUtils.js +2 -2
- package/corePackMigrator/resource/testUtils.js +1 -1
- package/corePackMigrator/utilities/deltaWebElementAPIs.js +1 -1
- package/corePackMigrator/utilities/logging.js +1 -1
- package/jaf-amd.js +1 -1
- package/jaf.js +1 -1
- package/jafapi.js +1 -1
- package/lib/AST.js +1 -1
- package/lib/AST_Ts.js +2 -2
- package/lib/AstJson.js +1 -1
- package/lib/AstMd.js +1 -1
- package/lib/AstNodeTypes.js +1 -1
- package/lib/Cli.js +1 -1
- package/lib/Color.js +1 -1
- package/lib/Comments.js +1 -1
- package/lib/ComponentSvcs.js +1 -1
- package/lib/Components.js +1 -1
- package/lib/Config.js +1 -1
- package/lib/ConfigEx.js +1 -1
- package/lib/ConfigLib.js +1 -1
- package/lib/CssLib.js +1 -1
- package/lib/CssUtils.js +1 -1
- package/lib/DomUtils.js +1 -1
- package/lib/FileIndex.js +1 -1
- package/lib/FileSet.js +1 -1
- package/lib/FsUtils.js +1 -1
- package/lib/Histo.js +1 -1
- package/lib/HtmlTree.js +1 -1
- package/lib/HtmlUtils.js +1 -1
- package/lib/Issue.js +1 -1
- package/lib/JafEvents.js +1 -1
- package/lib/JafLib.js +1 -1
- package/lib/Json.js +1 -1
- package/lib/JsonLoader.js +1 -1
- package/lib/Md.js +1 -1
- package/lib/MetaLib.js +1 -1
- package/lib/NetUtils.js +1 -1
- package/lib/NodeTypes.js +1 -1
- package/lib/OjCPack.js +2 -2
- package/lib/OjetLib.js +1 -1
- package/lib/Parser.js +1 -1
- package/lib/Plugin.js +1 -1
- package/lib/RegTypes.js +1 -1
- package/lib/Registry.js +1 -1
- package/lib/Reporter.js +1 -1
- package/lib/RuleContext.js +1 -1
- package/lib/RulePack.js +1 -1
- package/lib/RuleSet.js +1 -1
- package/lib/Rules.js +1 -1
- package/lib/Scope.js +1 -1
- package/lib/SemVer.js +1 -1
- package/lib/Server.js +1 -1
- package/lib/SevLib.js +1 -1
- package/lib/Severity.js +1 -1
- package/lib/Stats.js +1 -1
- package/lib/Ts.js +1 -1
- package/lib/TsUtils.js +1 -1
- package/lib/TsxUtils.js +1 -1
- package/lib/TsxUtils2.js +1 -1
- package/lib/Utils.js +1 -1
- package/lib/Watch.js +1 -1
- package/lib/Writer.js +1 -1
- package/lib/ZipUtils.js +1 -1
- package/lib/amdlist.js +1 -1
- package/lib/api.js +1 -1
- package/lib/betalist.js +1 -1
- package/lib/builtinpacks.js +1 -1
- package/lib/checkage.js +2 -2
- package/lib/cliStats.js +1 -1
- package/lib/clone.js +1 -1
- package/lib/cmdline.js +1 -1
- package/lib/defaults.js +2 -2
- package/lib/deflist.js +1 -1
- package/lib/deplist.js +1 -1
- package/lib/dislist.js +1 -1
- package/lib/exportRules.js +1 -1
- package/lib/extends.js +1 -1
- package/lib/filetypes.js +1 -1
- package/lib/grouplist.js +1 -1
- package/lib/groups.js +1 -1
- package/lib/help.js +1 -1
- package/lib/jetver.js +1 -1
- package/lib/jsx.js +1 -1
- package/lib/macros.js +1 -1
- package/lib/maint.js +1 -1
- package/lib/manpage.js +1 -1
- package/lib/manual.js +1 -1
- package/lib/metaLoader.js +1 -1
- package/lib/metahist.js +1 -1
- package/lib/migrator.js +1 -1
- package/lib/msgidLoader.js +1 -1
- package/lib/ns.js +2 -2
- package/lib/nslist.js +1 -1
- package/lib/outFormat.js +1 -1
- package/lib/outfile.js +1 -1
- package/lib/proflist.js +1 -1
- package/lib/rlolist.js +1 -1
- package/lib/ruleLoader.js +1 -1
- package/lib/scaffold.js +2 -2
- package/lib/scaffoldRule.js +2 -2
- package/lib/schema.js +1 -1
- package/lib/scopewalker.js +1 -1
- package/lib/spinner.js +1 -1
- package/lib/spinnernoop.js +1 -1
- package/lib/sublib/precomp/ComponentFinder.js +1 -1
- package/lib/sublib/precomp/Precompiler.js +1 -1
- package/lib/sublib/precomp/TsxUtils.js +1 -1
- package/lib/sublib/precomp/Utils.js +1 -1
- package/lib/tabs.js +1 -1
- package/libext/expparser.js +1 -1
- package/meta/19.0.0/jetauditmeta.js +1 -1
- package/meta/20.0.0/jetauditmeta.js +9 -0
- package/meta/metaverlist.json +1 -1
- package/package.json +2 -2
- package/profiles/best-practice.json +1 -1
- package/profiles/redwood-strict.json +1 -1
- package/rulepacks/csp/csp-html-script-unsafe-inline.js +1 -1
- package/rulepacks/csp/csp-html-style-unsafe-inline.js +1 -1
- package/rulepacks/csp/csp-html-unsafe-expr.js +1 -1
- package/rulepacks/csp/csp-js-script-unsafe-eval.js +1 -1
- package/rulepacks/csp/csp-js-style-unsafe-inline.js +1 -1
- package/rulepacks/csp/csp-json-unsafe-expr.js +1 -1
- package/rulepacks/csp/csp-ts-script-unsafe-eval.js +1 -1
- package/rulepacks/csp/csp-ts-style-unsafe-inline.js +1 -1
- package/rulepacks/csp/msgid.json +1 -1
- package/rulepacks/csp/rules.json +1 -1
- package/rulepacks/jetvdom/msgid.json +1 -1
- package/rulepacks/jetvdom/rules.json +1 -1
- package/rulepacks/jetwc/jetwc-absolute-jetversion.js +1 -1
- package/rulepacks/jetwc/jetwc-aria-redefinition.js +1 -1
- package/rulepacks/jetwc/jetwc-bootstrap.js +1 -1
- package/rulepacks/jetwc/jetwc-compjson-bp-ar.js +1 -1
- package/rulepacks/jetwc/jetwc-compjson-bp-obj.js +1 -1
- package/rulepacks/jetwc/jetwc-component-dependencies.js +1 -1
- package/rulepacks/jetwc/jetwc-component-displayname.js +1 -1
- package/rulepacks/jetwc/jetwc-component-foldername.js +1 -1
- package/rulepacks/jetwc/jetwc-component-location.js +1 -1
- package/rulepacks/jetwc/jetwc-component-type.js +1 -1
- package/rulepacks/jetwc/jetwc-css-oj-complete.js +1 -1
- package/rulepacks/jetwc/jetwc-css-pack-load-path.js +1 -1
- package/rulepacks/jetwc/jetwc-css-scoping.js +2 -2
- package/rulepacks/jetwc/jetwc-data-property-prefix.js +1 -1
- package/rulepacks/jetwc/jetwc-deprecated-lifecycle.js +1 -1
- package/rulepacks/jetwc/jetwc-disabled-property.js +1 -1
- package/rulepacks/jetwc/jetwc-displayname.js +1 -1
- package/rulepacks/jetwc/jetwc-dynamic-slot-context.js +1 -1
- package/rulepacks/jetwc/jetwc-dynamic-slots-naming.js +1 -1
- package/rulepacks/jetwc/jetwc-event-displayname.js +1 -1
- package/rulepacks/jetwc/jetwc-events.js +1 -1
- package/rulepacks/jetwc/jetwc-exchange-images.js +1 -1
- package/rulepacks/jetwc/jetwc-jet-version.js +1 -1
- package/rulepacks/jetwc/jetwc-loader-file.js +1 -1
- package/rulepacks/jetwc/jetwc-markdown-link.js +1 -1
- package/rulepacks/jetwc/jetwc-method-displayname.js +1 -1
- package/rulepacks/jetwc/jetwc-methods.js +1 -1
- package/rulepacks/jetwc/jetwc-namespace.js +1 -1
- package/rulepacks/jetwc/jetwc-nested-defaults.js +1 -1
- package/rulepacks/jetwc/jetwc-nls-languages.js +1 -1
- package/rulepacks/jetwc/jetwc-nls-root.js +1 -1
- package/rulepacks/jetwc/jetwc-oj-register.js +1 -1
- package/rulepacks/jetwc/jetwc-ojcss.js +1 -1
- package/rulepacks/jetwc/jetwc-pack-children.js +1 -1
- package/rulepacks/jetwc/jetwc-packable-components.js +1 -1
- package/rulepacks/jetwc/jetwc-prerelease-dependencies.js +1 -1
- package/rulepacks/jetwc/jetwc-prerelease-pattern.js +1 -1
- package/rulepacks/jetwc/jetwc-prerelease-version.js +1 -1
- package/rulepacks/jetwc/jetwc-property-changed.js +1 -1
- package/rulepacks/jetwc/jetwc-property-displayname.js +1 -1
- package/rulepacks/jetwc/jetwc-property-nesting.js +1 -1
- package/rulepacks/jetwc/jetwc-property-translatable.js +1 -1
- package/rulepacks/jetwc/jetwc-public-modules.js +1 -1
- package/rulepacks/jetwc/jetwc-reference-npm-path.js +1 -1
- package/rulepacks/jetwc/jetwc-register-css.js +1 -1
- package/rulepacks/jetwc/jetwc-register-with-promises.js +1 -1
- package/rulepacks/jetwc/jetwc-require-paths.js +1 -1
- package/rulepacks/jetwc/jetwc-required-subproperty.js +1 -1
- package/rulepacks/jetwc/jetwc-reserved-property.js +1 -1
- package/rulepacks/jetwc/jetwc-schema.js +1 -1
- package/rulepacks/jetwc/jetwc-semantic-version.js +1 -1
- package/rulepacks/jetwc/jetwc-slot-displayname.js +1 -1
- package/rulepacks/jetwc/jetwc-slots.js +1 -1
- package/rulepacks/jetwc/jetwc-standard-files.js +1 -1
- package/rulepacks/jetwc/jetwc-status-since.js +1 -1
- package/rulepacks/jetwc/jetwc-subproperty-writeback.js +1 -1
- package/rulepacks/jetwc/jetwc-supproperty-propagation.js +1 -1
- package/rulepacks/jetwc/jetwc-template-slots.js +1 -1
- package/rulepacks/jetwc/jetwc-unused-events.js +1 -1
- package/rulepacks/jetwc/jetwc-unused-slots.js +1 -1
- package/rulepacks/jetwc/jetwc-use-public-apis.js +1 -1
- package/rulepacks/jetwc/jetwc-vb-category.js +1 -1
- package/rulepacks/jetwc/jetwc-vb-icon.js +1 -1
- package/rulepacks/jetwc/jetwc-vcomponent-jetversion.js +1 -1
- package/rulepacks/jetwc/jetwc-vcomponent-loader.js +1 -1
- package/rulepacks/jetwc/jetwc-vcomponent-version.js +1 -1
- package/rulepacks/jetwc/jetwc-version-openrange.js +1 -1
- package/rulepacks/jetwc/jetwc-well-formed-description.js +1 -1
- package/rulepacks/jetwc/jetwc-writeback-required.js +1 -1
- package/rulepacks/jetwc/msgid.json +1 -1
- package/rulepacks/jetwc/rules.json +2 -2
- package/rulepacks/jetwc-lib/jetwcutils-auditComponentCacheManager.js +1 -1
- package/rulepacks/jetwc-lib/jetwcutils-commonListenerImpls.js +1 -1
- package/rulepacks/jetwc-lib/jetwcutils-componentAuditUtils.js +1 -1
- package/rulepacks/jetwc-lib/jetwcutils-componentFinder.js +2 -2
- package/rulepacks/jetwc-lib/jetwcutils-tsxUtils.js +2 -2
- package/rulepacks/jetwco/jetwco-bootstrap.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-auditConstraints.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-componentType.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-dependencies.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-dynamicSlots.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-eventBubbles.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-eventCancelable.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-eventPayload.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-events.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-helpers.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-jetVer.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-methodParamTypes.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-methodParams.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-methodReturnType.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-methods.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-packBundle.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-packBundleContent.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-packContent.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-properties.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-propertyDefault.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-propertyEnumeration.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-propertyReadOnly.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-propertyRequired.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-propertyType.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-propertyWriteback.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-publicModules.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-slotDataVariable.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-slotDataVariableType.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-slots.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-styleClasses.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-styleVariables.js +1 -1
- package/rulepacks/jetwco/jetwco-cacc-typeMappingOverrides.js +1 -1
- package/rulepacks/jetwco/jetwco-compjson-ns-reg.js +1 -1
- package/rulepacks/jetwco/jetwco-component-api-baseline-changes.js +1 -1
- package/rulepacks/jetwco/jetwco-component-api-changes.js +1 -1
- package/rulepacks/jetwco/jetwco-component-api-controlled-changes.js +1 -1
- package/rulepacks/jetwco/jetwco-component-cdn.js +1 -1
- package/rulepacks/jetwco/jetwco-description-standards.js +1 -1
- package/rulepacks/jetwco/jetwco-displayname-standards.js +1 -1
- package/rulepacks/jetwco/jetwco-exchange-version-check.js +1 -1
- package/rulepacks/jetwco/jetwco-license-info.js +1 -1
- package/rulepacks/jetwco/jetwco-prerelease-cdn.js +1 -1
- package/rulepacks/jetwco/jetwco-thirdparty-ba.js +1 -1
- package/rulepacks/jetwco/jetwco-validate-applied-audits.js +1 -1
- package/rulepacks/jetwco/msgid.json +1 -1
- package/rulepacks/jetwco/rules.json +1 -1
- package/rulepacks/ojc/msgid.json +1 -1
- package/rulepacks/ojc/ojc-acc-avatar-aria-role.js +1 -1
- package/rulepacks/ojc/ojc-acc-filepicker-aria-role.js +1 -1
- package/rulepacks/ojc/ojc-html-button-defslot.js +1 -1
- package/rulepacks/ojc/ojc-tsx-button-defslot.js +1 -1
- package/rulepacks/ojc/rules.json +1 -1
- package/rulepacks/spoc/msgid.json +1 -1
- package/rulepacks/spoc/rules.json +1 -1
- package/rulepacks/spoc/spoc-dom-manip-inv-tag.js +1 -1
- package/rulepacks/spoc/spoc-dom-manip-tag-pos.js +1 -1
- package/rulepacks/spoc/spoc-dom-manip.js +1 -1
- package/rulepacks/vdom/msgid.json +1 -1
- package/rulepacks/vdom/rules.json +1 -1
- package/rulepacks/wdt/msgid.json +1 -1
- package/rulepacks/wdt/rules.json +1 -1
- package/rulepacks/wdt/wd-driver-sleep.js +1 -1
- package/rulepacks/wdt/wd-xpath.js +1 -1
- package/rules/jaf/jaf-css-diagnose.js +1 -1
- package/rules/jaf/jaf-html-diagnose.js +1 -1
- package/rules/jaf/jaf-init-schema.js +1 -1
- package/rules/jaf/jaf-js-diagnose.js +1 -1
- package/rules/jaf/jaf-sys-age.js +1 -1
- package/rules/jaf/jaf-sys-dup-component.js +1 -1
- package/rules/jaf/jaf-sys-rule-disable.js +1 -1
- package/rules/jaf/jaf-sys-rule-opt.js +1 -1
- package/rules/jaf/jaf-sys-rule-pack-disable.js +1 -1
- package/rules/jaf/jaf-ts-diagnose.js +1 -1
- package/rules/jaf/jaf-ts-loader.js +1 -1
- package/rules/jaf/jaf-ts-noparser.js +1 -1
- package/rules/jaf/jaf-ts-precompile.js +1 -1
- package/rules/jaf/jaf-ts-walk.js +1 -1
- package/rules/jaf/msgid.json +1 -1
- package/rules/jaf/rules.json +1 -1
- package/rules/jet/helpers/acc-aria-label.js +1 -1
- package/rules/jet/helpers/bp-checkPropType.js +1 -1
- package/rules/jet/helpers/cssHelper.js +1 -1
- package/rules/jet/helpers/extractStylesFromClass.js +1 -1
- package/rules/jet/helpers/has-attrib-value.js +1 -1
- package/rules/jet/helpers/has-slot-name.js +1 -1
- package/rules/jet/helpers/has-slot.js +1 -1
- package/rules/jet/helpers/json-prop-pos.js +1 -1
- package/rules/jet/helpers/json-propname-pos.js +1 -1
- package/rules/jet/helpers/style-selector.js +1 -1
- package/rules/jet/helpers/tsx/has-prop-value.js +1 -1
- package/rules/jet/helpers/tsx/has-slot-name.js +1 -1
- package/rules/jet/helpers/valid-attr.js +1 -1
- package/rules/jet/helpers/vartrack.js +1 -1
- package/rules/jet/jet-css-ojselector.js +1 -1
- package/rules/jet/msgid.json +2 -2
- package/rules/jet/oj-acc-aria-accessible.js +1 -1
- package/rules/jet/oj-acc-aria-labelledby.js +1 -1
- package/rules/jet/oj-acc-aria-ojselector-labelledby.js +1 -1
- package/rules/jet/oj-acc-aria-prop.js +1 -1
- package/rules/jet/oj-acc-avatar-aria-role.js +1 -1
- package/rules/jet/oj-acc-button-label.js +1 -1
- package/rules/jet/oj-acc-button-onclick.js +1 -1
- package/rules/jet/oj-acc-combobox-aria-label.js +1 -1
- package/rules/jet/oj-acc-film-strip-aria-label.js +1 -1
- package/rules/jet/oj-acc-input-aria-label.js +1 -1
- package/rules/jet/oj-acc-navigable-link.js +1 -1
- package/rules/jet/oj-acc-select-aria-label.js +1 -1
- package/rules/jet/oj-cca-compjson-bp-ar.js +1 -1
- package/rules/jet/oj-cca-compjson-bp-dsplyname.js +1 -1
- package/rules/jet/oj-cca-compjson-bp-jetver.js +1 -1
- package/rules/jet/oj-cca-compjson-bp-obj.js +1 -1
- package/rules/jet/oj-cca-compjson-ns-reg.js +1 -1
- package/rules/jet/oj-cca-compjson-prop-conflict.js +1 -1
- package/rules/jet/oj-css-bp-border-color.js +1 -1
- package/rules/jet/oj-css-bp-dir-flow.js +1 -1
- package/rules/jet/oj-css-bp-float.js +1 -1
- package/rules/jet/oj-css-bp-textalign.js +1 -1
- package/rules/jet/oj-css-bp-zindex.js +1 -1
- package/rules/jet/oj-css-style-abs-units.js +1 -1
- package/rules/jet/oj-css-style-bp-color.js +1 -1
- package/rules/jet/oj-css-style-bp-display.js +1 -1
- package/rules/jet/oj-css-style-bp-font-family.js +1 -1
- package/rules/jet/oj-css-style-bp-font.js +1 -1
- package/rules/jet/oj-css-style-deprecated.js +1 -1
- package/rules/jet/oj-css-style-override.js +1 -1
- package/rules/jet/oj-css-var-override.js +1 -1
- package/rules/jet/oj-form-maxcols.js +1 -1
- package/rules/jet/oj-html-5-attr-obs.js +1 -1
- package/rules/jet/oj-html-5-tag-obs.js +1 -1
- package/rules/jet/oj-html-alta-deprecated.js +1 -1
- package/rules/jet/oj-html-attr-$unique.js +1 -1
- package/rules/jet/oj-html-attr-2def.js +1 -1
- package/rules/jet/oj-html-attr-expr-delims.js +1 -1
- package/rules/jet/oj-html-attr-expr-writeback.js +1 -1
- package/rules/jet/oj-html-attr-json.js +1 -1
- package/rules/jet/oj-html-attr-prefix-expr.js +1 -1
- package/rules/jet/oj-html-attr-prefix-ro.js +1 -1
- package/rules/jet/oj-html-attr-req.js +1 -1
- package/rules/jet/oj-html-badge-maintenance.js +1 -1
- package/rules/jet/oj-html-bindforeach-data.js +1 -1
- package/rules/jet/oj-html-bindif-test.js +1 -1
- package/rules/jet/oj-html-binding-as-slot-child.js +1 -1
- package/rules/jet/oj-html-binding-attr.js +1 -1
- package/rules/jet/oj-html-bp-button-xs-chroming.js +1 -1
- package/rules/jet/oj-html-bp-title-to-tooltip.js +1 -1
- package/rules/jet/oj-html-btn-display-icon.js +1 -1
- package/rules/jet/oj-html-button-size-chroming.js +1 -1
- package/rules/jet/oj-html-cca-count.js +1 -1
- package/rules/jet/oj-html-cca-tagname.js +1 -1
- package/rules/jet/oj-html-cdn.js +1 -1
- package/rules/jet/oj-html-corequired.js +1 -1
- package/rules/jet/oj-html-databind-all.js +1 -1
- package/rules/jet/oj-html-dlg-title.js +1 -1
- package/rules/jet/oj-html-event-focus-blur.js +1 -1
- package/rules/jet/oj-html-file-pick-accept.js +1 -1
- package/rules/jet/oj-html-form-bindif.js +1 -1
- package/rules/jet/oj-html-form-layout-colspan-wrap.js +1 -1
- package/rules/jet/oj-html-form-layout-maxcols.js +1 -1
- package/rules/jet/oj-html-form-noflex.js +1 -1
- package/rules/jet/oj-html-input-isodate.js +1 -1
- package/rules/jet/oj-html-invalid-doctype.js +1 -1
- package/rules/jet/oj-html-jq-databind.js +1 -1
- package/rules/jet/oj-html-ko-comment.js +1 -1
- package/rules/jet/oj-html-ko-databind.js +1 -1
- package/rules/jet/oj-html-label-for-prefix.js +1 -1
- package/rules/jet/oj-html-missing-doctype.js +1 -1
- package/rules/jet/oj-html-msgs-cat-text.js +1 -1
- package/rules/jet/oj-html-nav-tab-nointeractive.js +1 -1
- package/rules/jet/oj-html-no-style-tag.js +1 -1
- package/rules/jet/oj-html-no-style.js +1 -1
- package/rules/jet/oj-html-notag-style.js +1 -1
- package/rules/jet/oj-html-oj-lib.js +1 -1
- package/rules/jet/oj-html-oj-ux-ico-slot.js +1 -1
- package/rules/jet/oj-html-ojattr-deprecated.js +1 -1
- package/rules/jet/oj-html-ojattr-enum-deprecated.js +1 -1
- package/rules/jet/oj-html-ojattr-evt-syntax.js +1 -1
- package/rules/jet/oj-html-ojattr-value.js +1 -1
- package/rules/jet/oj-html-ojattr.js +1 -1
- package/rules/jet/oj-html-ojevent.js +1 -1
- package/rules/jet/oj-html-ojoption-text.js +2 -2
- package/rules/jet/oj-html-ojslot.js +1 -1
- package/rules/jet/oj-html-ojstyle.js +1 -1
- package/rules/jet/oj-html-ojtag-datacmd.js +1 -1
- package/rules/jet/oj-html-ojtag-datactx.js +1 -1
- package/rules/jet/oj-html-ojtag-deprecated.js +1 -1
- package/rules/jet/oj-html-ojtag-globattr-noprefix.js +1 -1
- package/rules/jet/oj-html-ojtag-id.js +1 -1
- package/rules/jet/oj-html-ojtag-nonglobattr-prefix.js +1 -1
- package/rules/jet/oj-html-ojtag-ns.js +1 -1
- package/rules/jet/oj-html-pageopts-type.js +1 -1
- package/rules/jet/oj-html-picker-attrs.js +1 -1
- package/rules/jet/oj-html-prop-anti-pattern.js +1 -1
- package/rules/jet/oj-html-public-api.js +1 -1
- package/rules/jet/oj-html-rating-gauge-size.js +1 -1
- package/rules/jet/oj-html-rating-gauge-track-resize.js +1 -1
- package/rules/jet/oj-html-redwood-bp-btn-avatar.js +1 -1
- package/rules/jet/oj-html-redwood-bp-endslot.js +1 -1
- package/rules/jet/oj-html-redwood-clear-icon.js +1 -1
- package/rules/jet/oj-html-redwood-cssnovars.js +1 -1
- package/rules/jet/oj-html-redwood-cssvars.js +1 -1
- package/rules/jet/oj-html-redwood-ojoption-disabled.js +1 -1
- package/rules/jet/oj-html-self-close.js +1 -1
- package/rules/jet/oj-html-slot-default.js +1 -1
- package/rules/jet/oj-html-slot-deprecated.js +1 -1
- package/rules/jet/oj-html-slot-item-minmax.js +1 -1
- package/rules/jet/oj-html-slot-name.js +1 -1
- package/rules/jet/oj-html-slot-pref-content.js +1 -1
- package/rules/jet/oj-html-style-abs-units.js +1 -1
- package/rules/jet/oj-html-style-bp-color.js +1 -1
- package/rules/jet/oj-html-style-bp-display.js +1 -1
- package/rules/jet/oj-html-style-bp-font-family.js +1 -1
- package/rules/jet/oj-html-style-bp-font.js +1 -1
- package/rules/jet/oj-html-style-bp-margin-padding.js +1 -1
- package/rules/jet/oj-html-style-deprecated.js +1 -1
- package/rules/jet/oj-html-style.js +1 -1
- package/rules/jet/oj-html-stylesel.js +1 -1
- package/rules/jet/oj-html-tabbar-edge.js +1 -1
- package/rules/jet/oj-html-tabbar-progressive-popup.js +1 -1
- package/rules/jet/oj-html-tag-attr-noprefix.js +1 -1
- package/rules/jet/oj-html-template-index.js +1 -1
- package/rules/jet/oj-html-treeview-actionable-content.js +1 -1
- package/rules/jet/oj-html-unsup-theme.js +1 -1
- package/rules/jet/oj-html-wctag-$props.js +1 -1
- package/rules/jet/oj-html-wctag-anti-pattern.js +1 -1
- package/rules/jet/oj-html-wctag-arialabelledby.js +1 -1
- package/rules/jet/oj-html-wctag-for.js +1 -1
- package/rules/jet/oj-html-wctag-id.js +1 -1
- package/rules/jet/oj-html-wctag-maintenance.js +1 -1
- package/rules/jet/oj-html-wctag-nested.js +1 -1
- package/rules/jet/oj-html-wctag-packprivate.js +1 -1
- package/rules/jet/oj-html-wctag-supersedes.js +1 -1
- package/rules/jet/oj-js-comp-attr-deprecated.js +1 -1
- package/rules/jet/oj-js-comp-meth-deprecated.js +1 -1
- package/rules/jet/oj-js-no-ext-final.js +1 -1
- package/rules/jet/oj-js-noconsole.js +1 -1
- package/rules/jet/oj-js-numconv-pattern.js +1 -1
- package/rules/jet/oj-js-ojcomp-deprecated.js +1 -1
- package/rules/jet/oj-js-ojcomp-exist.js +1 -1
- package/rules/jet/oj-js-ojcomp-new.js +1 -1
- package/rules/jet/oj-js-poly-promise.js +1 -1
- package/rules/jet/oj-js-public-api.js +1 -1
- package/rules/jet/oj-js-var-undef.js +1 -1
- package/rules/jet/oj-json-syntax.js +1 -1
- package/rules/jet/oj-ts-comp-attr-deprecated.js +1 -1
- package/rules/jet/oj-ts-comp-meth-deprecated.js +1 -1
- package/rules/jet/oj-ts-no-ext-final.js +1 -1
- package/rules/jet/oj-ts-noconsole.js +1 -1
- package/rules/jet/oj-ts-numconv-pattern.js +1 -1
- package/rules/jet/oj-ts-ojcomp-deprecated.js +1 -1
- package/rules/jet/oj-ts-ojcomp-exist.js +1 -1
- package/rules/jet/oj-ts-ojcomp-new.js +1 -1
- package/rules/jet/oj-ts-poly-promise.js +1 -1
- package/rules/jet/oj-tsx-5-tag-obs.js +1 -1
- package/rules/jet/oj-tsx-acc-aria-accessible.js +1 -1
- package/rules/jet/oj-tsx-acc-avatar-aria-role.js +1 -1
- package/rules/jet/oj-tsx-acc-button-label.js +1 -1
- package/rules/jet/oj-tsx-acc-button-onclick.js +1 -1
- package/rules/jet/oj-tsx-acc-navigable-link.js +1 -1
- package/rules/jet/oj-tsx-aria-ojselector-labelledby.js +1 -1
- package/rules/jet/oj-tsx-aria-prop.js +1 -1
- package/rules/jet/oj-tsx-attr-req.js +1 -1
- package/rules/jet/oj-tsx-bp-button-xs-chroming.js +1 -1
- package/rules/jet/oj-tsx-bp-title-to-tooltip.js +1 -1
- package/rules/jet/oj-tsx-button-size-chroming.js +1 -1
- package/rules/jet/oj-tsx-cca-tagname.js +1 -1
- package/rules/jet/oj-tsx-corequired.js +1 -1
- package/rules/jet/oj-tsx-databind-all.js +1 -1
- package/rules/jet/oj-tsx-dlg-title.js +1 -1
- package/rules/jet/oj-tsx-event.js +1 -1
- package/rules/jet/oj-tsx-form-bindif.js +1 -1
- package/rules/jet/oj-tsx-form-layout-colspan-wrap.js +1 -1
- package/rules/jet/oj-tsx-form-noflex.js +1 -1
- package/rules/jet/oj-tsx-input-isodate.js +1 -1
- package/rules/jet/oj-tsx-ojattr-deprecated.js +1 -1
- package/rules/jet/oj-tsx-ojattr-enum-deprecated.js +1 -1
- package/rules/jet/oj-tsx-ojattr-value.js +1 -1
- package/rules/jet/oj-tsx-ojattr.js +1 -1
- package/rules/jet/oj-tsx-ojoption-text.js +1 -1
- package/rules/jet/oj-tsx-ojtag-datacmd.js +1 -1
- package/rules/jet/oj-tsx-ojtag-deprecated.js +1 -1
- package/rules/jet/oj-tsx-ojtag-ns.js +1 -1
- package/rules/jet/oj-tsx-pageopts-type.js +1 -1
- package/rules/jet/oj-tsx-picker-attrs.js +1 -1
- package/rules/jet/oj-tsx-popup-sibling.js +1 -1
- package/rules/jet/oj-tsx-prop-anti-pattern.js +1 -1
- package/rules/jet/oj-tsx-prop-inline-definition.js +1 -1
- package/rules/jet/oj-tsx-prop-ko-binding.js +1 -1
- package/rules/jet/oj-tsx-rating-gauge-size.js +1 -1
- package/rules/jet/oj-tsx-rating-gauge-track-resize.js +1 -1
- package/rules/jet/oj-tsx-redwood-bp-btn-avatar.js +1 -1
- package/rules/jet/oj-tsx-redwood-clear-icon.js +1 -1
- package/rules/jet/oj-tsx-slot-default.js +1 -1
- package/rules/jet/oj-tsx-slot-deprecated.js +1 -1
- package/rules/jet/oj-tsx-slot-item-minmax.js +1 -1
- package/rules/jet/oj-tsx-slot-pref-content.js +1 -1
- package/rules/jet/oj-tsx-style-abs-units.js +1 -1
- package/rules/jet/oj-tsx-style-bp-margin-padding.js +1 -1
- package/rules/jet/oj-tsx-tabbar-edge.js +1 -1
- package/rules/jet/oj-tsx-tabbar-progressive-popup.js +1 -1
- package/rules/jet/oj-tsx-treeview-actionable-content.js +1 -1
- package/rules/jet/oj-tsx-unsup-theme.js +1 -1
- package/rules/jet/oj-tsx-wctag-anti-pattern.js +1 -1
- package/rules/jet/oj-tsx-wctag-maintenance.js +1 -1
- package/rules/jet/oj-tsx-wctag-nested.js +1 -1
- package/rules/jet/oj-tsx-wctag-packprivate.js +1 -1
- package/rules/jet/rules.json +2 -2
- package/src/JafCore.js +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2026, Oracle and/or its affiliates.
|
|
3
3
|
* Licensed under The Universal Permissive License (UPL), Version 1.0
|
|
4
4
|
* as shown at https://oss.oracle.com/licenses/upl/
|
|
5
5
|
*/
|
|
6
|
-
{"title":"Extended Audit Rules for JET Custom Component Authors","prefix":"JETWC","version":"1.31.
|
|
6
|
+
{"title":"Extended Audit Rules for JET Custom Component Authors","prefix":"JETWC","version":"1.31.1","rules":{"jetwc-bootstrap":{"group":"jetwc-do-not-disable","enabled":true,"severity":"info","$required":true,"filetype":["tsx","css","html","js","json","md","ts"],"amd":false,"customOpts":{"debug":false,"diagnosticFile":"jetwc-diagnostics","auditBuildOutput":false,"testMode":false}},"jetwc-component-foldername":{"group":"jetwc-structure","severity":"blocker","filetype":["json","tsx"],"amd":false},"jetwc-component-location":{"group":"jetwc-structure","severity":"blocker","filetype":["json","tsx"],"amd":false},"jetwc-pack-children":{"group":"jetwc-dependencies","severity":"blocker","filetype":["json"],"amd":false},"jetwc-packable-components":{"group":"jetwc-structure","severity":"blocker","filetype":["json"],"amd":false},"jetwc-component-dependencies":{"group":"jetwc-dependencies","severity":"blocker","filetype":["json","tsx"],"amd":false},"jetwc-prerelease-version":{"group":"jetwc-pre-release","severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-prerelease-dependencies":{"group":"jetwc-pre-release","severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-namespace":{"group":"jetwc-api","enabled":false,"severity":"blocker","filetype":["json","tsx"],"amd":false,"customOpts":{"namespaces":[]}},"jetwc-vb-category":{"group":"jetwc-vb","enabled":false,"severity":"minor","filetype":["json","tsx"],"amd":false,"customOpts":{"categories":[]}},"jetwc-jet-version":{"group":"jetwc-pre-release","enabled":false,"severity":"blocker","filetype":["json","tsx"],"amd":false,"customOpts":{"versionMatch":"upperLimit"}},"jetwc-absolute-jetversion":{"group":"jetwc-dependencies","enabled":true,"severity":"minor","filetype":["json","tsx"],"amd":false},"jetwc-semantic-version":{"group":"jetwc-dependencies","severity":"blocker","filetype":["json","tsx"],"amd":false},"jetwc-standard-files":{"group":"jetwc-structure","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false,"customOpts":{"files":["README.md","CHANGELOG.md"]}},"jetwc-loader-file":{"group":["jetwc-structure","jet-js"],"enabled":true,"severity":"critical","filetype":["json","js","ts","tsx"],"amd":false},"jetwc-version-openrange":{"group":"jetwc-dependencies","severity":"major","filetype":["json","tsx"],"amd":false},"jetwc-displayname":{"group":"jetwc-vb","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false,"customOpts":{"limits":{"component":{"length":30,"words":4},"property":{"length":30,"words":4},"event":{"length":30,"words":4},"slot":{"length":30,"words":4},"template":{"length":40,"words":8}}}},"jetwc-nls-root":{"group":"jetwc-nls","enabled":true,"severity":"info","filetype":["js","ts","tsx"],"amd":false},"jetwc-require-paths":{"group":"jetwc-dependencies","enabled":true,"severity":"blocker","filetype":["js","ts","tsx"],"amd":false,"customOpts":{"standardPaths":["require","exports","ojs","oj-c","knockout","hammerjs","persist","jquery","vb","preact","@opentelemetry"]}},"jetwc-vb-icon":{"group":"jetwc-vb","enabled":true,"severity":"major","filetype":["json","tsx"],"amd":false},"jetwc-template-slots":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["html","tsx"],"amd":false},"jetwc-slots":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["html","tsx"],"amd":false},"jetwc-events":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["js","ts","tsx"],"amd":false},"jetwc-property-nesting":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json","tsx"],"amd":false,"customOpts":{"depth":3}},"jetwc-nls-languages":{"group":"jetwc-nls","enabled":false,"severity":"major","filetype":["js","ts"],"amd":false,"customOpts":{"locales":[],"strict":false}},"jetwc-event-displayname":{"group":"jetwc-vb","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-nested-defaults":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["json","tsx"],"amd":false},"jetwc-methods":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["js","ts"],"amd":false},"jetwc-property-changed":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["js","ts"],"amd":false},"jetwc-writeback-required":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["js","ts"],"amd":false},"jetwc-oj-register":{"group":"jetwc-deprecations","enabled":true,"severity":"minor","filetype":["js","ts"],"amd":false},"jetwc-register-with-promises":{"group":"jetwc-deprecations","enabled":true,"severity":"minor","filetype":["js","ts"],"amd":false},"jetwc-register-css":{"group":"jetwc-deprecations","enabled":true,"severity":"minor","filetype":["js","ts"],"amd":false},"jetwc-deprecated-lifecycle":{"group":"jetwc-deprecations","enabled":true,"severity":"major","filetype":["js","ts"],"amd":false},"jetwc-aria-redefinition":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json","tsx"],"amd":false},"jetwc-public-modules":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["json"],"amd":false},"jetwc-disabled-property":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json"],"amd":false},"jetwc-reserved-property":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["json","tsx"],"amd":false,"customOpts":{"reserved":["slot","key","ref","children"]}},"jetwc-prerelease-pattern":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json","tsx"],"amd":false},"jetwc-ojcss":{"group":"jetwc-theming","enabled":true,"severity":"minor","filetype":["js","ts","tsx"],"amd":false},"jetwc-dynamic-slot-context":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["json"],"amd":false},"jetwc-dynamic-slots-naming":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json"],"amd":false},"jetwc-unused-slots":{"group":"jetwc-api","enabled":true,"severity":"info","filetype":["html"],"amd":false},"jetwc-unused-events":{"group":"jetwc-api","enabled":true,"severity":"info","filetype":["js","ts"],"amd":false},"jetwc-compjson-bp-obj":{"group":"jetwc-api","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-compjson-bp-ar":{"group":"jetwc-api","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-component-displayname":{"group":"jetwc-vb","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-method-displayname":{"group":"jetwc-vb","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-property-displayname":{"group":"jetwc-vb","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-slot-displayname":{"group":"jetwc-vb","enabled":true,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-data-property-prefix":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json","tsx"],"amd":false},"jetwc-schema":{"group":"jetwc-api","enabled":true,"severity":"blocker","filetype":["json","tsx"],"amd":false,"customOpts":{"ignoreAdditionalProperties":false}},"jetwc-component-type":{"group":"jetwc-api","enabled":true,"severity":"info","filetype":["json"],"amd":false},"jetwc-subproperty-writeback":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["html"],"amd":false},"jetwc-required-subproperty":{"group":"jetwc-api","enabled":true,"severity":"minor","filetype":["json"],"amd":false},"jetwc-vcomponent-jetversion":{"group":"jetwc-dependencies","enabled":true,"severity":"blocker","filetype":["tsx"],"amd":false},"jetwc-vcomponent-version":{"group":"jetwc-dependencies","enabled":true,"severity":"blocker","filetype":["tsx"],"amd":false},"jetwc-vcomponent-loader":{"group":"jetwc-structure","enabled":true,"severity":"blocker","filetype":["ts"],"amd":false},"jetwc-markdown-link":{"group":"jetwc-doc","enabled":true,"severity":"minor","filetype":["md"],"amd":false},"jetwc-css-oj-complete":{"group":"jetwc-css","enabled":true,"severity":"major","filetype":["css"],"amd":false},"jetwc-supproperty-propagation":{"group":"jetwc-api","enabled":true,"severity":"major","filetype":["html"],"amd":false},"jetwc-css-scoping":{"group":"jetwc-css","enabled":true,"severity":"blocker","filetype":["css"],"amd":false,"customOpts":{"allowPackScoping":true}},"jetwc-exchange-images":{"group":"jetwc-structure","enabled":true,"severity":"major","filetype":["json","tsx"],"amd":false},"jetwc-property-translatable":{"group":"jetwc-vb","enabled":false,"severity":"minor","filetype":["json","tsx"],"amd":false,"customOpts":{"translatableProperties":[],"expressionMatch":false}},"jetwc-status-since":{"group":"jetwc-api","enabled":true,"severity":"blocker","filetype":["json","tsx"],"amd":false},"jetwc-reference-npm-path":{"group":"jetwc-structure","enabled":true,"severity":"major","filetype":["json"],"amd":false},"jetwc-css-pack-load-path":{"group":"jetwc-dependencies","enabled":true,"severity":"blocker","filetype":["js","ts","tsx"],"amd":false},"jetwc-well-formed-description":{"group":"jetwc-api","enabled":false,"severity":"info","filetype":["json","tsx"],"amd":false},"jetwc-use-public-apis":{"group":"jetwc-api","enabled":true,"severity":"blocker","filetype":["html","tsx","ts","js"],"amd":false,"customOpts":{"allowUIComponentExports":false}}}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2026, Oracle and/or its affiliates.
|
|
3
3
|
* Licensed under The Universal Permissive License (UPL), Version 1.0
|
|
4
4
|
* as shown at https://oss.oracle.com/licenses/upl/
|
|
5
5
|
*/
|
|
6
|
-
const path=require("path");const Utils=require("./jetwcutils-componentAuditUtils");const tsxUtils=require("./jetwcutils-tsxUtils");const ComponentFinder=function(){this.runOnce=false};ComponentFinder.prototype.findAllComponents=function(auditContext,auditBase,projectPathInfo,componentRoots){const msg=auditContext.utils.msgLib;const metadataPatches=this._readPatchFile(auditContext,auditBase);let masterComponentList=[];if(!this.runOnce||auditContext.rulePack.getRuleCustomOption("testMode")){if(projectPathInfo.exchangeCacheFolder){
|
|
6
|
+
const path=require("path");const Utils=require("./jetwcutils-componentAuditUtils");const tsxUtils=require("./jetwcutils-tsxUtils");const ComponentFinder=function(){this.runOnce=false};ComponentFinder.prototype.findAllComponents=function(auditContext,auditBase,projectPathInfo,componentRoots){const msg=auditContext.utils.msgLib;const metadataPatches=this._readPatchFile(auditContext,auditBase);let masterComponentList=[];let absoluteCacheLocation;if(!this.runOnce||auditContext.rulePack.getRuleCustomOption("testMode")){if(projectPathInfo.exchangeCacheFolder){absoluteCacheLocation=path.join(projectPathInfo.base,projectPathInfo.exchangeCacheFolder);masterComponentList=masterComponentList.concat(this._discoverComponentsFromRoot(absoluteCacheLocation,false,false,auditContext,null,metadataPatches))}if(componentRoots&&componentRoots.length>0){componentRoots.forEach(root=>{let target=root;if(auditContext.utils.fsUtils.getFileTypeSync(target)==="f"){target=path.dirname(root);msg.msg(`Warning: Incorrectly defined "components" array entry in JAF configuration file. Entries should list folders only not explicit file names.\n Bad entry: "${root}"\nAudit will process the "${target}" folder instead.\n`)}if(absoluteCacheLocation){if(root!=absoluteCacheLocation){masterComponentList=masterComponentList.concat(this._discoverComponentsFromRoot(target,true,projectPathInfo.isBuiltOutput,auditContext,null,metadataPatches))}}else{masterComponentList=masterComponentList.concat(this._discoverComponentsFromRoot(target,true,projectPathInfo.isBuiltOutput,auditContext,null,metadataPatches))}})}else{if(projectPathInfo.componentRootFolder){masterComponentList=masterComponentList.concat(this._discoverComponentsFromRoot(path.join(projectPathInfo.base,projectPathInfo.jsSource,projectPathInfo.componentRootFolder),true,projectPathInfo.isBuiltOutput,auditContext,null,metadataPatches));if(projectPathInfo.tsSource&&projectPathInfo.tsSource!==projectPathInfo.jsSource){masterComponentList=masterComponentList.concat(this._discoverComponentsFromRoot(path.join(projectPathInfo.base,projectPathInfo.tsSource,projectPathInfo.componentRootFolder),true,false,auditContext,null,metadataPatches))}}}this.runOnce=true;this.masterComponentList=masterComponentList}return this.masterComponentList};ComponentFinder.prototype._discoverComponentsFromRoot=function(rootDir,isLocal,builtOutput,auditContext,parentPack,metadataPatches){const msg=auditContext.utils.msgLib;let componentArray=[];if(auditContext.utils.fsUtils.pathExistsSync(rootDir)){const compFileStructure=auditContext.utils.fsUtils.readDir(rootDir);compFileStructure.forEach(l1file=>{let componentInfo;if(!l1file.isFile&&l1file.files.length>0){l1file.files.forEach(l2file=>{if(!builtOutput){if(l2file.isFile&&l2file.name==="component.json"){componentInfo=Utils.extractComponentInfoFromJSONFile(auditContext,path.join(rootDir,l1file.name),"component.json",isLocal,false);componentArray.push(componentInfo);if(componentInfo?.type==="pack"||componentInfo?.type==="mono-pack"){const packMembers=this._discoverComponentsFromRoot(Utils.toJAFPath(path.join(rootDir,l1file.name)),isLocal,false,auditContext,componentInfo.name,metadataPatches);componentArray=componentArray.concat(packMembers)}}else if(l2file.isFile&&path.extname(l2file.name)===".tsx"){componentInfo=tsxUtils.extractComponentInfoFromTSXFile(auditContext,path.join(rootDir,l1file.name),l2file.name,metadataPatches);if(componentInfo){componentArray.push(componentInfo)}}}else{if(!l2file.isFile&&l2file.files.length>0){l2file.files.forEach(l3file=>{if(l3file.isFile&&l3file.name==="component.json"){componentInfo=Utils.extractComponentInfoFromJSONFile(auditContext,path.join(rootDir,l1file.name,l2file.name),"component.json",isLocal,false);if(!componentInfo.pack){componentArray.push(componentInfo);if(componentInfo?.type==="pack"||componentInfo?.type==="mono-pack"){const packMembers=this._discoverComponentsFromRoot(Utils.toJAFPath(path.join(rootDir,l1file.name,l2file.name)),isLocal,false,auditContext,componentInfo.name,metadataPatches);componentArray=componentArray.concat(packMembers)}}}else if(l3file.isFile&&path.extname(l3file.name)===".tsx"){componentInfo=tsxUtils.extractComponentInfoFromTSXFile(auditContext,path.join(rootDir,l1file.name,l2file.name),l3file.name,metadataPatches);if(componentInfo){componentArray.push(componentInfo)}}})}}})}else{if(l1file.isFile&&l1file.name==="component.json"){componentInfo=Utils.extractComponentInfoFromJSONFile(auditContext,rootDir,"component.json",isLocal,false);if(componentInfo.type!=="pack"||componentInfo.name!==parentPack){componentArray.push(componentInfo)}}else if(l1file.isFile&&path.extname(l1file.name)===".tsx"){componentInfo=tsxUtils.extractComponentInfoFromTSXFile(auditContext,rootDir,l1file.name,metadataPatches);if(componentInfo){componentArray.push(componentInfo)}}}})}return componentArray};ComponentFinder.prototype._readPatchFile=function(auditContext,auditBase){const{fsUtils,msgLib}=auditContext.utils;const metadataPatchInstructionFile=auditContext.userDefs?.VComponentMetadataPatches;let actualPatchFilePath;if(metadataPatchInstructionFile){if(fsUtils.fileExistsSync(metadataPatchInstructionFile)){actualPatchFilePath=metadataPatchInstructionFile}else if(fsUtils.fileExistsSync(path.join(auditBase,metadataPatchInstructionFile))){actualPatchFilePath=path.join(auditBase,metadataPatchInstructionFile)}}if(actualPatchFilePath){return fsUtils.readJsonSync(actualPatchFilePath)}return};module.exports=new ComponentFinder;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2026, Oracle and/or its affiliates.
|
|
3
3
|
* Licensed under The Universal Permissive License (UPL), Version 1.0
|
|
4
4
|
* as shown at https://oss.oracle.com/licenses/upl/
|
|
5
5
|
*/
|
|
6
|
-
const Utils=require("./jetwcutils-componentAuditUtils");const path=require("path");const TsxUtils=function(){};TsxUtils.prototype.extractComponentInfoFromTSXFile=function(auditContext,componentFolder,fileName,metadataPatches){const{msgLib,fsUtils}=auditContext.utils;const packRegEx=/@ojmetadata[\s]*pack[\s]*[\"|'](?<pack>[a-zA-Z\-0-9]*)[\"|']/mg;const versionRegEx=/@ojmetadata[\s]*version[\s]*[\"|'](?<version>[\.0-9\-a-zA-Z]*)[\"|']/mg;const jetVersionRegEx=/@ojmetadata[\s]*jetVersion[\s]*[\"|'](?<version>[\.0-9\-a-zA-Z^~><=]*)[\"|']/mg;const tsxFile=path.join(componentFolder,fileName);const fileAsStr=auditContext.utils.fsUtils.readFileSync(tsxFile);const componentIdentification=this.getVComponentElementNameAndImpl(fileAsStr,msgLib);const fullName=componentIdentification.elementName;const className=componentIdentification.class;const componentName=this.getVComponentComponentName(fileAsStr);let precompiledInfo=auditContext.utils.metaLib.getTagMetadata(fullName);if(!precompiledInfo&&auditContext.rulePack.getRuleCustomOptions().hasOwnProperty("precompileCache")&&auditContext.rulePack.getRuleCustomOption("testMode")){msgLib.info(`Test mode, bypassing Typescript compilation...`);const jsonLoc=path.join(auditContext.rulePack.getRuleCustomOption("precompileCache"),`${fullName}.json`);if(fsUtils.fileExistsSync(jsonLoc)){precompiledInfo=fsUtils.readJsonSync(jsonLoc)}else{msgLib.error(`Missing test mode metadata for ${jsonLoc}`)}}if(precompiledInfo){if(metadataPatches){let componentPatches;if(precompiledInfo.pack){componentPatches=metadataPatches?.[precompiledInfo.pack]?.[precompiledInfo.name]}else{componentPatches=metadataPatches?.[precompiledInfo.name]}if(componentPatches&&Array.isArray(componentPatches)){msgLib.info(`Processing metadata type patches for ${fullName} [${componentPatches.length} patch(es) specified]`);componentPatches.forEach(patch=>{switch(patch.target){case"property":this._handlePropertyTypePatch(patch,precompiledInfo);break;case"method":this._handleMethodTypePatch(patch,precompiledInfo);break;case"event":this._handleEventDetailTypePatch(patch,precompiledInfo);break;case"slot":this._handleSlotDataTypePatch(patch,precompiledInfo);break}})}}const componentInfo=Utils.extractComponentInfoFromMetadata(auditContext,precompiledInfo,componentFolder,true,true);componentInfo.compiledMetadata=precompiledInfo;componentInfo.vcomponent=true;componentInfo.viewModel={resolved:true,path:Utils.toJAFPath(tsxFile)};componentInfo.viewModel.className=className;if(!componentName){componentInfo.inferredName=true}if(componentInfo.pack){const matchPack=packRegEx.exec(fileAsStr);if(!matchPack||!matchPack.groups.pack){componentInfo.inferredPack=true}}const matchVer=versionRegEx.exec(fileAsStr);if(!matchVer||!matchVer.groups.version){componentInfo.inferredVersion=true}const matchJetVer=jetVersionRegEx.exec(fileAsStr);if(!matchJetVer||!matchJetVer.groups.version){componentInfo.inferredJetVersion=true}return componentInfo}else{if(fullName){msgLib.error(`Unable to audit VComponent ${fullName}, pre-compiled metadata is not available`)}return}};TsxUtils.prototype.getVComponentElementNameAndImpl=function(sourceCode,msgLib){var resolvedElementName,implementationClass;const elementRegExForFunction=/export const\s*(?<className>\w+)[\w\s\<\>:]*=\s*registerCustomElement[\s<>,\w]*\(\s*[\"\'](?<fullName>[\w-]*)\s*[\"\']\s*,/mg;const matchElementFunction=elementRegExForFunction.exec(sourceCode);if(matchElementFunction&&matchElementFunction.groups&&matchElementFunction.groups.fullName&&matchElementFunction.groups.className){resolvedElementName=matchElementFunction.groups.fullName;implementationClass=matchElementFunction.groups.className}else{const elementRegExForClass=/\s*@customElement\s*\(\s*[\"\']\s*(?<fullName>[\w-]*)\s*[\"\']\s*\)/mg;const matchElementClass=elementRegExForClass.exec(sourceCode);if(matchElementClass&&matchElementClass.groups&&matchElementClass.groups.fullName){resolvedElementName=matchElementClass.groups.fullName}const elementRegExForClassImpl=/[\s]*export[\s]*class[\s]*(?<className>[a-zA-Z\-0-9_]*)[\s<>,\w]*extends[\s]*(?<superClass>[a-zA-Z\-0-9_]*)/mg;while((classDef=elementRegExForClassImpl.exec(sourceCode))!==null){if(classDef.groups.superClass==="Component"){implementationClass=classDef.groups.className}}}if(resolvedElementName&&!implementationClass){msgLib.error(`Unable to determine VComponent class-name for ${resolvedElementName}`)}return{elementName:resolvedElementName,class:implementationClass}};TsxUtils.prototype.getVComponentComponentName=function(sourceCode){const nameRegEx=/@ojmetadata[\s]*name [\"|'](?<componentName>[a-zA-Z\-0-9]*)[\"|']/mg;const matchElement=nameRegEx.exec(sourceCode);if(matchElement&&matchElement.groups&&matchElement.groups.componentName){return matchElement.groups.componentName}else{return}};TsxUtils.prototype.matchToVComponentImpl=function(auditContext,testFileName){let componentInfo;let fileNameCanonical=Utils.toJAFPath(testFileName);if(fileNameCanonical.endsWith(".tsx")){const componentMatch=Utils.matchComponentPath(auditContext,fileNameCanonical);if(componentMatch){const testPossibleComponentInfo=Utils.componentInfo(auditContext,componentMatch);if(testPossibleComponentInfo.viewModel&&fileNameCanonical===testPossibleComponentInfo.viewModel.path){componentInfo=testPossibleComponentInfo}}}return componentInfo};TsxUtils.prototype._handlePropertyTypePatch=function(patch,metadata){this._patchPropertyViaPath(patch,patch.locator.split("."),metadata)};TsxUtils.prototype._patchPropertyViaPath=function(patch,path,node){const contactProp=path.shift();if(node.properties?.hasOwnProperty(contactProp)){if(path.length>0){this._patchPropertyViaPath(patch,path,node.properties[contactProp])}else{const propDef=node.properties[contactProp];const existingType=propDef.type;if(this._verifyType(existingType,patch)){propDef.type=patch.patchType}}}};TsxUtils.prototype._verifyType=function(existingType,patch){let expectedTypeMatches=existingType===patch?.expectedType||!patch?.expectedType;let abortNoMatch=false;if(patch.enforceMatch){if(!expectedTypeMatches){abortNoMatch=true}}return!abortNoMatch};TsxUtils.prototype._handleMethodTypePatch=function(patch,metadata){const locatorSegs=patch.locator.split(":");const methodName=locatorSegs[0];const methodTarget=locatorSegs[1];if(metadata.methods?.hasOwnProperty(methodName)){const methodDef=metadata.methods[methodName];if(methodTarget==="return"){this._patchMethodReturnType(patch,methodDef)}else{this._patchMethodParamType(patch,methodDef,methodTarget)}}};TsxUtils.prototype._patchMethodParamType=function(patch,methodDef,parameterName){let paramDef;for(let i=0;i<methodDef.params.length;i++){if(methodDef.params[i].name===parameterName){paramDef=methodDef.params[i]}}const existingType=paramDef.type;if(this._verifyType(existingType,patch)){paramDef.type=patch.patchType}};TsxUtils.prototype._patchMethodReturnType=function(patch,methodDef){const existingType=methodDef.return;if(this._verifyType(existingType,patch)){methodDef.return=patch.patchType}};TsxUtils.prototype._handleEventDetailTypePatch=function(patch,metadata){const locatorSegs=patch.locator.split(":");const eventName=locatorSegs[0];const detailName=locatorSegs[1];if(metadata.events?.hasOwnProperty(eventName)){const eventDef=metadata.events[eventName];if(eventDef.detail?.hasOwnProperty(detailName)){const existingType=eventDef.detail[detailName].type;if(this._verifyType(existingType,patch)){eventDef.detail[detailName].type=patch.patchType}}}};TsxUtils.prototype._handleSlotDataTypePatch=function(patch,metadata){const locatorSegs=patch.locator.split(":");const slotName=locatorSegs[0];const dataName=locatorSegs[1];if(metadata.slots?.hasOwnProperty(slotName)){const slotDef=metadata.slots[slotName];if(slotDef.data?.hasOwnProperty(dataName)){const existingType=slotDef.data[dataName].type;if(this._verifyType(existingType,patch)){slotDef.data[dataName].type=patch.patchType}}}};module.exports=new TsxUtils;
|
|
6
|
+
const Utils=require("./jetwcutils-componentAuditUtils");const path=require("path");const TsxUtils=function(){};TsxUtils.prototype.extractComponentInfoFromTSXFile=function(auditContext,componentFolder,fileName,metadataPatches){const{msgLib,fsUtils}=auditContext.utils;const packRegEx=/@ojmetadata[\s]*pack[\s]*[\"|'](?<pack>[a-zA-Z\-0-9]*)[\"|']/mg;const versionRegEx=/@ojmetadata[\s]*version[\s]*[\"|'](?<version>[\.0-9\-a-zA-Z]*)[\"|']/mg;const jetVersionRegEx=/@ojmetadata[\s]*jetVersion[\s]*[\"|'](?<version>[\.0-9\-a-zA-Z^~><=]*)[\"|']/mg;const tsxFile=path.join(componentFolder,fileName);const fileAsStr=auditContext.utils.fsUtils.readFileSync(tsxFile);const componentIdentification=this.getVComponentElementNameAndImpl(fileAsStr,msgLib);const fullName=componentIdentification.elementName;const className=componentIdentification.class;const componentName=this.getVComponentComponentName(fileAsStr,fullName);let precompiledInfo=auditContext.utils.metaLib.getTagMetadata(fullName);if(!precompiledInfo&&auditContext.rulePack.getRuleCustomOptions().hasOwnProperty("precompileCache")&&auditContext.rulePack.getRuleCustomOption("testMode")){msgLib.info(`Test mode, bypassing Typescript compilation...`);const jsonLoc=path.join(auditContext.rulePack.getRuleCustomOption("precompileCache"),`${fullName}.json`);if(fsUtils.fileExistsSync(jsonLoc)){precompiledInfo=fsUtils.readJsonSync(jsonLoc)}else{msgLib.error(`Missing test mode metadata for ${jsonLoc}`)}}if(precompiledInfo){if(metadataPatches){let componentPatches;if(precompiledInfo.pack){componentPatches=metadataPatches?.[precompiledInfo.pack]?.[precompiledInfo.name]}else{componentPatches=metadataPatches?.[precompiledInfo.name]}if(componentPatches&&Array.isArray(componentPatches)){msgLib.info(`Processing metadata type patches for ${fullName} [${componentPatches.length} patch(es) specified]`);componentPatches.forEach(patch=>{switch(patch.target){case"property":this._handlePropertyTypePatch(patch,precompiledInfo);break;case"method":this._handleMethodTypePatch(patch,precompiledInfo);break;case"event":this._handleEventDetailTypePatch(patch,precompiledInfo);break;case"slot":this._handleSlotDataTypePatch(patch,precompiledInfo);break}})}}const componentInfo=Utils.extractComponentInfoFromMetadata(auditContext,precompiledInfo,componentFolder,true,true);componentInfo.compiledMetadata=precompiledInfo;componentInfo.vcomponent=true;componentInfo.viewModel={resolved:true,path:Utils.toJAFPath(tsxFile)};componentInfo.viewModel.className=className;if(!componentName){componentInfo.inferredName=true}if(componentInfo.pack){const matchPack=packRegEx.exec(fileAsStr);if(!matchPack||!matchPack.groups.pack){componentInfo.inferredPack=true}}const matchVer=versionRegEx.exec(fileAsStr);if(!matchVer||!matchVer.groups.version){componentInfo.inferredVersion=true}const matchJetVer=jetVersionRegEx.exec(fileAsStr);if(!matchJetVer||!matchJetVer.groups.version){componentInfo.inferredJetVersion=true}return componentInfo}else{if(fullName){msgLib.error(`Unable to audit VComponent ${fullName}, pre-compiled metadata is not available`)}return}};TsxUtils.prototype.getVComponentElementNameAndImpl=function(sourceCode,msgLib){var resolvedElementName,implementationClass;const elementRegExForFunction=/export const\s*(?<className>\w+)[\w\s\<\>:]*=\s*registerCustomElement[\s<>,\w]*\(\s*[\"\'](?<fullName>[\w-]*)\s*[\"\']\s*,/mg;const matchElementFunction=elementRegExForFunction.exec(sourceCode);if(matchElementFunction&&matchElementFunction.groups&&matchElementFunction.groups.fullName&&matchElementFunction.groups.className){resolvedElementName=matchElementFunction.groups.fullName;implementationClass=matchElementFunction.groups.className}else{const elementRegExForClass=/\s*@customElement\s*\(\s*[\"\']\s*(?<fullName>[\w-]*)\s*[\"\']\s*\)/mg;const matchElementClass=elementRegExForClass.exec(sourceCode);if(matchElementClass&&matchElementClass.groups&&matchElementClass.groups.fullName){resolvedElementName=matchElementClass.groups.fullName}const elementRegExForClassImpl=/[\s]*export[\s]*class[\s]*(?<className>[a-zA-Z\-0-9_]*)[\s<>,\w]*extends[\s]*(?<superClass>[a-zA-Z\-0-9_]*)/mg;while((classDef=elementRegExForClassImpl.exec(sourceCode))!==null){if(classDef.groups.superClass==="Component"){implementationClass=classDef.groups.className}}}if(resolvedElementName&&!implementationClass){msgLib.error(`Unable to determine VComponent class-name for ${resolvedElementName}`)}return{elementName:resolvedElementName,class:implementationClass}};TsxUtils.prototype.getVComponentComponentName=function(sourceCode,elementName){const nameRegEx=/@ojmetadata[\s]*name [\"|'](?<componentName>[a-zA-Z\-0-9]*)[\"|']/mg;const matchElement=nameRegEx.exec(sourceCode);if(matchElement&&matchElement.groups&&matchElement.groups.componentName){return matchElement.groups.componentName}else{return elementName}};TsxUtils.prototype.matchToVComponentImpl=function(auditContext,testFileName){let componentInfo;let fileNameCanonical=Utils.toJAFPath(testFileName);if(fileNameCanonical.endsWith(".tsx")){const componentMatch=Utils.matchComponentPath(auditContext,fileNameCanonical);if(componentMatch){const testPossibleComponentInfo=Utils.componentInfo(auditContext,componentMatch);if(testPossibleComponentInfo.viewModel&&fileNameCanonical===testPossibleComponentInfo.viewModel.path){componentInfo=testPossibleComponentInfo}}}return componentInfo};TsxUtils.prototype._handlePropertyTypePatch=function(patch,metadata){this._patchPropertyViaPath(patch,patch.locator.split("."),metadata)};TsxUtils.prototype._patchPropertyViaPath=function(patch,path,node){const contactProp=path.shift();if(node.properties?.hasOwnProperty(contactProp)){if(path.length>0){this._patchPropertyViaPath(patch,path,node.properties[contactProp])}else{const propDef=node.properties[contactProp];const existingType=propDef.type;if(this._verifyType(existingType,patch)){propDef.type=patch.patchType}}}};TsxUtils.prototype._verifyType=function(existingType,patch){let expectedTypeMatches=existingType===patch?.expectedType||!patch?.expectedType;let abortNoMatch=false;if(patch.enforceMatch){if(!expectedTypeMatches){abortNoMatch=true}}return!abortNoMatch};TsxUtils.prototype._handleMethodTypePatch=function(patch,metadata){const locatorSegs=patch.locator.split(":");const methodName=locatorSegs[0];const methodTarget=locatorSegs[1];if(metadata.methods?.hasOwnProperty(methodName)){const methodDef=metadata.methods[methodName];if(methodTarget==="return"){this._patchMethodReturnType(patch,methodDef)}else{this._patchMethodParamType(patch,methodDef,methodTarget)}}};TsxUtils.prototype._patchMethodParamType=function(patch,methodDef,parameterName){let paramDef;for(let i=0;i<methodDef.params.length;i++){if(methodDef.params[i].name===parameterName){paramDef=methodDef.params[i]}}const existingType=paramDef.type;if(this._verifyType(existingType,patch)){paramDef.type=patch.patchType}};TsxUtils.prototype._patchMethodReturnType=function(patch,methodDef){const existingType=methodDef.return;if(this._verifyType(existingType,patch)){methodDef.return=patch.patchType}};TsxUtils.prototype._handleEventDetailTypePatch=function(patch,metadata){const locatorSegs=patch.locator.split(":");const eventName=locatorSegs[0];const detailName=locatorSegs[1];if(metadata.events?.hasOwnProperty(eventName)){const eventDef=metadata.events[eventName];if(eventDef.detail?.hasOwnProperty(detailName)){const existingType=eventDef.detail[detailName].type;if(this._verifyType(existingType,patch)){eventDef.detail[detailName].type=patch.patchType}}}};TsxUtils.prototype._handleSlotDataTypePatch=function(patch,metadata){const locatorSegs=patch.locator.split(":");const slotName=locatorSegs[0];const dataName=locatorSegs[1];if(metadata.slots?.hasOwnProperty(slotName)){const slotDef=metadata.slots[slotName];if(slotDef.data?.hasOwnProperty(dataName)){const existingType=slotDef.data[dataName].type;if(this._verifyType(existingType,patch)){slotDef.data[dataName].type=patch.patchType}}}};module.exports=new TsxUtils;
|