@oracle/oraclejet-audit 11.1.3 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/jaf-amd.js +6 -6
- package/jaf.js +2 -2
- package/jafapi.js +2 -2
- package/lib/AST.js +1 -1
- package/lib/AST_Ts.js +2 -2
- package/lib/AstJson.js +1 -1
- package/lib/AstMd.js +6 -0
- package/lib/AstNodeTypes.js +2 -2
- package/lib/Comments.js +1 -1
- package/lib/ComponentSvcs.js +1 -1
- package/lib/Components.js +2 -2
- package/lib/Config.js +2 -2
- package/lib/ConfigLib.js +2 -2
- package/lib/CssLib.js +1 -1
- package/lib/CssUtils.js +1 -1
- package/lib/DomUtils.js +2 -2
- package/lib/FileIndex.js +1 -1
- package/lib/FileSet.js +1 -1
- package/lib/FsUtils.js +2 -2
- package/lib/Histo.js +2 -2
- package/lib/HtmlTree.js +2 -2
- package/lib/HtmlUtils.js +1 -1
- package/lib/Issue.js +2 -2
- package/lib/JafEvents.js +1 -1
- package/lib/JafLib.js +2 -2
- package/lib/Json.js +2 -2
- package/lib/JsonLoader.js +2 -2
- package/lib/Md.js +6 -0
- package/lib/MetaLib.js +2 -2
- package/lib/NetUtils.js +1 -1
- package/lib/NodeTypes.js +1 -1
- package/lib/Parser.js +2 -2
- package/lib/RegTypes.js +2 -2
- package/lib/Registry.js +2 -2
- package/lib/Reporter.js +2 -2
- package/lib/RuleContext.js +1 -1
- package/lib/RulePack.js +1 -1
- package/lib/RuleSet.js +2 -2
- package/lib/Rules.js +2 -2
- package/lib/Scope.js +2 -2
- 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 +2 -2
- package/lib/Utils.js +2 -2
- package/lib/Watch.js +1 -1
- package/lib/Writer.js +1 -1
- package/lib/ZipUtils.js +1 -1
- package/lib/api.js +2 -2
- package/lib/builtinpacks.js +6 -0
- package/lib/cliStats.js +2 -2
- package/lib/clone.js +2 -2
- package/lib/cmdline.js +2 -2
- package/lib/colors.js +2 -2
- package/lib/defaults.js +6 -0
- package/lib/deflist.js +6 -0
- package/lib/dislist.js +6 -0
- package/lib/exportRules.js +1 -1
- package/lib/extends.js +2 -2
- package/lib/filetypes.js +2 -2
- package/lib/grouplist.js +6 -0
- package/lib/groups.js +2 -2
- package/lib/help.js +2 -2
- package/lib/jetver.js +2 -2
- package/lib/macros.js +1 -1
- package/lib/manual.js +6 -0
- package/lib/metaLoader.js +1 -1
- package/lib/metahist.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/ruleLoader.js +1 -1
- package/lib/scaffold.js +2 -2
- package/lib/scaffoldRule.js +2 -2
- package/lib/schema.js +2 -2
- package/lib/scopewalker.js +2 -2
- package/lib/spinner.js +2 -2
- package/lib/spinnernoop.js +1 -1
- package/lib/tabs.js +1 -1
- package/libext/expparser.js +1 -1
- package/meta/11.1.0/jetauditmeta.js +1 -1
- package/meta/12.0.0/jetauditmeta.js +9 -0
- package/meta/12.1.0/jetauditmeta.js +9 -0
- package/meta/metaverlist.json +1 -1
- package/package.json +72 -68
- 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-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/jetwc/jetwc-absolute-jetversion.js +2 -2
- package/rulepacks/jetwc/jetwc-aria-redefinition.js +2 -2
- package/rulepacks/jetwc/jetwc-bootstrap.js +2 -2
- package/rulepacks/jetwc/jetwc-compjson-bp-ar.js +2 -2
- package/rulepacks/jetwc/jetwc-compjson-bp-obj.js +2 -2
- package/rulepacks/jetwc/jetwc-component-dependencies.js +2 -2
- package/rulepacks/jetwc/jetwc-component-displayname.js +2 -2
- package/rulepacks/jetwc/jetwc-component-foldername.js +2 -2
- package/rulepacks/jetwc/jetwc-component-location.js +2 -2
- package/rulepacks/jetwc/jetwc-component-type.js +2 -2
- package/rulepacks/jetwc/jetwc-css-oj-complete.js +6 -0
- package/rulepacks/jetwc/jetwc-data-property-prefix.js +2 -2
- package/rulepacks/jetwc/jetwc-deprecated-lifecycle.js +2 -2
- package/rulepacks/jetwc/jetwc-disabled-property.js +2 -2
- package/rulepacks/jetwc/jetwc-displayname.js +2 -2
- package/rulepacks/jetwc/jetwc-dynamic-slot-context.js +2 -2
- package/rulepacks/jetwc/jetwc-dynamic-slots-naming.js +2 -2
- package/rulepacks/jetwc/jetwc-event-displayname.js +2 -2
- package/rulepacks/jetwc/jetwc-events.js +2 -2
- package/rulepacks/jetwc/jetwc-jet-version.js +2 -2
- package/rulepacks/jetwc/jetwc-loader-file.js +2 -2
- package/rulepacks/jetwc/jetwc-markdown-link.js +6 -0
- package/rulepacks/jetwc/jetwc-method-displayname.js +2 -2
- package/rulepacks/jetwc/jetwc-methods.js +2 -2
- package/rulepacks/jetwc/jetwc-namespace.js +2 -2
- package/rulepacks/jetwc/jetwc-nested-defaults.js +2 -2
- package/rulepacks/jetwc/jetwc-nls-languages.js +2 -2
- package/rulepacks/jetwc/jetwc-nls-root.js +2 -2
- package/rulepacks/jetwc/jetwc-oj-register.js +2 -2
- package/rulepacks/jetwc/jetwc-ojcss.js +2 -2
- package/rulepacks/jetwc/jetwc-pack-children.js +2 -2
- package/rulepacks/jetwc/jetwc-packable-components.js +2 -2
- package/rulepacks/jetwc/jetwc-prerelease-dependencies.js +2 -2
- package/rulepacks/jetwc/jetwc-prerelease-pattern.js +2 -2
- package/rulepacks/jetwc/jetwc-prerelease-version.js +2 -2
- package/rulepacks/jetwc/jetwc-property-changed.js +2 -2
- package/rulepacks/jetwc/jetwc-property-displayname.js +2 -2
- package/rulepacks/jetwc/jetwc-property-nesting.js +2 -2
- package/rulepacks/jetwc/jetwc-public-modules.js +2 -2
- package/rulepacks/jetwc/jetwc-register-css.js +2 -2
- package/rulepacks/jetwc/jetwc-register-with-promises.js +2 -2
- package/rulepacks/jetwc/jetwc-require-paths.js +2 -2
- package/rulepacks/jetwc/jetwc-required-subproperty.js +2 -2
- package/rulepacks/jetwc/jetwc-reserved-property.js +2 -2
- package/rulepacks/jetwc/jetwc-schema.js +2 -2
- package/rulepacks/jetwc/jetwc-semantic-version.js +2 -2
- package/rulepacks/jetwc/jetwc-slot-displayname.js +2 -2
- package/rulepacks/jetwc/jetwc-slots.js +2 -2
- package/rulepacks/jetwc/jetwc-standard-files.js +2 -2
- package/rulepacks/jetwc/jetwc-subproperty-writeback.js +2 -2
- package/rulepacks/jetwc/jetwc-template-slots.js +2 -2
- package/rulepacks/jetwc/jetwc-unused-events.js +2 -2
- package/rulepacks/jetwc/jetwc-unused-slots.js +2 -2
- package/rulepacks/jetwc/jetwc-vb-category.js +2 -2
- package/rulepacks/jetwc/jetwc-vb-icon.js +2 -2
- package/rulepacks/jetwc/jetwc-vcomponent-jetversion.js +6 -0
- package/rulepacks/jetwc/jetwc-vcomponent-loader.js +6 -0
- package/rulepacks/jetwc/jetwc-vcomponent-version.js +6 -0
- package/rulepacks/jetwc/jetwc-version-openrange.js +2 -2
- package/rulepacks/jetwc/jetwc-writeback-required.js +2 -2
- package/rulepacks/jetwc/msgid.json +2 -2
- package/rulepacks/jetwc/rules.json +2 -2
- package/rulepacks/jetwc-lib/jetwcutils-auditComponentCacheManager.js +6 -0
- package/rulepacks/jetwc-lib/jetwcutils-commonListenerImpls.js +6 -0
- package/rulepacks/jetwc-lib/jetwcutils-componentAuditUtils.js +6 -0
- package/rulepacks/jetwc-lib/jetwcutils-componentFinder.js +6 -0
- package/rulepacks/jetwc-lib/jetwcutils-preCompiler.js +6 -0
- package/rulepacks/jetwc-lib/jetwcutils-tsxUtils.js +6 -0
- package/rulepacks/jetwco/jetwco-bootstrap.js +2 -2
- package/rulepacks/jetwco/jetwco-cacc-auditConstraints.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-dependencies.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-dynamicSlots.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-eventBubbles.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-eventCancelable.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-eventPayload.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-events.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-helpers.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-jetVer.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-methodParamTypes.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-methodParams.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-methodReturnType.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-methods.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-packBundle.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-packBundleContent.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-packContent.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-properties.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-propertyDefault.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-propertyEnumeration.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-propertyReadOnly.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-propertyRequired.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-propertyType.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-propertyWriteback.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-publicModules.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-slotDataVariable.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-slotDataVariableType.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-slots.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-styleClasses.js +6 -0
- package/rulepacks/jetwco/jetwco-cacc-styleVariables.js +6 -0
- package/rulepacks/jetwco/jetwco-compjson-ns-reg.js +2 -2
- package/rulepacks/jetwco/jetwco-component-api-baseline-changes.js +2 -2
- package/rulepacks/jetwco/jetwco-component-api-changes.js +2 -2
- package/rulepacks/jetwco/jetwco-component-api-controlled-changes.js +6 -0
- package/rulepacks/jetwco/jetwco-component-cdn.js +2 -2
- package/rulepacks/jetwco/jetwco-description-standards.js +6 -0
- package/rulepacks/jetwco/jetwco-displayname-standards.js +6 -0
- package/rulepacks/jetwco/jetwco-exchange-version-check.js +2 -2
- package/rulepacks/jetwco/jetwco-license-info.js +2 -2
- package/rulepacks/jetwco/jetwco-prerelease-cdn.js +2 -2
- package/rulepacks/jetwco/jetwco-thirdparty-ba.js +2 -2
- package/rulepacks/jetwco/msgid.json +2 -2
- package/rulepacks/jetwco/rules.json +2 -2
- 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/wdt/msgid.json +6 -0
- package/rulepacks/wdt/rules.json +6 -0
- package/rulepacks/wdt/wd-driver-sleep.js +6 -0
- package/rulepacks/wdt/wd-xpath.js +6 -0
- 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-ts-diagnose.js +1 -1
- package/rules/jaf/jaf-ts-walk.js +6 -0
- package/rules/jaf/msgid.json +2 -2
- package/rules/jaf/rules.json +2 -2
- 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-slot-name.js +2 -2
- 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/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-labelledby.js +1 -1
- package/rules/jet/oj-acc-aria-prop.js +2 -2
- package/rules/jet/oj-acc-avatar-aria-role.js +2 -2
- package/rules/jet/oj-acc-combobox-aria-label.js +2 -2
- package/rules/jet/oj-acc-film-strip-aria-label.js +2 -2
- package/rules/jet/oj-acc-input-aria-label.js +2 -2
- package/rules/jet/oj-acc-select-aria-label.js +2 -2
- 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-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-style-abs-units.js +2 -2
- 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 +2 -2
- package/rules/jet/oj-css-var-override.js +1 -1
- package/rules/jet/oj-form-maxcols.js +2 -2
- 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 +6 -0
- 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-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-bindforeach-data.js +2 -2
- package/rules/jet/oj-html-bindif-test.js +2 -2
- package/rules/jet/oj-html-binding-attr.js +2 -2
- package/rules/jet/oj-html-cca-count.js +1 -1
- package/rules/jet/oj-html-cca-tagname.js +2 -2
- package/rules/jet/oj-html-cdn.js +1 -1
- package/rules/jet/oj-html-combo-converter.js +1 -1
- package/rules/jet/oj-html-cspexpr.js +1 -1
- package/rules/jet/oj-html-databind-all.js +1 -1
- package/rules/jet/oj-html-dlg-title.js +2 -2
- package/rules/jet/oj-html-file-pick-accept.js +2 -2
- package/rules/jet/oj-html-form-bindif.js +1 -1
- package/rules/jet/oj-html-form-layout-maxcols.js +2 -2
- package/rules/jet/oj-html-form-noflex.js +1 -1
- package/rules/jet/oj-html-input-isodate.js +2 -2
- package/rules/jet/oj-html-invalid-doctype.js +2 -2
- package/rules/jet/oj-html-jq-databind.js +2 -2
- package/rules/jet/oj-html-ko-comment.js +1 -1
- package/rules/jet/oj-html-ko-databind.js +2 -2
- 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 +6 -0
- package/rules/jet/oj-html-no-style-tag.js +6 -0
- package/rules/jet/oj-html-notag-style.js +6 -0
- package/rules/jet/oj-html-oj-lib.js +1 -1
- package/rules/jet/oj-html-ojattr-520.js +1 -1
- package/rules/jet/oj-html-ojattr-deprecated.js +2 -2
- package/rules/jet/oj-html-ojattr-enum-deprecated.js +2 -2
- package/rules/jet/oj-html-ojattr-evt-syntax.js +2 -2
- package/rules/jet/oj-html-ojattr-value.js +1 -1
- package/rules/jet/oj-html-ojattr.js +2 -2
- package/rules/jet/oj-html-ojevent.js +2 -2
- package/rules/jet/oj-html-ojslot.js +2 -2
- package/rules/jet/oj-html-ojstyle.js +1 -1
- package/rules/jet/oj-html-ojtag-datacmd.js +2 -2
- package/rules/jet/oj-html-ojtag-datactx.js +1 -1
- package/rules/jet/oj-html-ojtag-deprecated.js +2 -2
- package/rules/jet/oj-html-ojtag-globattr-noprefix.js +2 -2
- package/rules/jet/oj-html-ojtag-id.js +1 -1
- package/rules/jet/oj-html-ojtag-nonglobattr-prefix.js +2 -2
- package/rules/jet/oj-html-ojtag-ns.js +1 -1
- package/rules/jet/oj-html-picker-attrs.js +2 -2
- 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-self-close.js +1 -1
- package/rules/jet/oj-html-slot-item-minmax.js +1 -1
- package/rules/jet/oj-html-slot-name.js +2 -2
- package/rules/jet/oj-html-slot-pref-content.js +2 -2
- 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-deprecated.js +2 -2
- package/rules/jet/oj-html-style.js +1 -1
- package/rules/jet/oj-html-stylesel.js +1 -1
- package/rules/jet/oj-html-tag-attr-noprefix.js +2 -2
- package/rules/jet/oj-html-template-index.js +2 -2
- 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-arialabelledby.js +1 -1
- package/rules/jet/oj-html-wctag-for.js +1 -1
- package/rules/jet/oj-html-wctag-id.js +2 -2
- package/rules/jet/oj-html-wctag-nested.js +6 -0
- package/rules/jet/oj-html-wctag-packprivate.js +1 -1
- package/rules/jet/oj-js-comp-attr-deprecated.js +2 -2
- package/rules/jet/oj-js-comp-meth-deprecated.js +2 -2
- 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-ojcomp-deprecated.js +2 -2
- 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-var-undef.js +1 -1
- package/rules/jet/oj-json-syntax.js +1 -1
- package/rules/jet/oj-ts-comp-attr-deprecated.js +2 -2
- package/rules/jet/oj-ts-comp-meth-deprecated.js +2 -2
- 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-ojcomp-deprecated.js +2 -2
- 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/rules.json +2 -2
- package/schema/component-schema.json +4 -1
- package/src/JafCore.js +2 -2
- package/types/index.d.ts +122 -82
- package/lib/imanual.js +0 -6
- package/lib/xmanual.js +0 -6
- package/rulepacks/jetwc-lib/component-audit-utils.js +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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 helperClass=require("./helpers/vartrack");const RULE_NAME="oj-js-comp-attr-deprecated";const _GLOBAL="_@global";const THIS="this";var nt;var depMembers;var delMembers;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULE_NAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated members should not be referenced"};Rule.prototype.getDescription=function(){return"JET component class deprecated members should not be referenced"};Rule.prototype.register=function(regCtx){if(!this._getRuleOptions(regCtx)){return null}var ret={file:this._newFile,startscript:this._newFile,endfile:this._endFile,endscript:this._endFile};nt=regCtx.jsNodeTypes;ret[nt.FUNC_DECLARATION]=this._setup;ret[nt.FUNC_EXPR]=this._setup;ret[nt.MEMBER_EXPR]=this._handleMemberExpr;ret[nt.ASSIGNMENT_EXPR]=this._handleAssign;ret[nt.CALL_EXPR]=this._handleCall;return ret};Rule.prototype._reset=function(){this._funcVarTable=null;this._globalVars=false;this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._handleCall=function(ruleCtx,node){if(node.callee&&(node.callee.name==="define"||node.callee.name==="require")){this._funcVarTable=this._handleViewModelDefine(ruleCtx,node);return}if(!depMembers){depMembers=ruleCtx.utils.metaLib.getDeprecatedMemberList(ruleCtx)}if(!delMembers){delMembers=ruleCtx.utils.metaLib.getDeletedMemberList(ruleCtx)}};Rule.prototype._handleViewModelDefine=function(ruleCtx,node){var args,stmt,o,i;args=node.arguments;if(!args){return}for(i=0;i<args.length;i++){stmt=args[i];if(stmt.type===nt.FUNC_EXPR){o=this._helper.createFuncDeclarations(ruleCtx,stmt);this._funcVarTable=o.funcVarTable}}this._define=true;return this._funcVarTable};Rule.prototype._handleMemberExpr=function(ruleCtx,node){var component,member,objName,comment,issue,version,deleted;var thoughtToBe,emitDep,emitDel;var metaLib=ruleCtx.utils.metaLib;if(!depMembers){depMembers=metaLib.getDeprecatedMemberList(ruleCtx)}if(!delMembers){delMembers=metaLib.getDeletedMemberList(ruleCtx)}if(node.parent&&node.parent.type===nt.CALL_EXPR){return}objName=this._getVarFromMemberExpr(node);if(this._isCommonObject(ruleCtx,objName)){return}if(node.property){member=node.property.name}if(!(member&&objName)){return}if(!depMembers[member]){deleted=delMembers[member];if(!deleted){return}}component=this._findInstantiatedComponent(ruleCtx,node,objName);if(ruleCtx.utils.AstUtils.isFuncArg(node,objName)||!component){if(member!=="constructor"&&!objName.endsWith(".constructor")){if(deleted&&this._scope.deleted.unsure||!deleted&&this._scope.deprecated.unsure){issue=new ruleCtx.Issue("Possible use of "+(deleted?"deleted (in "+deleted[0]+", "+deleted[1]+")":"deprecated")+" JET member '"+member+"' on var '"+objName+"' (class cannot be determined)");issue.setMsgKey(ruleCtx.ruleName+"_1");issue.setPosition(null,null,node.property.start,node.property.end);ruleCtx.reporter.addIssue(issue,ruleCtx)}}return}if(member.startsWith("_")){return}comment=metaLib.isClassMemberDeprecated(component,member);thoughtToBe=this._isOrigVarValue(ruleCtx,node,objName)?"":"thought to be ";emitDep=thoughtToBe&&this._scope.deprecated.unsure||!thoughtToBe&&this._scope.deprecated.sure;emitDel=thoughtToBe&&this._scope.deleted.unsure||!thoughtToBe&&this._scope.deleted.sure;if(comment){if(emitDep){comment=ruleCtx.utils.utils.removeMarkup(comment);issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' ("+thoughtToBe+component+")"+(comment.toLowerCase().includes("deprecated")?". ":" is deprecated. ")+comment)}}else{if(metaLib.isClassDeprecated(component)){if(emitDep){issue=new ruleCtx.Issue("Method '"+member+"' on var '"+objName+"' called on deprecated component ("+thoughtToBe+component+").")}}}if(!issue){version=metaLib.isClassMemberDeleted(component,member);if(version){if(deleted&&emitDel){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' ("+thoughtToBe+component+")"+" was removed in version "+version)}}else if(metaLib.isClassDeleted(component)){if(deleted&&emitDel){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' called on deleted class ("+thoughtToBe+component+").");issue.setSeverity("critical")}}if(issue){issue.setSeverity("critical");issue.setMsgKey(RULE_NAME+"_2")}}if(issue){ruleCtx.reporter.addIssue(issue,ruleCtx)}};Rule.prototype._handleAssign=function(ruleCtx,node){if(node.left){this._handleAssign2(ruleCtx,node,node.left,true)}if(node.right){this._handleAssign2(ruleCtx,node,node.right,false)}};Rule.prototype._handleAssign2=function(ruleCtx,exprNode,node,isSetter){var component,objName,member,comment,issue;if(node.property){if(!node.object){return}objName=node.object.name;if(!objName){if(node.object&&node.object.object){if(node.object.object.name){objName=node.object.object.name}else if(node.object.object.type===nt.THIS_EXPR){objName=THIS}}}if(!objName){if(node.object.type===nt.THIS_EXPR){objName=THIS}}if(!objName){return}if(node.property.type==="Identifier"){member=node.property.name;if(!depMembers){depMembers=ruleCtx.utils.metaLib.getDeprecatedMemberList(ruleCtx)}if(!delMembers){delMembers=ruleCtx.utils.metaLib.getDeletedMemberList(ruleCtx)}if(!depMembers[member]){return}component=this._findInstantiatedComponent(ruleCtx,exprNode,objName);if(!component&&objName!=="this"){if(member!=="constructor"&&!objName.endsWith(".constructor")){if(this._scope.deprecated.unsure){issue=new ruleCtx.Issue("Possible use of deprecated JET member '"+member+"' on var '"+objName+"' (class cannot be determined)");issue.setMsgKey(ruleCtx.ruleName+"_1");ruleCtx.reporter.addIssue(issue,ruleCtx)}}return}if(!this._scope.deprecated.unsure){return}comment=ruleCtx.utils.metaLib.isClassMemberDeprecated(component,member);if(comment){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' (thought to be "+component+")"+(comment.toLowerCase().includes("deprecated")?". ":" is deprecated. ")+comment)}else{if(ruleCtx.utils.metaLib.isClassDeprecated(component)){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' called on deprecated component (thought to be "+component+").")}}if(issue){ruleCtx.reporter.addIssue(issue,ruleCtx)}}}};Rule.prototype._newFile=function(ruleCtx,node){if(ruleCtx.type==="file"&&ruleCtx.filetype==="html"){return}if(!this._helper){this._helper=new helperClass}this._reset();if(!nt&&ruleCtx.utils.AstUtils){nt=ruleCtx.utils.AstUtils.getNodeTypes()}};Rule.prototype._endFile=function(ruleCtx){this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._setup=function(ruleCtx,node){if(!depMembers){depMembers=ruleCtx.utils.metaLib.getDeprecatedMemberList(ruleCtx)}if(!this._globalVars){this._helper.getGlobalVars(ruleCtx);this._globalVars=true}var o=this._helper.createFuncDeclarations(ruleCtx,node);if(o){this._funcVarTable=o.funcVarTable;var funcName;for(funcName in this._funcVarTable){this._handleVarAssignments(ruleCtx,node,this._funcVarTable[funcName])}}};Rule.prototype._addVarToTrackingTable=function(stmt,funcVars,global){var decls,decl,obj,i;decls=stmt.declarations;for(i=0;i<decls.length;i++){decl=decls[i];if(decl.type===nt.VAR_DECLARATOR){funcVars[decl.id.name]=obj={type:global?"globvar":"var"};if(decl.init){if(decl.init.type===nt.NEW_EXPR){obj.valType="new";if(decl.init.callee.type===nt.MEMBER_EXPR){if(decl.init.callee.object&&decl.init.callee.object.type===nt.IDENTIFIER){obj.obj=decl.init.callee.object.name;obj.class=decl.init.callee.property.name;obj.origClass=obj.class}}}else if(decl.init.type===nt.LITERAL){obj.valType="lit"}else if(decl.init.type===nt.CALL_EXPR){if(decl.init.callee.type===nt.IDENTIFIER){obj.valType="funcret";obj.func=decl.init.callee.name}}else if(decl.init.type===nt.IDENTIFIER){obj.valType="var";obj.varName=decl.init.name}}}}};Rule.prototype._findInstantiatedComponent=function(ruleCtx,node,varName){var funcName=ruleCtx.utils.AstUtils.getContainingFunctionName(node);var funcVars=funcName&&this._funcVarTable?this._funcVarTable[funcName]:null;var varDef;if(funcVars){varDef=funcVars[varName];if(!varDef){funcVars=this._funcVarTable[_GLOBAL];if(funcVars){varDef=funcVars[varName]}}if(varDef&&varDef.valType){while(varDef.valType==="var"||varDef.valType==="globvar"){varDef=funcVars[varDef.varName];if(!varDef.valType){return}}if(varDef.class){return(varDef.obj?varDef.obj+".":"")+varDef.class}}}};Rule.prototype._handleVarAssignments=function(ruleCtx,node,funcVars){var body,stmt,leftObj,rightObj,i;body=node.body.body;for(i=0;i<body.length;i++){stmt=body[i];if(stmt.type===nt.EXPR_STMT){if(stmt.expression){if(stmt.expression.type===nt.ASSIGNMENT_EXPR){if(stmt.expression.left.type===nt.IDENTIFIER){if(!funcVars[stmt.expression.left.name]){funcVars[stmt.expression.left.name]={type:"globvar"}}if(stmt.expression.right.type===nt.IDENTIFIER){if(!funcVars[stmt.expression.right.name]){funcVars[stmt.expression.right.name]={type:"globvar"}}leftObj=funcVars[stmt.expression.left.name];rightObj=funcVars[stmt.expression.right.name];leftObj.valType=rightObj.valType;leftObj.varName=rightObj.varName}}}}}}};Rule.prototype._getVarFromMemberExpr=function(me,varSoFar,level){var obj;level=typeof level==="number"?level+1:0;if(me.object){obj=me.object;if(obj.type===nt.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+obj.name:obj.name}else if(obj.type===nt.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(obj,varSoFar,level)}else if(obj.type===nt.THIS_EXPR){varSoFar=THIS}if(me.property&&level){if(me.property.type===nt.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+me.property.name:me.property.name}else if(me.property.type===nt.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(me.property,varSoFar,level)}}}return varSoFar};Rule.prototype._isCommonObject=function(ruleCtx,objName){return objName==="this"||objName==="self"||objName==="_self"||objName==="window"||objName==="console"||this._helper.isCommonVar(objName)};Rule.prototype._isOrigVarValue=function(ruleCtx,node,varName){var funcName,funcVars,varDef;funcName=ruleCtx.utils.AstUtils.getContainingFunctionName(node);if(funcName){funcVars=this._funcVarTable[funcName];if(funcVars){varDef=funcVars[varName]}}if(!varDef){funcVars=this._funcVarTable[_GLOBAL];if(funcVars){varDef=funcVars[varName]}}if(!varDef){return false}while(varDef.valType!=="new"){if(varDef.valType==="lit"){break}if(varDef.valType==="var"){varDef=funcVars[varDef.varName]}}return varDef&&varDef.valType==="new"&&varDef.class===varDef.origClass};Rule.prototype._getRuleOptions=function(regCtx){var scope=regCtx.ruleOpts.scope;if(scope&&typeof scope!=="object"){regCtx.error("Rule "+RULE_NAME+" : invalid config 'ruleMods.scope' property. Rule disabled.");return false}this._scope={deprecated:{sure:true,unsure:false},deleted:{sure:true,unsure:false}};if(!scope){return true}var o=scope.deprecated;if(o){if(o.hasOwnProperty("sure")){this._scope.deprecated.sure=!!scope.deprecated.sure}if(o.hasOwnProperty("unsure")){this._scope.deprecated.unsure=!!scope.deprecated.unsure}}o=scope.deleted;if(o){if(o.hasOwnProperty("sure")){this._scope.deleted.sure=!!scope.deleted.sure}if(o.hasOwnProperty("unsure")){this._scope.deleted.unsure=!!scope.deleted.unsure}}return this._scope.deprecated.sure||this._scope.deprecated.unsure||this._scope.deleted.sure||this._scope.deleted.unsure};module.exports=Rule;
|
|
6
|
+
const helperClass=require("./helpers/vartrack");const RULE_NAME="oj-js-comp-attr-deprecated";const _GLOBAL="_@global";const THIS="this";var nt;var depMembers;var delMembers;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULE_NAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated members should not be referenced"};Rule.prototype.getDescription=function(){return"JET component class deprecated members should not be referenced"};Rule.prototype.register=function(regCtx){if(!this._getRuleOptions(regCtx)){return null}var ret={file:this._newFile,startscript:this._newFile,endfile:this._endFile,endscript:this._endFile};nt=regCtx.jsNodeTypes;ret[nt.FUNC_DECLARATION]=this._setup;ret[nt.FUNC_EXPR]=this._setup;ret[nt.MEMBER_EXPR]=this._handleMemberExpr;ret[nt.ASSIGNMENT_EXPR]=this._handleAssign;ret[nt.CALL_EXPR]=this._handleCall;return ret};Rule.prototype._reset=function(){this._funcVarTable=null;this._globalVars=false;this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._handleCall=function(ruleCtx,node){if(node.callee&&(node.callee.name==="define"||node.callee.name==="require")){this._funcVarTable=this._handleViewModelDefine(ruleCtx,node);return}if(!depMembers){depMembers=ruleCtx.utils.metaLib.getDeprecatedMemberList(ruleCtx)}if(!delMembers){delMembers=ruleCtx.utils.metaLib.getDeletedMemberList(ruleCtx)}};Rule.prototype._handleViewModelDefine=function(ruleCtx,node){var args,stmt,o,i;args=node.arguments;if(!args){return}for(i=0;i<args.length;i++){stmt=args[i];if(stmt.type===nt.FUNC_EXPR){o=this._helper.createFuncDeclarations(ruleCtx,stmt);this._funcVarTable=o.funcVarTable}}this._define=true;return this._funcVarTable};Rule.prototype._handleMemberExpr=function(ruleCtx,node){var component,member,objName,status,comment,issue,version,deleted;var thoughtToBe,emitDep,emitDel;var metaLib=ruleCtx.utils.metaLib;if(!depMembers){depMembers=metaLib.getDeprecatedMemberList(ruleCtx)}if(!delMembers){delMembers=metaLib.getDeletedMemberList(ruleCtx)}if(node.parent&&node.parent.type===nt.CALL_EXPR){return}objName=this._getVarFromMemberExpr(node);if(this._isCommonObject(ruleCtx,objName)){return}if(node.property){member=node.property.name}if(!(member&&objName)){return}if(!depMembers[member]){deleted=delMembers[member];if(!deleted){return}}component=this._findInstantiatedComponent(ruleCtx,node,objName);if(ruleCtx.utils.AstUtils.isFuncArg(node,objName)||!component){if(member!=="constructor"&&!objName.endsWith(".constructor")){if(deleted&&this._scope.deleted.unsure||!deleted&&this._scope.deprecated.unsure){issue=new ruleCtx.Issue("Possible use of "+(deleted?"deleted (in "+deleted[0]+", "+deleted[1]+")":"deprecated")+" JET member '"+member+"' on var '"+objName+"' (class cannot be determined)");issue.setMsgKey(ruleCtx.ruleName+"_1");issue.setPosition(null,null,node.property.start,node.property.end);ruleCtx.reporter.addIssue(issue,ruleCtx)}}return}if(member.startsWith("_")){return}if(status=metaLib.isClassMemberDeprecated(component,member)){comment=ruleCtx.utils.utils.removeMarkup(status[0].description)}thoughtToBe=this._isOrigVarValue(ruleCtx,node,objName)?"":"thought to be ";emitDep=thoughtToBe&&this._scope.deprecated.unsure||!thoughtToBe&&this._scope.deprecated.sure;emitDel=thoughtToBe&&this._scope.deleted.unsure||!thoughtToBe&&this._scope.deleted.sure;if(comment){if(emitDep){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' ("+thoughtToBe+component+")"+(comment.toLowerCase().includes("deprecated")?". ":" is deprecated. ")+comment)}}else{if(metaLib.isClassDeprecated(component)){if(emitDep){issue=new ruleCtx.Issue("Method '"+member+"' on var '"+objName+"' called on deprecated component ("+thoughtToBe+component+").")}}}if(!issue){version=metaLib.isClassMemberDeleted(component,member);if(version){if(deleted&&emitDel){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' ("+thoughtToBe+component+")"+" was removed in version "+version)}}else if(metaLib.isClassDeleted(component)){if(deleted&&emitDel){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' called on deleted class ("+thoughtToBe+component+").");issue.setSeverity("critical")}}if(issue){issue.setSeverity("critical");issue.setMsgKey(RULE_NAME+"_2")}}if(issue){ruleCtx.reporter.addIssue(issue,ruleCtx)}};Rule.prototype._handleAssign=function(ruleCtx,node){if(node.left){this._handleAssign2(ruleCtx,node,node.left,true)}if(node.right){this._handleAssign2(ruleCtx,node,node.right,false)}};Rule.prototype._handleAssign2=function(ruleCtx,exprNode,node){var component,objName,member,status,comment,issue;if(node.property){if(!node.object){return}objName=node.object.name;if(!objName){if(node.object&&node.object.object){if(node.object.object.name){objName=node.object.object.name}else if(node.object.object.type===nt.THIS_EXPR){objName=THIS}}}if(!objName){if(node.object.type===nt.THIS_EXPR){objName=THIS}}if(!objName){return}if(node.property.type==="Identifier"){member=node.property.name;if(!depMembers){depMembers=ruleCtx.utils.metaLib.getDeprecatedMemberList(ruleCtx)}if(!delMembers){delMembers=ruleCtx.utils.metaLib.getDeletedMemberList(ruleCtx)}if(!depMembers[member]){return}component=this._findInstantiatedComponent(ruleCtx,exprNode,objName);if(!component&&objName!=="this"){if(member!=="constructor"&&!objName.endsWith(".constructor")){if(this._scope.deprecated.unsure){issue=new ruleCtx.Issue("Possible use of deprecated JET member '"+member+"' on var '"+objName+"' (class cannot be determined)");issue.setMsgKey(ruleCtx.ruleName+"_1");ruleCtx.reporter.addIssue(issue,ruleCtx)}}return}if(!this._scope.deprecated.unsure){return}if(status=ruleCtx.utils.metaLib.isClassMemberDeprecated(component,member)){comment=ruleCtx.utils.utils.removeMarkup(status[0].description);issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' (thought to be "+component+")"+(comment.toLowerCase().includes("deprecated")?". ":" is deprecated. ")+comment)}else{if(ruleCtx.utils.metaLib.isClassDeprecated(component)){issue=new ruleCtx.Issue("Member '"+member+"' on var '"+objName+"' called on deprecated component (thought to be "+component+").")}}if(issue){ruleCtx.reporter.addIssue(issue,ruleCtx)}}}};Rule.prototype._newFile=function(ruleCtx){if(ruleCtx.type==="file"&&ruleCtx.filetype==="html"){return}if(!this._helper){this._helper=new helperClass}this._reset();if(!nt&&ruleCtx.utils.AstUtils){nt=ruleCtx.utils.AstUtils.getNodeTypes()}};Rule.prototype._endFile=function(ruleCtx){this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._setup=function(ruleCtx,node){if(!depMembers){depMembers=ruleCtx.utils.metaLib.getDeprecatedMemberList(ruleCtx)}if(!this._globalVars){this._helper.getGlobalVars(ruleCtx);this._globalVars=true}var o=this._helper.createFuncDeclarations(ruleCtx,node);if(o){this._funcVarTable=o.funcVarTable;var funcName;for(funcName in this._funcVarTable){this._handleVarAssignments(ruleCtx,node,this._funcVarTable[funcName])}}};Rule.prototype._addVarToTrackingTable=function(stmt,funcVars,global){var decls,decl,obj,i;decls=stmt.declarations;for(i=0;i<decls.length;i++){decl=decls[i];if(decl.type===nt.VAR_DECLARATOR){funcVars[decl.id.name]=obj={type:global?"globvar":"var"};if(decl.init){if(decl.init.type===nt.NEW_EXPR){obj.valType="new";if(decl.init.callee.type===nt.MEMBER_EXPR){if(decl.init.callee.object&&decl.init.callee.object.type===nt.IDENTIFIER){obj.obj=decl.init.callee.object.name;obj.class=decl.init.callee.property.name;obj.origClass=obj.class}}}else if(decl.init.type===nt.LITERAL){obj.valType="lit"}else if(decl.init.type===nt.CALL_EXPR){if(decl.init.callee.type===nt.IDENTIFIER){obj.valType="funcret";obj.func=decl.init.callee.name}}else if(decl.init.type===nt.IDENTIFIER){obj.valType="var";obj.varName=decl.init.name}}}}};Rule.prototype._findInstantiatedComponent=function(ruleCtx,node,varName){var funcName=ruleCtx.utils.AstUtils.getContainingFunctionName(node);var funcVars=funcName&&this._funcVarTable?this._funcVarTable[funcName]:null;var varDef;if(funcVars){varDef=funcVars[varName];if(!varDef){funcVars=this._funcVarTable[_GLOBAL];if(funcVars){varDef=funcVars[varName]}}if(varDef&&varDef.valType){while(varDef.valType==="var"||varDef.valType==="globvar"){varDef=funcVars[varDef.varName];if(!varDef.valType){return}}if(varDef.class){return(varDef.obj?varDef.obj+".":"")+varDef.class}}}};Rule.prototype._handleVarAssignments=function(ruleCtx,node,funcVars){var body,stmt,leftObj,rightObj,i;body=node.body.body;for(i=0;i<body.length;i++){stmt=body[i];if(stmt.type===nt.EXPR_STMT){if(stmt.expression){if(stmt.expression.type===nt.ASSIGNMENT_EXPR){if(stmt.expression.left.type===nt.IDENTIFIER){if(!funcVars[stmt.expression.left.name]){funcVars[stmt.expression.left.name]={type:"globvar"}}if(stmt.expression.right.type===nt.IDENTIFIER){if(!funcVars[stmt.expression.right.name]){funcVars[stmt.expression.right.name]={type:"globvar"}}leftObj=funcVars[stmt.expression.left.name];rightObj=funcVars[stmt.expression.right.name];leftObj.valType=rightObj.valType;leftObj.varName=rightObj.varName}}}}}}};Rule.prototype._getVarFromMemberExpr=function(me,varSoFar,level){var obj;level=typeof level==="number"?level+1:0;if(me.object){obj=me.object;if(obj.type===nt.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+obj.name:obj.name}else if(obj.type===nt.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(obj,varSoFar,level)}else if(obj.type===nt.THIS_EXPR){varSoFar=THIS}if(me.property&&level){if(me.property.type===nt.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+me.property.name:me.property.name}else if(me.property.type===nt.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(me.property,varSoFar,level)}}}return varSoFar};Rule.prototype._isCommonObject=function(ruleCtx,objName){return objName==="this"||objName==="self"||objName==="_self"||objName==="window"||objName==="console"||this._helper.isCommonVar(objName)};Rule.prototype._isOrigVarValue=function(ruleCtx,node,varName){var funcName,funcVars,varDef;funcName=ruleCtx.utils.AstUtils.getContainingFunctionName(node);if(funcName){funcVars=this._funcVarTable[funcName];if(funcVars){varDef=funcVars[varName]}}if(!varDef){funcVars=this._funcVarTable[_GLOBAL];if(funcVars){varDef=funcVars[varName]}}if(!varDef){return false}while(varDef.valType!=="new"){if(varDef.valType==="lit"){break}if(varDef.valType==="var"){varDef=funcVars[varDef.varName]}}return varDef&&varDef.valType==="new"&&varDef.class===varDef.origClass};Rule.prototype._getRuleOptions=function(regCtx){var scope=regCtx.ruleOpts.scope;if(scope&&typeof scope!=="object"){regCtx.error("Rule "+RULE_NAME+" : invalid config 'ruleMods.scope' property. Rule disabled.");return false}this._scope={deprecated:{sure:true,unsure:false},deleted:{sure:true,unsure:false}};if(!scope){return true}var o=scope.deprecated;if(o){if(o.hasOwnProperty("sure")){this._scope.deprecated.sure=!!scope.deprecated.sure}if(o.hasOwnProperty("unsure")){this._scope.deprecated.unsure=!!scope.deprecated.unsure}}o=scope.deleted;if(o){if(o.hasOwnProperty("sure")){this._scope.deleted.sure=!!scope.deleted.sure}if(o.hasOwnProperty("unsure")){this._scope.deleted.unsure=!!scope.deleted.unsure}}return this._scope.deprecated.sure||this._scope.deprecated.unsure||this._scope.deleted.sure||this._scope.deleted.unsure};module.exports=Rule;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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 helperClass=require("./helpers/vartrack");const RULE_NAME="oj-js-comp-meth-deprecated";const _GLOBAL="_@global";var NT;var depMethods;var delMethods;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULE_NAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.getDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.register=function(regCtx){if(!this._getRuleOptions(regCtx)){return null}return{CallExpression:this._handleCall,FunctionDeclaration:this._setup,FunctionExpression:this._setup,file:this._newFile,endfile:this._endFile,startscript:this._newFile,endscript:this._endFile}};Rule.prototype._reset=function(){this._funcVarTable=null;this._globalVars=false;this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._handleCall=function(context,node){var component,method,objName,comment,version,issue;var me,prop,method,del;var thoughtToBe,emitDep,emitDel;var metaLib=context.utils.metaLib;if(!NT){NT=context.utils.AstUtils.getNodeTypes()}if(node.callee&&(node.callee.name==="define"||node.callee.name==="require")){this._funcVarTable=this._handleViewModelDefine(context,node);return}if(!depMethods){depMethods=metaLib.getDeprecatedMethodList(context)}if(!delMethods){delMethods=metaLib.getDeletedMethodList(context)}me=node.callee;if(me.name&&me.name==="$"){return}if(me.type!==NT.MEMBER_EXPR){return}objName=this._getVarFromMemberExpr(me);prop=me.property;if(prop&&prop.name){method=prop.name}if(!(method&&objName)){return}if(this._isCommonMethod(context,objName,method)){return}if(!depMethods[method]){del=delMethods[method];if(!del){return}}if(context.utils.AstUtils.isFuncArg(node,objName)){if(del&&this._scope.deleted.unsure||!del&&this._scope.deprecated.unsure){issue=new context.Issue("Possible use of "+(del?"deleted":"deprecated")+" JET method "+method+"() on var '"+objName+"' (class cannot be determined)");issue.setMsgKey(context.ruleName+"_1");context.reporter.addIssue(issue,context);return}}component=this._findInstantiatedComponent(context,node,objName);if(!component){return}
|
|
6
|
+
const helperClass=require("./helpers/vartrack");const RULE_NAME="oj-js-comp-meth-deprecated";const _GLOBAL="_@global";var NT;var depMethods;var delMethods;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULE_NAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.getDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.register=function(regCtx){if(!this._getRuleOptions(regCtx)){return null}return{CallExpression:this._handleCall,FunctionDeclaration:this._setup,FunctionExpression:this._setup,file:this._newFile,endfile:this._endFile,startscript:this._newFile,endscript:this._endFile}};Rule.prototype._reset=function(){this._funcVarTable=null;this._globalVars=false;this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._handleCall=function(context,node){var component,method,objName,status,comment,version,issue;var me,prop,method,del;var thoughtToBe,emitDep,emitDel;var metaLib=context.utils.metaLib;if(!NT){NT=context.utils.AstUtils.getNodeTypes()}if(node.callee&&(node.callee.name==="define"||node.callee.name==="require")){this._funcVarTable=this._handleViewModelDefine(context,node);return}if(!depMethods){depMethods=metaLib.getDeprecatedMethodList(context)}if(!delMethods){delMethods=metaLib.getDeletedMethodList(context)}me=node.callee;if(me.name&&me.name==="$"){return}if(me.type!==NT.MEMBER_EXPR){return}objName=this._getVarFromMemberExpr(me);prop=me.property;if(prop&&prop.name){method=prop.name}if(!(method&&objName)){return}if(this._isCommonMethod(context,objName,method)){return}if(!depMethods[method]){del=delMethods[method];if(!del){return}}if(context.utils.AstUtils.isFuncArg(node,objName)){if(del&&this._scope.deleted.unsure||!del&&this._scope.deprecated.unsure){issue=new context.Issue("Possible use of "+(del?"deleted":"deprecated")+" JET method "+method+"() on var '"+objName+"' (class cannot be determined)");issue.setMsgKey(context.ruleName+"_1");context.reporter.addIssue(issue,context);return}}component=this._findInstantiatedComponent(context,node,objName);if(!component){return}if(status=metaLib.isClassMethodDeprecated(component,method)){comment=context.utils.utils.removeMarkup(status[0].description)}thoughtToBe=this._isOrigVarValue(context,node,objName)?"":"thought to be ";emitDep=thoughtToBe&&this._scope.deprecated.unsure||!thoughtToBe&&this._scope.deprecated.sure;emitDel=thoughtToBe&&this._scope.deleted.unsure||!thoughtToBe&&this._scope.deleted.sure;if(del&&emitDel||!del&&emitDep){if(comment){comment=context.utils.utils.removeMarkup(comment);issue=new context.Issue("Method "+method+"() on var '"+objName+"' ("+thoughtToBe+component+")"+(comment.toLowerCase().includes("deprecated")?". ":" is "+(del?"deleted":"deprecated")+". ")+comment)}else{if(metaLib.isClassDeprecated(component)){issue=new context.Issue("Method "+method+"() on var '"+objName+"' called on deprecated class ("+thoughtToBe+component+").")}}}if(!issue){if(emitDel){version=metaLib.isClassMethodDeleted(component,method);if(version){issue=new context.Issue("Method "+method+"() on var '"+objName+"' ("+thoughtToBe+component+")"+" was removed in version "+version)}else if(metaLib.isClassDeleted(component)){issue=new context.Issue("Method "+method+"() on var '"+objName+"' called on deleted class ("+thoughtToBe+component+").")}if(issue){issue.setSeverity("critical");issue.setMsgKey(RULE_NAME+"_2")}}}if(issue){context.reporter.addIssue(issue,context)}};Rule.prototype._newFile=function(context){if(context.type==="file"&&context.filetype==="html"){return}if(!this._helper){this._helper=new helperClass}this._reset();if(!NT&&context.utils.AstUtils){NT=context.utils.AstUtils.getNodeTypes()}};Rule.prototype._endFile=function(context){this._define=false;if(this._helper){this._helper.reset()}};Rule.prototype._setup=function(context,node){var funcName;if(!depMethods){depMethods=context.utils.metaLib.getDeprecatedMethodList(context)}if(!delMethods){delMethods=context.utils.metaLib.getDeletedMethodList(context)}if(!NT){NT=context.utils.AstUtils.getNodeTypes()}if(!this._globalVars){this._helper.getGlobalVars(context);this._globalVars=true}if(this._define){return}var o=this._helper.createFuncDeclarations(context,node);if(o){this._funcVarTable=o.funcVarTable;for(funcName in this._funcVarTable){this._handleVarAssignments(context,node,this._funcVarTable[funcName])}}else{this._funcVarTable=null}};Rule.prototype._findInstantiatedComponent=function(context,node,varName){var funcName=this._helper.getContainingFunctionName(context,node);var funcVars=funcName&&this._funcVarTable?this._funcVarTable[funcName]:null;var varDef;if(funcVars){varDef=funcVars[varName];if(!varDef){funcVars=this._funcVarTable[_GLOBAL];if(funcVars){varDef=funcVars[varName]}}if(varDef&&varDef.valType){if(varDef.valType==="funcret"&&varDef.func==="$")return null;while(varDef.valType==="var"||varDef.valType==="globvar"){varDef=funcVars[varDef.varName];if(!varDef.valType){return}}if(varDef.class){return(varDef.obj?varDef.obj+".":"")+varDef.class}}}};Rule.prototype._handleVarAssignments=function(context,node,funcVars){var body,stmt,leftObj,rightObj,i;body=node.body.body;for(i=0;i<body.length;i++){stmt=body[i];if(stmt.type===NT.EXPR_STMT){if(stmt.expression){if(stmt.expression.type===NT.ASSIGNMENT_EXPR){if(stmt.expression.left.type===NT.IDENTIFIER){if(!funcVars[stmt.expression.left.name]){funcVars[stmt.expression.left.name]={type:"globvar"}}if(stmt.expression.right.type===NT.IDENTIFIER){if(!funcVars[stmt.expression.right.name]){funcVars[stmt.expression.right.name]={type:"globvar"}}leftObj=funcVars[stmt.expression.left.name];rightObj=funcVars[stmt.expression.right.name];leftObj.valType=rightObj.valType;leftObj.varName=rightObj.varName}}}}}}};Rule.prototype._getVarFromMemberExpr=function(me,varSoFar,level){var obj;level=typeof level==="number"?level+1:0;if(me.object){obj=me.object;if(obj.type===NT.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+obj.name:obj.name}else if(obj.type===NT.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(obj,varSoFar,level)}if(me.property&&level){if(me.property.type===NT.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+me.property.name:me.property.name}else if(me.property.type===NT.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(me.property,varSoFar,level)}}}return varSoFar};Rule.prototype._isOrigVarValue=function(context,node,varName){var funcName,funcVars,varDef;funcName=this._helper.getContainingFunctionName(context,node);if(funcName){funcVars=this._funcVarTable[funcName];if(funcVars){varDef=funcVars[varName]}}if(!varDef){funcVars=this._funcVarTable[_GLOBAL];if(funcVars){varDef=funcVars[varName]}}if(!varDef){return false}while(varDef.valType!=="new"){if(varDef.valType==="lit"){break}if(varDef.valType==="var"){varDef=funcVars[varDef.varName]}}return varDef&&varDef.valType==="new"&&varDef.class===varDef.origClass};Rule.prototype._handleViewModelDefine=function(context,node){var p,args,stmt,o,i;args=node.arguments;if(!args){return}for(i=0;i<args.length;i++){stmt=args[i];if(stmt.type===NT.FUNC_EXPR){o=this._helper.createFuncDeclarations(context,stmt);this._funcVarTable=o.funcVarTable}}this._define=true;return this._funcVarTable};Rule.prototype._isCommonMethod=function(context,objName,method){return method.charAt(0)==="_"||method==="observable"||method==="applyBindings"||method==="addEventListener"||method==="removeEventListener"||context.utils.AstUtils.isCommonDocApi(method)||objName==="this"||objName==="self"||objName==="_self"||objName==="window"||objName==="console"||this._helper.isCommonVar(objName)};Rule.prototype._getRuleOptions=function(regCtx){var scope=regCtx.ruleOpts.scope;if(scope&&typeof scope!=="object"){regCtx.error("Rule "+RULE_NAME+" : invalid config 'ruleMods.scope' property. Rule disabled.");return false}this._scope={deprecated:{sure:true,unsure:false},deleted:{sure:true,unsure:false}};if(!scope){return true}var o=scope.deprecated;if(o){if(o.hasOwnProperty("sure")){this._scope.deprecated.sure=!!scope.deprecated.sure}if(o.hasOwnProperty("unsure")){this._scope.deprecated.unsure=!!scope.deprecated.unsure}}o=scope.deleted;if(o){if(o.hasOwnProperty("sure")){this._scope.deleted.sure=!!scope.deleted.sure}if(o.hasOwnProperty("unsure")){this._scope.deleted.unsure=!!scope.deleted.unsure}}return this._scope.deprecated.sure||this._scope.deprecated.unsure||this._scope.deleted.sure||this._scope.deleted.unsure};module.exports=Rule;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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 RULENAME="oj-js-ojcomp-deprecated";const DESCRIPTION="Deprecated JET component classes should not be instantiated";const SHORT_DESCRIPTION="Deprecated JET component classes should not be instantiated";const PERIOD=".";var nt;class Rule{getName(){return RULENAME}getDescription(){return DESCRIPTION}getShortDescription(){return SHORT_DESCRIPTION}register(regCtx){var ret={};nt=regCtx.jsNodeTypes;ret[nt.NEW_EXPR]=this._onNew;return ret}_onNew(ruleCtx,node){var component,issue,comment;var me,obj,start,pos;me=node.callee;if(me.type===nt.MEMBER_EXPR){obj=me.object;if(obj&&obj.type===nt.IDENTIFIER){if(obj.name==="oj"){if(me.property&&me.property.name){component="oj."+me.property.name;start=obj}}}}else if(me.type===nt.IDENTIFIER){component=me.name;start=me}if(component){
|
|
6
|
+
const RULENAME="oj-js-ojcomp-deprecated";const DESCRIPTION="Deprecated JET component classes should not be instantiated";const SHORT_DESCRIPTION="Deprecated JET component classes should not be instantiated";const PERIOD=".";var nt;class Rule{getName(){return RULENAME}getDescription(){return DESCRIPTION}getShortDescription(){return SHORT_DESCRIPTION}register(regCtx){var ret={};nt=regCtx.jsNodeTypes;ret[nt.NEW_EXPR]=this._onNew;return ret}_onNew(ruleCtx,node){var component,issue,status,comment,since;var me,obj,start,pos;me=node.callee;if(me.type===nt.MEMBER_EXPR){obj=me.object;if(obj&&obj.type===nt.IDENTIFIER){if(obj.name==="oj"){if(me.property&&me.property.name){component="oj."+me.property.name;start=obj}}}}else if(me.type===nt.IDENTIFIER){component=me.name;start=me}if(component){if(status=ruleCtx.utils.metaLib.isClassDeprecated(component)){comment=ruleCtx.utils.utils.removeMarkup(status.description);since=status.since;since=since?"(since "+since+") ":"";issue=new ruleCtx.Issue(`Instantiation of deprecated ${since}JET class ${component}. ${comment} ${comment.endsWith(PERIOD)?"":PERIOD}`);let ft=ruleCtx.filepath.substring(ruleCtx.filepath.lastIndexOf(".")+1);start=ft==="ts"?start.range[0]:start.start;pos=ruleCtx.utils.utils.getRowColFromIndex(ruleCtx.data,start,ft);issue.setPosition(pos.row,pos.col,start,start+component.length);ruleCtx.reporter.addIssue(issue,ruleCtx)}}}}module.exports=Rule;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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 helperClass=require("./helpers/vartrack");const RULE_NAME="oj-ts-comp-attr-deprecated";var NT;var depMembers;var delMembers;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULE_NAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated members should not be invoked"};Rule.prototype.getDescription=function(){return"JET component class deprecated members should not be invoked"};Rule.prototype.register=function(regCtx){if(!depMembers){depMembers=regCtx.utils.metaLib.getDeprecatedMemberList(regCtx)}if(!delMembers){delMembers=regCtx.utils.metaLib.getDeletedMemberList(regCtx)}return{MemberExpression:this._onMemExpr,file:this._onNewFile}};Rule.prototype._reset=function(){if(this._helper){this._helper.reset()}};Rule.prototype._onMemExpr=function(ruleCtx,node){var component,member,objName,comment,issue,version,deleted;var metaLib=ruleCtx.utils.metaLib;if(node.parent&&node.parent.type==="CallExpression"){return}objName=this._getVarFromMemberExpr(node);if(this._isCommonObject(ruleCtx,objName)){return}if(node.property){member=node.property.name}if(!(member&&objName&&!member.startsWith("_"))){return}if(!depMembers[member]){deleted=delMembers[member];if(!deleted){return}}component=this._scope.getVarType(node.object);if(!component||component==="TSAnyKeyword"){return}
|
|
6
|
+
const helperClass=require("./helpers/vartrack");const RULE_NAME="oj-ts-comp-attr-deprecated";var NT;var depMembers;var delMembers;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULE_NAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated members should not be invoked"};Rule.prototype.getDescription=function(){return"JET component class deprecated members should not be invoked"};Rule.prototype.register=function(regCtx){if(!depMembers){depMembers=regCtx.utils.metaLib.getDeprecatedMemberList(regCtx)}if(!delMembers){delMembers=regCtx.utils.metaLib.getDeletedMemberList(regCtx)}return{MemberExpression:this._onMemExpr,file:this._onNewFile}};Rule.prototype._reset=function(){if(this._helper){this._helper.reset()}};Rule.prototype._onMemExpr=function(ruleCtx,node){var component,member,objName,status,comment,issue,version,deleted;var metaLib=ruleCtx.utils.metaLib;if(node.parent&&node.parent.type==="CallExpression"){return}objName=this._getVarFromMemberExpr(node);if(this._isCommonObject(ruleCtx,objName)){return}if(node.property){member=node.property.name}if(!(member&&objName&&!member.startsWith("_"))){return}if(!depMembers[member]){deleted=delMembers[member];if(!deleted){return}}component=this._scope.getVarType(node.object);if(!component||component==="TSAnyKeyword"){return}if(status=metaLib.isClassMemberDeprecated(component,member)){comment=ruleCtx.utils.utils.removeMarkup(status[0].description);issue=new ruleCtx.Issue(`Member '${member}' on var '${objName}' (${component}) ${comment.toLowerCase().includes("deprecated")?". ":" is deprecated. "} ${comment}`)}else{if(metaLib.isClassDeprecated(component)){issue=new ruleCtx.Issue(`Method '${member}' on var '${objName}' called on deprecated component ${component}.`)}}if(!issue){version=metaLib.isClassMemberDeleted(component,member);if(version){issue=new ruleCtx.Issue(`Member '${member}' on var '${objName}' (${component}) was removed in version ${version}`)}else if(metaLib.isClassDeleted(component)){issue=new ruleCtx.Issue(`Member '${member}' on var '${objName}' called on deleted class ${component}.`);issue.setSeverity("critical")}if(issue){issue.setSeverity("critical");issue.setMsgKey(RULE_NAME+"_2")}}if(issue){ruleCtx.reporter.addIssue(issue,ruleCtx)}};Rule.prototype._onNewFile=function(ruleCtx){if(!this._helper){this._helper=new helperClass}this._reset();if(!NT&&ruleCtx.utils.AstUtils){NT=ruleCtx.utils.AstUtils.getNodeTypes()}this._scope=ruleCtx.utils.AstUtils.getScopes()};Rule.prototype._getVarFromMemberExpr=function(me,varSoFar,level){var obj;level=typeof level==="number"?level+1:0;if(me.object){obj=me.object;if(obj.type===NT.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+obj.name:obj.name}else if(obj.type===NT.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(obj,varSoFar,level)}if(me.property&&level){if(me.property.type===NT.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+me.property.name:me.property.name}else if(me.property.type===NT.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(me.property,varSoFar,level)}}}return varSoFar};Rule.prototype._isCommonObject=function(ruleCtx,objName){return objName==="this"||objName==="self"||objName==="_self"||objName==="window"||objName==="console"||this._helper.isCommonVar(objName)};module.exports=Rule;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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 helperClass=require("./helpers/vartrack");const RULENAME="oj-ts-comp-meth-deprecated";var NT;var depMethods;var delMethods;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULENAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.getDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.register=function(regCtx){if(!depMethods){depMethods=regCtx.utils.metaLib.getDeprecatedMethodList(regCtx)}if(!delMethods){delMethods=regCtx.utils.metaLib.getDeletedMethodList(regCtx)}return{CallExpression:this._onCall,file:this._onNewFile,endfile:this._onEndFile}};Rule.prototype._reset=function(){if(this._helper){this._helper.reset()}};Rule.prototype._onCall=function(ruleCtx,node){var component,method,objName,comment,version,issue;var me,prop,method,del;var metaLib=ruleCtx.utils.metaLib;if(!NT){NT=ruleCtx.utils.AstUtils.getNodeTypes()}me=node.callee;objName=this._getVarFromMemberExpr(me);prop=me.property;if(prop&&prop.name){method=prop.name}if(!(method&&objName)){return}if(this._isCommonMethod(ruleCtx,objName,method)){return}if(!depMethods[method]){del=delMethods[method];if(!del){return}}component=this._scope.getVarType(me.object);if(!component||component==="TSAnyKeyword"){return}
|
|
6
|
+
const helperClass=require("./helpers/vartrack");const RULENAME="oj-ts-comp-meth-deprecated";var NT;var depMethods;var delMethods;function Rule(){this._reset();this._scope=null};Rule.prototype.getName=function(){return RULENAME};Rule.prototype.getShortDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.getDescription=function(){return"JET component class deprecated methods should not be invoked"};Rule.prototype.register=function(regCtx){if(!depMethods){depMethods=regCtx.utils.metaLib.getDeprecatedMethodList(regCtx)}if(!delMethods){delMethods=regCtx.utils.metaLib.getDeletedMethodList(regCtx)}return{CallExpression:this._onCall,file:this._onNewFile,endfile:this._onEndFile}};Rule.prototype._reset=function(){if(this._helper){this._helper.reset()}};Rule.prototype._onCall=function(ruleCtx,node){var component,method,objName,status,comment,version,issue;var me,prop,method,del;var metaLib=ruleCtx.utils.metaLib;if(!NT){NT=ruleCtx.utils.AstUtils.getNodeTypes()}me=node.callee;objName=this._getVarFromMemberExpr(me);prop=me.property;if(prop&&prop.name){method=prop.name}if(!(method&&objName)){return}if(this._isCommonMethod(ruleCtx,objName,method)){return}if(!depMethods[method]){del=delMethods[method];if(!del){return}}component=this._scope.getVarType(me.object);if(!component||component==="TSAnyKeyword"){return}if(status=metaLib.isClassMethodDeprecated(component,method)){comment=ruleCtx.utils.utils.removeMarkup(status[0].description);issue=new ruleCtx.Issue(`Method ${method}() on var '${objName}' (${component}) ${comment.toLowerCase().includes("deprecated")?". ":" is "+(del?"deleted":"deprecated")+". "}${comment}`)}else if(metaLib.isClassDeprecated(component)){issue=new ruleCtx.Issue(`Method ${method}() on var '${objName}' called on deprecated class ${component}`)}if(!issue){if(del){version=metaLib.isClassMethodDeleted(component,method);if(version){issue=new ruleCtx.Issue(`Method ${method}() on var '${objName}' (${component}) was removed in version ${version}`)}else if(metaLib.isClassDeleted(component)){issue=new ruleCtx.Issue(`Method ${method}() on var '${objName}' called on deleted class (${component}).`)}if(issue){issue.setSeverity("critical");issue.setMsgKey(RULENAME+"_2")}}}if(issue){ruleCtx.reporter.addIssue(issue,ruleCtx)}};Rule.prototype._onNewFile=function(ruleCtx){if(ruleCtx.type==="file"&&ruleCtx.filetype!=="ts"){return}if(!this._helper){this._helper=new helperClass}this._reset();if(!NT&&ruleCtx.utils.AstUtils){NT=ruleCtx.utils.AstUtils.getNodeTypes()}this._scope=ruleCtx.utils.AstUtils.getScopes()};Rule.prototype._onEndFile=function(){};Rule.prototype._getVarFromMemberExpr=function(me,varSoFar,level){var obj;level=typeof level==="number"?level+1:0;if(me.object){obj=me.object;if(obj.type===NT.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+obj.name:obj.name}else if(obj.type===NT.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(obj,varSoFar,level)}if(me.property&&level){if(me.property.type===NT.IDENTIFIER){varSoFar=varSoFar?varSoFar+"."+me.property.name:me.property.name}else if(me.property.type===NT.MEMBER_EXPR){varSoFar=this._getVarFromMemberExpr(me.property,varSoFar,level)}}}return varSoFar};Rule.prototype._isCommonMethod=function(ruleCtx,objName,method){return method.charAt(0)==="_"||method==="observable"||method==="applyBindings"||method==="addEventListener"||method==="removeEventListener"||ruleCtx.utils.AstUtils.isCommonDocApi(method)||objName==="this"||objName==="self"||objName==="_self"||objName==="window"||objName==="console"||this._helper.isCommonVar(objName)};module.exports=Rule;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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 RULENAME="oj-ts-ojcomp-deprecated";const DESCRIPTION="Deprecated JET component classes should not be instantiated";const SHORT_DESCRIPTION="Deprecated JET component classes should not be instantiated";const PERIOD=".";var nt;class Rule{getName(){return RULENAME}getDescription(){return DESCRIPTION}getShortDescription(){return SHORT_DESCRIPTION}register(regCtx){var ret={};nt=regCtx.tsNodeTypes;ret[nt.NEW_EXPR]=this._onNew;return ret}_onNew(ruleCtx,node){var component,issue,comment;var me,obj,start,pos;me=node.callee;if(me.type===nt.MEMBER_EXPR){obj=me.object;if(obj&&obj.type===nt.IDENTIFIER){if(obj.name==="oj"){if(me.property&&me.property.name){component="oj."+me.property.name;start=obj}}}}else if(me.type===nt.IDENTIFIER){component=me.name;start=me}if(component){
|
|
6
|
+
const RULENAME="oj-ts-ojcomp-deprecated";const DESCRIPTION="Deprecated JET component classes should not be instantiated";const SHORT_DESCRIPTION="Deprecated JET component classes should not be instantiated";const PERIOD=".";var nt;class Rule{getName(){return RULENAME}getDescription(){return DESCRIPTION}getShortDescription(){return SHORT_DESCRIPTION}register(regCtx){var ret={};nt=regCtx.tsNodeTypes;ret[nt.NEW_EXPR]=this._onNew;return ret}_onNew(ruleCtx,node){var component,issue,status,comment;var me,obj,start,pos;me=node.callee;if(me.type===nt.MEMBER_EXPR){obj=me.object;if(obj&&obj.type===nt.IDENTIFIER){if(obj.name==="oj"){if(me.property&&me.property.name){component="oj."+me.property.name;start=obj}}}}else if(me.type===nt.IDENTIFIER){component=me.name;start=me}if(component){if(status=ruleCtx.utils.metaLib.isClassDeprecated(component)){comment=ruleCtx.utils.utils.removeMarkup(status.description);issue=new ruleCtx.Issue(`Instantiation of deprecated JET class ${component}. ${comment} ${comment.endsWith(PERIOD)?"":PERIOD}`);issue.setPosition(null,null,start.range[0],start.range[0]+component.length);ruleCtx.reporter.addIssue(issue,ruleCtx)}}}}module.exports=Rule;
|
package/rules/jet/rules.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018,
|
|
2
|
+
* Copyright (c) 2018, 2022, 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":"JET Builtin Rules","version":"4.7.0","prefix":"JET","rules":{"oj-html-cca-tagname":{"severity":"minor","filetype":"html","group":["jet-html"],"status":"production"},"oj-html-ojtag-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"status":"production"},"oj-html-ojattr":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=6.0.0","status":"production"},"oj-html-ojattr-520":{"severity":"critical","filetype":"html","group":"jet-html","jetver":"5.2.0","status":"production"},"oj-html-ojattr-value":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-2def":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-prefix-ro":{"severity":"info","filetype":"html","group":"jet-html","status":"beta"},"oj-html-attr-prefix-expr":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-json":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojattr-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"status":"production"},"oj-html-ojattr-enum-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"status":"production"},"oj-html-5-tag-obs":{"severity":"major","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-5-attr-obs":{"severity":"major","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-ojevent":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-form-noflex":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-jq-databind":{"severity":"major","filetype":"html","group":"jet-html","status":"beta"},"oj-html-databind-all":{"severity":"minor","filetype":"html","group":"jet-html","status":"beta","enabled":false},"oj-html-bindif-test":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-bindforeach-data":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojslot":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-slot-name":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-slot-pref-content":{"severity":"minor","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-html-slot-item-minmax":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-style":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=9.0.0","status":"production","enabled":false},"oj-html-stylesel":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production","enabled":false},"oj-html-style-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"jetver":">=9.0.0","status":"production"},"oj-html-ojstyle":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=9.0.0","status":"production","enabled":false},"oj-html-style-bp-color":{"severity":"major","filetype":"html","group":"jet-html","status":"production","enabled":false},"oj-html-style-bp-font":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-html-style-bp-font-family":{"severity":"minor","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"production","ignore":["inherit","initial"],"enabled":false},"oj-html-style-bp-display":{"severity":"minor","filetype":"html","group":["jet-html","jet-bp"],"status":"production","enabled":false},"oj-html-style-abs-units":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"production","absunits":{"all":2},"enabled":false},"oj-html-binding-attr":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-$unique":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-req":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-dlg-title":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojattr-evt-syntax":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-tag-attr-noprefix":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-picker-attrs":{"jetver":">=11.0.0","severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-label-for-prefix":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-globattr-noprefix":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-nonglobattr-prefix":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-datacmd":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-datactx":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-ns":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-id":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-for":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-packprivate":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-form-bindif":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production","enabled":false},"oj-html-file-pick-accept":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-arialabelledby":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-$props":{"severity":"blocker","filetype":"html","amd":false,"group":"jet-html","status":"production"},"oj-html-cspexpr":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-unsup-theme":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-cca-count":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-redwood-cssvars":{"severity":"major","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-html-redwood-cssnovars":{"severity":"major","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-css-bp-dir-flow":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-bp-color":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-bp-font":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-bp-font-family":{"severity":"minor","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"production","ignore":["inherit","initial"],"enabled":false},"oj-css-style-bp-display":{"severity":"minor","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-override":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-override"],"status":"production"},"oj-css-var-override":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-override","jet-bp"],"jetver":">=9.0.0","status":"production","enabled":false},"oj-css-style-deprecated":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-deprecated"],"jetver":">=9.0.0","status":"production"},"oj-css-style-abs-units":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"production","absunits":{"all":2},"enabled":false},"oj-css-bp-float":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"beta","enabled":false},"oj-css-bp-textalign":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"beta","enabled":false},"oj-css-bp-border-color":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"beta","enabled":false},"oj-html-invalid-doctype":{"severity":"blocker","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-missing-doctype":{"severity":"blocker","runonce":"file","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-oj-lib":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ko-comment":{"severity":"major","filetype":"html","group":"jet-html","status":"beta"},"oj-html-ko-databind":{"severity":"major","filetype":"html","group":"jet-html","status":"beta"},"oj-html-cdn":{"severity":"minor","filetype":"html","group":"jet-html","status":"beta","enabled":false},"oj-html-self-close":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-combo-converter":{"severity":"major","filetype":"html","group":"jet-html","jetver":"^9.2.0","status":"production"},"oj-html-input-isodate":{"severity":"critical","filetype":"html","group":"jet-html","status":"beta"},"oj-html-dyn-form":{"severity":"blocker","filetype":"html","group":"jet-html","status":"beta","enabled":false,"inservice":false},"oj-form-maxcols":{"severity":"major","filetype":["html","json"],"group":["jet-html","jet-json"],"status":"production"},"oj-html-form-layout-maxcols":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-template-index":{"severity":"info","filetype":"html","group":"jet-html","jetver":">=9.0.0","status":"production"},"oj-cca-compjson-bp-obj":{"severity":"info","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-bp-ar":{"severity":"info","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-bp-jetver":{"severity":"major","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-bp-dsplyname":{"severity":"info","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-ns-reg":{"severity":"blocker","filetype":"json","group":"jet-cca","status":"production"},"oj-acc-select-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-combobox-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-input-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-aria-labelledby":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-avatar-aria-role":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-aria-prop":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-film-strip-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-js-ojcomp-deprecated":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production"},"oj-ts-ojcomp-deprecated":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated"],"amd":false,"status":"beta","enabled":false},"oj-js-comp-meth-deprecated":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated","jet-deleted"],"status":"production"},"oj-ts-comp-meth-deprecated":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated","jet-deleted"],"amd":false,"status":"beta","enabled":false},"oj-js-comp-attr-deprecated":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated","jet-deleted"],"status":"production"},"oj-ts-comp-attr-deprecated":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated","jet-deleted"],"amd":false,"status":"beta","enabled":false},"oj-js-var-undef":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production","enabled":false},"oj-js-ojcomp-new":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production"},"oj-ts-ojcomp-new":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated"],"amd":false,"status":"beta","enabled":false},"oj-js-ojcomp-exist":{"severity":"critical","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production"},"oj-ts-ojcomp-exist":{"severity":"critical","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated"],"amd":false,"status":"beta","enabled":false},"oj-js-poly-promise":{"severity":"critical","filetype":["js","html"],"group":["jet-js","jet-html"],"status":"production"},"oj-ts-poly-promise":{"severity":"critical","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx"],"amd":false,"status":"beta","enabled":false},"oj-js-no-ext-final":{"severity":"info","filetype":["js","html"],"group":["jet-js","jet-html"],"jetver":">=8.0.0","status":"beta"},"oj-ts-no-ext-final":{"severity":"info","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx"],"jetver":">=8.0.0","amd":false,"status":"beta","enabled":false},"oj-js-noconsole":{"severity":"info","filetype":["js","html"],"group":["jet-js","jet-html"],"status":"production"},"oj-ts-noconsole":{"severity":"info","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx"],"amd":false,"status":"beta","enabled":false},"oj-json-syntax":{"severity":"critical","filetype":"json","group":"jet-json","status":"production"}}}
|
|
6
|
+
{"title":"JET Builtin Rules","version":"4.7.0","prefix":"JET","rules":{"oj-html-cca-tagname":{"severity":"minor","filetype":"html","group":["jet-html"],"status":"production"},"oj-html-ojtag-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"status":"production"},"oj-html-ojattr":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=6.0.0","status":"production"},"oj-html-ojattr-520":{"severity":"critical","filetype":"html","group":"jet-html","jetver":"5.2.0","status":"production"},"oj-html-ojattr-value":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-2def":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-prefix-ro":{"severity":"info","filetype":"html","group":"jet-html","status":"beta"},"oj-html-attr-prefix-expr":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-json":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojattr-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"status":"production"},"oj-html-ojattr-enum-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"status":"production"},"oj-html-5-tag-obs":{"severity":"major","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-5-attr-obs":{"severity":"major","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-ojevent":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-form-noflex":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-jq-databind":{"severity":"major","filetype":"html","group":"jet-html","status":"beta"},"oj-html-databind-all":{"severity":"minor","filetype":"html","group":"jet-html","status":"beta","enabled":false},"oj-html-bindif-test":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-bindforeach-data":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojslot":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-slot-name":{"severity":"critical","filetype":"html","group":"jet-html","status":"production"},"oj-html-slot-pref-content":{"severity":"minor","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-html-slot-item-minmax":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-notag-style":{"severity":"info","filetype":"html","group":"jet-html","status":"beta"},"oj-html-style":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=9.0.0","status":"production","enabled":false},"oj-html-stylesel":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production","enabled":false},"oj-html-style-deprecated":{"severity":"major","filetype":"html","group":["jet-html","jet-deprecated"],"jetver":">=9.0.0","status":"production"},"oj-html-ojstyle":{"severity":"critical","filetype":"html","group":"jet-html","jetver":">=9.0.0","status":"production","enabled":false},"oj-html-style-bp-color":{"severity":"major","filetype":"html","group":"jet-html","status":"production","enabled":false},"oj-html-style-bp-font":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-html-style-bp-font-family":{"severity":"minor","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"production","ignore":["inherit","initial"],"enabled":false},"oj-html-style-bp-display":{"severity":"minor","filetype":"html","group":["jet-html","jet-bp"],"status":"production","enabled":false},"oj-html-style-abs-units":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"production","absunits":{"all":2},"enabled":false},"oj-html-no-style-tag":{"severity":"major","filetype":"html","group":"jet-html","status":"production","enabled":false},"oj-html-binding-attr":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-$unique":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-attr-req":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-dlg-title":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojattr-evt-syntax":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-tag-attr-noprefix":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-picker-attrs":{"jetver":">=11.0.0","severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-label-for-prefix":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-globattr-noprefix":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-nonglobattr-prefix":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-msgs-cat-text":{"severity":"major","filetype":"html","group":"jet-html","theme":"Redwood","enabled":true},"oj-html-ojtag-datacmd":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-datactx":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-ojtag-ns":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-id":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-for":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-nested":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-packprivate":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-form-bindif":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production","enabled":false},"oj-html-file-pick-accept":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-arialabelledby":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-wctag-$props":{"severity":"blocker","filetype":"html","amd":false,"group":"jet-html","status":"production"},"oj-html-cspexpr":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-unsup-theme":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-cca-count":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-redwood-cssvars":{"severity":"major","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-html-redwood-cssnovars":{"severity":"major","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-css-bp-dir-flow":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-bp-color":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-bp-font":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-bp-font-family":{"severity":"minor","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"production","ignore":["inherit","initial"],"enabled":false},"oj-css-style-bp-display":{"severity":"minor","filetype":["css","html"],"group":["jet-css","jet-html","jet-bp"],"status":"beta","enabled":false},"oj-css-style-override":{"severity":"blocker","filetype":["css","html"],"group":["jet-css","jet-override"],"status":"production"},"oj-css-var-override":{"severity":"major","filetype":["css","html"],"group":["jet-css","jet-override","jet-bp"],"jetver":">=9.0.0","status":"production","enabled":false},"oj-css-style-deprecated":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-deprecated"],"jetver":">=9.0.0","status":"production"},"oj-css-style-abs-units":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"production","absunits":{"all":2},"enabled":false},"oj-css-bp-float":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"beta","enabled":false},"oj-css-bp-textalign":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"beta","enabled":false},"oj-css-bp-border-color":{"severity":"major","filetype":["css","html"],"group":["jet-html","jet-css","jet-bp"],"jetver":">=9.0.0","status":"beta","enabled":false},"oj-html-invalid-doctype":{"severity":"blocker","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-missing-doctype":{"severity":"blocker","runonce":"file","filetype":"html","group":["jet-html","html5"],"status":"production"},"oj-html-oj-lib":{"severity":"major","filetype":"html","group":"jet-html","status":"production"},"oj-html-ko-comment":{"severity":"major","filetype":"html","group":"jet-html","status":"beta"},"oj-html-ko-databind":{"severity":"major","filetype":"html","group":"jet-html","status":"beta"},"oj-html-cdn":{"severity":"minor","filetype":"html","group":"jet-html","status":"beta","enabled":false},"oj-html-self-close":{"severity":"blocker","filetype":"html","group":"jet-html","status":"production"},"oj-html-combo-converter":{"severity":"major","filetype":"html","group":"jet-html","jetver":"^9.2.0","status":"production"},"oj-html-input-isodate":{"severity":"critical","filetype":"html","group":"jet-html","status":"beta"},"oj-html-dyn-form":{"severity":"blocker","filetype":"html","group":"jet-html","status":"beta","enabled":false,"inservice":false},"oj-form-maxcols":{"severity":"major","filetype":["html","json"],"group":["jet-html","jet-json"],"status":"production"},"oj-html-form-layout-maxcols":{"severity":"minor","filetype":"html","group":"jet-html","status":"production"},"oj-html-template-index":{"severity":"info","filetype":"html","group":"jet-html","jetver":">=9.0.0","status":"production"},"oj-html-alta-deprecated":{"severity":"info","filetype":"html","group":"jet-html","jetver":">=10.0.0","status":"production"},"oj-cca-compjson-bp-obj":{"severity":"info","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-bp-ar":{"severity":"info","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-bp-jetver":{"severity":"major","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-bp-dsplyname":{"severity":"info","filetype":"json","group":["jet-cca","jet-bp"],"status":"beta"},"oj-cca-compjson-ns-reg":{"severity":"blocker","filetype":"json","group":"jet-cca","status":"production"},"oj-acc-select-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-combobox-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-input-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-aria-labelledby":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-avatar-aria-role":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-aria-prop":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-acc-film-strip-aria-label":{"severity":"blocker","filetype":"html","group":"jet-aria","status":"production"},"oj-js-ojcomp-deprecated":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production"},"oj-ts-ojcomp-deprecated":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated"],"amd":false,"status":"beta","enabled":false},"oj-js-comp-meth-deprecated":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated","jet-deleted"],"status":"production"},"oj-ts-comp-meth-deprecated":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated","jet-deleted"],"amd":false,"status":"beta","enabled":false},"oj-js-comp-attr-deprecated":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated","jet-deleted"],"status":"production"},"oj-ts-comp-attr-deprecated":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated","jet-deleted"],"amd":false,"status":"beta","enabled":false},"oj-js-var-undef":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production","enabled":false},"oj-js-ojcomp-new":{"severity":"major","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production"},"oj-ts-ojcomp-new":{"severity":"major","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated"],"amd":false,"status":"beta","enabled":false},"oj-js-ojcomp-exist":{"severity":"critical","filetype":["js","html"],"group":["jet-js","jet-html","jet-deprecated"],"status":"production"},"oj-ts-ojcomp-exist":{"severity":"critical","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx","jet-deprecated"],"amd":false,"status":"beta","enabled":false},"oj-js-poly-promise":{"severity":"critical","filetype":["js","html"],"group":["jet-js","jet-html"],"status":"production"},"oj-ts-poly-promise":{"severity":"critical","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx"],"amd":false,"status":"beta","enabled":false},"oj-js-no-ext-final":{"severity":"info","filetype":["js","html"],"group":["jet-js","jet-html"],"jetver":">=8.0.0","status":"beta"},"oj-ts-no-ext-final":{"severity":"info","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx"],"jetver":">=8.0.0","amd":false,"status":"beta","enabled":false},"oj-js-noconsole":{"severity":"info","filetype":["js","html"],"group":["jet-js","jet-html"],"status":"production"},"oj-ts-noconsole":{"severity":"info","filetype":["ts","tsx"],"group":["jet-ts","jet-tsx"],"amd":false,"status":"beta","enabled":false},"oj-json-syntax":{"severity":"critical","filetype":"json","group":"jet-json","status":"production"}}}
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
"properties": {
|
|
187
187
|
"type": {
|
|
188
188
|
"type": "string",
|
|
189
|
-
"enum": ["deprecated", "unsupported"]
|
|
189
|
+
"enum": ["deprecated", "getterOnly", "unsupported"]
|
|
190
190
|
},
|
|
191
191
|
"since": {
|
|
192
192
|
"$ref": "#/definitions/semverExactDef"
|
|
@@ -655,6 +655,9 @@
|
|
|
655
655
|
},
|
|
656
656
|
"status": {
|
|
657
657
|
"$ref": "#/definitions/statusDef"
|
|
658
|
+
},
|
|
659
|
+
"visible": {
|
|
660
|
+
"type": "boolean"
|
|
658
661
|
}
|
|
659
662
|
},
|
|
660
663
|
"additionalProperties": false
|